summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile100
-rw-r--r--asm/battle_anim_80CA710.s55077
-rw-r--r--asm/big_shroomish_barboach.s522
-rw-r--r--asm/bike.s2211
-rw-r--r--asm/contest_effect.s2942
-rw-r--r--asm/contest_link_80C2020.s5580
-rw-r--r--asm/contest_link_80C857C.s1306
-rw-r--r--asm/contest_painting.s1293
-rw-r--r--asm/cute_sketch.s3487
-rw-r--r--asm/decoration.s7086
-rw-r--r--asm/dewford_trend.s939
-rw-r--r--asm/easy_chat.s11640
-rw-r--r--asm/field_poison.s317
-rw-r--r--asm/fldeff_80C5CD4.s2766
-rw-r--r--asm/heal_location.s86
-rw-r--r--asm/item_use.s3017
-rw-r--r--asm/mail.s892
-rw-r--r--asm/mauville_old_man.s2018
-rw-r--r--asm/menu_helpers.s1339
-rw-r--r--asm/mon_markings.s1004
-rw-r--r--asm/pokenav.s23155
-rw-r--r--asm/porthole.s297
-rw-r--r--asm/record_mixing.s1780
-rw-r--r--asm/region_map.s3969
-rw-r--r--asm/rom_80B79A8.s163521
-rw-r--r--asm/rotating_gate.s1085
-rw-r--r--asm/safari_zone.s544
-rw-r--r--asm/scipt_pokemon_util_80C4BF0.s1399
-rw-r--r--asm/script_pokemon_util_80F99CC.s978
-rw-r--r--asm/secret_base.s4586
-rw-r--r--asm/slot_machine.s10469
-rw-r--r--asm/sound_check_menu.s2444
-rw-r--r--asm/truck_scene.s604
-rw-r--r--asm/tv.s8977
-rw-r--r--ld_script.txt32
35 files changed, 163926 insertions, 163536 deletions
diff --git a/Makefile b/Makefile
index db588d492..eaa3a7b11 100644
--- a/Makefile
+++ b/Makefile
@@ -46,21 +46,91 @@ compare_sapphire compare_sapphire_rev1 compare_sapphire_rev2
C_SRCS := $(wildcard src/*.c)
C_OBJS := $(C_SRCS:%.c=%.o)
-ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o asm/pokedex.o asm/rom6.o\
-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/wild_encounter.o asm/rom_80859BC.o \
-asm/field_effect.o asm/title_screen.o asm/weather.o \
-asm/rom_806936C.o asm/clear_save_data_menu.o asm/rom_8148B8C.o \
-asm/mystery_event_menu.o asm/save_failed_screen.o asm/rom_81473B8.o \
-asm/berry_tag_screen.o asm/lottery_corner.o \
-asm/battle_ai.o asm/trader.o asm/trainer_card.o asm/save_menu_util.o \
-asm/rom_8094928.o asm/mori_debug_menu.o asm/trainer_see.o asm/rom_8080874.o \
-asm/battle_setup.o asm/cable_club.o asm/daycare.o asm/egg_hatch.o \
-asm/rom_804373C.o asm/load_save.o asm/trade.o asm/berry_blender.o \
-asm/naming_screen.o asm/rom_80B79A8.o
+ASM_OBJS := \
+asm/crt0.o \
+asm/rom3.o \
+asm/calculate_base_damage.o \
+asm/rom_803D1FC.o \
+asm/rom_8040EB4.o \
+asm/daycare.o \
+asm/egg_hatch.o \
+asm/rom_804373C.o \
+asm/load_save.o \
+asm/trade.o \
+asm/berry_blender.o \
+asm/rom4.o \
+asm/rom_8065394.o \
+asm/rom_806936C.o \
+asm/party_menu.o \
+asm/rom_806D7F8.o \
+asm/tileset.o \
+asm/rom_8074BAC.o \
+asm/rom5.o \
+asm/title_screen.o \
+asm/weather.o \
+asm/rom_8080874.o \
+asm/battle_setup.o \
+asm/cable_club.o \
+asm/mori_debug_menu.o \
+asm/trainer_see.o \
+asm/wild_encounter.o \
+asm/field_effect.o \
+asm/rom_80859BC.o \
+asm/pokedex.o \
+asm/trainer_card.o \
+asm/save_menu_util.o \
+asm/rom_8094928.o \
+asm/berry.o \
+asm/rom_80B5054.o \
+asm/naming_screen.o \
+asm/rom_80B79A8.o \
+asm/contest_effect.o \
+asm/record_mixing.o \
+asm/sound_check_menu.o \
+asm/secret_base.o \
+asm/tv.o \
+asm/contest_link_80C2020.o \
+asm/scipt_pokemon_util_80C4BF0.o \
+asm/field_poison.o \
+asm/big_shroomish_barboach.o \
+asm/fldeff_80C5CD4.o \
+asm/truck_scene.o \
+asm/porthole.o \
+asm/rotating_gate.o \
+asm/safari_zone.o \
+asm/contest_link_80C857C.o \
+asm/item_use.o \
+asm/battle_anim_80CA710.o \
+asm/bike.o \
+asm/easy_chat.o \
+asm/pokenav.o \
+asm/mon_markings.o \
+asm/mauville_old_man.o \
+asm/mail.o \
+asm/menu_helpers.o \
+asm/script_pokemon_util_80F99CC.o \
+asm/dewford_trend.o \
+asm/heal_location.o \
+asm/region_map.o \
+asm/cute_sketch.o \
+asm/decoration.o \
+asm/slot_machine.o \
+asm/contest_painting.o \
+asm/battle_ai.o \
+asm/trader.o \
+asm/rom6.o \
+asm/mystery_event_script.o \
+asm/field_effect_helpers.o \
+asm/contest_ai.o \
+asm/rom_81258BC.o \
+asm/rom_813BA94.o \
+asm/lottery_corner.o \
+asm/berry_tag_screen.o \
+asm/mystery_event_menu.o \
+asm/save_failed_screen.o \
+asm/rom_81473B8.o \
+asm/clear_save_data_menu.o \
+asm/rom_8148B8C.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/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
new file mode 100644
index 000000000..dc366a5da
--- /dev/null
+++ b/asm/battle_anim_80CA710.s
@@ -0,0 +1,55077 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80CA710
+sub_80CA710: @ 80CA710
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CA744 @ =gUnknown_03004B00
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CA748 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA74C
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ b _080CA74E
+ .align 2, 0
+_080CA744: .4byte gUnknown_03004B00
+_080CA748: .4byte gUnknown_0202F7C8
+_080CA74C:
+ ldrh r0, [r5, 0x8]
+_080CA74E:
+ strh r0, [r4, 0x34]
+ ldr r0, _080CA760 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0xA]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA764 @ =sub_80CA768
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA760: .4byte gUnknown_03004B00
+_080CA764: .4byte sub_80CA768
+ thumb_func_end sub_80CA710
+
+ thumb_func_start sub_80CA768
+sub_80CA768: @ 80CA768
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CA7A4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CA7AA
+_080CA7A4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CA7AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA768
+
+ thumb_func_start sub_80CA7B0
+sub_80CA7B0: @ 80CA7B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CA7F0 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA7F4 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA7F8 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA7FC @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA7F0: .4byte gUnknown_03004B00
+_080CA7F4: .4byte gUnknown_0202F7C8
+_080CA7F8: .4byte sub_8078B34
+_080CA7FC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80CA7B0
+
+ thumb_func_start sub_80CA800
+sub_80CA800: @ 80CA800
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CA848 @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA84C @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080CA850 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080CA854 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA848: .4byte gUnknown_03004B00
+_080CA84C: .4byte gUnknown_0202F7C9
+_080CA850: .4byte sub_8078B34
+_080CA854: .4byte move_anim_8072740
+ thumb_func_end sub_80CA800
+
+ thumb_func_start sub_80CA858
+sub_80CA858: @ 80CA858
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080CA8A8 @ =gUnknown_03004B00
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080CA8AC @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r1, _080CA8B0 @ =sub_80CA8B4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA8A8: .4byte gUnknown_03004B00
+_080CA8AC: .4byte gUnknown_0202F7C9
+_080CA8B0: .4byte sub_80CA8B4
+ thumb_func_end sub_80CA858
+
+ thumb_func_start sub_80CA8B4
+sub_80CA8B4: @ 80CA8B4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CA8CA
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080CA91E
+_080CA8CA:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ ble _080CA8E4
+ ldr r0, _080CA8E0 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+ b _080CA8EE
+ .align 2, 0
+_080CA8E0: .4byte gUnknown_0202F7C9
+_080CA8E4:
+ ldr r0, _080CA924 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x6
+_080CA8EE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xF
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CA91E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA924: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA8B4
+
+ thumb_func_start sub_80CA928
+sub_80CA928: @ 80CA928
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CA998 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ movs r2, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CA982
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ movs r0, 0x6
+ strh r0, [r5, 0x8]
+ ldr r1, _080CA99C @ =gUnknown_03004B00
+ movs r0, 0xF
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ movs r0, 0x50
+ strh r0, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
+ ldr r0, _080CA9A4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl CreateSpriteAndAnimate
+_080CA982:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ bne _080CA990
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CA990:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA998: .4byte gTasks
+_080CA99C: .4byte gUnknown_03004B00
+_080CA9A0: .4byte gSpriteTemplate_83D631C
+_080CA9A4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CA928
+
+ thumb_func_start sub_80CA9A8
+sub_80CA9A8: @ 80CA9A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r6, _080CA9EC @ =gUnknown_03004B00
+ ldrh r0, [r6, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CA9F0 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080CA9F4 @ =sub_80CA9F8
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA9EC: .4byte gUnknown_03004B00
+_080CA9F0: .4byte gUnknown_0202F7C8
+_080CA9F4: .4byte sub_80CA9F8
+ thumb_func_end sub_80CA9A8
+
+ thumb_func_start sub_80CA9F8
+sub_80CA9F8: @ 80CA9F8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA0C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAA0C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CA9F8
+
+ thumb_func_start sub_80CAA14
+sub_80CAA14: @ 80CAA14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x7
+ ands r1, r0
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r4, _080CAA5C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAA60
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x14
+ b _080CAA64
+ .align 2, 0
+_080CAA5C: .4byte gUnknown_0202F7C8
+_080CAA60:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x14
+_080CAA64:
+ strh r0, [r5, 0x20]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ ands r0, r1
+ adds r0, 0x40
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CAAC4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x38]
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3A]
+ ldr r1, _080CAAC8 @ =sub_80CAACC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAAC4: .4byte gUnknown_0202F7C9
+_080CAAC8: .4byte sub_80CAACC
+ thumb_func_end sub_80CAA14
+
+ thumb_func_start sub_80CAACC
+sub_80CAACC: @ 80CAACC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAAE2
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080CAB12
+_080CAAE2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7E
+ bgt _080CAAFE
+ ldrh r0, [r4, 0x3A]
+ b _080CAB02
+_080CAAFE:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+_080CAB02:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x18
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+_080CAB12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAACC
+
+ thumb_func_start sub_80CAB18
+sub_80CAB18: @ 80CAB18
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CAB78 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAB38
+ ldr r1, _080CAB7C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAB38:
+ ldr r4, _080CAB7C @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080CAB80 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080CAB84 @ =sub_80CAB88
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAB78: .4byte gUnknown_0202F7C8
+_080CAB7C: .4byte gUnknown_03004B00
+_080CAB80: .4byte gUnknown_0202F7C9
+_080CAB84: .4byte sub_80CAB88
+ thumb_func_end sub_80CAB18
+
+ thumb_func_start sub_80CAB88
+sub_80CAB88: @ 80CAB88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CABB2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABB8 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABBC @ =sub_80CABC0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080CABB2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABB8: .4byte sub_80782D8
+_080CABBC: .4byte sub_80CABC0
+ thumb_func_end sub_80CAB88
+
+ thumb_func_start sub_80CABC0
+sub_80CABC0: @ 80CABC0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CABF0 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CABF4 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CABF0: .4byte sub_80782D8
+_080CABF4: .4byte move_anim_8072740
+ thumb_func_end sub_80CABC0
+
+ thumb_func_start sub_80CABF8
+sub_80CABF8: @ 80CABF8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080CAC3C @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080CAC22
+ ldrb r0, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080CAC22:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldr r1, _080CAC40 @ =sub_80CAC44
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAC3C: .4byte gUnknown_03004B00
+_080CAC40: .4byte sub_80CAC44
+ thumb_func_end sub_80CABF8
+
+ thumb_func_start sub_80CAC44
+sub_80CAC44: @ 80CAC44
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x18
+ strh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CAC98
+ ldr r0, _080CAC94 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ b _080CACBC
+ .align 2, 0
+_080CAC94: .4byte gUnknown_0202F7C9
+_080CAC98:
+ ldr r0, _080CACE8 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080CACAC
+ movs r2, 0x3
+_080CACAC:
+ movs r0, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+_080CACBC:
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080CACE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CACE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CACE8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CAC44
+
+ thumb_func_start sub_80CACEC
+sub_80CACEC: @ 80CACEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD06
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAD0E
+_080CAD06:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CAD4A
+_080CAD0E:
+ ldr r0, _080CAD2C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CAD34
+ ldr r0, _080CAD30 @ =REG_BG2CNT
+ ldrb r1, [r0]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0]
+ b _080CAD44
+ .align 2, 0
+_080CAD2C: .4byte gUnknown_0202F7C9
+_080CAD30: .4byte REG_BG2CNT
+_080CAD34:
+ ldr r2, _080CAD50 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CAD44:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CAD4A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD50: .4byte REG_BG1CNT
+ thumb_func_end sub_80CACEC
+
+ thumb_func_start sub_80CAD54
+sub_80CAD54: @ 80CAD54
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r5, _080CAD9C @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CADA0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CADA4 @ =sub_80CADA8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAD9C: .4byte gUnknown_03004B00
+_080CADA0: .4byte gUnknown_0202F7C8
+_080CADA4: .4byte sub_80CADA8
+ thumb_func_end sub_80CAD54
+
+ thumb_func_start sub_80CADA8
+sub_80CADA8: @ 80CADA8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAE14
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080CADF4
+ ldr r0, _080CADF0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _080CADFE
+ .align 2, 0
+_080CADF0: .4byte gUnknown_0202F7C8
+_080CADF4:
+ ldr r0, _080CAE10 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_080CADFE:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAE1A
+ .align 2, 0
+_080CAE10: .4byte gUnknown_0202F7C8
+_080CAE14:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAE1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CADA8
+
+ thumb_func_start sub_80CAE20
+sub_80CAE20: @ 80CAE20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080CAE68 @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldr r0, _080CAE6C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x4]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r4, 0x38]
+ ldr r1, _080CAE70 @ =sub_80CAE74
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAE68: .4byte gUnknown_03004B00
+_080CAE6C: .4byte gUnknown_0202F7C8
+_080CAE70: .4byte sub_80CAE74
+ thumb_func_end sub_80CAE20
+
+ thumb_func_start sub_80CAE74
+sub_80CAE74: @ 80CAE74
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CAECC
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x3B
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _080CAEAC
+ adds r0, r1, 0
+ subs r0, 0xBB
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _080CAEC0
+_080CAEAC:
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ eors r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_080CAEC0:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CAED2
+_080CAECC:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAED2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAE74
+
+ thumb_func_start sub_80CAED8
+sub_80CAED8: @ 80CAED8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CAF14 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CAF18 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CAF1C @ =sub_80CAF20
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CAF14: .4byte gUnknown_0202F7C8
+_080CAF18: .4byte gUnknown_03004B00
+_080CAF1C: .4byte sub_80CAF20
+ thumb_func_end sub_80CAED8
+
+ thumb_func_start sub_80CAF20
+sub_80CAF20: @ 80CAF20
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x32]
+ movs r2, 0x32
+ ldrsh r3, [r1, r2]
+ cmp r3, 0
+ bne _080CAF54
+ ldrh r0, [r1, 0x30]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _080CAF42
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+ strh r3, [r1, 0x32]
+ b _080CAF48
+_080CAF42:
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ strh r2, [r1, 0x32]
+_080CAF48:
+ ldr r0, _080CAF50 @ =sub_80CAF6C
+ str r0, [r1, 0x1C]
+ b _080CAF68
+ .align 2, 0
+_080CAF50: .4byte sub_80CAF6C
+_080CAF54:
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ ldrh r0, [r1, 0x2E]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+_080CAF68:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF20
+
+ thumb_func_start sub_80CAF6C
+sub_80CAF6C: @ 80CAF6C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CAF8C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAF90
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+ negs r0, r0
+ b _080CAF9A
+ .align 2, 0
+_080CAF8C: .4byte gUnknown_0202F7C8
+_080CAF90:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x19
+ bl Sin
+_080CAF9A:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CAFBA
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+_080CAFBA:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080CAFC8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CAFC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CAF6C
+
+ thumb_func_start sub_80CAFD0
+sub_80CAFD0: @ 80CAFD0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080CB024 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CAFF0
+ ldr r1, _080CB028 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080CAFF0:
+ ldr r6, _080CB028 @ =gUnknown_03004B00
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB030
+ ldr r4, _080CB02C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ b _080CB050
+ .align 2, 0
+_080CB024: .4byte gUnknown_0202F7C8
+_080CB028: .4byte gUnknown_03004B00
+_080CB02C: .4byte gUnknown_0202F7C9
+_080CB030:
+ ldr r0, _080CB07C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+_080CB050:
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB080 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080CB084 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080CB07C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080CB088
+ movs r0, 0x1
+ b _080CB08A
+ .align 2, 0
+_080CB07C: .4byte gUnknown_0202F7C9
+_080CB080: .4byte gUnknown_03004B00
+_080CB084: .4byte gUnknown_0202F7C8
+_080CB088:
+ movs r0, 0
+_080CB08A:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CB098 @ =sub_80CB09C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB098: .4byte sub_80CB09C
+ thumb_func_end sub_80CAFD0
+
+ thumb_func_start sub_80CB09C
+sub_80CB09C: @ 80CB09C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ movs r7, 0
+ ldrh r5, [r6, 0x2E]
+ ldrh r4, [r6, 0x3C]
+ movs r0, 0x1
+ strh r0, [r6, 0x2E]
+ adds r0, r6, 0
+ bl sub_8078718
+ ldrh r0, [r6, 0x3C]
+ strh r5, [r6, 0x2E]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0xC8
+ ble _080CB0CE
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x37
+ bgt _080CB0CE
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080CB0D4
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+_080CB0CE:
+ ldrh r0, [r6, 0x6]
+ cmp r0, 0
+ beq _080CB106
+_080CB0D4:
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080CB106
+ adds r3, r6, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+ ldrh r0, [r6, 0x6]
+ adds r0, 0x1
+ strh r0, [r6, 0x6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080CB106
+ movs r7, 0x1
+_080CB106:
+ movs r2, 0x20
+ ldrsh r0, [r6, r2]
+ movs r2, 0x24
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080CB130
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ movs r2, 0x26
+ ldrsh r0, [r6, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080CB130
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080CB132
+_080CB130:
+ movs r7, 0x1
+_080CB132:
+ cmp r7, 0
+ beq _080CB13C
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB13C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB09C
+
+ thumb_func_start sub_80CB144
+sub_80CB144: @ 80CB144
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB170
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CB170
+ ldr r0, _080CB198 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+_080CB170:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r1, _080CB19C @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x36]
+ ldr r0, _080CB1A0 @ =sub_80CB1A4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB198: .4byte gUnknown_0202F7C9
+_080CB19C: .4byte gUnknown_03004B00
+_080CB1A0: .4byte sub_80CB1A4
+ thumb_func_end sub_80CB144
+
+ thumb_func_start sub_80CB1A4
+sub_80CB1A4: @ 80CB1A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bne _080CB1BA
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ b _080CB1C8
+_080CB1BA:
+ cmp r0, 0
+ ble _080CB1C8
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x2
+ strh r0, [r4, 0x22]
+ subs r0, r1, 0x2
+ strh r0, [r4, 0x30]
+_080CB1C8:
+ ldrh r3, [r4, 0x32]
+ ldrh r5, [r4, 0x38]
+ adds r2, r3, r5
+ strh r2, [r4, 0x38]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r5, 0x36
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bge _080CB1E0
+ adds r0, r2, r3
+ strh r0, [r4, 0x38]
+_080CB1E0:
+ ldrh r1, [r4, 0x38]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r5, 0x38
+ ldrsh r0, [r4, r5]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CB220
+ ldr r0, _080CB21C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ b _080CB22E
+ .align 2, 0
+_080CB21C: .4byte gUnknown_0202F7C9
+_080CB220:
+ ldr r0, _080CB258 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+_080CB22E:
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CB252
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB252:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB258: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80CB1A4
+
+ thumb_func_start sub_80CB25C
+sub_80CB25C: @ 80CB25C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _080CB290 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080CB294 @ =sub_80CB298
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB290: .4byte gUnknown_03004B00
+_080CB294: .4byte sub_80CB298
+ thumb_func_end sub_80CB25C
+
+ thumb_func_start sub_80CB298
+sub_80CB298: @ 80CB298
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CB2C8 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB2CC @ =0x0000ffff
+ cmp r1, r0
+ bne _080CB2C2
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CB2D0 @ =sub_80CB2D4
+ str r0, [r4, 0x1C]
+_080CB2C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB2C8: .4byte gUnknown_03004B00
+_080CB2CC: .4byte 0x0000ffff
+_080CB2D0: .4byte sub_80CB2D4
+ thumb_func_end sub_80CB298
+
+ thumb_func_start sub_80CB2D4
+sub_80CB2D4: @ 80CB2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CB2EC
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ b _080CB2F0
+_080CB2EC:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0xB
+_080CB2F0:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CB30C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x32]
+_080CB30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB33A
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CB334
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ b _080CB33A
+_080CB334:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB33A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB2D4
+
+ thumb_func_start sub_80CB340
+sub_80CB340: @ 80CB340
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CB36C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080CB370
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080CB396
+ .align 2, 0
+_080CB36C: .4byte gSprites
+_080CB370:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ ldr r1, _080CB39C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080CB3A0 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xA]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x1E]
+ ldr r1, _080CB3A4 @ =sub_80CB3A8
+ str r1, [r0]
+_080CB396:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB39C: .4byte gTasks
+_080CB3A0: .4byte gUnknown_03004B00
+_080CB3A4: .4byte sub_80CB3A8
+ thumb_func_end sub_80CB340
+
+ thumb_func_start sub_80CB3A8
+sub_80CB3A8: @ 80CB3A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080CB428 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0
+ strh r1, [r4, 0x1C]
+ ldr r2, _080CB42C @ =gSprites
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r5, 0x24]
+ ldr r0, _080CB430 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB3F2
+ ldrh r0, [r5, 0x24]
+ negs r0, r0
+ strh r0, [r5, 0x24]
+_080CB3F2:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x10
+ strh r0, [r4, 0x1E]
+ movs r0, 0x1E
+ ldrsh r2, [r4, r0]
+ adds r0, r6, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r6, 0
+ bl sub_8079A64
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CB420
+ strh r0, [r4, 0x8]
+ ldr r0, _080CB434 @ =sub_80CB438
+ str r0, [r4]
+_080CB420:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB428: .4byte gTasks
+_080CB42C: .4byte gSprites
+_080CB430: .4byte gUnknown_0202F7C9
+_080CB434: .4byte sub_80CB438
+ thumb_func_end sub_80CB3A8
+
+ thumb_func_start sub_80CB438
+sub_80CB438: @ 80CB438
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080CB484 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CB488 @ =0x0000ffff
+ cmp r1, r0
+ bne _080CB494
+ ldr r0, _080CB48C @ =gTasks
+ lsls r2, r3, 2
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r6, r1, r0
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _080CB4A8
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080CB490 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x24]
+ strh r5, [r0, 0x26]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080CB4C2
+ .align 2, 0
+_080CB484: .4byte gUnknown_03004B00
+_080CB488: .4byte 0x0000ffff
+_080CB48C: .4byte gTasks
+_080CB490: .4byte gSprites
+_080CB494:
+ ldr r1, _080CB4C8 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080CB4C2
+_080CB4A8:
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080CB4C2
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080CB4C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB4C8: .4byte gTasks
+ thumb_func_end sub_80CB438
+
+ thumb_func_start sub_80CB4CC
+sub_80CB4CC: @ 80CB4CC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CB4DE
+ cmp r0, 0x1
+ beq _080CB538
+ b _080CB58A
+_080CB4DE:
+ ldr r6, _080CB530 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CB4F6
+ ldr r1, _080CB534 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080CB4F6:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB534 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CB58A
+ .align 2, 0
+_080CB530: .4byte gUnknown_0202F7C9
+_080CB534: .4byte gUnknown_03004B00
+_080CB538:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CB58A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CB590 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB594 @ =sub_8078CC0
+ str r0, [r5, 0x1C]
+ ldr r1, _080CB598 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CB58A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB590: .4byte gUnknown_0202F7C8
+_080CB594: .4byte sub_8078CC0
+_080CB598: .4byte move_anim_8072740
+ thumb_func_end sub_80CB4CC
+
+ thumb_func_start sub_80CB59C
+sub_80CB59C: @ 80CB59C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CB608
+ ldr r4, _080CB614 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080CB618 @ =gUnknown_03004B00
+ ldrh r0, [r4]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1E
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r4, 0x6]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r2, 0x22
+ ldrsh r0, [r5, r2]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _080CB608
+ ldrh r0, [r5, 0x22]
+ adds r1, r0, 0
+ subs r1, 0x78
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r5, 0x22]
+_080CB608:
+ ldr r0, _080CB61C @ =sub_80CB710
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB614: .4byte gUnknown_0202F7C8
+_080CB618: .4byte gUnknown_03004B00
+_080CB61C: .4byte sub_80CB710
+ thumb_func_end sub_80CB59C
+
+ thumb_func_start sub_80CB620
+sub_80CB620: @ 80CB620
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ mov r9, r0
+ ldr r4, _080CB6FC @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _080CB700 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ subs r4, r5
+ lsls r4, 16
+ lsrs r2, 24
+ mov r1, r8
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r3, r4, 16
+ mov r10, r3
+ asrs r4, 16
+ ldr r6, _080CB704 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ muls r0, r4
+ movs r1, 0x64
+ str r2, [sp]
+ bl __divsi3
+ adds r5, r0
+ mov r3, r9
+ strh r5, [r3, 0x20]
+ ldr r2, [sp]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ add r8, r0
+ mov r1, r8
+ mov r0, r9
+ strh r1, [r0, 0x22]
+ ldrh r0, [r6, 0x2]
+ mov r3, r9
+ strh r0, [r3, 0x24]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r3, 0x26]
+ ldrb r0, [r6, 0x6]
+ adds r0, 0x1E
+ mov r1, r9
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0x8]
+ mov r0, r9
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0xA]
+ mov r1, r9
+ strh r0, [r1, 0x32]
+ ldr r0, _080CB708 @ =sub_80CB710
+ str r0, [r1, 0x1C]
+ ldr r1, _080CB70C @ =gUnknown_03000728
+ mov r3, r9
+ ldrh r0, [r3, 0x20]
+ strh r0, [r1]
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1, 0x2]
+ mov r0, r10
+ strh r0, [r1, 0x4]
+ ldr r2, [sp]
+ strh r2, [r1, 0x6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB6FC: .4byte gUnknown_0202F7C8
+_080CB700: .4byte gUnknown_0202F7C9
+_080CB704: .4byte gUnknown_03004B00
+_080CB708: .4byte sub_80CB710
+_080CB70C: .4byte gUnknown_03000728
+ thumb_func_end sub_80CB620
+
+ thumb_func_start sub_80CB710
+sub_80CB710: @ 80CB710
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ adds r1, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080CB750
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ movs r2, 0x3E
+ adds r2, r3
+ mov r12, r2
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_080CB750:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ ble _080CB762
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CB762:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB710
+
+ thumb_func_start sub_80CB768
+sub_80CB768: @ 80CB768
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CB7A8
+ ldr r5, _080CB7E4 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CB7E8 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x30]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x32]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x34]
+_080CB7A8:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+ ldrh r1, [r6, 0x30]
+ muls r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x2E
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0xFF
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080CB7DE
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CB7DE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB7E4: .4byte gUnknown_0202F7C8
+_080CB7E8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CB768
+
+ thumb_func_start sub_80CB7EC
+sub_80CB7EC: @ 80CB7EC
+ push {r4,r5,lr}
+ movs r2, 0x20
+ ldrsh r4, [r0, r2]
+ lsls r4, 8
+ movs r3, 0x22
+ ldrsh r2, [r0, r3]
+ orrs r4, r2
+ movs r5, 0x3A
+ ldrsh r2, [r0, r5]
+ lsls r2, 8
+ movs r5, 0x3C
+ ldrsh r3, [r0, r5]
+ orrs r2, r3
+ lsls r1, 8
+ strh r4, [r0, 0x38]
+ strh r2, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB7EC
+
+ thumb_func_start sub_80CB814
+sub_80CB814: @ 80CB814
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ ldrh r0, [r0, 0x38]
+ lsrs r1, r0, 8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r1, r8
+ ldrh r0, [r1, 0x3A]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r1, [r1, 0x3C]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r3, 0xFF
+ ands r3, r1
+ cmp r2, 0
+ bne _080CB84E
+ movs r2, 0x20
+ negs r2, r2
+ b _080CB856
+_080CB84E:
+ cmp r2, 0xFF
+ bne _080CB856
+ movs r2, 0x88
+ lsls r2, 1
+_080CB856:
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r1, r10
+ subs r0, r2, r1
+ lsls r5, r3, 16
+ asrs r5, 16
+ muls r0, r5
+ lsls r1, r6, 16
+ asrs r7, r1, 16
+ adds r1, r7, 0
+ bl __divsi3
+ adds r6, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r7, 0
+ bl __divsi3
+ add r6, r10
+ mov r1, r8
+ strh r6, [r1, 0x20]
+ add r0, r9
+ strh r0, [r1, 0x22]
+ adds r5, 0x1
+ lsls r5, 16
+ lsrs r3, r5, 16
+ asrs r5, 16
+ cmp r5, r7
+ beq _080CB8A8
+ lsls r1, r7, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r1
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ movs r0, 0
+ b _080CB8AA
+_080CB8A8:
+ movs r0, 0x1
+_080CB8AA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CB814
+
+ thumb_func_start sub_80CB8B8
+sub_80CB8B8: @ 80CB8B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080CB8CC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CB8CC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080CB8E0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CB8E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB8B8
+
+ thumb_func_start sub_80CB8E8
+sub_80CB8E8: @ 80CB8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB912
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB912:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CB942
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CB948 @ =sub_80CB8B8
+ str r0, [r4, 0x1C]
+_080CB942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB948: .4byte sub_80CB8B8
+ thumb_func_end sub_80CB8E8
+
+ thumb_func_start sub_80CB94C
+sub_80CB94C: @ 80CB94C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080CB994 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CB998 @ =gUnknown_0202F7C8
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CB99C
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CB9AE
+ .align 2, 0
+_080CB994: .4byte gUnknown_0202F7C9
+_080CB998: .4byte gUnknown_0202F7C8
+_080CB99C:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CB9AE:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CB9C0 @ =sub_80CB8E8
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CB9C0: .4byte sub_80CB8E8
+ thumb_func_end sub_80CB94C
+
+ thumb_func_start sub_80CB9C4
+sub_80CB9C4: @ 80CB9C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CB9EE
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CB9EE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA20
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBA20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CB9C4
+
+ thumb_func_start sub_80CBA28
+sub_80CBA28: @ 80CBA28
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CBA64 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080CBA6C
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBA68 @ =sub_80CB8E8
+ b _080CBA96
+ .align 2, 0
+_080CBA64: .4byte gUnknown_0202F7C9
+_080CBA68: .4byte sub_80CB8E8
+_080CBA6C:
+ movs r0, 0xFF
+ strh r0, [r5, 0x3A]
+ adds r0, r6, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBA84
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+_080CBA84:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_80CB7EC
+ movs r0, 0x3
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBAA0 @ =sub_80CB9C4
+_080CBA96:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAA0: .4byte sub_80CB9C4
+ thumb_func_end sub_80CBA28
+
+ thumb_func_start sub_80CBAA4
+sub_80CBAA4: @ 80CBAA4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBABE
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r0, _080CBAE4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x30]
+_080CBABE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ muls r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBADE
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBADE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBAE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CBAA4
+
+ thumb_func_start sub_80CBAE8
+sub_80CBAE8: @ 80CBAE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldr r4, _080CBB30 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CBB34 @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080CBB38
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x1
+ b _080CBB4A
+ .align 2, 0
+_080CBB30: .4byte gUnknown_0202F7C8
+_080CBB34: .4byte gUnknown_0202F7C9
+_080CBB38:
+ strh r6, [r5, 0x3A]
+ adds r0, r2, 0
+ adds r0, 0xA
+ strh r0, [r5, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3C
+ bl sub_80CB7EC
+ movs r0, 0x3
+_080CBB4A:
+ strh r0, [r5, 0x34]
+ movs r0, 0x3C
+ strh r0, [r5, 0x36]
+ ldr r0, _080CBB5C @ =sub_80CBB60
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBB5C: .4byte sub_80CBB60
+ thumb_func_end sub_80CBAE8
+
+ thumb_func_start sub_80CBB60
+sub_80CBB60: @ 80CBB60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 7
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ ldrh r1, [r4, 0x2E]
+ adds r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x2E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _080CBB8A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x2E]
+_080CBB8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ lsls r2, 3
+ movs r1, 0x1E
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CBBBE
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBBE:
+ adds r0, r4, 0
+ bl sub_80CB814
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CBBE6
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x2E]
+ ldr r0, _080CBBEC @ =sub_80CB8B8
+ str r0, [r4, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+_080CBBE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBBEC: .4byte sub_80CB8B8
+ thumb_func_end sub_80CBB60
+
+ thumb_func_start sub_80CBBF0
+sub_80CBBF0: @ 80CBBF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CBC84
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBC18
+ ldr r0, _080CBC14 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x2]
+ strh r1, [r4, 0x30]
+ movs r1, 0x78
+ strh r1, [r4, 0x20]
+ adds r5, r0, 0
+ b _080CBC3A
+ .align 2, 0
+_080CBC14: .4byte gUnknown_03004B00
+_080CBC18:
+ ldr r0, _080CBC74 @ =gUnknown_03004B00
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+ adds r1, r3, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ adds r5, r0, 0
+ cmp r1, 0
+ bge _080CBC2E
+ adds r2, r3, 0
+ adds r2, 0xDF
+_080CBC2E:
+ asrs r0, r2, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x46
+ strh r0, [r4, 0x20]
+_080CBC3A:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x32]
+ movs r0, 0x14
+ strh r0, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r0, _080CBC78 @ =sub_80CBC8C
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBC7C
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBC82
+ .align 2, 0
+_080CBC74: .4byte gUnknown_03004B00
+_080CBC78: .4byte sub_80CBC8C
+_080CBC7C:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBC82:
+ strb r0, [r1]
+_080CBC84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBBF0
+
+ thumb_func_start sub_80CBC8C
+sub_80CBC8C: @ 80CBC8C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBC9E
+ cmp r0, 0x1
+ beq _080CBCCE
+ b _080CBCEE
+_080CBC9E:
+ ldrh r5, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4E
+ ble _080CBCB6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CBCEE
+_080CBCB6:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ adds r0, r5, r0
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x3
+ strh r1, [r4, 0x36]
+ strh r0, [r4, 0x22]
+ b _080CBCEE
+_080CBCCE:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CBCEE
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080CBCEE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CBCF4 @ =sub_80CBCF8
+ str r0, [r4, 0x1C]
+_080CBCEE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBCF4: .4byte sub_80CBCF8
+ thumb_func_end sub_80CBC8C
+
+ thumb_func_start sub_80CBCF8
+sub_80CBCF8: @ 80CBCF8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CBD3C @ =gUnknown_083D680C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r3, r0, r1
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrh r2, [r4, 0x32]
+ movs r6, 0x32
+ ldrsh r1, [r4, r6]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080CBD44
+ adds r0, r5, 0x2
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x7F
+ bne _080CBD30
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CBD40 @ =sub_80CBDB0
+ str r0, [r4, 0x1C]
+_080CBD30:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CBDAA
+ .align 2, 0
+_080CBD3C: .4byte gUnknown_083D680C
+_080CBD40: .4byte sub_80CBDB0
+_080CBD44:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r1, r0, r5
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r1, r5, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBD92
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _080CBD8A
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+ b _080CBD90
+_080CBD8A:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+_080CBD90:
+ strb r0, [r1]
+_080CBD92:
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ movs r1, 0x3C
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+_080CBDAA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBCF8
+
+ thumb_func_start sub_80CBDB0
+sub_80CBDB0: @ 80CBDB0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080CBDC2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CBDC2:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBDB0
+
+ thumb_func_start sub_80CBDF4
+sub_80CBDF4: @ 80CBDF4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CBF48 @ =gTasks
+ adds r5, r0, r1
+ ldr r4, _080CBF4C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ strh r0, [r5, 0x1C]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0x1
+ bne _080CBE5C
+ movs r1, 0x1
+_080CBE5C:
+ strh r1, [r5, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r5, r3]
+ lsls r0, 6
+ movs r1, 0x38
+ subs r1, r0
+ strh r1, [r5, 0x1A]
+ ldrh r0, [r5, 0x16]
+ subs r0, r1
+ ldrh r1, [r5, 0x14]
+ adds r0, r1
+ strh r0, [r5, 0x18]
+ ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1A
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ cmp r0, 0x40
+ bne _080CBE94
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CBE94:
+ ldr r4, _080CBF54 @ =gSprites
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x18]
+ strh r1, [r0, 0x30]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r5, r3]
+ muls r1, r0
+ ldrh r0, [r5, 0x14]
+ subs r0, r1
+ strh r0, [r2, 0x32]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x1A]
+ strh r1, [r0, 0x34]
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ lsrs r2, r0, 31
+ adds r0, r2
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r2, [r5, r3]
+ muls r0, r2
+ ldrh r2, [r5, 0x16]
+ adds r0, r2
+ strh r0, [r1, 0x36]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80CC338
+ movs r1, 0xC
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x38]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ ldr r0, _080CBF58 @ =sub_80CBF5C
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CBF48: .4byte gTasks
+_080CBF4C: .4byte gUnknown_0202F7C9
+_080CBF50: .4byte gSpriteTemplate_83D6884
+_080CBF54: .4byte gSprites
+_080CBF58: .4byte sub_80CBF5C
+ thumb_func_end sub_80CBDF4
+
+ thumb_func_start sub_80CBF5C
+sub_80CBF5C: @ 80CBF5C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CBFA0 @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080CBFA4 @ =gSprites
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r5, [r6, r1]
+ cmp r5, 0x7
+ bne _080CBF84
+ b _080CC1B4
+_080CBF84:
+ cmp r5, 0x7
+ bgt _080CBFD2
+ cmp r5, 0x3
+ bne _080CBF8E
+ b _080CC0A6
+_080CBF8E:
+ cmp r5, 0x3
+ bgt _080CBFA8
+ cmp r5, 0x1
+ beq _080CC038
+ cmp r5, 0x1
+ bgt _080CC088
+ cmp r5, 0
+ beq _080CC01A
+ b _080CC330
+ .align 2, 0
+_080CBFA0: .4byte gTasks
+_080CBFA4: .4byte gSprites
+_080CBFA8:
+ cmp r5, 0x5
+ bne _080CBFAE
+ b _080CC11C
+_080CBFAE:
+ cmp r5, 0x5
+ ble _080CBFB4
+ b _080CC196
+_080CBFB4:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFCA
+ b _080CC330
+_080CBFCA:
+ movs r0, 0x5
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CBFD2:
+ cmp r5, 0xB
+ bne _080CBFD8
+ b _080CC298
+_080CBFD8:
+ cmp r5, 0xB
+ bgt _080CC006
+ cmp r5, 0x9
+ bne _080CBFE2
+ b _080CC206
+_080CBFE2:
+ cmp r5, 0x9
+ ble _080CBFE8
+ b _080CC27C
+_080CBFE8:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CBFFE
+ b _080CC330
+_080CBFFE:
+ movs r0, 0x9
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC006:
+ cmp r5, 0xD
+ bne _080CC00C
+ b _080CC30A
+_080CC00C:
+ cmp r5, 0xD
+ bge _080CC012
+ b _080CC2EA
+_080CC012:
+ cmp r5, 0xFF
+ bne _080CC018
+ b _080CC31A
+_080CC018:
+ b _080CC330
+_080CC01A:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC030
+ b _080CC330
+_080CC030:
+ movs r0, 0x1
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC038:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x2
+ strh r0, [r6, 0x10]
+ strh r5, [r6, 0xE]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC088:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC09E
+ b _080CC330
+_080CC09E:
+ movs r0, 0x3
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC0A6:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r1, r0
+ ldrh r0, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC11C:
+ ldrh r1, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r2, 0x1E
+ ldrsh r0, [r6, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r0, r1
+ ldrh r1, [r6, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x3
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC196:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC1AC
+ b _080CC330
+_080CC1AC:
+ movs r0, 0x7
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC1B4:
+ ldrh r2, [r4, 0x24]
+ ldrh r3, [r4, 0x20]
+ adds r2, r3
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ adds r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x4
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC206:
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ movs r0, 0
+ strh r1, [r4, 0x20]
+ ldrh r2, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r2, r3
+ strh r2, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r3, 0x12
+ ldrsh r1, [r6, r3]
+ muls r1, r0
+ ldrh r0, [r6, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0xA
+ movs r2, 0x12
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ ldrh r3, [r6, 0x16]
+ adds r0, r3
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ movs r0, 0x5
+ strh r0, [r6, 0xE]
+ ldrh r0, [r6, 0x10]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC27C:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ movs r0, 0xB
+ strh r0, [r6, 0x26]
+ movs r0, 0xFF
+ b _080CC32E
+_080CC298:
+ ldrh r2, [r4, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r2, r0
+ movs r0, 0
+ strh r2, [r4, 0x20]
+ ldrh r1, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrh r0, [r6, 0x18]
+ strh r0, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ ldrh r0, [r6, 0x1A]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_80CC338
+ strh r0, [r4, 0x38]
+ ldrh r1, [r6, 0x10]
+ subs r1, 0x2
+ strh r1, [r6, 0x10]
+ movs r0, 0x6
+ strh r0, [r6, 0xE]
+ adds r0, r4, 0
+ adds r0, 0x43
+ strb r1, [r0]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC2EA:
+ adds r0, r6, 0
+ adds r1, r2, 0
+ bl sub_80CC358
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC330
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ b _080CC32E
+_080CC30A:
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CC330
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CC330
+_080CC31A:
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CC330
+ movs r0, 0
+ strh r0, [r6, 0xA]
+ ldrh r0, [r6, 0x26]
+_080CC32E:
+ strh r0, [r6, 0x8]
+_080CC330:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CBF5C
+
+ thumb_func_start sub_80CC338
+sub_80CC338: @ 80CC338
+ push {lr}
+ movs r2, 0x8
+ movs r3, 0x36
+ ldrsh r1, [r0, r3]
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _080CC34E
+ negs r0, r2
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080CC34E:
+ lsls r0, r2, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CC338
+
+ thumb_func_start sub_80CC358
+sub_80CC358: @ 80CC358
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080CC3EE
+ movs r0, 0
+ strh r0, [r6, 0x24]
+ ldr r0, _080CC3F8 @ =gSprites
+ mov r8, r0
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ ldrh r2, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r0
+ ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r3, [r6, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080CC3EE
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r0, r8
+ adds r4, r5, r0
+ strh r7, [r4, 0x3A]
+ movs r0, 0xC
+ strh r0, [r4, 0x3C]
+ ldr r0, _080CC400 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldrh r2, [r6, 0x22]
+ movs r0, 0x1
+ ands r0, r2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldrb r1, [r6, 0xE]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r6, 0x10]
+ adds r4, 0x43
+ strb r0, [r4]
+ mov r0, r8
+ adds r0, 0x1C
+ adds r5, r0
+ ldr r0, _080CC404 @ =sub_80CC408
+ str r0, [r5]
+_080CC3EE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC3F8: .4byte gSprites
+_080CC3FC: .4byte gSpriteTemplate_83D6884
+_080CC400: .4byte gTasks
+_080CC404: .4byte sub_80CC408
+ thumb_func_end sub_80CC358
+
+ thumb_func_start sub_80CC408
+sub_80CC408: @ 80CC408
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CC46A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CC46A
+ ldr r3, _080CC470 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080CC46A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC470: .4byte gTasks
+ thumb_func_end sub_80CC408
+
+ thumb_func_start sub_80CC474
+sub_80CC474: @ 80CC474
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC488 @ =gUnknown_03004B00
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CC490
+ ldr r0, _080CC48C @ =gUnknown_0202F7C8
+ b _080CC492
+ .align 2, 0
+_080CC488: .4byte gUnknown_03004B00
+_080CC48C: .4byte gUnknown_0202F7C8
+_080CC490:
+ ldr r0, _080CC4B0 @ =gUnknown_0202F7C9
+_080CC492:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC4BC
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4B4 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080CC4B8 @ =0x0000fff0
+ b _080CC4CC
+ .align 2, 0
+_080CC4B0: .4byte gUnknown_0202F7C9
+_080CC4B4: .4byte gUnknown_03004B00
+_080CC4B8: .4byte 0x0000fff0
+_080CC4BC:
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r1, _080CC4F0 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ movs r0, 0x80
+ lsls r0, 1
+_080CC4CC:
+ strh r0, [r4, 0x20]
+ adds r7, r1, 0
+ adds r5, r7, 0
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CC502
+ cmp r0, 0x1
+ bgt _080CC4F4
+ cmp r0, 0
+ beq _080CC4FE
+ b _080CC56C
+ .align 2, 0
+_080CC4F0: .4byte gUnknown_03004B00
+_080CC4F4:
+ cmp r0, 0x2
+ beq _080CC508
+ cmp r0, 0x3
+ beq _080CC534
+ b _080CC56C
+_080CC4FE:
+ ldrh r0, [r5]
+ b _080CC518
+_080CC502:
+ ldrh r0, [r5]
+ strh r0, [r4, 0x22]
+ b _080CC54E
+_080CC508:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5]
+ adds r0, r5
+_080CC518:
+ strh r0, [r4, 0x22]
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080CC56C
+_080CC534:
+ ldr r0, _080CC578 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7]
+ adds r0, r7
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+_080CC54E:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080CC56C:
+ ldr r0, _080CC57C @ =sub_80CC580
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC578: .4byte gUnknown_0202F7C9
+_080CC57C: .4byte sub_80CC580
+ thumb_func_end sub_80CC474
+
+ thumb_func_start sub_80CC580
+sub_80CC580: @ 80CC580
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x3C
+ ldrsh r3, [r4, r0]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ ldr r1, _080CC5D4 @ =gSineTable
+ movs r5, 0x2E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ muls r0, r3
+ strh r0, [r4, 0x24]
+ movs r5, 0x34
+ ldrsh r0, [r4, r5]
+ muls r0, r3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CC5D8
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r5, 0x20
+ ldrsh r1, [r4, r5]
+ adds r0, r1
+ cmp r0, 0xF7
+ ble _080CC5F0
+ b _080CC5EA
+ .align 2, 0
+_080CC5D4: .4byte gSineTable
+_080CC5D8:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _080CC5F0
+_080CC5EA:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CC5F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC580
+
+ thumb_func_start sub_80CC5F8
+sub_80CC5F8: @ 80CC5F8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080CC618 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CC61C
+ cmp r0, 0x1
+ beq _080CC650
+ b _080CC6AA
+ .align 2, 0
+_080CC618: .4byte gTasks
+_080CC61C:
+ ldr r0, _080CC648 @ =0x0000274f
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r4, r2, 0
+ adds r0, r4
+ strh r0, [r5, 0x18]
+ ldr r0, _080CC64C @ =0x000027b0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080CC6AA
+ .align 2, 0
+_080CC648: .4byte 0x0000274f
+_080CC64C: .4byte 0x000027b0
+_080CC650:
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080CC6AA
+ strh r7, [r5, 0x1A]
+ ldrh r0, [r5, 0x18]
+ ldrb r2, [r5, 0x1C]
+ ldr r4, _080CC6C4 @ =gUnknown_083D6984
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x20]
+ ldrb r2, [r5, 0x1C]
+ movs r3, 0x1E
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _080CC6AA
+ strh r7, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x1
+ strh r0, [r5, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bne _080CC6AA
+ strh r7, [r5, 0x1E]
+_080CC6AA:
+ ldr r0, _080CC6C8 @ =gUnknown_03004B00
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080CC6BE
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080CC6BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC6C4: .4byte gUnknown_083D6984
+_080CC6C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC5F8
+
+ thumb_func_start sub_80CC6CC
+sub_80CC6CC: @ 80CC6CC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _080CC6E4 @ =gUnknown_03004B00
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CC6E8
+ adds r0, r6, 0
+ bl move_anim_8072740
+ b _080CC7C2
+ .align 2, 0
+_080CC6E4: .4byte gUnknown_03004B00
+_080CC6E8:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CC6F8
+ ldr r4, _080CC6F4 @ =gUnknown_0202F7C8
+ b _080CC6FA
+ .align 2, 0
+_080CC6F4: .4byte gUnknown_0202F7C8
+_080CC6F8:
+ ldr r4, _080CC734 @ =gUnknown_0202F7C9
+_080CC6FA:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CC738 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x8]
+ strh r1, [r6, 0x2E]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080CC73C
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x20]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x38]
+ strh r2, [r6, 0x3A]
+ b _080CC74C
+ .align 2, 0
+_080CC734: .4byte gUnknown_0202F7C9
+_080CC738: .4byte gUnknown_03004B00
+_080CC73C:
+ strh r5, [r6, 0x20]
+ strh r2, [r6, 0x22]
+ ldrh r0, [r7, 0x4]
+ adds r0, r5
+ strh r0, [r6, 0x38]
+ ldrh r0, [r7, 0x6]
+ adds r0, r2
+ strh r0, [r6, 0x3A]
+_080CC74C:
+ ldrh r4, [r6, 0x20]
+ lsls r0, r4, 4
+ strh r0, [r6, 0x30]
+ ldrh r5, [r6, 0x22]
+ lsls r0, r5, 4
+ strh r0, [r6, 0x32]
+ movs r1, 0x38
+ ldrsh r0, [r6, r1]
+ movs r2, 0x20
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x34]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x22
+ ldrsh r1, [r6, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r3, 0x8
+ ldrsh r1, [r7, r3]
+ bl __divsi3
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x38]
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x3A]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC7AE
+ ldr r1, _080CC7CC @ =0xffff8000
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CC7AE:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080CC7D0 @ =sub_80CC7D4
+ str r0, [r6, 0x1C]
+_080CC7C2:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC7CC: .4byte 0xffff8000
+_080CC7D0: .4byte sub_80CC7D4
+ thumb_func_end sub_80CC6CC
+
+ thumb_func_start sub_80CC7D4
+sub_80CC7D4: @ 80CC7D4
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080CC804
+ ldrh r0, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r0, r4
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r4, [r2, 0x32]
+ adds r1, r4
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x2E]
+ b _080CC80A
+_080CC804:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080CC80A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC7D4
+
+ thumb_func_start sub_80CC810
+sub_80CC810: @ 80CC810
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CC826
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CC826:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CC810
+
+ thumb_func_start sub_80CC82C
+sub_80CC82C: @ 80CC82C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CC84C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CC854
+ ldr r2, _080CC850 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ b _080CC860
+ .align 2, 0
+_080CC84C: .4byte gUnknown_0202F7C8
+_080CC850: .4byte gUnknown_03004B00
+_080CC854:
+ ldr r0, _080CC878 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CC860:
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CC87C @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080CC880 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC878: .4byte gUnknown_03004B00
+_080CC87C: .4byte sub_8078600
+_080CC880: .4byte move_anim_8072740
+ thumb_func_end sub_80CC82C
+
+ thumb_func_start sub_80CC884
+sub_80CC884: @ 80CC884
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CC8BC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC89E
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CC89E:
+ ldr r0, _080CC8C0 @ =sub_80CC810
+ str r0, [r5, 0x1C]
+ ldr r4, _080CC8C4 @ =gUnknown_03004B00
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC8BC: .4byte gUnknown_0202F7C8
+_080CC8C0: .4byte sub_80CC810
+_080CC8C4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80CC884
+
+ thumb_func_start sub_80CC8C8
+sub_80CC8C8: @ 80CC8C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CC908 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080CC90C @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CC910 @ =sub_8078504
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC908: .4byte gUnknown_03004B00
+_080CC90C: .4byte move_anim_8074EE0
+_080CC910: .4byte sub_8078504
+ thumb_func_end sub_80CC8C8
+
+ thumb_func_start sub_80CC914
+sub_80CC914: @ 80CC914
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CC964 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CC948
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080CC948:
+ ldr r0, _080CC968 @ =sub_80CCB00
+ str r0, [r5, 0x1C]
+ ldr r0, _080CC96C @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CC970
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _080CC984
+ .align 2, 0
+_080CC964: .4byte gUnknown_0202F7C9
+_080CC968: .4byte sub_80CCB00
+_080CC96C: .4byte gUnknown_03004B00
+_080CC970:
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CC984:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldr r1, _080CC9B8 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x30]
+ adds r1, r0, r2
+ strh r1, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CC9B2
+ negs r0, r1
+ strh r0, [r5, 0x30]
+_080CC9B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CC9B8: .4byte 0xfffffc00
+ thumb_func_end sub_80CC914
+
+ thumb_func_start sub_80CC9BC
+sub_80CC9BC: @ 80CC9BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _080CC9D8 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CC9DC
+ cmp r0, 0x1
+ ble _080CCA58
+ cmp r0, 0x2
+ beq _080CC9FC
+ b _080CCA58
+ .align 2, 0
+_080CC9D8: .4byte gUnknown_03004B00
+_080CC9DC:
+ ldr r5, _080CC9F8 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ eors r4, r0
+ adds r0, r4, 0
+ b _080CCA68
+ .align 2, 0
+_080CC9F8: .4byte gUnknown_0202F7C9
+_080CC9FC:
+ ldr r5, _080CCA54 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ movs r2, 0x2
+ mov r8, r2
+ mov r1, r8
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCA72
+ ldrb r0, [r5]
+ mov r2, r8
+ eors r0, r2
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ lsrs r7, r0, 1
+ ldrb r0, [r5]
+ mov r1, r8
+ eors r0, r1
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ lsrs r4, r0, 1
+ b _080CCA72
+ .align 2, 0
+_080CCA54: .4byte gUnknown_0202F7C9
+_080CCA58:
+ ldr r4, _080CCAA4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+_080CCA68:
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CCA72:
+ strh r7, [r6, 0x20]
+ strh r4, [r6, 0x22]
+ ldr r0, _080CCAA4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CCA8A
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x8
+ strh r0, [r6, 0x22]
+_080CCA8A:
+ ldr r0, _080CCAA8 @ =sub_80CCB00
+ str r0, [r6, 0x1C]
+ ldr r0, _080CCAAC @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080CCAB0
+ ldrh r0, [r3]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ b _080CCAC4
+ .align 2, 0
+_080CCAA4: .4byte gUnknown_0202F7C9
+_080CCAA8: .4byte sub_80CCB00
+_080CCAAC: .4byte gUnknown_03004B00
+_080CCAB0:
+ ldrh r0, [r6, 0x20]
+ ldrh r1, [r3]
+ subs r0, r1
+ strh r0, [r6, 0x20]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080CCAC4:
+ ldrh r0, [r3, 0x2]
+ ldrh r2, [r6, 0x22]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldr r1, _080CCAFC @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r6, 0x30]
+ adds r1, r0, r2
+ strh r1, [r6, 0x30]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r2, [r6, 0x32]
+ adds r0, r2
+ strh r0, [r6, 0x32]
+ ldrh r0, [r3, 0x4]
+ strh r0, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CCAF2
+ negs r0, r1
+ strh r0, [r6, 0x30]
+_080CCAF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCAFC: .4byte 0xfffffc00
+ thumb_func_end sub_80CC9BC
+
+ thumb_func_start sub_80CCB00
+sub_80CCB00: @ 80CCB00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CCB22
+ adds r0, r1, 0
+ adds r0, 0x18
+ b _080CCB26
+_080CCB22:
+ adds r0, r1, 0
+ subs r0, 0x18
+_080CCB26:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x18
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080CCB5C
+ ldr r1, _080CCB64 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CCB68 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+_080CCB5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCB64: .4byte move_anim_8072740
+_080CCB68: .4byte sub_80782D8
+ thumb_func_end sub_80CCB00
+
+ thumb_func_start unref_sub_80CCB6C
+unref_sub_80CCB6C: @ 80CCB6C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ ble _080CCC10
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCBC8
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r4, _080CCBC4 @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ adds r1, r2, 0
+ ands r1, r3
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ b _080CCBFE
+ .align 2, 0
+_080CCBC4: .4byte gSprites
+_080CCBC8:
+ adds r1, r5, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r3, _080CCC0C @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_080CCBFE:
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ b _080CCC14
+ .align 2, 0
+_080CCC0C: .4byte gSprites
+_080CCC10:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x32]
+_080CCC14:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xA
+ bne _080CCC44
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080CCC4C @ =gSprites
+ adds r0, r4
+ bl DestroySprite
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080CCC44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCC4C: .4byte gSprites
+ thumb_func_end unref_sub_80CCB6C
+
+ thumb_func_start sub_80CCC50
+sub_80CCC50: @ 80CCC50
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080CCC70 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCC74 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCC78
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080CCC7E
+ .align 2, 0
+_080CCC70: .4byte gUnknown_03004B00
+_080CCC74: .4byte gUnknown_0202F7C8
+_080CCC78:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080CCC7E:
+ strh r0, [r5, 0x20]
+ ldr r4, _080CCCAC @ =gUnknown_03004B00
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080CCCB0 @ =sub_80CCCB4
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCCAC: .4byte gUnknown_03004B00
+_080CCCB0: .4byte sub_80CCCB4
+ thumb_func_end sub_80CCC50
+
+ thumb_func_start sub_80CCCB4
+sub_80CCCB4: @ 80CCCB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7F
+ bgt _080CCCE0
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ b _080CCCE6
+_080CCCE0:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0xE
+_080CCCE6:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x82
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080CCD1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CCD1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CCCB4
+
+ thumb_func_start sub_80CCD24
+sub_80CCD24: @ 80CCD24
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD3A
+ ldr r1, _080CCD98 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x8
+ strh r0, [r1, 0x2]
+_080CCD3A:
+ ldr r6, _080CCD9C @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080CCD98 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCD78
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CCDA0
+_080CCD78:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ b _080CCDB8
+ .align 2, 0
+_080CCD98: .4byte gUnknown_03004B00
+_080CCD9C: .4byte gUnknown_0202F7C8
+_080CCDA0:
+ ldrb r0, [r6]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080CCDB8:
+ ldr r0, _080CCDF8 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CCDFC @ =0x00002828
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3
+ strh r0, [r5, 0x32]
+ movs r2, 0x10
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldr r1, _080CCE00 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r3, _080CCE04 @ =REG_BLDALPHA
+ ldrh r1, [r5, 0x3C]
+ lsls r0, r1, 8
+ subs r2, r1
+ orrs r0, r2
+ strh r0, [r3]
+ ldr r0, _080CCE08 @ =sub_80CCE0C
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCDF8: .4byte gUnknown_03004B00
+_080CCDFC: .4byte 0x00002828
+_080CCE00: .4byte REG_BLDCNT
+_080CCE04: .4byte REG_BLDALPHA
+_080CCE08: .4byte sub_80CCE0C
+ thumb_func_end sub_80CCD24
+
+ thumb_func_start sub_80CCE0C
+sub_80CCE0C: @ 80CCE0C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x60
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE6A
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080CCEB0 @ =gPlttBufferFaded
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r2, 0
+ adds r6, r1, 0
+ adds r3, r6, 0
+_080CCE44:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ adds r2, 0x1
+ adds r0, r2
+ lsls r1, r0, 1
+ adds r1, r3
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ cmp r2, 0x5
+ ble _080CCE44
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_080CCE6A:
+ ldrh r2, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ ble _080CCE9E
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _080CCEB8
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCE9E
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ subs r2, 0x1
+ strh r2, [r4, 0x3C]
+ ldr r3, _080CCEB4 @ =REG_BLDALPHA
+ lsls r1, r2, 8
+ movs r0, 0x10
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+_080CCE9E:
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCEB8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CCEF4
+ .align 2, 0
+_080CCEB0: .4byte gPlttBufferFaded
+_080CCEB4: .4byte REG_BLDALPHA
+_080CCEB8:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CCEF4
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r1, 0x1
+ strh r1, [r4, 0x3C]
+ ldr r3, _080CCEFC @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CCEF4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CCF00 @ =sub_807861C
+ str r0, [r4, 0x1C]
+_080CCEF4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCEFC: .4byte REG_BLDALPHA
+_080CCF00: .4byte sub_807861C
+ thumb_func_end sub_80CCE0C
+
+ thumb_func_start sub_80CCF04
+sub_80CCF04: @ 80CCF04
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CCF5C @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CCF60 @ =0x0000ffe8
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ strh r5, [r4, 0x3A]
+ movs r0, 0x10
+ strh r0, [r4, 0x3C]
+ ldr r1, _080CCF64 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080CCF68 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080CCF6C @ =sub_80CCF70
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CCF5C: .4byte gUnknown_0202F7C9
+_080CCF60: .4byte 0x0000ffe8
+_080CCF64: .4byte REG_BLDCNT
+_080CCF68: .4byte REG_BLDALPHA
+_080CCF6C: .4byte sub_80CCF70
+ thumb_func_end sub_80CCF04
+
+ thumb_func_start sub_80CCF70
+sub_80CCF70: @ 80CCF70
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CCF7E
+ b _080CD0C0
+_080CCF7E:
+ lsls r0, 2
+ ldr r1, _080CCF88 @ =_080CCF8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CCF88: .4byte _080CCF8C
+ .align 2, 0
+_080CCF8C:
+ .4byte _080CCFA0
+ .4byte _080CD004
+ .4byte _080CD020
+ .4byte _080CD09C
+ .4byte _080CD0B0
+_080CCFA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CCFAE
+ b _080CD0C0
+_080CCFAE:
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CCFD0
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CCFDE
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CCFDE
+_080CCFD0:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CCFDE
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CCFDE:
+ ldr r2, _080CD000 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r4, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD0C0
+ strh r0, [r4, 0x30]
+ b _080CD0A8
+ .align 2, 0
+_080CD000: .4byte REG_BLDALPHA
+_080CD004:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD0C0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080CD0A8
+_080CD020:
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x4
+ bl sub_80CD0CC
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD042
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080CD042:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080CD0C0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080CD068
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080CD076
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x3A]
+ b _080CD076
+_080CD068:
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080CD076
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x3C]
+_080CD076:
+ ldr r0, _080CD098 @ =REG_BLDALPHA
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 8
+ ldrh r2, [r4, 0x3A]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080CD0C0
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080CD0C0
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ b _080CD0A8
+ .align 2, 0
+_080CD098: .4byte REG_BLDALPHA
+_080CD09C:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080CD0A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CD0C0
+_080CD0B0:
+ ldr r0, _080CD0C8 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD0C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD0C8: .4byte REG_BLDCNT
+ thumb_func_end sub_80CCF70
+
+ thumb_func_start sub_80CD0CC
+sub_80CD0CC: @ 80CD0CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xB
+ bgt _080CD0DE
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0DE:
+ ldrh r5, [r4, 0x34]
+ adds r0, r5, 0
+ subs r0, 0x12
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ cmp r0, 0x17
+ bhi _080CD0F4
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD0F4:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _080CD102
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x2
+ strh r0, [r4, 0x36]
+_080CD102:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD128
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080CD128:
+ adds r0, r5, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _080CD138
+ movs r0, 0
+ strh r0, [r4, 0x34]
+_080CD138:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD0CC
+
+ thumb_func_start sub_80CD140
+sub_80CD140: @ 80CD140
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CD184 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD154
+ adds r0, r4, 0
+ bl sub_8078650
+_080CD154:
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD188 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD18C @ =sub_8078394
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD184: .4byte gUnknown_03004B00
+_080CD188: .4byte move_anim_8072740
+_080CD18C: .4byte sub_8078394
+ thumb_func_end sub_80CD140
+
+ thumb_func_start sub_80CD190
+sub_80CD190: @ 80CD190
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CD1A4 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CD1AC
+ ldr r0, _080CD1A8 @ =gUnknown_0202F7C8
+ b _080CD1AE
+ .align 2, 0
+_080CD1A4: .4byte gUnknown_03004B00
+_080CD1A8: .4byte gUnknown_0202F7C8
+_080CD1AC:
+ ldr r0, _080CD1F0 @ =gUnknown_0202F7C9
+_080CD1AE:
+ ldrb r6, [r0]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ movs r1, 0x2
+ adds r0, r6, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD1F8
+ ldr r4, _080CD1F4 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0xC]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ adds r0, r6, 0
+ bl sub_807A3FC
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ b _080CD248
+ .align 2, 0
+_080CD1F0: .4byte gUnknown_0202F7C9
+_080CD1F4: .4byte gUnknown_03004B00
+_080CD1F8:
+ ldr r4, _080CD218 @ =gUnknown_03004B00
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CD21C
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ b _080CD22E
+ .align 2, 0
+_080CD218: .4byte gUnknown_03004B00
+_080CD21C:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+_080CD22E:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldr r0, _080CD268 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r5, 0
+ bl sub_807867C
+_080CD248:
+ ldr r1, _080CD268 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ ldr r1, _080CD26C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD270 @ =sub_8078394
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD268: .4byte gUnknown_03004B00
+_080CD26C: .4byte move_anim_8072740
+_080CD270: .4byte sub_8078394
+ thumb_func_end sub_80CD190
+
+ thumb_func_start sub_80CD274
+sub_80CD274: @ 80CD274
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD2A0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD2A8
+ ldr r0, _080CD2A4 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _080CD2C2
+ .align 2, 0
+_080CD2A0: .4byte gUnknown_0202F7C8
+_080CD2A4: .4byte gUnknown_03004B00
+_080CD2A8:
+ ldr r2, _080CD2CC @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080CD2C2:
+ ldr r0, _080CD2D0 @ =sub_80CD2D4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD2CC: .4byte gUnknown_03004B00
+_080CD2D0: .4byte sub_80CD2D4
+ thumb_func_end sub_80CD274
+
+ thumb_func_start sub_80CD2D4
+sub_80CD2D4: @ 80CD2D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CD30C
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1E
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r0, 18
+ asrs r0, 16
+ movs r1, 0x3
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CD30C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CD320
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD320:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD2D4
+
+ thumb_func_start sub_80CD328
+sub_80CD328: @ 80CD328
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080CD358 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CD360
+ ldr r1, _080CD35C @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080CD37E
+ .align 2, 0
+_080CD358: .4byte gUnknown_0202F7C8
+_080CD35C: .4byte gUnknown_03004B00
+_080CD360:
+ ldr r2, _080CD388 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldr r0, _080CD38C @ =0x0000ffff
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080CD37E:
+ ldr r0, _080CD390 @ =sub_80CD394
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD388: .4byte gUnknown_03004B00
+_080CD38C: .4byte 0x0000ffff
+_080CD390: .4byte sub_80CD394
+ thumb_func_end sub_80CD328
+
+ thumb_func_start sub_80CD394
+sub_80CD394: @ 80CD394
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080CD3D8
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CD3D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD394
+
+ thumb_func_start sub_80CD3E0
+sub_80CD3E0: @ 80CD3E0
+ push {lr}
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x22]
+ movs r1, 0x14
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD400 @ =sub_80782D8
+ str r1, [r0, 0x1C]
+ ldr r1, _080CD404 @ =sub_80CD408
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD400: .4byte sub_80782D8
+_080CD404: .4byte sub_80CD408
+ thumb_func_end sub_80CD3E0
+
+ thumb_func_start sub_80CD408
+sub_80CD408: @ 80CD408
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r6, [r5, 0x38]
+ movs r1, 0x1
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080CD41E
+ cmp r0, 0x1
+ beq _080CD438
+ b _080CD49E
+_080CD41E:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080CD430 @ =sub_80782D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD434 @ =sub_80CD408
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD49E
+ .align 2, 0
+_080CD430: .4byte sub_80782D8
+_080CD434: .4byte sub_80CD408
+_080CD438:
+ ldrh r3, [r5, 0x24]
+ ldrh r0, [r5, 0x20]
+ adds r3, r0
+ movs r0, 0
+ strh r3, [r5, 0x20]
+ ldrh r4, [r5, 0x26]
+ ldrh r1, [r5, 0x22]
+ adds r4, r1
+ strh r4, [r5, 0x22]
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r2, _080CD4AC @ =gUnknown_083D6DDC
+ lsls r0, r6, 16
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r3, r1
+ strh r3, [r5, 0x32]
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r0
+ strh r4, [r5, 0x36]
+ ldr r0, _080CD4B0 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD4B4 @ =sub_80CD4B8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xD2
+ bl PlaySE12WithPanning
+_080CD49E:
+ ldrh r0, [r5, 0x38]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x38]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4AC: .4byte gUnknown_083D6DDC
+_080CD4B0: .4byte sub_8078B34
+_080CD4B4: .4byte sub_80CD4B8
+ thumb_func_end sub_80CD408
+
+ thumb_func_start sub_80CD4B8
+sub_80CD4B8: @ 80CD4B8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _080CD4E0
+ movs r0, 0xA
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD4D8 @ =sub_80782D8
+ str r0, [r2, 0x1C]
+ ldr r1, _080CD4DC @ =sub_80CD4EC
+ adds r0, r2, 0
+ bl oamt_set_x3A_32
+ b _080CD4E4
+ .align 2, 0
+_080CD4D8: .4byte sub_80782D8
+_080CD4DC: .4byte sub_80CD4EC
+_080CD4E0:
+ ldr r0, _080CD4E8 @ =sub_80CD408
+ str r0, [r2, 0x1C]
+_080CD4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD4E8: .4byte sub_80CD408
+ thumb_func_end sub_80CD4B8
+
+ thumb_func_start sub_80CD4EC
+sub_80CD4EC: @ 80CD4EC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x6]
+ cmp r1, 0
+ bne _080CD514
+ movs r0, 0x3
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldr r0, _080CD50C @ =sub_80782D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD510 @ =sub_80CD5A8
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ b _080CD594
+ .align 2, 0
+_080CD50C: .4byte sub_80782D8
+_080CD510: .4byte sub_80CD5A8
+_080CD514:
+ ldrh r0, [r5, 0x6]
+ cmp r0, 0x2
+ beq _080CD534
+ cmp r0, 0x2
+ bgt _080CD524
+ cmp r0, 0x1
+ beq _080CD52A
+ b _080CD548
+_080CD524:
+ cmp r0, 0x3
+ beq _080CD53C
+ b _080CD548
+_080CD52A:
+ ldr r6, _080CD530 @ =0x0000fff8
+ adds r7, r6, 0
+ b _080CD54C
+ .align 2, 0
+_080CD530: .4byte 0x0000fff8
+_080CD534:
+ ldr r7, _080CD538 @ =0x0000fff8
+ b _080CD54A
+ .align 2, 0
+_080CD538: .4byte 0x0000fff8
+_080CD53C:
+ movs r7, 0x8
+ ldr r6, _080CD544 @ =0x0000fff8
+ b _080CD54C
+ .align 2, 0
+_080CD544: .4byte 0x0000fff8
+_080CD548:
+ movs r7, 0x8
+_080CD54A:
+ movs r6, 0x8
+_080CD54C:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CD59C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080CD5A0 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080CD5A4 @ =sub_80CD654
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CD594:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD59C: .4byte gUnknown_0202F7C9
+_080CD5A0: .4byte sub_8078B34
+_080CD5A4: .4byte sub_80CD654
+ thumb_func_end sub_80CD4EC
+
+ thumb_func_start sub_80CD5A8
+sub_80CD5A8: @ 80CD5A8
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CD5C8
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CD5D8
+ movs r0, 0x10
+ b _080CD5D6
+_080CD5C8:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x3
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080CD5D8
+ movs r0, 0
+_080CD5D6:
+ strh r0, [r4, 0x30]
+_080CD5D8:
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80791A8
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080CD634 @ =0x00007fff
+ bl BlendPalettes
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _080CD640
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ lsls r0, r1, 5
+ ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210
+ adds r0, r2
+ lsls r1, 4
+ ldr r3, _080CD63C @ =0x00000101
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ b _080CD648
+ .align 2, 0
+_080CD634: .4byte 0x00007fff
+_080CD638: .4byte gPlttBufferUnfaded + 0x210
+_080CD63C: .4byte 0x00000101
+_080CD640:
+ cmp r0, 0
+ bne _080CD648
+ ldr r0, _080CD650 @ =sub_80CD654
+ str r0, [r4, 0x1C]
+_080CD648:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD650: .4byte sub_80CD654
+ thumb_func_end sub_80CD5A8
+
+ thumb_func_start sub_80CD654
+sub_80CD654: @ 80CD654
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080CD670 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CD674 @ =0x0000ffff
+ cmp r1, r0
+ bne _080CD66C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CD678 @ =sub_80CD67C
+ str r0, [r2, 0x1C]
+_080CD66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD670: .4byte gUnknown_03004B00
+_080CD674: .4byte 0x0000ffff
+_080CD678: .4byte sub_80CD67C
+ thumb_func_end sub_80CD654
+
+ thumb_func_start sub_80CD67C
+sub_80CD67C: @ 80CD67C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CD6B0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+_080CD6B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _080CD6C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CD6C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD67C
+
+ thumb_func_start sub_80CD6CC
+sub_80CD6CC: @ 80CD6CC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080CD6EC @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CD6F0
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ b _080CD742
+ .align 2, 0
+_080CD6EC: .4byte gUnknown_03004B00
+_080CD6F0:
+ cmp r0, 0x2
+ bne _080CD70C
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x20
+ b _080CD73E
+_080CD70C:
+ cmp r0, 0x3
+ bne _080CD728
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ subs r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ b _080CD73E
+_080CD728:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x18
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x18
+ strh r0, [r3, 0x22]
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+_080CD73E:
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+_080CD742:
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _080CD768 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080CD76C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldr r1, _080CD770 @ =sub_80CD3E0
+ str r1, [r3, 0x1C]
+ adds r0, r3, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD768: .4byte 0x000003ff
+_080CD76C: .4byte 0xfffffc00
+_080CD770: .4byte sub_80CD3E0
+ thumb_func_end sub_80CD6CC
+
+ thumb_func_start sub_80CD774
+sub_80CD774: @ 80CD774
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldr r0, _080CD79C @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080CD7B0
+ cmp r0, 0x1
+ bgt _080CD7A0
+ cmp r0, 0
+ beq _080CD7A6
+ b _080CD7C0
+ .align 2, 0
+_080CD79C: .4byte gUnknown_03004B00
+_080CD7A0:
+ cmp r0, 0x2
+ beq _080CD7B8
+ b _080CD7C0
+_080CD7A6:
+ ldr r0, _080CD7AC @ =sub_80CD7CC
+ b _080CD7C2
+ .align 2, 0
+_080CD7AC: .4byte sub_80CD7CC
+_080CD7B0:
+ ldr r0, _080CD7B4 @ =sub_80CD8A8
+ b _080CD7C2
+ .align 2, 0
+_080CD7B4: .4byte sub_80CD8A8
+_080CD7B8:
+ ldr r0, _080CD7BC @ =sub_80CD8F8
+ b _080CD7C2
+ .align 2, 0
+_080CD7BC: .4byte sub_80CD8F8
+_080CD7C0:
+ ldr r0, _080CD7C8 @ =sub_80CD9B8
+_080CD7C2:
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD7C8: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD774
+
+ thumb_func_start sub_80CD7CC
+sub_80CD7CC: @ 80CD7CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x6
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD80C @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD7EA
+ movs r1, 0x2
+_080CD7EA:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD810 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD814 @ =sub_80CD81C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD818 @ =sub_8078458
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD80C: .4byte gUnknown_0202F7C8
+_080CD810: .4byte gUnknown_02024BE0
+_080CD814: .4byte sub_80CD81C
+_080CD818: .4byte sub_8078458
+ thumb_func_end sub_80CD7CC
+
+ thumb_func_start sub_80CD81C
+sub_80CD81C: @ 80CD81C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ bne _080CD858
+ ldr r1, _080CD898 @ =gUnknown_02024BE0
+ ldr r4, _080CD89C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ movs r1, 0
+ bl sub_8078E70
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldr r2, _080CD8A0 @ =0xfffffd00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CD854
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0, 0
+_080CD854:
+ strh r1, [r5, 0x36]
+ strh r6, [r5, 0x38]
+_080CD858:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CD892
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CD8A4 @ =sub_80CD9B8
+ str r0, [r5, 0x1C]
+_080CD892:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD898: .4byte gUnknown_02024BE0
+_080CD89C: .4byte gUnknown_0202F7C8
+_080CD8A0: .4byte 0xfffffd00
+_080CD8A4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD81C
+
+ thumb_func_start sub_80CD8A8
+sub_80CD8A8: @ 80CD8A8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ ldr r5, _080CD8E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080CD8C6
+ movs r0, 0x3
+ negs r0, r0
+ adds r1, r0, 0
+_080CD8C6:
+ strh r1, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CD8EC @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ ldr r1, _080CD8F0 @ =sub_80CD9B8
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CD8F4 @ =sub_8078458
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD8E8: .4byte gUnknown_0202F7C8
+_080CD8EC: .4byte gUnknown_02024BE0
+_080CD8F0: .4byte sub_80CD9B8
+_080CD8F4: .4byte sub_8078458
+ thumb_func_end sub_80CD8A8
+
+ thumb_func_start sub_80CD8F8
+sub_80CD8F8: @ 80CD8F8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CD912
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080CD918 @ =sub_80CD91C
+ str r0, [r1, 0x1C]
+_080CD912:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD918: .4byte sub_80CD91C
+ thumb_func_end sub_80CD8F8
+
+ thumb_func_start sub_80CD91C
+sub_80CD91C: @ 80CD91C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080CD96C
+ ldr r1, _080CD958 @ =gUnknown_02024BE0
+ ldr r4, _080CD95C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CD960
+ movs r0, 0xFC
+ lsls r0, 8
+ strh r0, [r5, 0x36]
+ movs r0, 0xC0
+ lsls r0, 4
+ b _080CD96A
+ .align 2, 0
+_080CD958: .4byte gUnknown_02024BE0
+_080CD95C: .4byte gUnknown_0202F7C8
+_080CD960:
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r5, 0x36]
+ movs r0, 0xF4
+ lsls r0, 8
+_080CD96A:
+ strh r0, [r5, 0x38]
+_080CD96C:
+ ldrh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x38]
+ adds r0, r1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r5, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080CD9AC
+ ldrh r0, [r5, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ ldr r0, _080CD9B4 @ =sub_80CD9B8
+ str r0, [r5, 0x1C]
+_080CD9AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CD9B4: .4byte sub_80CD9B8
+ thumb_func_end sub_80CD91C
+
+ thumb_func_start sub_80CD9B8
+sub_80CD9B8: @ 80CD9B8
+ push {lr}
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9B8
+
+ thumb_func_start sub_80CD9C4
+sub_80CD9C4: @ 80CD9C4
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _080CD9D0 @ =sub_80CD9D4
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CD9D0: .4byte sub_80CD9D4
+ thumb_func_end sub_80CD9C4
+
+ thumb_func_start sub_80CD9D4
+sub_80CD9D4: @ 80CD9D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080CDA2E
+ cmp r5, 0x1
+ bgt _080CD9EA
+ cmp r5, 0
+ beq _080CD9F0
+ b _080CDAC2
+_080CD9EA:
+ cmp r5, 0x2
+ beq _080CDA80
+ b _080CDAC2
+_080CD9F0:
+ strh r5, [r4, 0x30]
+ ldr r1, _080CDA74 @ =gUnknown_02024BE0
+ ldr r2, _080CDA78 @ =gUnknown_0202F7C8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldr r2, _080CDA7C @ =0xfffffe00
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _080CDA18
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r0, 0
+_080CDA18:
+ strh r1, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080CDA2E:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080CDAC2
+ .align 2, 0
+_080CDA74: .4byte gUnknown_02024BE0
+_080CDA78: .4byte gUnknown_0202F7C8
+_080CDA7C: .4byte 0xfffffe00
+_080CDA80:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x38]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CDAC2
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CDAC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CD9D4
+
+ thumb_func_start sub_80CDAC8
+sub_80CDAC8: @ 80CDAC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080CDB0C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r1, _080CDB10 @ =gUnknown_02024BE0
+ ldr r2, _080CDB14 @ =gUnknown_0202F7C8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ ldr r0, _080CDB18 @ =gUnknown_03004B00
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ beq _080CDB1C
+ cmp r1, 0x1
+ beq _080CDB38
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080CDB56
+ .align 2, 0
+_080CDB0C: .4byte gTasks
+_080CDB10: .4byte gUnknown_02024BE0
+_080CDB14: .4byte gUnknown_0202F7C8
+_080CDB18: .4byte gUnknown_03004B00
+_080CDB1C:
+ strh r1, [r5, 0xC]
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ movs r0, 0x3
+ strh r0, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB30
+ negs r0, r0
+ strh r0, [r5, 0x12]
+_080CDB30:
+ ldr r0, _080CDB34 @ =sub_80CDB60
+ b _080CDB54
+ .align 2, 0
+_080CDB34: .4byte sub_80CDB60
+_080CDB38:
+ movs r0, 0x8
+ strh r0, [r5, 0xE]
+ movs r0, 0xC0
+ lsls r0, 3
+ strh r0, [r5, 0x10]
+ movs r1, 0xC0
+ strh r1, [r5, 0x12]
+ cmp r2, 0
+ bne _080CDB52
+ negs r0, r0
+ strh r0, [r5, 0x10]
+ negs r0, r1
+ strh r0, [r5, 0x12]
+_080CDB52:
+ ldr r0, _080CDB5C @ =sub_80CDD20
+_080CDB54:
+ str r0, [r5]
+_080CDB56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDB5C: .4byte sub_80CDD20
+ thumb_func_end sub_80CDAC8
+
+ thumb_func_start sub_80CDB60
+sub_80CDB60: @ 80CDB60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CDB84 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080CDB7A
+ b _080CDD1A
+_080CDB7A:
+ lsls r0, 2
+ ldr r1, _080CDB88 @ =_080CDB8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CDB84: .4byte gTasks
+_080CDB88: .4byte _080CDB8C
+ .align 2, 0
+_080CDB8C:
+ .4byte _080CDBA0
+ .4byte _080CDBD2
+ .4byte _080CDC2C
+ .4byte _080CDCA4
+ .4byte _080CDCE8
+_080CDBA0:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _080CDBB0
+ ldrh r2, [r4, 0x12]
+ ldrh r3, [r4, 0x10]
+ adds r2, r3
+ b _080CDCF6
+_080CDBB0:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ strh r1, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC0
+ cmp r0, 0
+ bne _080CDBC6
+ movs r2, 0xC0
+ negs r2, r2
+ adds r1, r2, 0
+_080CDBC6:
+ strh r1, [r4, 0x12]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ b _080CDCDC
+_080CDBD2:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDBF8
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ b _080CDD08
+_080CDBF8:
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDC28 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDC1E
+ movs r1, 0x2
+_080CDC1E:
+ strh r1, [r4, 0x12]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDCDC
+ .align 2, 0
+_080CDC28: .4byte gSprites
+_080CDC2C:
+ ldrh r2, [r4, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC88
+ ldrh r1, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDC46
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD1A
+_080CDC46:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080CDC68
+ ldr r2, _080CDC64 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r4, 0x10]
+ adds r1, r2
+ b _080CDC7C
+ .align 2, 0
+_080CDC64: .4byte gSprites
+_080CDC68:
+ ldr r2, _080CDC84 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+_080CDC7C:
+ strh r1, [r0, 0x24]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+ b _080CDD08
+ .align 2, 0
+_080CDC84: .4byte gSprites
+_080CDC88:
+ ldr r2, _080CDCA0 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x24]
+ movs r0, 0xC
+ strh r0, [r4, 0xE]
+ b _080CDCDC
+ .align 2, 0
+_080CDCA0: .4byte gSprites
+_080CDCA4:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080CDCB4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+_080CDCB4:
+ movs r0, 0x3
+ strh r0, [r4, 0xE]
+ ldr r2, _080CDCE4 @ =gSprites
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ strh r0, [r4, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080CDCDA
+ movs r1, 0x8
+_080CDCDA:
+ strh r1, [r4, 0x12]
+_080CDCDC:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _080CDD1A
+ .align 2, 0
+_080CDCE4: .4byte gSprites
+_080CDCE8:
+ movs r3, 0xE
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080CDD14
+ ldrh r2, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r2, r0
+_080CDCF6:
+ strh r2, [r4, 0x10]
+ ldr r3, _080CDD10 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+_080CDD08:
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD1A
+ .align 2, 0
+_080CDD10: .4byte gSprites
+_080CDD14:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CDD1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDB60
+
+ thumb_func_start sub_80CDD20
+sub_80CDD20: @ 80CDD20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080CDD5C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080CDD60
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0x10]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080CDD6C
+ .align 2, 0
+_080CDD5C: .4byte gTasks
+_080CDD60:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080CDD6C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDD20
+
+ thumb_func_start sub_80CDD74
+sub_80CDD74: @ 80CDD74
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDD88 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDD90
+ ldr r4, _080CDD8C @ =gUnknown_0202F7C8
+ b _080CDD92
+ .align 2, 0
+_080CDD88: .4byte gUnknown_03004B00
+_080CDD8C: .4byte gUnknown_0202F7C8
+_080CDD90:
+ ldr r4, _080CDDD0 @ =gUnknown_0202F7C9
+_080CDD92:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldr r1, _080CDDD4 @ =sub_80CDEC0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDDD8 @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDDD0: .4byte gUnknown_0202F7C9
+_080CDDD4: .4byte sub_80CDEC0
+_080CDDD8: .4byte sub_8078600
+ thumb_func_end sub_80CDD74
+
+ thumb_func_start sub_80CDDDC
+sub_80CDDDC: @ 80CDDDC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE14 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE18 @ =0x0000ffd0
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _080CDE1C @ =sub_80CDE78
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDE20 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE14: .4byte gUnknown_0202F7C9
+_080CDE18: .4byte 0x0000ffd0
+_080CDE1C: .4byte sub_80CDE78
+_080CDE20: .4byte sub_8078600
+ thumb_func_end sub_80CDDDC
+
+ thumb_func_start sub_80CDE24
+sub_80CDE24: @ 80CDE24
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080CDE68 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080CDE6C @ =gUnknown_03004B00
+ ldr r2, _080CDE70 @ =0x0000ffd0
+ adds r0, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ ldr r0, _080CDE74 @ =sub_80CDEC0
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDE68: .4byte gUnknown_0202F7C9
+_080CDE6C: .4byte gUnknown_03004B00
+_080CDE70: .4byte 0x0000ffd0
+_080CDE74: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDE24
+
+ thumb_func_start sub_80CDE78
+sub_80CDE78: @ 80CDE78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDEA2
+ movs r0, 0xC
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldr r1, _080CDEA8 @ =sub_80CDEB0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CDEAC @ =sub_8078364
+ str r0, [r4, 0x1C]
+_080CDEA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDEA8: .4byte sub_80CDEB0
+_080CDEAC: .4byte sub_8078364
+ thumb_func_end sub_80CDE78
+
+ thumb_func_start sub_80CDEB0
+sub_80CDEB0: @ 80CDEB0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ ldr r1, _080CDEBC @ =sub_80CDEC0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CDEBC: .4byte sub_80CDEC0
+ thumb_func_end sub_80CDEB0
+
+ thumb_func_start sub_80CDEC0
+sub_80CDEC0: @ 80CDEC0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CDF08
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080CDF08
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080CDF08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDEC0
+
+ thumb_func_start sub_80CDF0C
+sub_80CDF0C: @ 80CDF0C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CDF20 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CDF28
+ ldr r4, _080CDF24 @ =gUnknown_0202F7C8
+ b _080CDF2A
+ .align 2, 0
+_080CDF20: .4byte gUnknown_03004B00
+_080CDF24: .4byte gUnknown_0202F7C8
+_080CDF28:
+ ldr r4, _080CDF64 @ =gUnknown_0202F7C9
+_080CDF2A:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CDF68 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x30]
+ ldr r0, _080CDF6C @ =sub_80CDF70
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDF64: .4byte gUnknown_0202F7C9
+_080CDF68: .4byte gUnknown_03004B00
+_080CDF6C: .4byte sub_80CDF70
+ thumb_func_end sub_80CDF0C
+
+ thumb_func_start sub_80CDF70
+sub_80CDF70: @ 80CDF70
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _080CDF90
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_080CDF90:
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r2, 0x2E]
+ subs r0, r1
+ strh r0, [r2, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CDFAC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CDFAC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CDF70
+
+ thumb_func_start sub_80CDFB0
+sub_80CDFB0: @ 80CDFB0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080CDFF8 @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ movs r0, 0x2
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ subs r0, 0x42
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _080CDFFC @ =sub_80CE000
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CDFF8: .4byte gUnknown_0202F7C8
+_080CDFFC: .4byte sub_80CE000
+ thumb_func_end sub_80CDFB0
+
+ thumb_func_start sub_80CE000
+sub_80CE000: @ 80CE000
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080CE06C
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE052
+ ldrh r1, [r4, 0x38]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC2
+ bl PlaySE12WithPanning
+_080CE052:
+ movs r1, 0
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE06C
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_080CE06C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ ble _080CE096
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080CE096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CE096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE000
+
+ thumb_func_start sub_80CE09C
+sub_80CE09C: @ 80CE09C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080CE0E6
+ ldr r4, _080CE0FC @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _080CE100 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x2]
+ adds r0, r5
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE0E0
+ ldrh r0, [r6, 0x22]
+ adds r0, 0xA
+ strh r0, [r6, 0x22]
+_080CE0E0:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ strh r0, [r6, 0x2E]
+_080CE0E6:
+ ldr r0, _080CE100 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080CE104 @ =0x0000ffff
+ cmp r1, r0
+ bne _080CE0F6
+ adds r0, r6, 0
+ bl move_anim_8072740
+_080CE0F6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE0FC: .4byte gUnknown_0202F7C8
+_080CE100: .4byte gUnknown_03004B00
+_080CE104: .4byte 0x0000ffff
+ thumb_func_end sub_80CE09C
+
+ thumb_func_start sub_80CE108
+sub_80CE108: @ 80CE108
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CE128 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080CE134
+ ldr r1, _080CE12C @ =gUnknown_03004B00
+ ldr r0, _080CE130 @ =0x0000ffff
+ strh r0, [r1, 0xE]
+ b _080CE16C
+ .align 2, 0
+_080CE128: .4byte gTasks
+_080CE12C: .4byte gUnknown_03004B00
+_080CE130: .4byte 0x0000ffff
+_080CE134:
+ cmp r0, 0x2
+ bne _080CE140
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080CE172
+_080CE140:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE172
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ ldr r3, _080CE178 @ =REG_BLDALPHA
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _080CE172
+_080CE16C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080CE172:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE178: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE108
+
+ thumb_func_start sub_80CE17C
+sub_80CE17C: @ 80CE17C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080CE1A4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE1A8 @ =sub_80CE1AC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE1A4: .4byte gUnknown_03004B00
+_080CE1A8: .4byte sub_80CE1AC
+ thumb_func_end sub_80CE17C
+
+ thumb_func_start sub_80CE1AC
+sub_80CE1AC: @ 80CE1AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080CE1C0
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080CE1FC
+_080CE1C0:
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldr r4, _080CE204 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080CE208 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080CE20C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080CE1FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE204: .4byte gUnknown_0202F7C8
+_080CE208: .4byte sub_8078B34
+_080CE20C: .4byte move_anim_8072740
+ thumb_func_end sub_80CE1AC
+
+ thumb_func_start sub_80CE210
+sub_80CE210: @ 80CE210
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080CE258 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080CE252
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _080CE25C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _080CE252
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE258: .4byte gTasks
+_080CE25C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80CE210
+
+ thumb_func_start unref_sub_80CE260
+unref_sub_80CE260: @ 80CE260
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _080CE2C8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080CE2BC
+ ldr r6, _080CE2CC @ =gUnknown_03004B00
+ ldr r5, _080CE2D0 @ =gUnknown_03004340
+_080CE274:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE290
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE290
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE290:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE2AE
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_080CE2AE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CE2C8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE274
+_080CE2BC:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE2C8: .4byte gUnknown_02024A68
+_080CE2CC: .4byte gUnknown_03004B00
+_080CE2D0: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80CE260
+
+ thumb_func_start unref_sub_80CE2D4
+unref_sub_80CE2D4: @ 80CE2D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _080CE2EE
+_080CE2DE:
+ ldr r0, _080CE304 @ =gUnknown_03004340
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080CE2EE:
+ ldr r0, _080CE308 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080CE2DE
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE304: .4byte gUnknown_03004340
+_080CE308: .4byte gUnknown_02024A68
+ thumb_func_end unref_sub_80CE2D4
+
+ thumb_func_start sub_80CE30C
+sub_80CE30C: @ 80CE30C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE322
+ movs r0, 0x30
+ strh r0, [r4, 0x20]
+ movs r0, 0x28
+ b _080CE32A
+_080CE322:
+ ldr r0, _080CE34C @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+_080CE32A:
+ strh r0, [r4, 0x22]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CE350 @ =sub_80CE354
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE34C: .4byte gUnknown_03004B00
+_080CE350: .4byte sub_80CE354
+ thumb_func_end sub_80CE30C
+
+ thumb_func_start sub_80CE354
+sub_80CE354: @ 80CE354
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE366
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE366:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE354
+
+ thumb_func_start sub_80CE36C
+sub_80CE36C: @ 80CE36C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CE3A4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080CE3A8 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ ldr r0, _080CE3AC @ =sub_80CE3B0
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE3A4: .4byte gUnknown_0202F7C8
+_080CE3A8: .4byte gUnknown_03004B00
+_080CE3AC: .4byte sub_80CE3B0
+ thumb_func_end sub_80CE36C
+
+ thumb_func_start sub_80CE3B0
+sub_80CE3B0: @ 80CE3B0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE3DA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r2, [r1, 0x32]
+ movs r3, 0x32
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x77
+ bgt _080CE3DA
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x32]
+_080CE3DA:
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080CE3E8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CE3E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE3B0
+
+ thumb_func_start sub_80CE3EC
+sub_80CE3EC: @ 80CE3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ mov r8, r0
+ ldr r0, _080CE4BC @ =0x0000ffff
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldr r0, _080CE4C0 @ =gTasks
+ mov r9, r0
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r6, r5, r0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0xA]
+ strh r4, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ strh r4, [r6, 0x10]
+ strh r4, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ movs r0, 0xD
+ strh r0, [r6, 0x16]
+ movs r0, 0xE
+ strh r0, [r6, 0x18]
+ movs r0, 0xF
+ strh r0, [r6, 0x1A]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ mov r10, r0
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+ movs r0, 0x8
+ add r9, r0
+ add r5, r9
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r5, 0x1E
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8079BF4
+ ldr r0, _080CE4C4 @ =0x000027d2
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0x80
+ lsls r4, 9
+ adds r1, r4, 0
+ lsls r1, r0
+ mov r0, r10
+ orrs r0, r1
+ mov r10, r0
+ ldr r0, _080CE4C8 @ =0x000027d3
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0
+ mov r1, r10
+ orrs r4, r1
+ ldr r0, _080CE4CC @ =0x00007fbb
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080CE4D0 @ =sub_80CE4D4
+ str r1, [r6]
+ adds r0, r7, 0
+ bl _call_via_r1
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE4BC: .4byte 0x0000ffff
+_080CE4C0: .4byte gTasks
+_080CE4C4: .4byte 0x000027d2
+_080CE4C8: .4byte 0x000027d3
+_080CE4CC: .4byte 0x00007fbb
+_080CE4D0: .4byte sub_80CE4D4
+ thumb_func_end sub_80CE3EC
+
+ thumb_func_start sub_80CE4D4
+sub_80CE4D4: @ 80CE4D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080CE4FC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080CE5C0
+ cmp r1, 0x1
+ bgt _080CE500
+ cmp r1, 0
+ beq _080CE50E
+ b _080CE65E
+ .align 2, 0
+_080CE4FC: .4byte gTasks
+_080CE500:
+ cmp r1, 0x2
+ bne _080CE506
+ b _080CE618
+_080CE506:
+ cmp r1, 0x3
+ bne _080CE50C
+ b _080CE64C
+_080CE50C:
+ b _080CE65E
+_080CE50E:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CE51C
+ b _080CE65E
+_080CE51C:
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080CE568
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x18]
+ ldrh r3, [r4, 0x12]
+ adds r2, r3
+ strh r2, [r4, 0x12]
+ ldrh r1, [r4, 0x1A]
+ ldrh r5, [r4, 0x14]
+ adds r1, r5
+ strh r1, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r2, 11
+ orrs r0, r2
+ lsrs r1, 6
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ b _080CE572
+_080CE568:
+ ldr r7, _080CE5B8 @ =0x00007fbb
+ mov r12, r7
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080CE572:
+ movs r2, 0x1
+ movs r3, 0
+ movs r1, 0
+_080CE578:
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ ands r0, r2
+ lsls r5, r2, 17
+ adds r6, r3, 0
+ adds r6, 0x10
+ adds r1, 0x1
+ mov r8, r1
+ cmp r0, 0
+ beq _080CE5A4
+ movs r1, 0x1
+ ldr r2, _080CE5BC @ =gPlttBufferFaded
+_080CE590:
+ adds r0, r3, r1
+ lsls r0, 1
+ adds r0, r2
+ mov r7, r12
+ strh r7, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE590
+_080CE5A4:
+ lsrs r2, r5, 16
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _080CE578
+ b _080CE65E
+ .align 2, 0
+_080CE5B8: .4byte 0x00007fbb
+_080CE5BC: .4byte gPlttBufferFaded
+_080CE5C0:
+ ldr r0, _080CE608 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ movs r2, 0
+ ldr r3, _080CE60C @ =gSprites
+ movs r5, 0x14
+ adds r5, r3
+ mov r12, r5
+ ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8
+ mov r8, r7
+ ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8
+ movs r5, 0x1
+_080CE5DE:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r1, r0, 2
+ mov r7, r12
+ adds r0, r1, r7
+ ldr r0, [r0]
+ cmp r0, r8
+ beq _080CE5F2
+ cmp r0, r6
+ bne _080CE5F6
+_080CE5F2:
+ adds r0, r1, r3
+ strh r5, [r0, 0x2E]
+_080CE5F6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _080CE5DE
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080CE640
+ .align 2, 0
+_080CE608: .4byte gPaletteFade
+_080CE60C: .4byte gSprites
+_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
+_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
+_080CE618:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080CE65E
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ bl sub_8079BFC
+ ldr r1, _080CE648 @ =0x00007fbb
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080CE640:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080CE65E
+ .align 2, 0
+_080CE648: .4byte 0x00007fbb
+_080CE64C:
+ ldr r0, _080CE66C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CE65E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CE65E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE66C: .4byte gPaletteFade
+ thumb_func_end sub_80CE4D4
+
+ thumb_func_start sub_80CE670
+sub_80CE670: @ 80CE670
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080CE6F4 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bgt _080CE682
+ movs r0, 0x2
+ strh r0, [r6, 0x4]
+_080CE682:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7F
+ ble _080CE68E
+ movs r0, 0x7F
+ strh r0, [r6, 0x4]
+_080CE68E:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x30]
+ ldr r4, _080CE6F8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5, 0x20]
+ strh r1, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CE700
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE6FC @ =0xffffec00
+ b _080CE726
+ .align 2, 0
+_080CE6F4: .4byte gUnknown_03004B00
+_080CE6F8: .4byte gUnknown_0202F7C9
+_080CE6FC: .4byte 0xffffec00
+_080CE700:
+ ldr r0, _080CE740 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CE748
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ adds r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 5
+_080CE726:
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE744 @ =0xfffff600
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ b _080CE784
+ .align 2, 0
+_080CE740: .4byte gUnknown_0202F7C8
+_080CE744: .4byte 0xfffff600
+_080CE748:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r4, [r5, 0x22]
+ subs r4, 0x14
+ strh r4, [r5, 0x22]
+ lsls r0, 7
+ strh r0, [r5, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ ldr r0, _080CE790 @ =0xffffec00
+ bl __divsi3
+ strh r0, [r5, 0x34]
+ lsls r4, 7
+ strh r4, [r5, 0x36]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080CE784:
+ ldr r0, _080CE794 @ =sub_80CE798
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE790: .4byte 0xffffec00
+_080CE794: .4byte sub_80CE798
+ thumb_func_end sub_80CE670
+
+ thumb_func_start sub_80CE798
+sub_80CE798: @ 80CE798
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r1, r3
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080CE7CE
+ ldrh r0, [r2, 0x3A]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x22]
+_080CE7CE:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080CE7DC
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080CE7DC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CE798
+
+ thumb_func_start sub_80CE7E0
+sub_80CE7E0: @ 80CE7E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, _080CE870 @ =gTasks
+ adds r6, r0, r1
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x8]
+ ldr r0, _080CE874 @ =0x00002771
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ ldr r2, _080CE878 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r4, r0, 4
+ movs r5, 0x1
+ ldr r2, _080CE87C @ =gPlttBufferUnfaded
+_080CE838:
+ adds r1, r3, r5
+ lsls r1, 1
+ adds r1, r2
+ adds r0, r4, r5
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080CE838
+ adds r0, r3, 0
+ movs r1, 0x10
+ movs r2, 0xB
+ movs r3, 0
+ bl BlendPalette
+ movs r0, 0
+ strh r0, [r6, 0xE]
+ movs r5, 0
+ ldr r7, _080CE878 @ =gSprites
+ movs r1, 0x1C
+ adds r1, r7
+ mov r9, r1
+ b _080CE8B4
+ .align 2, 0
+_080CE870: .4byte gTasks
+_080CE874: .4byte 0x00002771
+_080CE878: .4byte gSprites
+_080CE87C: .4byte gPlttBufferUnfaded
+_080CE880:
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r7
+ ldrb r1, [r6, 0xA]
+ lsls r1, 4
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, r5, 7
+ strh r0, [r4, 0x30]
+ mov r0, r8
+ strh r0, [r4, 0x32]
+ add r2, r9
+ ldr r0, _080CE8E4 @ =sub_80CE974
+ str r0, [r2]
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080CE8B4:
+ cmp r5, 0x1
+ bhi _080CE8C6
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CE880
+_080CE8C6:
+ ldr r0, _080CE8E8 @ =sub_80CE910
+ str r0, [r6]
+ ldr r0, _080CE8EC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE8F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE8F0 @ =0x0000fdff
+ b _080CE8FC
+ .align 2, 0
+_080CE8E4: .4byte sub_80CE974
+_080CE8E8: .4byte sub_80CE910
+_080CE8EC: .4byte gUnknown_0202F7C8
+_080CE8F0: .4byte 0x0000fdff
+_080CE8F4:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080CE90C @ =0x0000fbff
+_080CE8FC:
+ ands r0, r1
+ strh r0, [r2]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE90C: .4byte 0x0000fbff
+ thumb_func_end sub_80CE7E0
+
+ thumb_func_start sub_80CE910
+sub_80CE910: @ 80CE910
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080CE944 @ =gTasks
+ adds r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CE968
+ ldr r0, _080CE948 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CE94C
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080CE956
+ .align 2, 0
+_080CE944: .4byte gTasks
+_080CE948: .4byte gUnknown_0202F7C8
+_080CE94C:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080CE956:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080CE970 @ =0x00002771
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080CE968:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CE970: .4byte 0x00002771
+ thumb_func_end sub_80CE910
+
+ thumb_func_start sub_80CE974
+sub_80CE974: @ 80CE974
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080CE990
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080CE990:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ ble _080CE9B8
+ ldr r2, _080CE9B4 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xE]
+ subs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r5, 0
+ bl obj_delete_but_dont_free_vram
+ b _080CE9FA
+ .align 2, 0
+_080CE9B4: .4byte gTasks
+_080CE9B8:
+ ldr r4, _080CEA00 @ =gSineTable
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x6
+ bl __divsi3
+ strh r0, [r5, 0x36]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xD
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldrh r1, [r5, 0x30]
+ adds r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+_080CE9FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA00: .4byte gSineTable
+ thumb_func_end sub_80CE974
+
+ thumb_func_start sub_80CEA04
+sub_80CEA04: @ 80CEA04
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080CEA18 @ =move_anim_8072740
+ bl oamt_set_x3A_32
+ ldr r0, _080CEA1C @ =sub_8078600
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEA18: .4byte move_anim_8072740
+_080CEA1C: .4byte sub_8078600
+ thumb_func_end sub_80CEA04
+
+ thumb_func_start sub_80CEA20
+sub_80CEA20: @ 80CEA20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _080CEAD0 @ =gUnknown_083D712C
+ ldrh r0, [r4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xFF
+ beq _080CEA64
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r5, _080CEAD4 @ =gPlttBufferFaded
+_080CEA4C:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r5
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA4C
+_080CEA64:
+ movs r4, 0x1
+ ldr r0, _080CEAD0 @ =gUnknown_083D712C
+ mov r8, r0
+_080CEA6A:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r5, r0, 2
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, 0x1
+ mov r12, r4
+ cmp r3, 0xFF
+ beq _080CEAB2
+ lsls r0, r3, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r3, r0, 16
+ movs r2, 0x1
+ ldr r7, _080CEAD4 @ =gPlttBufferFaded
+ ldr r6, _080CEAD0 @ =gUnknown_083D712C
+ adds r4, r5, 0
+_080CEA98:
+ adds r1, r3, r2
+ lsls r1, 1
+ adds r1, r7
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080CEA98
+_080CEAB2:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEA6A
+ mov r0, r9
+ bl move_anim_task_del
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEAD0: .4byte gUnknown_083D712C
+_080CEAD4: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CEA20
+
+ thumb_func_start sub_80CEAD8
+sub_80CEAD8: @ 80CEAD8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0x1
+ ldr r6, _080CEB08 @ =gUnknown_083D712C
+_080CEAE2:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080CEAE2
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEB08: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEAD8
+
+ thumb_func_start sub_80CEB0C
+sub_80CEB0C: @ 80CEB0C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080CEB64 @ =gUnknown_03004B00
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEB68 @ =gUnknown_083D712C
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEB48
+ lsls r2, r0, 4
+ ldrb r1, [r5, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+_080CEB48:
+ ldrh r0, [r4, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x30]
+ strh r1, [r5, 0x32]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x34]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CEB6C
+ movs r6, 0x30
+ movs r3, 0x28
+ b _080CEB86
+ .align 2, 0
+_080CEB64: .4byte gUnknown_03004B00
+_080CEB68: .4byte gUnknown_083D712C
+_080CEB6C:
+ ldr r4, _080CEBBC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080CEB86:
+ ldrh r0, [r5, 0x20]
+ lsls r1, r0, 4
+ strh r1, [r5, 0x36]
+ ldrh r1, [r5, 0x22]
+ lsls r2, r1, 4
+ strh r2, [r5, 0x38]
+ subs r0, r6, r0
+ lsls r0, 16
+ asrs r0, 16
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r5, 0
+ adds r2, 0x3A
+ adds r3, r5, 0
+ adds r3, 0x3C
+ movs r4, 0x28
+ str r4, [sp]
+ bl sub_80CEBC4
+ ldr r0, _080CEBC0 @ =sub_80CEC1C
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEBBC: .4byte gUnknown_0202F7C9
+_080CEBC0: .4byte sub_80CEC1C
+ thumb_func_end sub_80CEB0C
+
+ thumb_func_start sub_80CEBC4
+sub_80CEBC4: @ 80CEBC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x18]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r1, r2, 24
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bge _080CEBE6
+ lsls r0, r1, 24
+ negs r0, r0
+ lsrs r1, r0, 24
+_080CEBE6:
+ lsls r5, r2, 8
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080CEBFA
+ movs r4, 0x1
+_080CEBFA:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ strh r0, [r7]
+ lsls r0, r6, 16
+ asrs r0, 8
+ adds r1, r4, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEBC4
+
+ thumb_func_start sub_80CEC1C
+sub_80CEC1C: @ 80CEC1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r1, r0, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080CEC38
+ adds r0, 0xFF
+_080CEC38:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ ldrh r1, [r4, 0x3A]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x38]
+ adds r2, r3
+ strh r2, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xF
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080CEC86
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _080CEC86
+ cmp r1, 0x80
+ ble _080CEC8E
+_080CEC86:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+ b _080CECDE
+_080CEC8E:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _080CECDE
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r1
+ ble _080CECDE
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080CECB6
+ strh r5, [r4, 0x30]
+_080CECB6:
+ ldr r2, _080CECE4 @ =gUnknown_083D712C
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CECDE
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CECDE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CECE4: .4byte gUnknown_083D712C
+ thumb_func_end sub_80CEC1C
+
+ thumb_func_start sub_80CECE8
+sub_80CECE8: @ 80CECE8
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _080CED6C @ =gUnknown_0202F7C8
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CED06
+ ldr r1, _080CED70 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080CED06:
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CED70 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x32]
+ strh r5, [r6, 0x34]
+ ldrh r0, [r6, 0x20]
+ lsls r0, 4
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x22]
+ lsls r0, 4
+ strh r0, [r6, 0x38]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ lsls r0, 4
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3A]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r6, 0x3C]
+ ldr r0, _080CED74 @ =sub_80CED78
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CED6C: .4byte gUnknown_0202F7C8
+_080CED70: .4byte gUnknown_03004B00
+_080CED74: .4byte sub_80CED78
+ thumb_func_end sub_80CECE8
+
+ thumb_func_start sub_80CED78
+sub_80CED78: @ 80CED78
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x22]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ ble _080CEDD6
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080CEDD6
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0x12
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r1, 0x12
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080CEDD6
+ movs r0, 0x1
+ strh r0, [r4, 0x34]
+_080CEDD6:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ bne _080CEDEA
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CEDEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CED78
+
+ thumb_func_start sub_80CEDF0
+sub_80CEDF0: @ 80CEDF0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEE10 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080CEE14
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ movs r6, 0x10
+ b _080CEE16
+ .align 2, 0
+_080CEE10: .4byte gUnknown_03004B00
+_080CEE14:
+ ldr r6, _080CEE50 @ =0x0000fff0
+_080CEE16:
+ ldr r4, _080CEE54 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CEE58 @ =sub_80782D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080CEE5C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEE50: .4byte 0x0000fff0
+_080CEE54: .4byte gUnknown_0202F7C8
+_080CEE58: .4byte sub_80782D8
+_080CEE5C: .4byte move_anim_8072740
+ thumb_func_end sub_80CEDF0
+
+ thumb_func_start sub_80CEE60
+sub_80CEE60: @ 80CEE60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldr r5, _080CEED8 @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r2, _080CEEDC @ =gUnknown_083D712C
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080CEEA0
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+_080CEEA0:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ cmp r0, 0
+ bne _080CEEAC
+ ldr r2, _080CEEE0 @ =0x0000ffe0
+_080CEEAC:
+ movs r0, 0x28
+ strh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r4, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ subs r0, 0x28
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CEEE4 @ =sub_80CEEE8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEED8: .4byte gUnknown_03004B00
+_080CEEDC: .4byte gUnknown_083D712C
+_080CEEE0: .4byte 0x0000ffe0
+_080CEEE4: .4byte sub_80CEEE8
+ thumb_func_end sub_80CEE60
+
+ thumb_func_start sub_80CEEE8
+sub_80CEEE8: @ 80CEEE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF38
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r4, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080CEF14
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080CEF14:
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ ldrh r3, [r4, 0x26]
+ adds r0, r3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080CEF3E
+_080CEF38:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CEF3E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEEE8
+
+ thumb_func_start sub_80CEF44
+sub_80CEF44: @ 80CEF44
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CEF64
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+ b _080CEF6E
+_080CEF64:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+_080CEF6E:
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080CEF90
+ adds r0, 0x3
+_080CEF90:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CEF44
+
+ thumb_func_start sub_80CEF9C
+sub_80CEF9C: @ 80CEF9C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CEFB0 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CEFB8
+ ldr r0, _080CEFB4 @ =gUnknown_0202F7C8
+ b _080CEFBA
+ .align 2, 0
+_080CEFB0: .4byte gUnknown_03004B00
+_080CEFB4: .4byte gUnknown_0202F7C8
+_080CEFB8:
+ ldr r0, _080CEFF8 @ =gUnknown_0202F7C9
+_080CEFBA:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldr r0, _080CEFFC @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0x2E]
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x30]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF000 @ =sub_80CF008
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF004 @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CEFF8: .4byte gUnknown_0202F7C9
+_080CEFFC: .4byte gUnknown_03004B00
+_080CF000: .4byte sub_80CF008
+_080CF004: .4byte sub_8078600
+ thumb_func_end sub_80CEF9C
+
+ thumb_func_start sub_80CF008
+sub_80CF008: @ 80CF008
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF030
+ ldr r1, _080CF038 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080CF03C @ =sub_8078600
+ str r0, [r4, 0x1C]
+_080CF030:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF038: .4byte move_anim_8072740
+_080CF03C: .4byte sub_8078600
+ thumb_func_end sub_80CF008
+
+ thumb_func_start sub_80CF040
+sub_80CF040: @ 80CF040
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF054 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF05C
+ ldr r0, _080CF058 @ =gUnknown_0202F7C8
+ b _080CF05E
+ .align 2, 0
+_080CF054: .4byte gUnknown_03004B00
+_080CF058: .4byte gUnknown_0202F7C8
+_080CF05C:
+ ldr r0, _080CF07C @ =gUnknown_0202F7C9
+_080CF05E:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r1, _080CF080 @ =sub_80CF088
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF084 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF07C: .4byte gUnknown_0202F7C9
+_080CF080: .4byte sub_80CF088
+_080CF084: .4byte sub_80785E4
+ thumb_func_end sub_80CF040
+
+ thumb_func_start sub_80CF088
+sub_80CF088: @ 80CF088
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080CF0AE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080CF0B4 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF0B8 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+_080CF0AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF0B4: .4byte move_anim_8074EE0
+_080CF0B8: .4byte sub_80785E4
+ thumb_func_end sub_80CF088
+
+ thumb_func_start sub_80CF0BC
+sub_80CF0BC: @ 80CF0BC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF0D0 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF0D8
+ ldr r0, _080CF0D4 @ =gUnknown_0202F7C8
+ b _080CF0DA
+ .align 2, 0
+_080CF0D0: .4byte gUnknown_03004B00
+_080CF0D4: .4byte gUnknown_0202F7C8
+_080CF0D8:
+ ldr r0, _080CF12C @ =gUnknown_0202F7C9
+_080CF0DA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080CF102
+ movs r0, 0xA
+ strh r0, [r4, 0x22]
+_080CF102:
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r6, [r4, 0x30]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ strh r0, [r4, 0x32]
+ ldrb r0, [r1]
+ adds r0, 0x4
+ strh r0, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ ldr r1, _080CF130 @ =sub_80CF138
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF134 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF12C: .4byte gUnknown_0202F7C9
+_080CF130: .4byte sub_80CF138
+_080CF134: .4byte sub_80785E4
+ thumb_func_end sub_80CF0BC
+
+ thumb_func_start sub_80CF138
+sub_80CF138: @ 80CF138
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x1
+ strh r0, [r1, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080CF14E
+ ldr r0, _080CF154 @ =sub_80CF158
+ str r0, [r1, 0x1C]
+_080CF14E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF154: .4byte sub_80CF158
+ thumb_func_end sub_80CF138
+
+ thumb_func_start sub_80CF158
+sub_80CF158: @ 80CF158
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFE
+ ble _080CF18A
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080CF184
+ strh r0, [r2, 0x24]
+ ldr r0, _080CF180 @ =sub_80CF088
+ str r0, [r2, 0x1C]
+ b _080CF1C0
+ .align 2, 0
+_080CF180: .4byte sub_80CF088
+_080CF184:
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2, 0x30]
+_080CF18A:
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ ble _080CF19A
+ ldrh r0, [r2, 0x34]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF19A:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x9F
+ ble _080CF1AA
+ ldrh r0, [r2, 0x32]
+ adds r1, r2, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080CF1AA:
+ ldr r1, _080CF1C4 @ =gSineTable
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ asrs r1, r0, 1
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080CF1C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF1C4: .4byte gSineTable
+ thumb_func_end sub_80CF158
+
+ thumb_func_start sub_80CF1C8
+sub_80CF1C8: @ 80CF1C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080CF1DC @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF1E4
+ ldr r0, _080CF1E0 @ =gUnknown_0202F7C8
+ b _080CF1E6
+ .align 2, 0
+_080CF1DC: .4byte gUnknown_03004B00
+_080CF1E0: .4byte gUnknown_0202F7C8
+_080CF1E4:
+ ldr r0, _080CF208 @ =gUnknown_0202F7C9
+_080CF1E6:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80CEF44
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF20C
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x2
+ b _080CF216
+ .align 2, 0
+_080CF208: .4byte gUnknown_0202F7C9
+_080CF20C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x3
+_080CF216:
+ strh r0, [r5, 0x2E]
+ ldr r0, _080CF224 @ =sub_80CF228
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF224: .4byte sub_80CF228
+ thumb_func_end sub_80CF1C8
+
+ thumb_func_start sub_80CF228
+sub_80CF228: @ 80CF228
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080CF256
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r1, _080CF25C @ =sub_80CF264
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080CF260 @ =sub_8078600
+ str r0, [r4, 0x1C]
+_080CF256:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF25C: .4byte sub_80CF264
+_080CF260: .4byte sub_8078600
+ thumb_func_end sub_80CF228
+
+ thumb_func_start sub_80CF264
+sub_80CF264: @ 80CF264
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080CF27C
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF27C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF264
+
+ thumb_func_start sub_80CF280
+sub_80CF280: @ 80CF280
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF2C4 @ =gUnknown_03004B00
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r1, _080CF2C8 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080CF2CC @ =sub_8078278
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF2C4: .4byte gUnknown_03004B00
+_080CF2C8: .4byte move_anim_8074EE0
+_080CF2CC: .4byte sub_8078278
+ thumb_func_end sub_80CF280
+
+ thumb_func_start sub_80CF2D0
+sub_80CF2D0: @ 80CF2D0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080CF2E4 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CF2EC
+ ldr r0, _080CF2E8 @ =gUnknown_0202F7C8
+ b _080CF2EE
+ .align 2, 0
+_080CF2E4: .4byte gUnknown_03004B00
+_080CF2E8: .4byte gUnknown_0202F7C8
+_080CF2EC:
+ ldr r0, _080CF308 @ =gUnknown_0202F7C9
+_080CF2EE:
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80CEF44
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x30]
+ ldr r0, _080CF30C @ =sub_80CF310
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF308: .4byte gUnknown_0202F7C9
+_080CF30C: .4byte sub_80CF310
+ thumb_func_end sub_80CF2D0
+
+ thumb_func_start sub_80CF310
+sub_80CF310: @ 80CF310
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080CF342
+ cmp r0, 0x1
+ bgt _080CF326
+ cmp r0, 0
+ beq _080CF32C
+ b _080CF370
+_080CF326:
+ cmp r0, 0x2
+ beq _080CF35C
+ b _080CF370
+_080CF32C:
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080CF370
+ b _080CF354
+_080CF342:
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x3
+ strh r0, [r1, 0x26]
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CF370
+_080CF354:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080CF370
+_080CF35C:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080CF370
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080CF370:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF310
+
+ thumb_func_start sub_80CF374
+sub_80CF374: @ 80CF374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _080CF3C0 @ =gSprites
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080CF3B2
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080CF3B2:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF3C0: .4byte gSprites
+ thumb_func_end sub_80CF374
+
+ thumb_func_start sub_80CF3C4
+sub_80CF3C4: @ 80CF3C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080CF40C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080CF410 @ =gUnknown_02024BE0
+ ldr r0, _080CF414 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF41C
+ ldr r0, _080CF418 @ =gUnknown_03004B00
+ ldrh r1, [r5, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r5, 0x20]
+ adds r1, r0, 0
+ b _080CF426
+ .align 2, 0
+_080CF40C: .4byte gUnknown_0202F7C8
+_080CF410: .4byte gUnknown_02024BE0
+_080CF414: .4byte gUnknown_0202F7C9
+_080CF418: .4byte gUnknown_03004B00
+_080CF41C:
+ ldr r1, _080CF450 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080CF426:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ strh r6, [r5, 0x32]
+ ldr r0, _080CF454 @ =sub_80CF374
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF450: .4byte gUnknown_03004B00
+_080CF454: .4byte sub_80CF374
+ thumb_func_end sub_80CF3C4
+
+ thumb_func_start sub_80CF458
+sub_80CF458: @ 80CF458
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080CF484 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x38]
+ ldr r0, _080CF488 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF48C @ =sub_80CF490
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF484: .4byte gUnknown_03004B00
+_080CF488: .4byte sub_80782D8
+_080CF48C: .4byte sub_80CF490
+ thumb_func_end sub_80CF458
+
+ thumb_func_start sub_80CF490
+sub_80CF490: @ 80CF490
+ push {lr}
+ ldrh r1, [r0, 0x30]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0xF
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF4B0 @ =sub_8078B34
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF4B4 @ =sub_80CF4B8
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF4B0: .4byte sub_8078B34
+_080CF4B4: .4byte sub_80CF4B8
+ thumb_func_end sub_80CF490
+
+ thumb_func_start sub_80CF4B8
+sub_80CF4B8: @ 80CF4B8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x38]
+ movs r3, 0x38
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080CF4CE
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080CF4D2
+_080CF4CE:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x38]
+_080CF4D2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF4B8
+
+ thumb_func_start sub_80CF4D8
+sub_80CF4D8: @ 80CF4D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080CF504 @ =gUnknown_02024BE0
+ ldr r0, _080CF508 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r1, _080CF50C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CF510 @ =sub_80CF514
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF504: .4byte gUnknown_02024BE0
+_080CF508: .4byte gUnknown_0202F7C8
+_080CF50C: .4byte gTasks
+_080CF510: .4byte sub_80CF514
+ thumb_func_end sub_80CF4D8
+
+ thumb_func_start sub_80CF514
+sub_80CF514: @ 80CF514
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CF544 @ =gUnknown_02024BE0
+ ldr r0, _080CF548 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CF550
+ ldr r1, _080CF54C @ =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r6, r2, 0
+ b _080CF55E
+ .align 2, 0
+_080CF544: .4byte gUnknown_02024BE0
+_080CF548: .4byte gUnknown_0202F7C8
+_080CF54C: .4byte gTasks
+_080CF550:
+ ldr r2, _080CF590 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r3, [r0, 0x8]
+ adds r6, r1, 0
+_080CF55E:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080CF590 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080CF598
+ ldrh r0, [r1, 0x8]
+ adds r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF594 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ b _080CF5C2
+ .align 2, 0
+_080CF590: .4byte gTasks
+_080CF594: .4byte gSprites
+_080CF598:
+ cmp r0, 0x1
+ bne _080CF5AE
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ bne _080CF608
+ movs r0, 0x2
+ b _080CF606
+_080CF5AE:
+ ldrh r0, [r1, 0x8]
+ subs r0, 0xB0
+ strh r0, [r1, 0x8]
+ ldr r1, _080CF5FC @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x1
+_080CF5C2:
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0
+ bl sub_8078F9C
+ ldr r0, _080CF600 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r2, [r1, r3]
+ movs r0, 0xF2
+ lsls r0, 4
+ cmp r2, r0
+ beq _080CF5E2
+ cmp r2, 0
+ bne _080CF608
+_080CF5E2:
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bne _080CF604
+ adds r0, r4, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080CF608
+ .align 2, 0
+_080CF5FC: .4byte gSprites
+_080CF600: .4byte gTasks
+_080CF604:
+ adds r0, r2, 0x1
+_080CF606:
+ strh r0, [r1, 0xA]
+_080CF608:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80CF514
+
+ thumb_func_start sub_80CF610
+sub_80CF610: @ 80CF610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _080CF658 @ =gUnknown_03004B00
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080CF65C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF660
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r1, r0
+ strb r1, [r2]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _080CF674
+ movs r0, 0x2
+ orrs r1, r0
+ strb r1, [r2]
+ b _080CF674
+ .align 2, 0
+_080CF658: .4byte gUnknown_03004B00
+_080CF65C: .4byte gUnknown_0202F7C8
+_080CF660:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080CF674
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+_080CF674:
+ ldr r0, _080CF688 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF68C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF688: .4byte sub_8078600
+_080CF68C: .4byte move_anim_8072740
+ thumb_func_end sub_80CF610
+
+ thumb_func_start sub_80CF690
+sub_80CF690: @ 80CF690
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CF6AC @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ ldr r1, _080CF6B0 @ =sub_80CF6B4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6AC: .4byte sub_80785E4
+_080CF6B0: .4byte sub_80CF6B4
+ thumb_func_end sub_80CF690
+
+ thumb_func_start sub_80CF6B4
+sub_80CF6B4: @ 80CF6B4
+ push {lr}
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x20
+ strh r1, [r0, 0x36]
+ ldr r1, _080CF6D4 @ =sub_8078B34
+ str r1, [r0, 0x1C]
+ ldr r1, _080CF6D8 @ =move_anim_8072740
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF6D4: .4byte sub_8078B34
+_080CF6D8: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6B4
+
+ thumb_func_start sub_80CF6DC
+sub_80CF6DC: @ 80CF6DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF700
+ ldr r1, _080CF6FC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080CF722
+ .align 2, 0
+_080CF6FC: .4byte gUnknown_03004B00
+_080CF700:
+ ldr r0, _080CF7C8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF722
+ ldr r1, _080CF7CC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080CF722:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CF7D0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r6, _080CF7CC @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ ldrh r1, [r5, 0x20]
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CF794
+ ldr r2, _080CF7D4 @ =0xffffa000
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080CF794:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ mov r0, r8
+ strh r0, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CF7D8 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080CF7DC @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF7C8: .4byte gUnknown_0202F7C8
+_080CF7CC: .4byte gUnknown_03004B00
+_080CF7D0: .4byte gUnknown_0202F7C9
+_080CF7D4: .4byte 0xffffa000
+_080CF7D8: .4byte sub_8078B34
+_080CF7DC: .4byte move_anim_8072740
+ thumb_func_end sub_80CF6DC
+
+ thumb_func_start sub_80CF7E0
+sub_80CF7E0: @ 80CF7E0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF80A
+ ldr r2, _080CF810 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ adds r0, r3, 0
+ bl DestroySprite
+_080CF80A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF810: .4byte gTasks
+ thumb_func_end sub_80CF7E0
+
+ thumb_func_start sub_80CF814
+sub_80CF814: @ 80CF814
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF844 @ =gTasks
+ adds r4, r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ ble _080CF848
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ adds r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x36]
+ ldrh r3, [r2, 0x3A]
+ adds r0, r3
+ b _080CF856
+ .align 2, 0
+_080CF844: .4byte gTasks
+_080CF848:
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x34]
+ subs r0, r1
+ strh r0, [r2, 0x38]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ subs r0, r1
+_080CF856:
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r2, 0x38]
+ ldrh r1, [r2, 0x30]
+ adds r3, r0, r1
+ strh r3, [r2, 0x30]
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF87A
+ lsls r0, r3, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF87E
+_080CF87A:
+ lsls r0, r3, 16
+ lsrs r0, 24
+_080CF87E:
+ strh r0, [r2, 0x24]
+ ldrh r1, [r4, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF892
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF896
+_080CF892:
+ ldrh r0, [r2, 0x32]
+ lsrs r0, 8
+_080CF896:
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF8AC
+ movs r0, 0x1E
+ strh r0, [r2, 0x2E]
+ ldr r0, _080CF8B4 @ =sub_80CF7E0
+ str r0, [r2, 0x1C]
+_080CF8AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF8B4: .4byte sub_80CF7E0
+ thumb_func_end sub_80CF814
+
+ thumb_func_start sub_80CF8B8
+sub_80CF8B8: @ 80CF8B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080CF8FC @ =gTasks
+ adds r6, r0, r1
+ ldrh r2, [r6, 0x16]
+ movs r1, 0x2
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r3, [r7, 0x30]
+ adds r2, r0, r3
+ strh r2, [r7, 0x30]
+ ldrh r0, [r6, 0x18]
+ ands r1, r0
+ ldrh r0, [r7, 0x32]
+ adds r1, r0
+ strh r1, [r7, 0x32]
+ ldrh r1, [r6, 0x16]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF900
+ lsls r0, r2, 16
+ lsrs r0, 24
+ negs r0, r0
+ b _080CF904
+ .align 2, 0
+_080CF8FC: .4byte gTasks
+_080CF900:
+ lsls r0, r2, 16
+ lsrs r0, 24
+_080CF904:
+ strh r0, [r7, 0x24]
+ ldrh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CF918
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+ negs r0, r0
+ b _080CF91C
+_080CF918:
+ ldrh r0, [r7, 0x32]
+ lsrs r0, 8
+_080CF91C:
+ strh r0, [r7, 0x26]
+ ldrh r0, [r7, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r7, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CF9E8
+ movs r4, 0
+ movs r0, 0x8
+ strh r0, [r7, 0x2E]
+ movs r0, 0x4
+ strh r0, [r6, 0x12]
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_81174E0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x20]
+ adds r2, r0, r1
+ strh r2, [r7, 0x20]
+ ldrh r0, [r7, 0x26]
+ ldrh r3, [r7, 0x22]
+ adds r0, r3
+ strh r0, [r7, 0x22]
+ strh r4, [r7, 0x26]
+ strh r4, [r7, 0x24]
+ ldrh r3, [r6, 0x1E]
+ movs r0, 0x1E
+ ldrsh r1, [r6, r0]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r1, r0
+ blt _080CF966
+ subs r0, r3, r2
+ b _080CF968
+_080CF966:
+ subs r0, r2, r3
+_080CF968:
+ lsls r0, 24
+ lsrs r4, r0, 16
+ ldrh r3, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ ldrh r2, [r7, 0x22]
+ movs r6, 0x22
+ ldrsh r0, [r7, r6]
+ cmp r1, r0
+ blt _080CF980
+ subs r0, r3, r2
+ b _080CF982
+_080CF980:
+ subs r0, r2, r3
+_080CF982:
+ lsls r0, 24
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ strh r0, [r7, 0x30]
+ strh r0, [r7, 0x3A]
+ strh r0, [r7, 0x38]
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x34]
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r1, r5, 0
+ bl sub_81174C4
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ strh r0, [r7, 0x36]
+ ldr r0, _080CF9F4 @ =sub_80CF814
+ str r0, [r7, 0x1C]
+_080CF9E8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CF9F4: .4byte sub_80CF814
+ thumb_func_end sub_80CF8B8
+
+ thumb_func_start sub_80CF9F8
+sub_80CF9F8: @ 80CF9F8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080CFA1C @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080CFA16
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080CFA16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFA1C: .4byte gTasks
+ thumb_func_end sub_80CF9F8
+
+ thumb_func_start sub_80CFA20
+sub_80CFA20: @ 80CFA20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080CFA74 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ subs r1, r0, 0x1
+ strh r1, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080CFAF4
+ ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ movs r3, 0x1C
+ ldrsh r2, [r5, r3]
+ ldrb r3, [r5, 0xC]
+ ldrb r4, [r5, 0xA]
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r0, 4
+ add r0, r12
+ lsls r0, 2
+ ldr r1, _080CFA7C @ =gSprites
+ adds r6, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080CFA80
+ cmp r0, 0x2
+ beq _080CFA96
+ b _080CFAA4
+ .align 2, 0
+_080CFA74: .4byte gTasks
+_080CFA78: .4byte gSpriteTemplate_83D74BC
+_080CFA7C: .4byte gSprites
+_080CFA80:
+ ldrb r2, [r6, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ b _080CFAA4
+_080CFA96:
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r6, 0x3]
+_080CFAA4:
+ ldr r3, _080CFAFC @ =gTasks
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r4, r2, r3
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r6, 0x2E]
+ strh r7, [r6, 0x3C]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xD
+ lsls r0, 1
+ adds r0, r2
+ adds r3, 0x8
+ adds r0, r3
+ mov r2, r12
+ strh r2, [r0]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0x3F
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x9A
+ bl PlaySE12WithPanning
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x2
+ ble _080CFAF4
+ ldr r0, _080CFB00 @ =sub_80CF9F8
+ str r0, [r4]
+_080CFAF4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFAFC: .4byte gTasks
+_080CFB00: .4byte sub_80CF9F8
+ thumb_func_end sub_80CFA20
+
+ thumb_func_start sub_80CFB04
+sub_80CFB04: @ 80CFB04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r9, r0
+ movs r5, 0
+ mov r0, sp
+ mov r1, r9
+ strh r1, [r0]
+ mov r4, sp
+ adds r4, 0x2
+ strh r1, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r10, r4
+ cmp r0, 0
+ beq _080CFB70
+ ldr r1, _080CFB60 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r3, _080CFB64 @ =gUnknown_03004B00
+ ldrh r0, [r3]
+ negs r0, r0
+ strh r0, [r3]
+ ldrh r1, [r3, 0x4]
+ movs r0, 0x1
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _080CFB68
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+ .align 2, 0
+_080CFB60: .4byte gTasks
+_080CFB64: .4byte gUnknown_03004B00
+_080CFB68:
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _080CFBCA
+_080CFB70:
+ ldr r1, _080CFBB4 @ =gUnknown_02024A72
+ ldr r0, _080CFBB8 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0
+ bne _080CFBCA
+ ldr r1, _080CFBBC @ =gTasks
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x10]
+ ldr r2, _080CFBC0 @ =gUnknown_03004B00
+ ldrh r0, [r2]
+ negs r0, r0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ negs r0, r0
+ strh r0, [r2, 0x2]
+ ldrh r1, [r2, 0x4]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFBC4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ b _080CFBC8
+ .align 2, 0
+_080CFBB4: .4byte gUnknown_02024A72
+_080CFBB8: .4byte gUnknown_0202F7C9
+_080CFBBC: .4byte gTasks
+_080CFBC0: .4byte gUnknown_03004B00
+_080CFBC4:
+ movs r0, 0x1
+ orrs r0, r1
+_080CFBC8:
+ strh r0, [r2, 0x4]
+_080CFBCA:
+ ldr r5, _080CFC24 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080CFC28 @ =gTasks
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ adds r6, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ mov r9, r0
+ ldr r0, _080CFC2C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFC34
+ ldr r4, _080CFC30 @ =gUnknown_0202F7C9
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFC34
+ ldrb r0, [r4]
+ movs r1, 0
+ mov r2, sp
+ mov r3, r10
+ bl sub_807A3FC
+ b _080CFC56
+ .align 2, 0
+_080CFC24: .4byte gUnknown_0202F7C8
+_080CFC28: .4byte gTasks
+_080CFC2C: .4byte gUnknown_020239F8
+_080CFC30: .4byte gUnknown_0202F7C9
+_080CFC34:
+ mov r5, sp
+ ldr r4, _080CFC90 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r10
+ strh r0, [r1]
+_080CFC56:
+ mov r4, sp
+ ldr r0, _080CFC94 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ mov r2, sp
+ ldr r3, _080CFC98 @ =gUnknown_03004B00
+ ldrh r0, [r3]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r1, 0x1E]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ mov r3, r10
+ ldrh r3, [r3]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ mov r1, r10
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r1, r6, 0
+ cmp r0, r1
+ blt _080CFC9C
+ subs r0, r2, r1
+ b _080CFC9E
+ .align 2, 0
+_080CFC90: .4byte gUnknown_0202F7C9
+_080CFC94: .4byte gTasks
+_080CFC98: .4byte gUnknown_03004B00
+_080CFC9C:
+ subs r0, r1, r2
+_080CFC9E:
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, r0, 16
+ asrs r4, 16
+ ldr r5, _080CFD14 @ =gUnknown_03004B00
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ ldr r2, _080CFD18 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r6, r1, r2
+ strh r0, [r6, 0x12]
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ movs r1, 0x80
+ bl sub_81174C4
+ strh r0, [r6, 0x14]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r6, 0x16]
+ mov r2, r10
+ ldrh r1, [r2]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ mov r4, r9
+ cmp r0, r4
+ blt _080CFD1C
+ subs r4, r1, r4
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r0
+ strh r1, [r6, 0x18]
+ b _080CFD3C
+ .align 2, 0
+_080CFD14: .4byte gUnknown_03004B00
+_080CFD18: .4byte gTasks
+_080CFD1C:
+ subs r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ bl sub_81174E0
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_81174C4
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r6, 0x18]
+_080CFD3C:
+ ldr r1, _080CFD7C @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldr r4, _080CFD80 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0xE]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080CFD8C
+ movs r0, 0x80
+ eors r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFD84 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CFD88 @ =0x0000ffc0
+ adds r1, r2, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFD7C: .4byte gTasks
+_080CFD80: .4byte gUnknown_03004B00
+_080CFD84: .4byte gUnknown_0202F7C9
+_080CFD88: .4byte 0x0000ffc0
+_080CFD8C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _080CFDB4
+ ldr r0, _080CFDAC @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080CFDB0 @ =0x0000ffc0
+ adds r1, r3, 0
+ ldrh r4, [r4, 0x8]
+ adds r1, r4
+ adds r0, r1
+ b _080CFDC4
+ .align 2, 0
+_080CFDAC: .4byte gUnknown_0202F7C9
+_080CFDB0: .4byte 0x0000ffc0
+_080CFDB4:
+ ldr r0, _080CFDF0 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+_080CFDC4:
+ strh r0, [r5, 0xC]
+ ldr r0, _080CFDF4 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2
+ bgt _080CFDDC
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+_080CFDDC:
+ ldr r0, _080CFDF8 @ =sub_80CFA20
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFDF0: .4byte gUnknown_0202F7C9
+_080CFDF4: .4byte gTasks
+_080CFDF8: .4byte sub_80CFA20
+ thumb_func_end sub_80CFB04
+
+ thumb_func_start sub_80CFDFC
+sub_80CFDFC: @ 80CFDFC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldr r0, _080CFE28 @ =sub_80CFE2C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE24: .4byte gSpriteTemplate_83D75AC
+_080CFE28: .4byte sub_80CFE2C
+ thumb_func_end sub_80CFDFC
+
+ thumb_func_start sub_80CFE2C
+sub_80CFE2C: @ 80CFE2C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFE90
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r5, [r4, 0x2E]
+ ldr r1, _080CFE98 @ =gPlttBufferFaded
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ adds r6, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x9
+ lsls r0, r5, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ movs r3, 0x7
+ lsls r1, 1
+ adds r1, r6
+_080CFE64:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080CFE64
+ adds r0, r5, 0
+ adds r0, 0xF
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080CFE90
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFE90:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFE98: .4byte gPlttBufferFaded
+ thumb_func_end sub_80CFE2C
+
+ thumb_func_start sub_80CFE9C
+sub_80CFE9C: @ 80CFE9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080CFF3C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080CFF40 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080CFF44 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080CFEE0
+ ldrh r0, [r4, 0x4]
+ negs r0, r0
+ strh r0, [r4, 0x4]
+_080CFEE0:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ ldrh r1, [r5, 0x20]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r6, [r5, 0x32]
+ strh r7, [r5, 0x36]
+ ldr r0, _080CFF48 @ =sub_8078C00
+ str r0, [r5, 0x1C]
+ ldr r1, _080CFF4C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFF3C: .4byte gUnknown_0202F7C9
+_080CFF40: .4byte gUnknown_03004B00
+_080CFF44: .4byte gUnknown_0202F7C8
+_080CFF48: .4byte sub_8078C00
+_080CFF4C: .4byte move_anim_8072740
+ thumb_func_end sub_80CFE9C
+
+ thumb_func_start sub_80CFF50
+sub_80CFF50: @ 80CFF50
+ ldr r1, _080CFF60 @ =0x0000fff0
+ strh r1, [r0, 0x32]
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r1, _080CFF64 @ =sub_80CFF68
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080CFF60: .4byte 0x0000fff0
+_080CFF64: .4byte sub_80CFF68
+ thumb_func_end sub_80CFF50
+
+ thumb_func_start sub_80CFF68
+sub_80CFF68: @ 80CFF68
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldr r0, _080CFFD4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CFF8C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080CFF8C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080CFFCC
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080CFFCC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080CFFCC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CFFD4: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80CFF68
+
+ thumb_func_start sub_80CFFD8
+sub_80CFFD8: @ 80CFFD8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080D0024 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0028 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D002C @ =sub_80D0030
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0024: .4byte gUnknown_0202F7C9
+_080D0028: .4byte sub_8078B34
+_080D002C: .4byte sub_80D0030
+ thumb_func_end sub_80CFFD8
+
+ thumb_func_start sub_80D0030
+sub_80D0030: @ 80D0030
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA6
+ bl PlaySE12WithPanning
+ 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, 0x26]
+ strh r1, [r4, 0x24]
+ movs r2, 0
+ movs r1, 0x7
+ adds r0, r4, 0
+ adds r0, 0x3C
+_080D0064:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D0064
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ ands r0, r1
+ ldr r2, _080D00AC @ =0x0000fff4
+ adds r1, r2, 0
+ subs r1, r0
+ strh r1, [r4, 0x3A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA0
+ bl __umodsi3
+ adds r0, 0xA0
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D00B0 @ =sub_80D00B4
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D00AC: .4byte 0x0000fff4
+_080D00B0: .4byte sub_80D00B4
+ thumb_func_end sub_80D0030
+
+ thumb_func_start sub_80D00B4
+sub_80D00B4: @ 80D00B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 24
+ strh r2, [r4, 0x24]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D00D2
+ negs r0, r2
+ strh r0, [r4, 0x24]
+_080D00D2:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7E
+ ble _080D0112
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D0112
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0112:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D00B4
+
+ thumb_func_start sub_80D0118
+sub_80D0118: @ 80D0118
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D0168 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0136
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+_080D0136:
+ ldr r1, _080D016C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D0170 @ =sub_8078114
+ str r0, [r4, 0x1C]
+ ldr r1, _080D0174 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0168: .4byte gUnknown_0202F7C8
+_080D016C: .4byte gUnknown_03004B00
+_080D0170: .4byte sub_8078114
+_080D0174: .4byte move_anim_8072740
+ thumb_func_end sub_80D0118
+
+ thumb_func_start sub_80D0178
+sub_80D0178: @ 80D0178
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r7, 0x20
+ ldr r4, _080D01F4 @ =0x0000ffe0
+ movs r0, 0x10
+ mov r8, r0
+ ldr r6, _080D01F8 @ =0x0000fff0
+ ldr r0, _080D01FC @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D01A4
+ adds r7, r4, 0
+ movs r4, 0x20
+ mov r8, r6
+ movs r6, 0x10
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D01A4:
+ lsls r0, r7, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D0200 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r8
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldr r0, _080D0204 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D0208 @ =sub_80D020C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D01F4: .4byte 0x0000ffe0
+_080D01F8: .4byte 0x0000fff0
+_080D01FC: .4byte gUnknown_03004B00
+_080D0200: .4byte gUnknown_0202F7C9
+_080D0204: .4byte sub_8078B34
+_080D0208: .4byte sub_80D020C
+ thumb_func_end sub_80D0178
+
+ thumb_func_start sub_80D020C
+sub_80D020C: @ 80D020C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0222
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D0222:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D020C
+
+ thumb_func_start sub_80D0228
+sub_80D0228: @ 80D0228
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0x20
+ mov r8, r0
+ ldr r4, _080D02BC @ =0x0000ffe0
+ movs r2, 0x10
+ mov r9, r2
+ ldr r6, _080D02C0 @ =0x0000fff0
+ ldr r7, _080D02C4 @ =gUnknown_03004B00
+ ldrh r1, [r7]
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ beq _080D025C
+ mov r8, r4
+ movs r4, 0x20
+ mov r9, r6
+ movs r6, 0x10
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+_080D025C:
+ mov r0, r8
+ lsls r1, r0, 16
+ asrs r1, 16
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D02C8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ add r0, r9
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r7]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D02CC @ =sub_80D02D0
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D02BC: .4byte 0x0000ffe0
+_080D02C0: .4byte 0x0000fff0
+_080D02C4: .4byte gUnknown_03004B00
+_080D02C8: .4byte gUnknown_0202F7C9
+_080D02CC: .4byte sub_80D02D0
+ thumb_func_end sub_80D0228
+
+ thumb_func_start sub_80D02D0
+sub_80D02D0: @ 80D02D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0334
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ ldr r0, _080D033C @ =0x0000fffe
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ eors r0, r1
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x36]
+ strh r2, [r4, 0x34]
+ ldr r0, _080D0340 @ =sub_80D0344
+ str r0, [r4, 0x1C]
+_080D0334:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D033C: .4byte 0x0000fffe
+_080D0340: .4byte sub_80D0344
+ thumb_func_end sub_80D02D0
+
+ thumb_func_start sub_80D0344
+sub_80D0344: @ 80D0344
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D035C
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+_080D035C:
+ ldrh r0, [r4, 0x34]
+ movs r1, 0x1
+ eors r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D039E
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080D03A4 @ =sub_80D03A8
+ str r0, [r4, 0x1C]
+_080D039E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D03A4: .4byte sub_80D03A8
+ thumb_func_end sub_80D0344
+
+ thumb_func_start sub_80D03A8
+sub_80D03A8: @ 80D03A8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D03BC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D03BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D03A8
+
+ thumb_func_start sub_80D03C4
+sub_80D03C4: @ 80D03C4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0xD0
+ movs r2, 0xD0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080D041C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+ ldr r1, _080D0420 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x50
+ strh r1, [r0, 0x8]
+ ldr r1, _080D0424 @ =sub_80D0428
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D041C: .4byte gSprites
+_080D0420: .4byte gTasks
+_080D0424: .4byte sub_80D0428
+ thumb_func_end sub_80D03C4
+
+ thumb_func_start sub_80D0428
+sub_80D0428: @ 80D0428
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D0480 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D0478
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _080D0484 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0x1
+ bl sub_8079108
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D0478:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0480: .4byte gTasks
+_080D0484: .4byte gSprites
+ thumb_func_end sub_80D0428
+
+ thumb_func_start sub_80D0488
+sub_80D0488: @ 80D0488
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D04D4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ bl sub_8078E70
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldr r0, _080D04D8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x16]
+ ldr r0, _080D04DC @ =sub_80D04E0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D04D4: .4byte gTasks
+_080D04D8: .4byte gUnknown_0202F7C8
+_080D04DC: .4byte sub_80D04E0
+ thumb_func_end sub_80D0488
+
+ thumb_func_start sub_80D04E0
+sub_80D04E0: @ 80D04E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D0504 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080D04FA
+ b _080D060A
+_080D04FA:
+ lsls r0, 2
+ ldr r1, _080D0508 @ =_080D050C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D0504: .4byte gTasks
+_080D0508: .4byte _080D050C
+ .align 2, 0
+_080D050C:
+ .4byte _080D0524
+ .4byte _080D056C
+ .4byte _080D05A2
+ .4byte _080D05A8
+ .4byte _080D05B8
+ .4byte _080D05EC
+_080D0524:
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D0534
+ cmp r0, 0x3
+ beq _080D0534
+ cmp r0, 0x6
+ bne _080D053C
+_080D0534:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80D0614
+_080D053C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x28
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _080D05E4
+_080D056C:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D060A
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x3
+ bne _080D0582
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xA]
+ b _080D060A
+_080D0582:
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r2, 0x80
+ lsls r2, 1
+ strh r2, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A2:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05A8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080D060A
+ b _080D05E0
+_080D05B8:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x50
+ strh r0, [r4, 0x10]
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x10
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x8]
+ bl sub_8079A64
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _080D060A
+_080D05E0:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_080D05E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D060A
+_080D05EC:
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ ldr r2, _080D0610 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D060A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0610: .4byte gSprites
+ thumb_func_end sub_80D04E0
+
+ thumb_func_start sub_80D0614
+sub_80D0614: @ 80D0614
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, 16
+ asrs r4, r0, 16
+ cmp r4, 0
+ blt _080D06EE
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xFF
+ bne _080D0658
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080D0654 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ b _080D06EE
+ .align 2, 0
+_080D0654: .4byte gSprites
+_080D0658:
+ ldr r5, _080D06FC @ =gSprites
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r4, r3, r5
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrb r0, [r7, 0x16]
+ ldrb r1, [r7, 0xE]
+ subs r0, r1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r0, [r7, 0xE]
+ adds r0, 0x1
+ strh r0, [r7, 0xE]
+ ldrh r0, [r7, 0x14]
+ adds r0, 0x1
+ strh r0, [r7, 0x14]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ movs r0, 0x6
+ strh r0, [r4, 0x32]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r0, _080D0700 @ =sub_80D0704
+ str r0, [r3]
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x10
+ ldrsh r2, [r7, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r0, [r4, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0x1
+ orrs r3, r0
+ strb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+_080D06EE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D06FC: .4byte gSprites
+_080D0700: .4byte sub_80D0704
+ thumb_func_end sub_80D0614
+
+ thumb_func_start sub_80D0704
+sub_80D0704: @ 80D0704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0742
+ ldr r3, _080D0748 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080D0742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0748: .4byte gTasks
+ thumb_func_end sub_80D0704
+
+ thumb_func_start sub_80D074C
+sub_80D074C: @ 80D074C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D0770 @ =gTasks
+ adds r4, r0, r1
+ ldr r5, _080D0774 @ =gUnknown_03004B00
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D0778
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D079E
+ .align 2, 0
+_080D0770: .4byte gTasks
+_080D0774: .4byte gUnknown_03004B00
+_080D0778:
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ strh r1, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r2, [r4, 0x10]
+ ldr r2, _080D07A4 @ =gUnknown_083D76F4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D07A8 @ =sub_80D07AC
+ str r0, [r4]
+_080D079E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D07A4: .4byte gUnknown_083D76F4
+_080D07A8: .4byte sub_80D07AC
+ thumb_func_end sub_80D074C
+
+ thumb_func_start sub_80D07AC
+sub_80D07AC: @ 80D07AC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D07D0 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D0814
+ cmp r5, 0x1
+ bgt _080D07D4
+ cmp r5, 0
+ beq _080D07DE
+ b _080D08BC
+ .align 2, 0
+_080D07D0: .4byte gTasks
+_080D07D4:
+ cmp r5, 0x2
+ beq _080D0848
+ cmp r5, 0x3
+ beq _080D0878
+ b _080D08BC
+_080D07DE:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r2, [r4, 0x10]
+ adds r2, 0x3
+ strh r2, [r4, 0x10]
+ ldr r3, _080D0810 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ strh r5, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0810: .4byte gSprites
+_080D0814:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldr r2, _080D0844 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ ldrh r2, [r0, 0x26]
+ adds r1, r2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D08BC
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D0870
+ .align 2, 0
+_080D0844: .4byte gSprites
+_080D0848:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D0870
+ ldr r2, _080D086C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x2
+ strh r0, [r4, 0x10]
+ b _080D08BC
+ .align 2, 0
+_080D086C: .4byte gSprites
+_080D0870:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D08BC
+_080D0878:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D08BC
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D08B0
+ ldr r2, _080D08AC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ b _080D08BC
+ .align 2, 0
+_080D08AC: .4byte gSprites
+_080D08B0:
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080D08C4 @ =gUnknown_083D76F4
+ adds r0, r4, 0
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+_080D08BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08C4: .4byte gUnknown_083D76F4
+ thumb_func_end sub_80D07AC
+
+ thumb_func_start sub_80D08C8
+sub_80D08C8: @ 80D08C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D08F8 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D08FC @ =gUnknown_083D7714
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0900 @ =sub_80D0904
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08F8: .4byte gTasks
+_080D08FC: .4byte gUnknown_083D7714
+_080D0900: .4byte sub_80D0904
+ thumb_func_end sub_80D08C8
+
+ thumb_func_start sub_80D0904
+sub_80D0904: @ 80D0904
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D092C @ =gTasks
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0924
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0924:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D092C: .4byte gTasks
+ thumb_func_end sub_80D0904
+
+ thumb_func_start sub_80D0930
+sub_80D0930: @ 80D0930
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D0960 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0964
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080D097E
+ .align 2, 0
+_080D0960: .4byte gUnknown_0202F7C8
+_080D0964:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x20
+ strh r0, [r4, 0x20]
+ ldr r0, _080D09B0 @ =0x0000ffc0
+_080D097E:
+ strh r0, [r4, 0x30]
+ ldr r0, _080D09B4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r0, 0x34
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ strh r1, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ ldr r1, _080D09B8 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D09BC @ =sub_8078394
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D09B0: .4byte 0x0000ffc0
+_080D09B4: .4byte gUnknown_0202F7C8
+_080D09B8: .4byte move_anim_8072740
+_080D09BC: .4byte sub_8078394
+ thumb_func_end sub_80D0930
+
+ thumb_func_start sub_80D09C0
+sub_80D09C0: @ 80D09C0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D09D4 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D09DC
+ ldr r0, _080D09D8 @ =gUnknown_0202F7C8
+ b _080D09DE
+ .align 2, 0
+_080D09D4: .4byte gUnknown_03004B00
+_080D09D8: .4byte gUnknown_0202F7C8
+_080D09DC:
+ ldr r0, _080D0A3C @ =gUnknown_0202F7C9
+_080D09DE:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D09F8
+ ldr r1, _080D0A40 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D09F8:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D0A40 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x4]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bgt _080D0A2A
+ movs r0, 0x8
+ strh r0, [r6, 0x22]
+_080D0A2A:
+ ldr r1, _080D0A44 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D0A48 @ =sub_80785E4
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A3C: .4byte gUnknown_0202F7C9
+_080D0A40: .4byte gUnknown_03004B00
+_080D0A44: .4byte move_anim_8074EE0
+_080D0A48: .4byte sub_80785E4
+ thumb_func_end sub_80D09C0
+
+ thumb_func_start sub_80D0A4C
+sub_80D0A4C: @ 80D0A4C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D0A80 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ strh r1, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r2, _080D0A84 @ =gUnknown_083D77B0
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D0A88 @ =sub_80D0A8C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0A80: .4byte gTasks
+_080D0A84: .4byte gUnknown_083D77B0
+_080D0A88: .4byte sub_80D0A8C
+ thumb_func_end sub_80D0A4C
+
+ thumb_func_start sub_80D0A8C
+sub_80D0A8C: @ 80D0A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0AB4 @ =gTasks
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0AAC
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0AAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0AB4: .4byte gTasks
+ thumb_func_end sub_80D0A8C
+
+ thumb_func_start sub_80D0AB8
+sub_80D0AB8: @ 80D0AB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0B2C @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ movs r0, 0x4
+ strh r0, [r4, 0xC]
+ movs r0, 0x7
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x10]
+ ldr r3, _080D0B30 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ strh r2, [r4, 0x16]
+ strh r2, [r4, 0x18]
+ movs r0, 0x2
+ strh r0, [r4, 0x1A]
+ ldr r0, _080D0B34 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0B22
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0xC]
+_080D0B22:
+ ldr r0, _080D0B38 @ =sub_80D0B3C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0B2C: .4byte gTasks
+_080D0B30: .4byte gSprites
+_080D0B34: .4byte gUnknown_0202F7C8
+_080D0B38: .4byte sub_80D0B3C
+ thumb_func_end sub_80D0AB8
+
+ thumb_func_start sub_80D0B3C
+sub_80D0B3C: @ 80D0B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0B84 @ =gTasks
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x16]
+ adds r0, 0x1
+ strh r0, [r3, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D0BA2
+ movs r0, 0
+ strh r0, [r3, 0x16]
+ ldrh r0, [r3, 0x18]
+ adds r0, 0x1
+ strh r0, [r3, 0x18]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0B8C
+ ldr r2, _080D0B88 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x1A]
+ ldrh r2, [r0, 0x22]
+ adds r1, r2
+ b _080D0BA0
+ .align 2, 0
+_080D0B84: .4byte gTasks
+_080D0B88: .4byte gSprites
+_080D0B8C:
+ ldr r2, _080D0BB4 @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+_080D0BA0:
+ strh r1, [r0, 0x22]
+_080D0BA2:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080D0BF0
+ cmp r0, 0x1
+ bgt _080D0BB8
+ cmp r0, 0
+ beq _080D0BBE
+ b _080D0C80
+ .align 2, 0
+_080D0BB4: .4byte gSprites
+_080D0BB8:
+ cmp r0, 0x2
+ beq _080D0C20
+ b _080D0C80
+_080D0BBE:
+ ldr r2, _080D0BEC @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0xE
+ strh r0, [r3, 0xE]
+ movs r0, 0x1
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0BEC: .4byte gSprites
+_080D0BF0:
+ ldr r2, _080D0C1C @ =gSprites
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ ldrh r2, [r3, 0xC]
+ subs r1, r2
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0C80
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ movs r0, 0x2
+ strh r0, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C1C: .4byte gSprites
+_080D0C20:
+ ldr r2, _080D0C58 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0xC]
+ ldrh r5, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080D0C80
+ ldrh r0, [r3, 0x10]
+ subs r0, 0x1
+ strh r0, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D0C5C
+ movs r0, 0x7
+ strh r0, [r3, 0xE]
+ strh r1, [r3, 0xA]
+ b _080D0C80
+ .align 2, 0
+_080D0C58: .4byte gSprites
+_080D0C5C:
+ ldrh r1, [r3, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D0C7A
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ ldrh r2, [r3, 0x1A]
+ subs r1, r2
+ strh r1, [r0, 0x22]
+_080D0C7A:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0C80:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0B3C
+
+ thumb_func_start sub_80D0C88
+sub_80D0C88: @ 80D0C88
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D0CD8 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080D0CDC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ movs r0, 0x4
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ strh r1, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ strh r1, [r5, 0x12]
+ ldrb r0, [r4]
+ bl sub_807A100
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D0CE8
+ ldr r0, _080D0CE0 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0CE4 @ =REG_BG1HOFS
+ b _080D0CF0
+ .align 2, 0
+_080D0CD8: .4byte gTasks
+_080D0CDC: .4byte gUnknown_0202F7C9
+_080D0CE0: .4byte gUnknown_030042C0
+_080D0CE4: .4byte REG_BG1HOFS
+_080D0CE8:
+ ldr r0, _080D0D54 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r5, 0x14]
+ ldr r0, _080D0D58 @ =REG_BG2HOFS
+_080D0CF0:
+ str r0, [sp]
+ ldrh r0, [r5, 0x8]
+ adds r1, r0, 0
+ subs r1, 0x40
+ lsls r2, r1, 16
+ lsls r0, 16
+ cmp r2, r0
+ bgt _080D0D2E
+ ldr r4, _080D0D5C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080D0D08:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080D0D20
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x14]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080D0D20:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ ble _080D0D08
+_080D0D2E:
+ ldr r0, _080D0D60 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080D0D64 @ =sub_80D0D68
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0D54: .4byte gUnknown_03004288
+_080D0D58: .4byte REG_BG2HOFS
+_080D0D5C: .4byte gUnknown_03004DE0
+_080D0D60: .4byte 0xa2600001
+_080D0D64: .4byte sub_80D0D68
+ thumb_func_end sub_80D0C88
+
+ thumb_func_start sub_80D0D68
+sub_80D0D68: @ 80D0D68
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D0D88 @ =gTasks
+ adds r3, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080D0D8C
+ cmp r0, 0x1
+ beq _080D0DA2
+ b _080D0E22
+ .align 2, 0
+_080D0D88: .4byte gTasks
+_080D0D8C:
+ ldrh r0, [r3, 0x12]
+ adds r0, 0x1
+ strh r0, [r3, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D0E22
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+ b _080D0E22
+_080D0DA2:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0E22
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ subs r0, r1
+ strh r0, [r3, 0x12]
+ movs r2, 0xC
+ ldrsh r1, [r3, r2]
+ cmp r1, 0x1
+ beq _080D0DD8
+ cmp r1, 0x1
+ ble _080D0DE0
+ cmp r1, 0x2
+ beq _080D0DDC
+ cmp r1, 0x3
+ beq _080D0DDC
+ b _080D0DE0
+_080D0DD8:
+ subs r0, 0x2
+ b _080D0DDE
+_080D0DDC:
+ adds r0, 0x1
+_080D0DDE:
+ strh r0, [r3, 0x12]
+_080D0DE0:
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ blt _080D0E04
+ ldr r2, _080D0E28 @ =gUnknown_03004DE0
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r2, r1
+ adds r0, r2
+ ldrh r1, [r3, 0x14]
+ strh r1, [r0]
+_080D0E04:
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _080D0E22
+ ldr r1, _080D0E2C @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D0E22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E28: .4byte gUnknown_03004DE0
+_080D0E2C: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D0D68
+
+ thumb_func_start sub_80D0E30
+sub_80D0E30: @ 80D0E30
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080D0E84 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrb r0, [r6]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ adds r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D0E88 @ =sub_80D0E8C
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0E84: .4byte gUnknown_0202F7C9
+_080D0E88: .4byte sub_80D0E8C
+ thumb_func_end sub_80D0E30
+
+ thumb_func_start sub_80D0E8C
+sub_80D0E8C: @ 80D0E8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080D0EF0
+ cmp r1, 0x1
+ bgt _080D0EA2
+ cmp r1, 0
+ beq _080D0EA8
+ b _080D0FD0
+_080D0EA2:
+ cmp r1, 0x2
+ beq _080D0F82
+ b _080D0FD0
+_080D0EA8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0ED2
+ strh r1, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0ED2:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ b _080D0F7A
+_080D0EF0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D0F36
+ ldrh r2, [r4, 0x32]
+ movs r3, 0x32
+ ldrsh r1, [r4, r3]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D0F36
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D0F36
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+_080D0F36:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ adds r1, r0, r2
+ strh r1, [r4, 0x36]
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ cmp r2, 0x1F
+ ble _080D0F4A
+ movs r0, 0x40
+ b _080D0F58
+_080D0F4A:
+ movs r0, 0x20
+ negs r0, r0
+ cmp r2, r0
+ bgt _080D0F64
+ movs r2, 0x40
+ negs r2, r2
+ adds r0, r2, 0
+_080D0F58:
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_080D0F64:
+ ldrh r0, [r4, 0x36]
+ movs r2, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080D0FD0
+ strh r2, [r4, 0x30]
+ strh r2, [r4, 0x32]
+_080D0F7A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D0FD0
+_080D0F82:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D0FAE
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D0FAE:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D0FD0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D0FD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0E8C
+
+ thumb_func_start sub_80D0FD8
+sub_80D0FD8: @ 80D0FD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ movs r5, 0
+ mov r0, sp
+ strh r5, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r5, [r1]
+ ldr r0, _080D0FFC @ =gUnknown_03004B00
+ movs r3, 0x4
+ ldrsh r2, [r0, r3]
+ adds r7, r1, 0
+ adds r1, r0, 0
+ cmp r2, 0
+ bne _080D1004
+ ldr r0, _080D1000 @ =gUnknown_0202F7C8
+ b _080D1006
+ .align 2, 0
+_080D0FFC: .4byte gUnknown_03004B00
+_080D1000: .4byte gUnknown_0202F7C8
+_080D1004:
+ ldr r0, _080D1040 @ =gUnknown_0202F7C9
+_080D1006:
+ ldrb r5, [r0]
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x1
+ adds r4, r0, 0
+ eors r4, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ movs r1, 0x2
+ adds r0, r5, 0
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D107E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ adds r3, r7, 0
+ bl sub_807A3FC
+ cmp r4, 0
+ bne _080D1044
+ adds r0, r5, 0
+ movs r1, 0
+ b _080D1048
+ .align 2, 0
+_080D1040: .4byte gUnknown_0202F7C9
+_080D1044:
+ adds r0, r5, 0
+ movs r1, 0x2
+_080D1048:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1074
+ ldr r2, _080D1070 @ =gUnknown_03004B00
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r4
+ ldrh r0, [r2]
+ subs r1, r0
+ subs r0, r1
+ strh r0, [r2]
+ b _080D107E
+ .align 2, 0
+_080D1070: .4byte gUnknown_03004B00
+_080D1074:
+ ldr r1, _080D1090 @ =gUnknown_03004B00
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, r4
+ strh r0, [r1]
+_080D107E:
+ ldr r1, _080D1094 @ =sub_80793C4
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1090: .4byte gUnknown_03004B00
+_080D1094: .4byte sub_80793C4
+ thumb_func_end sub_80D0FD8
+
+ thumb_func_start sub_80D1098
+sub_80D1098: @ 80D1098
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D10B2
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D10B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1098
+
+ thumb_func_start sub_80D10B8
+sub_80D10B8: @ 80D10B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r6, 0
+ mov r0, sp
+ strh r6, [r0]
+ mov r1, sp
+ adds r1, 0x2
+ strh r6, [r1]
+ ldr r0, _080D10E4 @ =gUnknown_03004B00
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D10F0
+ ldr r0, _080D10E8 @ =gUnknown_0202F7C8
+ ldrb r7, [r0]
+ ldr r0, _080D10EC @ =gUnknown_0202F7C9
+ b _080D10F6
+ .align 2, 0
+_080D10E4: .4byte gUnknown_03004B00
+_080D10E8: .4byte gUnknown_0202F7C8
+_080D10EC: .4byte gUnknown_0202F7C9
+_080D10F0:
+ ldr r0, _080D1110 @ =gUnknown_0202F7C9
+ ldrb r7, [r0]
+ ldr r0, _080D1114 @ =gUnknown_0202F7C8
+_080D10F6:
+ ldrb r0, [r0]
+ mov r8, r0
+ ldr r0, _080D1118 @ =gUnknown_03004B00
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080D111C
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ b _080D1124
+ .align 2, 0
+_080D1110: .4byte gUnknown_0202F7C9
+_080D1114: .4byte gUnknown_0202F7C8
+_080D1118: .4byte gUnknown_03004B00
+_080D111C:
+ movs r2, 0x2
+ mov r10, r2
+ movs r3, 0x3
+ str r3, [sp, 0x4]
+_080D1124:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1180
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D1164 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x2
+ mov r4, r8
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1170
+ ldr r2, _080D1168 @ =gSprites
+ ldr r0, _080D116C @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ b _080D120A
+ .align 2, 0
+_080D1164: .4byte gUnknown_03004B00
+_080D1168: .4byte gSprites
+_080D116C: .4byte gUnknown_02024BE0
+_080D1170:
+ ldr r2, _080D1178 @ =gSprites
+ ldr r0, _080D117C @ =gUnknown_02024BE0
+ add r0, r8
+ b _080D120A
+ .align 2, 0
+_080D1178: .4byte gSprites
+_080D117C: .4byte gUnknown_02024BE0
+_080D1180:
+ adds r0, r7, 0
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D11EC @ =gUnknown_03004B00
+ ldrh r1, [r1]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _080D11F0 @ =gMain
+ ldr r1, _080D11F4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1204
+ adds r4, r7, 0
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1204
+ ldr r3, _080D11F8 @ =gSprites
+ ldr r2, _080D11FC @ =gUnknown_02024BE0
+ adds r0, r7, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r3
+ adds r2, r4, r2
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r3, 0x20
+ ldrsh r1, [r6, r3]
+ movs r3, 0x20
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D1200
+ adds r0, r2, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+ b _080D121A
+ .align 2, 0
+_080D11EC: .4byte gUnknown_03004B00
+_080D11F0: .4byte gMain
+_080D11F4: .4byte 0x0000043d
+_080D11F8: .4byte gSprites
+_080D11FC: .4byte gUnknown_02024BE0
+_080D1200:
+ adds r0, r6, 0
+ b _080D1214
+_080D1204:
+ ldr r2, _080D1268 @ =gSprites
+ ldr r0, _080D126C @ =gUnknown_02024BE0
+ adds r0, r7, r0
+_080D120A:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+_080D1214:
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+_080D121A:
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D1270 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080D1274 @ =gMain
+ ldr r2, _080D1278 @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D127C
+ mov r0, r8
+ movs r1, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D127C
+ ldrb r1, [r4, 0xC]
+ mov r0, r8
+ mov r2, sp
+ mov r3, sp
+ adds r3, 0x2
+ bl sub_807A3FC
+ b _080D129C
+ .align 2, 0
+_080D1268: .4byte gSprites
+_080D126C: .4byte gUnknown_02024BE0
+_080D1270: .4byte gUnknown_03004B00
+_080D1274: .4byte gMain
+_080D1278: .4byte 0x0000043d
+_080D127C:
+ mov r4, sp
+ mov r0, r8
+ mov r1, r10
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, sp
+ strh r0, [r3, 0x2]
+_080D129C:
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D12C0
+ mov r3, sp
+ mov r2, sp
+ ldr r1, _080D12BC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r3]
+ adds r2, r1, 0
+ b _080D12CE
+ .align 2, 0
+_080D12BC: .4byte gUnknown_03004B00
+_080D12C0:
+ mov r3, sp
+ mov r0, sp
+ ldr r2, _080D1310 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r3]
+_080D12CE:
+ ldrh r1, [r2, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ adds r1, r0
+ mov r3, sp
+ strh r1, [r3, 0x2]
+ mov r0, r9
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x20]
+ strh r6, [r5, 0x34]
+ strh r6, [r5, 0x22]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x36]
+ ldrh r0, [r2]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D1314 @ =sub_80D1098
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1310: .4byte gUnknown_03004B00
+_080D1314: .4byte sub_80D1098
+ thumb_func_end sub_80D10B8
+
+ thumb_func_start sub_80D1318
+sub_80D1318: @ 80D1318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D1358 @ =0x000027db
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080D133E
+ lsls r0, 20
+ ldr r1, _080D135C @ =0x01010000
+ adds r0, r1
+ lsrs r0, 16
+ ldr r1, _080D1360 @ =gUnknown_03004B00
+ ldrb r2, [r1, 0xA]
+ ldrh r3, [r1, 0x8]
+ movs r1, 0xF
+ bl BlendPalette
+_080D133E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080D1364 @ =sub_80793C4
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1358: .4byte 0x000027db
+_080D135C: .4byte 0x01010000
+_080D1360: .4byte gUnknown_03004B00
+_080D1364: .4byte sub_80793C4
+ thumb_func_end sub_80D1318
+
+ thumb_func_start sub_80D1368
+sub_80D1368: @ 80D1368
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r0, _080D139C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D1384
+ ldr r1, _080D13A0 @ =0x0000ff60
+_080D1384:
+ movs r0, 0xE0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _080D13A4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D13A8 @ =sub_80D13AC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D139C: .4byte gUnknown_0202F7C8
+_080D13A0: .4byte 0x0000ff60
+_080D13A4: .4byte gUnknown_03004B00
+_080D13A8: .4byte sub_80D13AC
+ thumb_func_end sub_80D1368
+
+ thumb_func_start sub_80D13AC
+sub_80D13AC: @ 80D13AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ movs r5, 0
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ subs r2, 0x20
+ strh r2, [r4, 0x2E]
+ ldr r0, _080D1418 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0xA0
+ cmp r0, 0
+ beq _080D13DC
+ ldr r1, _080D141C @ =0x0000ff60
+_080D13DC:
+ lsls r0, r1, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D1410
+ ldrh r2, [r4, 0x22]
+ adds r0, r1, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1420 @ =sub_80D1424
+ str r0, [r4, 0x1C]
+_080D1410:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1418: .4byte gUnknown_0202F7C8
+_080D141C: .4byte 0x0000ff60
+_080D1420: .4byte sub_80D1424
+ thumb_func_end sub_80D13AC
+
+ thumb_func_start sub_80D1424
+sub_80D1424: @ 80D1424
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D1442
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080D1448 @ =sub_80D144C
+ str r0, [r4, 0x1C]
+_080D1442:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1448: .4byte sub_80D144C
+ thumb_func_end sub_80D1424
+
+ thumb_func_start sub_80D144C
+sub_80D144C: @ 80D144C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D14B2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1498
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _080D148C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D1490 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D1494 @ =sub_80D14C4
+ b _080D14B0
+ .align 2, 0
+_080D148C: .4byte 0x000003ff
+_080D1490: .4byte 0xfffffc00
+_080D1494: .4byte sub_80D14C4
+_080D1498:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x20
+ ldr r3, _080D14B8 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D14BC @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, _080D14C0 @ =sub_80D154C
+_080D14B0:
+ str r0, [r4, 0x1C]
+_080D14B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14B8: .4byte 0x000003ff
+_080D14BC: .4byte 0xfffffc00
+_080D14C0: .4byte sub_80D154C
+ thumb_func_end sub_80D144C
+
+ thumb_func_start sub_80D14C4
+sub_80D14C4: @ 80D14C4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x26]
+ subs r0, 0x2
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _080D14F8
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r1, _080D14FC @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x2E]
+ strh r0, [r1]
+ ldr r0, _080D1500 @ =sub_80D1504
+ str r0, [r2, 0x1C]
+_080D14F8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D14FC: .4byte REG_BLDCNT
+_080D1500: .4byte sub_80D1504
+ thumb_func_end sub_80D14C4
+
+ thumb_func_start sub_80D1504
+sub_80D1504: @ 80D1504
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D153C
+ ldrh r1, [r4, 0x2E]
+ subs r1, 0x1
+ strh r1, [r4, 0x2E]
+ ldr r2, _080D1544 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D153C
+ ldr r0, _080D1548 @ =sub_80D154C
+ str r0, [r4, 0x1C]
+_080D153C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1544: .4byte REG_BLDALPHA
+_080D1548: .4byte sub_80D154C
+ thumb_func_end sub_80D1504
+
+ thumb_func_start sub_80D154C
+sub_80D154C: @ 80D154C
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _080D1574 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D1578 @ =0x0000ffff
+ cmp r1, r0
+ bne _080D1584
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D1580
+ ldr r0, _080D157C @ =sub_80D158C
+ b _080D1582
+ .align 2, 0
+_080D1574: .4byte gUnknown_03004B00
+_080D1578: .4byte 0x0000ffff
+_080D157C: .4byte sub_80D158C
+_080D1580:
+ ldr r0, _080D1588 @ =move_anim_8072740
+_080D1582:
+ str r0, [r3, 0x1C]
+_080D1584:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1588: .4byte move_anim_8072740
+ thumb_func_end sub_80D154C
+
+ thumb_func_start sub_80D158C
+sub_80D158C: @ 80D158C
+ push {lr}
+ ldr r1, _080D15A0 @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D158C
+
+ thumb_func_start sub_80D15A4
+sub_80D15A4: @ 80D15A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D15D4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080D15D8 @ =gUnknown_083D79BC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D15DC @ =sub_80D15E0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D15D4: .4byte gTasks
+_080D15D8: .4byte gUnknown_083D79BC
+_080D15DC: .4byte sub_80D15E0
+ thumb_func_end sub_80D15A4
+
+ thumb_func_start sub_80D15E0
+sub_80D15E0: @ 80D15E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D1630 @ =gTasks
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080D162A
+ ldr r2, _080D1634 @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D162A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1630: .4byte gTasks
+_080D1634: .4byte gSprites
+ thumb_func_end sub_80D15E0
+
+ thumb_func_start sub_80D1638
+sub_80D1638: @ 80D1638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D166C @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x3
+ strh r0, [r4, 0x20]
+ ldr r0, _080D1670 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1678
+ ldr r0, _080D1674 @ =0x0000ffff
+ strh r0, [r4, 0x22]
+ movs r0, 0x8
+ b _080D167E
+ .align 2, 0
+_080D166C: .4byte gTasks
+_080D1670: .4byte gUnknown_0202F7C9
+_080D1674: .4byte 0x0000ffff
+_080D1678:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D1698 @ =0x0000fff8
+_080D167E:
+ strh r0, [r4, 0x24]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D169C @ =sub_80D16A0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1698: .4byte 0x0000fff8
+_080D169C: .4byte sub_80D16A0
+ thumb_func_end sub_80D1638
+
+ thumb_func_start sub_80D16A0
+sub_80D16A0: @ 80D16A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D16C4 @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ cmp r4, 0x1
+ beq _080D16F4
+ cmp r4, 0x1
+ bgt _080D16C8
+ cmp r4, 0
+ beq _080D16D2
+ b _080D17BA
+ .align 2, 0
+_080D16C4: .4byte gTasks
+_080D16C8:
+ cmp r4, 0x2
+ beq _080D1770
+ cmp r4, 0x3
+ beq _080D178A
+ b _080D17BA
+_080D16D2:
+ ldr r2, _080D16F0 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ strh r4, [r3, 0xA]
+ strh r4, [r3, 0xC]
+ strh r4, [r3, 0xE]
+ b _080D1782
+ .align 2, 0
+_080D16F0: .4byte gSprites
+_080D16F4:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D17BA
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ ands r0, r4
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D172C
+ ldr r2, _080D1728 @ =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ adds r1, 0x6
+ b _080D173E
+ .align 2, 0
+_080D1728: .4byte gSprites
+_080D172C:
+ ldr r2, _080D176C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ subs r1, 0x6
+_080D173E:
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D17BA
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1782
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x6
+ strh r0, [r1, 0x24]
+ b _080D1782
+ .align 2, 0
+_080D176C: .4byte gSprites
+_080D1770:
+ ldrh r0, [r3, 0x20]
+ subs r0, 0x1
+ strh r0, [r3, 0x20]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D1782
+ movs r0, 0
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D1782:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080D17BA
+_080D178A:
+ ldr r2, _080D17C0 @ =gSprites
+ movs r4, 0x26
+ ldrsh r1, [r3, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x22]
+ ldrh r4, [r0, 0x24]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D17BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D17BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D17C0: .4byte gSprites
+ thumb_func_end sub_80D16A0
+
+ thumb_func_start sub_80D17C4
+sub_80D17C4: @ 80D17C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1800 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r0, 0xE
+ strh r0, [r4, 0x22]
+ movs r0, 0x2
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D1804 @ =sub_80D1808
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1800: .4byte gTasks
+_080D1804: .4byte sub_80D1808
+ thumb_func_end sub_80D17C4
+
+ thumb_func_start sub_80D1808
+sub_80D1808: @ 80D1808
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D185C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ bne _080D18CE
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ ble _080D18CE
+ strh r2, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1864
+ ldr r3, _080D1860 @ =gSprites
+ movs r6, 0x26
+ ldrsh r1, [r4, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _080D187A
+ .align 2, 0
+_080D185C: .4byte gTasks
+_080D1860: .4byte gSprites
+_080D1864:
+ ldr r3, _080D18AC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_080D187A:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x22
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D18CE
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ movs r6, 0x24
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ bge _080D18B0
+ strh r2, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ b _080D18CE
+ .align 2, 0
+_080D18AC: .4byte gSprites
+_080D18B0:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D18CE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1808
+
+ thumb_func_start sub_80D18D4
+sub_80D18D4: @ 80D18D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D1924 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ movs r1, 0x4
+ strh r1, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ strh r0, [r4, 0x12]
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x18]
+ strh r0, [r4, 0x22]
+ ldr r5, _080D1928 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D192C @ =sub_80D1930
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1924: .4byte gTasks
+_080D1928: .4byte gUnknown_0202F7C8
+_080D192C: .4byte sub_80D1930
+ thumb_func_end sub_80D18D4
+
+ thumb_func_start sub_80D1930
+sub_80D1930: @ 80D1930
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D1954 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x18
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080D199C
+ cmp r2, 0x1
+ bgt _080D1958
+ cmp r2, 0
+ beq _080D195E
+ b _080D19B8
+ .align 2, 0
+_080D1954: .4byte gTasks
+_080D1958:
+ cmp r2, 0x2
+ beq _080D19B4
+ b _080D19B8
+_080D195E:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D19B8
+ strh r2, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1996
+ strh r2, [r4, 0x14]
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D1996:
+ movs r0, 0x2
+ strh r0, [r4, 0x18]
+ b _080D19B8
+_080D199C:
+ movs r1, 0
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D19B8
+ strh r2, [r4, 0x16]
+ strh r1, [r4, 0x18]
+ b _080D19B8
+_080D19B4:
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+_080D19B8:
+ movs r2, 0x8
+ ldrsh r5, [r4, r2]
+ cmp r5, 0
+ beq _080D19C6
+ cmp r5, 0x1
+ beq _080D1A5C
+ b _080D1A6A
+_080D19C6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D1A6A
+ strh r5, [r4, 0xA]
+ ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D1A6A
+ ldr r0, _080D1A54 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ strh r6, [r1, 0x2E]
+ movs r0, 0xD
+ strh r0, [r1, 0x30]
+ ldr r2, _080D1A58 @ =gUnknown_083D7A00
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x24]
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080D1A6A
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080D1A6A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D1A6A
+ .align 2, 0
+_080D1A50: .4byte gSpriteTemplate_83D79E8
+_080D1A54: .4byte gSprites
+_080D1A58: .4byte gUnknown_083D7A00
+_080D1A5C:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D1A6A
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1A6A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1930
+
+ thumb_func_start sub_80D1A70
+sub_80D1A70: @ 80D1A70
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _080D1AD8 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r2, 0x1
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+ lsls r1, 2
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D1AD2
+ movs r0, 0x30
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroySprite
+_080D1AD2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1AD8: .4byte gTasks
+ thumb_func_end sub_80D1A70
+
+ thumb_func_start sub_80D1ADC
+sub_80D1ADC: @ 80D1ADC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080D1B34 @ =0x000027de
+ bl IndexOfSpritePaletteTag
+ mov r1, sp
+ strb r0, [r1]
+ movs r5, 0x1
+ ldr r0, _080D1B38 @ =0x00002710
+ adds r4, r0, 0
+_080D1AF4:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ bl AllocSpritePalette
+ mov r2, sp
+ adds r1, r2, r5
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1AF4
+ ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206
+ bl sub_8076BE0
+ lsls r0, 24
+ ldr r1, _080D1B40 @ =0x02018000
+ cmp r0, 0
+ beq _080D1B1C
+ ldr r0, _080D1B44 @ =0xffffc800
+ adds r1, r0
+_080D1B1C:
+ adds r0, r4, 0
+ bl sub_800D238
+ movs r5, 0
+_080D1B24:
+ lsls r4, r5, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1B4C
+ ldr r0, _080D1B48 @ =0x02014800
+ b _080D1B4E
+ .align 2, 0
+_080D1B34: .4byte 0x000027de
+_080D1B38: .4byte 0x00002710
+_080D1B3C: .4byte gBattleAnimSpritePalette_206
+_080D1B40: .4byte 0x02018000
+_080D1B44: .4byte 0xffffc800
+_080D1B48: .4byte 0x02014800
+_080D1B4C:
+ ldr r0, _080D1B7C @ =0x02018000
+_080D1B4E:
+ adds r2, r4, r0
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r1, [r0]
+ lsls r1, 20
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080D1B24
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1B7C: .4byte 0x02018000
+ thumb_func_end sub_80D1ADC
+
+ thumb_func_start sub_80D1B80
+sub_80D1B80: @ 80D1B80
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080D1BA4 @ =gUnknown_083D7A5C
+ movs r4, 0x4
+_080D1B8A:
+ ldrh r0, [r5]
+ bl FreeSpritePaletteByTag
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D1B8A
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1BA4: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1B80
+
+ thumb_func_start sub_80D1BA8
+sub_80D1BA8: @ 80D1BA8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ movs r0, 0x1
+ ands r3, r0
+ negs r0, r3
+ orrs r0, r3
+ asrs r0, 31
+ movs r3, 0x20
+ ands r0, r3
+ ldrh r4, [r5, 0x4]
+ lsls r3, r4, 22
+ lsrs r3, 22
+ lsrs r1, 22
+ adds r0, r1
+ adds r3, r0
+ ldr r1, _080D1BFC @ =0x000003ff
+ adds r0, r1, 0
+ ands r3, r0
+ ldr r0, _080D1C00 @ =0xfffffc00
+ ands r0, r4
+ orrs r0, r3
+ strh r0, [r5, 0x4]
+ ldr r0, _080D1C04 @ =gUnknown_083D7A5C
+ lsrs r2, 25
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1BFC: .4byte 0x000003ff
+_080D1C00: .4byte 0xfffffc00
+_080D1C04: .4byte gUnknown_083D7A5C
+ thumb_func_end sub_80D1BA8
+
+ thumb_func_start sub_80D1C08
+sub_80D1C08: @ 80D1C08
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r6, _080D1C70 @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1C28
+ ldr r1, _080D1C74 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D1C28:
+ ldr r4, _080D1C74 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldr r0, _080D1C78 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D1C7C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ ldrb r2, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_80D1BA8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1C70: .4byte gUnknown_0202F7C8
+_080D1C74: .4byte gUnknown_03004B00
+_080D1C78: .4byte sub_8078B34
+_080D1C7C: .4byte move_anim_8072740
+ thumb_func_end sub_80D1C08
+
+ thumb_func_start sub_80D1C80
+sub_80D1C80: @ 80D1C80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1C9A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+_080D1C9A:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x7
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ subs r2, 0x80
+ strh r2, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bne _080D1CCA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1CCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1C80
+
+ thumb_func_start sub_80D1CD0
+sub_80D1CD0: @ 80D1CD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ movs r2, 0xF0
+ cmp r0, 0
+ beq _080D1CE4
+ movs r2, 0x98
+_080D1CE4:
+ movs r3, 0
+ ldr r0, _080D1D2C @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080D1D30 @ =gUnknown_03004240
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080D1D34 @ =REG_WIN0H
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080D1D38 @ =REG_WININ
+ ldr r5, _080D1D3C @ =0x00003f1f
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r5, 0x20
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _080D1D40 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ ldr r1, _080D1D44 @ =sub_80D1D48
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D2C: .4byte gUnknown_030042C4
+_080D1D30: .4byte gUnknown_03004240
+_080D1D34: .4byte REG_WIN0H
+_080D1D38: .4byte REG_WININ
+_080D1D3C: .4byte 0x00003f1f
+_080D1D40: .4byte gTasks
+_080D1D44: .4byte sub_80D1D48
+ thumb_func_end sub_80D1CD0
+
+ thumb_func_start sub_80D1D48
+sub_80D1D48: @ 80D1D48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D1D7C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x8]
+ adds r4, r0, 0
+ adds r4, 0xD
+ strh r4, [r3, 0x8]
+ ldrh r0, [r3, 0xA]
+ adds r2, r0, 0
+ subs r2, 0xD
+ strh r2, [r3, 0xA]
+ lsls r1, r4, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080D1D88
+ ldr r0, _080D1D80 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D1D84 @ =sub_80D1D9C
+ str r0, [r3]
+ b _080D1D90
+ .align 2, 0
+_080D1D7C: .4byte gTasks
+_080D1D80: .4byte gUnknown_030042C4
+_080D1D84: .4byte sub_80D1D9C
+_080D1D88:
+ ldr r1, _080D1D98 @ =gUnknown_030042C4
+ lsls r0, r4, 8
+ orrs r2, r0
+ strh r2, [r1]
+_080D1D90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D98: .4byte gUnknown_030042C4
+ thumb_func_end sub_80D1D48
+
+ thumb_func_start sub_80D1D9C
+sub_80D1D9C: @ 80D1D9C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r5, _080D1DEC @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ adds r1, r3, r5
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r1, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080D1DF8
+ movs r0, 0x88
+ strh r0, [r1, 0x1E]
+ adds r0, r5, r3
+ adds r0, 0x1E
+ ldr r1, _080D1DF0 @ =REG_BLDCNT
+ movs r2, 0x2
+ bl RequestSpriteCopy
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ ldr r2, _080D1DF4 @ =0x00007fff
+ movs r1, 0x10
+ bl BlendPalettes
+ b _080D1E1E
+ .align 2, 0
+_080D1DEC: .4byte gTasks
+_080D1DF0: .4byte REG_BLDCNT
+_080D1DF4: .4byte 0x00007fff
+_080D1DF8:
+ cmp r0, 0x4
+ ble _080D1E1E
+ ldr r0, _080D1E28 @ =gUnknown_030042C4
+ strh r4, [r0]
+ ldr r0, _080D1E2C @ =gUnknown_03004240
+ strh r4, [r0]
+ ldr r0, _080D1E30 @ =REG_WININ
+ ldr r3, _080D1E34 @ =0x00003f3f
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D1E1E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1E28: .4byte gUnknown_030042C4
+_080D1E2C: .4byte gUnknown_03004240
+_080D1E30: .4byte REG_WININ
+_080D1E34: .4byte 0x00003f3f
+ thumb_func_end sub_80D1D9C
+
+ thumb_func_start sub_80D1E38
+sub_80D1E38: @ 80D1E38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1E88 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1E94
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1E8C @ =gUnknown_083D7A98
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1E90 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1EBC
+ .align 2, 0
+_080D1E88: .4byte gTasks
+_080D1E8C: .4byte gUnknown_083D7A98
+_080D1E90: .4byte gSprites
+_080D1E94:
+ ldr r1, _080D1EC4 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1EBC
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1EBC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1EC4: .4byte gSprites
+ thumb_func_end sub_80D1E38
+
+ thumb_func_start sub_80D1EC8
+sub_80D1EC8: @ 80D1EC8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D1F18 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D1F24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D1F1C @ =gUnknown_083D7A98
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r1, _080D1F20 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x24]
+ b _080D1F4C
+ .align 2, 0
+_080D1F18: .4byte gTasks
+_080D1F1C: .4byte gUnknown_083D7A98
+_080D1F20: .4byte gSprites
+_080D1F24:
+ ldr r1, _080D1F54 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r5, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D1F4C
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D1F4C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F54: .4byte gSprites
+ thumb_func_end sub_80D1EC8
+
+ thumb_func_start sub_80D1F58
+sub_80D1F58: @ 80D1F58
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x5F
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080D1F9C @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D1FA0 @ =sub_80D1FA4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F9C: .4byte gUnknown_0202F7C9
+_080D1FA0: .4byte sub_80D1FA4
+ thumb_func_end sub_80D1F58
+
+ thumb_func_start sub_80D1FA4
+sub_80D1FA4: @ 80D1FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1FCE
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xE
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D1FD4
+_080D1FCE:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D1FD4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FA4
+
+ thumb_func_start sub_80D1FDC
+sub_80D1FDC: @ 80D1FDC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2000
+ ldr r1, _080D1FFC @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D205C
+ .align 2, 0
+_080D1FFC: .4byte gUnknown_03004B00
+_080D2000:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D204E
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D204E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D205C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D205C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D1FDC
+
+ thumb_func_start sub_80D2064
+sub_80D2064: @ 80D2064
+ push {lr}
+ ldr r2, _080D2088 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ movs r1, 0xA0
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x30]
+ ldr r1, _080D208C @ =sub_80782D8
+ str r1, [r0, 0x1C]
+ ldr r1, _080D2090 @ =sub_80D2094
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2088: .4byte gUnknown_03004B00
+_080D208C: .4byte sub_80782D8
+_080D2090: .4byte sub_80D2094
+ thumb_func_end sub_80D2064
+
+ thumb_func_start sub_80D2094
+sub_80D2094: @ 80D2094
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ lsrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x48
+ bgt _080D20FA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ cmp r5, 0x40
+ bgt _080D20FA
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D20FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2094
+
+ thumb_func_start sub_80D2100
+sub_80D2100: @ 80D2100
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D21BC @ =REG_BLDCNT
+ ldr r2, _080D21C0 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D21C4 @ =REG_BG1CNT
+ ldrb r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2144
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D2144:
+ ldr r0, _080D21C8 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D21CC @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D21D0 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080D21D4 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080D21D8 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080D21DC @ =gAttractTilemap
+ bl LZDecompressVram
+ ldr r0, _080D21E0 @ =gAttractGfx
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D21E4 @ =gAttractPal
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D21A4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D21A4:
+ ldr r0, _080D21E8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D21EC @ =sub_80D21F0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D21BC: .4byte REG_BLDCNT
+_080D21C0: .4byte 0x00003f42
+_080D21C4: .4byte REG_BG1CNT
+_080D21C8: .4byte gUnknown_030042C0
+_080D21CC: .4byte gUnknown_030041B4
+_080D21D0: .4byte REG_BG1HOFS
+_080D21D4: .4byte 0x040000d4
+_080D21D8: .4byte 0x85000400
+_080D21DC: .4byte gAttractTilemap
+_080D21E0: .4byte gAttractGfx
+_080D21E4: .4byte gAttractPal
+_080D21E8: .4byte gTasks
+_080D21EC: .4byte sub_80D21F0
+ thumb_func_end sub_80D2100
+
+ thumb_func_start sub_80D21F0
+sub_80D21F0: @ 80D21F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2220 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2216
+ b _080D238C
+_080D2216:
+ lsls r0, 2
+ ldr r1, _080D2224 @ =_080D2228
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2220: .4byte gTasks
+_080D2224: .4byte _080D2228
+ .align 2, 0
+_080D2228:
+ .4byte _080D223C
+ .4byte _080D2284
+ .4byte _080D22A6
+ .4byte _080D22E8
+ .4byte _080D236C
+_080D223C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D2256
+ b _080D238C
+_080D2256:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2280 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ beq _080D2274
+ b _080D238C
+_080D2274:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D2280: .4byte REG_BLDALPHA
+_080D2284:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8D
+ bne _080D238C
+ movs r0, 0x10
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D238C
+_080D22A6:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D238C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D22E4 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D238C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D238C
+ .align 2, 0
+_080D22E4: .4byte REG_BLDALPHA
+_080D22E8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D239C @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D23A0 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D230E:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D230E
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D239C @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D23A4 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D235C
+ ldr r2, _080D23A8 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D235C:
+ ldr r0, _080D23AC @ =gTasks
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D236C:
+ ldr r0, _080D23B0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D23A8 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D238C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D239C: .4byte 0x040000d4
+_080D23A0: .4byte 0x85000400
+_080D23A4: .4byte 0x85000200
+_080D23A8: .4byte REG_BG1CNT
+_080D23AC: .4byte gTasks
+_080D23B0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D21F0
+
+ thumb_func_start sub_80D23B4
+sub_80D23B4: @ 80D23B4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2438 @ =REG_BLDCNT
+ ldr r2, _080D243C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D2440 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D23FE
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D23FE:
+ ldr r0, _080D2444 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D2448 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D244C @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r1, _080D2450 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080D2454 @ =0x85000400
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D245C
+ ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest
+ b _080D246E
+ .align 2, 0
+_080D2438: .4byte REG_BLDCNT
+_080D243C: .4byte 0x00003f42
+_080D2440: .4byte REG_BG1CNT
+_080D2444: .4byte gUnknown_030042C0
+_080D2448: .4byte gUnknown_030041B4
+_080D244C: .4byte REG_BG1HOFS
+_080D2450: .4byte 0x040000d4
+_080D2454: .4byte 0x85000400
+_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
+_080D245C:
+ ldr r0, _080D2478 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2480
+ ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer
+_080D246E:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D2488
+ .align 2, 0
+_080D2478: .4byte gUnknown_0202F7C9
+_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
+_080D2480:
+ ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080D2488:
+ ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D24B6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D24B6:
+ ldr r0, _080D24D8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D24DC @ =sub_80D24E0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
+_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
+_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
+_080D24D8: .4byte gTasks
+_080D24DC: .4byte sub_80D24E0
+ thumb_func_end sub_80D23B4
+
+ thumb_func_start sub_80D24E0
+sub_80D24E0: @ 80D24E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D2510 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080D2506
+ b _080D267C
+_080D2506:
+ lsls r0, 2
+ ldr r1, _080D2514 @ =_080D2518
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D2510: .4byte gTasks
+_080D2514: .4byte _080D2518
+ .align 2, 0
+_080D2518:
+ .4byte _080D252C
+ .4byte _080D2574
+ .4byte _080D2596
+ .4byte _080D25D8
+ .4byte _080D265C
+_080D252C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _080D2546
+ b _080D267C
+_080D2546:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D2570 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xE
+ beq _080D2564
+ b _080D267C
+_080D2564:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D2570: .4byte REG_BLDALPHA
+_080D2574:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D267C
+ movs r0, 0xE
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D267C
+_080D2596:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080D267C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D25D4 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D267C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D267C
+ .align 2, 0
+_080D25D4: .4byte REG_BLDALPHA
+_080D25D8:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r0, r5, 2
+ mov r10, r0
+ add r6, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D268C @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D2690 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D25FE:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D25FE
+ str r7, [sp, 0xC]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D268C @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D2694 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D264C
+ ldr r2, _080D2698 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D264C:
+ ldr r0, _080D269C @ =gTasks
+ mov r2, r10
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+_080D265C:
+ ldr r0, _080D26A0 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D2698 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D267C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D268C: .4byte 0x040000d4
+_080D2690: .4byte 0x85000400
+_080D2694: .4byte 0x85000200
+_080D2698: .4byte REG_BG1CNT
+_080D269C: .4byte gTasks
+_080D26A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80D24E0
+
+ thumb_func_start sub_80D26A4
+sub_80D26A4: @ 80D26A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D26F8 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080D26FC @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x3C]
+ ldr r1, _080D2700 @ =sub_80D2704
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D26F8: .4byte gUnknown_0202F7C8
+_080D26FC: .4byte gUnknown_03004B00
+_080D2700: .4byte sub_80D2704
+ thumb_func_end sub_80D26A4
+
+ thumb_func_start sub_80D2704
+sub_80D2704: @ 80D2704
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D271A
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ b _080D271E
+_080D271A:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+_080D271E:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ beq _080D2790
+ cmp r2, 0x1
+ bne _080D27C0
+ ldr r1, _080D2788 @ =0xfffffc00
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _080D278C @ =0xffffff00
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D27C0
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ b _080D27D0
+ .align 2, 0
+_080D2788: .4byte 0xfffffc00
+_080D278C: .4byte 0xffffff00
+_080D2790:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080D27C0
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+_080D27C0:
+ ldr r0, _080D27D8 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D27DC @ =0x0000ffff
+ cmp r1, r0
+ bne _080D27D0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D27D0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27D8: .4byte gUnknown_03004B00
+_080D27DC: .4byte 0x0000ffff
+ thumb_func_end sub_80D2704
+
+ thumb_func_start sub_80D27E0
+sub_80D27E0: @ 80D27E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D2828 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D282C @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldr r0, _080D2830 @ =sub_80D2834
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2828: .4byte gUnknown_0202F7C8
+_080D282C: .4byte gUnknown_03004B00
+_080D2830: .4byte sub_80D2834
+ thumb_func_end sub_80D27E0
+
+ thumb_func_start sub_80D2834
+sub_80D2834: @ 80D2834
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r3, 0x24
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D2872
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D2872
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D2878
+_080D2872:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2878:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2834
+
+ thumb_func_start sub_80D287C
+sub_80D287C: @ 80D287C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080D28A8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D28A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D287C
+
+ thumb_func_start sub_80D28AC
+sub_80D28AC: @ 80D28AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D28F8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080D28FC @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r5, 0x2E]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ bl Cos
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x32]
+ ldr r0, _080D2900 @ =sub_80D287C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D28F8: .4byte gUnknown_0202F7C8
+_080D28FC: .4byte gUnknown_03004B00
+_080D2900: .4byte sub_80D287C
+ thumb_func_end sub_80D28AC
+
+ thumb_func_start sub_80D2904
+sub_80D2904: @ 80D2904
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D291A
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D291A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2904
+
+ thumb_func_start sub_80D2920
+sub_80D2920: @ 80D2920
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D2934 @ =sub_80D2904
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2934: .4byte sub_80D2904
+ thumb_func_end sub_80D2920
+
+ thumb_func_start sub_80D2938
+sub_80D2938: @ 80D2938
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2956
+ ldr r0, _080D29C8 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D2956:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r5, r0, 1
+ movs r0, 0xFF
+ ands r5, r0
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Sin
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4F
+ bgt _080D299A
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl Cos
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ lsls r0, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x26]
+_080D299A:
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x5A
+ ble _080D29B8
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+_080D29B8:
+ cmp r2, 0x64
+ ble _080D29C2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D29C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D29C8: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2938
+
+ thumb_func_start sub_80D29CC
+sub_80D29CC: @ 80D29CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ ble _080D2A22
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D2A22:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ ble _080D2A30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D29CC
+
+ thumb_func_start sub_80D2A38
+sub_80D2A38: @ 80D2A38
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2A5C
+ ldr r1, _080D2A58 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2AB0
+ .align 2, 0
+_080D2A58: .4byte gUnknown_03004B00
+_080D2A5C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ movs r5, 0
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ adds r2, r0, 0
+ strh r2, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x46
+ ble _080D2AB0
+ ldr r0, _080D2AB8 @ =sub_80D29CC
+ str r0, [r4, 0x1C]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r0, r2, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB4
+ bl __umodsi3
+ strh r0, [r4, 0x34]
+_080D2AB0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2AB8: .4byte sub_80D29CC
+ thumb_func_end sub_80D2A38
+
+ thumb_func_start sub_80D2ABC
+sub_80D2ABC: @ 80D2ABC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2AF6
+ ldr r1, _080D2BB8 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2BBC @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2AF6:
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r0, r2
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080D2B0C
+ adds r0, 0xFF
+_080D2B0C:
+ asrs r0, 8
+ lsls r0, 8
+ subs r0, r1, r0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D2B1E
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080D2B1E:
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B2C
+ adds r0, 0x3
+_080D2B2C:
+ asrs r0, 2
+ movs r1, 0x1E
+ subs r1, r0
+ adds r0, r2, 0
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2B48
+ adds r0, 0x7
+_080D2B48:
+ asrs r0, 3
+ movs r1, 0xA
+ subs r1, r0
+ adds r0, r2, 0
+ bl Sin
+ strh r0, [r4, 0x26]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ ble _080D2B6C
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D2B6C
+ ldr r0, _080D2BC0 @ =0x0000ffff
+ strh r0, [r4, 0x32]
+_080D2B6C:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2B80
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080D2B80
+ movs r0, 0x1
+ strh r0, [r4, 0x32]
+_080D2B80:
+ ldrh r0, [r4, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x34]
+ subs r0, 0x9
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x46
+ bls _080D2BC4
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080D2BD2
+ .align 2, 0
+_080D2BB8: .4byte gUnknown_03004B00
+_080D2BBC: .4byte gUnknown_0202F7C9
+_080D2BC0: .4byte 0x0000ffff
+_080D2BC4:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D2BD2:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5A
+ ble _080D2BE0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2BE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2ABC
+
+ thumb_func_start sub_80D2BE8
+sub_80D2BE8: @ 80D2BE8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2C1C
+ ldr r1, _080D2C18 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D2C30
+ .align 2, 0
+_080D2C18: .4byte gUnknown_03004B00
+_080D2C1C:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2C30
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2C30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2BE8
+
+ thumb_func_start sub_80D2C38
+sub_80D2C38: @ 80D2C38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _080D2C50 @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C54
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D2CB8
+ .align 2, 0
+_080D2C50: .4byte gUnknown_03004B00
+_080D2C54:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D2C64
+ ldr r4, _080D2C60 @ =gUnknown_0202F7C8
+ b _080D2C66
+ .align 2, 0
+_080D2C60: .4byte gUnknown_0202F7C8
+_080D2C64:
+ ldr r4, _080D2C94 @ =gUnknown_0202F7C9
+_080D2C66:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D2C98 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080D2C9C
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x20
+ b _080D2CA0
+ .align 2, 0
+_080D2C94: .4byte gUnknown_0202F7C9
+_080D2C98: .4byte gUnknown_03004B00
+_080D2C9C:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+_080D2CA0:
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r0, _080D2CC0 @ =sub_80D2CC4
+ str r0, [r5, 0x1C]
+_080D2CB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2CC0: .4byte sub_80D2CC4
+ thumb_func_end sub_80D2C38
+
+ thumb_func_start sub_80D2CC4
+sub_80D2CC4: @ 80D2CC4
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D2CF4
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D2CEE
+ ldrh r1, [r2, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080D2CF4
+_080D2CEE:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2CF4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2CC4
+
+ thumb_func_start sub_80D2CF8
+sub_80D2CF8: @ 80D2CF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080D2D2C @ =gUnknown_03004B00
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080D2D30 @ =gTasks
+ adds r4, r0
+ ldr r2, _080D2D34 @ =gUnknown_083D7CA8
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080D2D38 @ =sub_80D2D3C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D2C: .4byte gUnknown_03004B00
+_080D2D30: .4byte gTasks
+_080D2D34: .4byte gUnknown_083D7CA8
+_080D2D38: .4byte sub_80D2D3C
+ thumb_func_end sub_80D2CF8
+
+ thumb_func_start sub_80D2D3C
+sub_80D2D3C: @ 80D2D3C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D2D64 @ =gTasks
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D2D5C
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D2D5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2D64: .4byte gTasks
+ thumb_func_end sub_80D2D3C
+
+ thumb_func_start sub_80D2D68
+sub_80D2D68: @ 80D2D68
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D2D7C @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D2D84
+ ldr r0, _080D2D80 @ =gUnknown_0202F7C8
+ b _080D2D86
+ .align 2, 0
+_080D2D7C: .4byte gUnknown_03004B00
+_080D2D80: .4byte gUnknown_0202F7C8
+_080D2D84:
+ ldr r0, _080D2E1C @ =gUnknown_0202F7C9
+_080D2D86:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D2DA0
+ ldr r1, _080D2E20 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D2DA0:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r7, _080D2E20 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r3, [r7, 0x2]
+ adds r0, r3
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r7, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x2E]
+ ldrh r1, [r5, 0x20]
+ lsls r1, 3
+ strh r1, [r5, 0x30]
+ lsls r0, 3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DE0
+ adds r0, 0x7
+_080D2DE0:
+ asrs r0, 3
+ strh r0, [r5, 0x34]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ lsls r0, 3
+ cmp r0, 0
+ bge _080D2DF0
+ adds r0, 0x7
+_080D2DF0:
+ asrs r0, 3
+ strh r0, [r5, 0x36]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _080D2E24 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D2E28 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D2E2C @ =sub_80D2E30
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E1C: .4byte gUnknown_0202F7C9
+_080D2E20: .4byte gUnknown_03004B00
+_080D2E24: .4byte 0x000003ff
+_080D2E28: .4byte 0xfffffc00
+_080D2E2C: .4byte sub_80D2E30
+ thumb_func_end sub_80D2D68
+
+ thumb_func_start sub_80D2E30
+sub_80D2E30: @ 80D2E30
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ ldrh r3, [r2, 0x32]
+ adds r1, r3
+ strh r1, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 19
+ strh r1, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D2E64
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D2E64:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2E30
+
+ thumb_func_start sub_80D2E68
+sub_80D2E68: @ 80D2E68
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D2E8A
+ ldr r0, _080D2EC4 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080D2E8A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D2EA8
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8079108
+_080D2EA8:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ adds r0, 0x50
+ cmp r1, r0
+ bne _080D2EBC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D2EBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2EC4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D2E68
+
+ thumb_func_start sub_80D2EC8
+sub_80D2EC8: @ 80D2EC8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D2EF6
+ movs r5, 0x78
+ strh r5, [r6, 0x20]
+ ldr r4, _080D2F78 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0xF
+ strh r0, [r6, 0x22]
+ ldrb r1, [r4, 0x2]
+ adds r0, r6, 0
+ bl StartSpriteAnim
+ strh r5, [r6, 0x38]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x34]
+_080D2EF6:
+ ldrh r0, [r6, 0x2E]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r6, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r6, 0x30]
+ movs r2, 0x2E
+ ldrsh r0, [r6, r2]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldrh r0, [r6, 0x34]
+ adds r4, r0
+ movs r2, 0xFF
+ ldrh r0, [r6, 0x3A]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3A]
+ ands r4, r2
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl Cos
+ strh r0, [r6, 0x24]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r1, 0x4
+ bl Cos
+ ldrh r2, [r6, 0x30]
+ adds r4, r2
+ adds r0, r4
+ strh r0, [r6, 0x26]
+ movs r0, 0x2E
+ ldrsh r1, [r6, r0]
+ movs r2, 0x38
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080D2F72
+ ldr r0, _080D2F7C @ =sub_80D2F80
+ str r0, [r6, 0x1C]
+ strh r5, [r6, 0x2E]
+ adds r0, r6, 0
+ bl oamt_add_pos2_onto_pos1
+ movs r0, 0x5
+ strh r0, [r6, 0x32]
+ strh r5, [r6, 0x36]
+ strh r5, [r6, 0x34]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080D2F72:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2F78: .4byte gUnknown_03004B00
+_080D2F7C: .4byte sub_80D2F80
+ thumb_func_end sub_80D2EC8
+
+ thumb_func_start sub_80D2F80
+sub_80D2F80: @ 80D2F80
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080D2F9A
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080D2FA0 @ =sub_80D2FA4
+ str r0, [r1, 0x1C]
+_080D2F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2FA0: .4byte sub_80D2FA4
+ thumb_func_end sub_80D2F80
+
+ thumb_func_start sub_80D2FA4
+sub_80D2FA4: @ 80D2FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r1, r2
+ strh r0, [r4, 0x34]
+ strh r0, [r4, 0x26]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _080D2FCE
+ lsls r0, r1, 16
+ cmp r0, 0
+ ble _080D2FCE
+ ldrh r0, [r4, 0x36]
+ subs r1, r0, 0x5
+ strh r1, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+_080D2FCE:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _080D3000
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3000:
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _080D300E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D300E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D2FA4
+
+ thumb_func_start sub_80D3014
+sub_80D3014: @ 80D3014
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D3058 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3060
+ ldr r4, _080D305C @ =gUnknown_0202F7C8
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3060
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080D3080
+ .align 2, 0
+_080D3058: .4byte gUnknown_020239F8
+_080D305C: .4byte gUnknown_0202F7C8
+_080D3060:
+ ldr r4, _080D30A0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+ strh r0, [r5, 0x22]
+_080D3080:
+ movs r0, 0xD
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x48
+ strh r0, [r5, 0x36]
+ ldr r0, _080D30A4 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D30A8 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30A0: .4byte gUnknown_0202F7C8
+_080D30A4: .4byte sub_8078B34
+_080D30A8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3014
+
+ thumb_func_start sub_80D30AC
+sub_80D30AC: @ 80D30AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D30C8 @ =gUnknown_03004B00
+ ldr r1, _080D30CC @ =gUnknown_0202F7B4
+ ldr r1, [r1]
+ ldrb r2, [r1, 0x10]
+ movs r1, 0x1
+ ands r1, r2
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30C8: .4byte gUnknown_03004B00
+_080D30CC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D30AC
+
+ thumb_func_start update_fury_cutter_counter_copy
+update_fury_cutter_counter_copy: @ 80D30D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D30E8 @ =gUnknown_03004B00
+ ldr r1, _080D30EC @ =gUnknown_0202F7B4
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x10]
+ strh r1, [r2, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D30E8: .4byte gUnknown_03004B00
+_080D30EC: .4byte gUnknown_0202F7B4
+ thumb_func_end update_fury_cutter_counter_copy
+
+ thumb_func_start sub_80D30F0
+sub_80D30F0: @ 80D30F0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080D3178 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D3118
+ ldr r1, _080D317C @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0xE]
+_080D3118:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl __modsi3
+ cmp r0, 0x1
+ bne _080D3160
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x50
+ bl __umodsi3
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _080D3180 @ =gSpriteTemplate_83D9130
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl CreateSprite
+_080D3160:
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bne _080D3172
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D3172:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3178: .4byte gTasks
+_080D317C: .4byte gUnknown_03004B00
+_080D3180: .4byte gSpriteTemplate_83D9130
+ thumb_func_end sub_80D30F0
+
+ thumb_func_start sub_80D3184
+sub_80D3184: @ 80D3184
+ ldr r1, _080D318C @ =sub_80D3190
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D318C: .4byte sub_80D3190
+ thumb_func_end sub_80D3184
+
+ thumb_func_start sub_80D3190
+sub_80D3190: @ 80D3190
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D31AE
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x4
+ strh r0, [r2, 0x26]
+_080D31AE:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D31C2
+ adds r0, r2, 0
+ bl DestroySprite
+_080D31C2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3190
+
+ thumb_func_start sub_80D31C8
+sub_80D31C8: @ 80D31C8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D31F0 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D31F8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080D31F4 @ =gUnknown_03004B00
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080D320A
+ .align 2, 0
+_080D31F0: .4byte gUnknown_0202F7C8
+_080D31F4: .4byte gUnknown_03004B00
+_080D31F8:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D32D0 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+_080D320A:
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+ strh r0, [r6, 0x22]
+ adds r2, r6, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D32D4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3240
+ ldr r1, _080D32D0 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D3240:
+ ldr r5, _080D32D0 @ =gUnknown_03004B00
+ ldrh r0, [r5, 0xC]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r4, _080D32D8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D32DC @ =SpriteCallbackDummy
+ bl object_new_hidden_with_callback
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r6, 0x38]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldrh r1, [r6, 0x20]
+ subs r1, r0
+ strh r1, [r6, 0x20]
+ ldrb r0, [r5, 0x8]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ ldrh r1, [r6, 0x22]
+ subs r1, r0
+ strh r1, [r6, 0x22]
+ ldr r0, _080D32E0 @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x4]
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r1, 0x32]
+ ldrb r0, [r5, 0x8]
+ lsls r0, 8
+ strh r0, [r1, 0x34]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x36]
+ ldr r1, _080D32E4 @ =sub_80D32E8
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D32D0: .4byte gUnknown_03004B00
+_080D32D4: .4byte gUnknown_0202F7C8
+_080D32D8: .4byte gUnknown_0202F7C9
+_080D32DC: .4byte SpriteCallbackDummy
+_080D32E0: .4byte gSprites
+_080D32E4: .4byte sub_80D32E8
+ thumb_func_end sub_80D31C8
+
+ thumb_func_start sub_80D32E8
+sub_80D32E8: @ 80D32E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080D3350 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r7, r0, r2
+ ldrh r4, [r7, 0x36]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrh r0, [r7, 0x34]
+ mov r8, r0
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078B5C
+ mov r1, r8
+ lsrs r6, r1, 8
+ movs r0, 0x2E
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Sin
+ ldrh r1, [r5, 0x24]
+ adds r0, r1
+ strh r0, [r5, 0x24]
+ movs r0, 0x30
+ ldrsh r1, [r7, r0]
+ adds r0, r6, 0
+ bl Cos
+ ldrh r1, [r5, 0x26]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r0, [r7, 0x32]
+ mov r1, r8
+ adds r1, r0
+ strh r1, [r7, 0x34]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r4, 0
+ beq _080D3354
+ strh r4, [r7, 0x36]
+ b _080D335E
+ .align 2, 0
+_080D3350: .4byte gSprites
+_080D3354:
+ ldr r0, _080D336C @ =sub_80D3370
+ str r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl DestroySprite
+_080D335E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D336C: .4byte sub_80D3370
+ thumb_func_end sub_80D32E8
+
+ thumb_func_start sub_80D3370
+sub_80D3370: @ 80D3370
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r2, [r3]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldr r1, _080D3390 @ =sub_8078600
+ str r1, [r0, 0x1C]
+ ldr r1, _080D3394 @ =sub_80D3398
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3390: .4byte sub_8078600
+_080D3394: .4byte sub_80D3398
+ thumb_func_end sub_80D3370
+
+ thumb_func_start sub_80D3398
+sub_80D3398: @ 80D3398
+ push {lr}
+ movs r1, 0xA
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D33AC @ =sub_80782D8
+ str r1, [r0, 0x1C]
+ ldr r1, _080D33B0 @ =move_anim_8074EE0
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D33AC: .4byte sub_80782D8
+_080D33B0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80D3398
+
+ thumb_func_start sub_80D33B4
+sub_80D33B4: @ 80D33B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D33DC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D33E4
+ ldr r1, _080D33E0 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r1, 0
+ b _080D33EA
+ .align 2, 0
+_080D33DC: .4byte gUnknown_0202F7C8
+_080D33E0: .4byte gUnknown_03004B00
+_080D33E4:
+ ldr r0, _080D3440 @ =gUnknown_03004B00
+ ldrh r6, [r0, 0x4]
+ adds r7, r0, 0
+_080D33EA:
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D3444 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r7, [r7, 0x6]
+ adds r0, r7
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D3448 @ =sub_80D344C
+ str r0, [r5, 0x1C]
+ adds r2, r5, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3440: .4byte gUnknown_03004B00
+_080D3444: .4byte gUnknown_0202F7C9
+_080D3448: .4byte sub_80D344C
+ thumb_func_end sub_80D33B4
+
+ thumb_func_start sub_80D344C
+sub_80D344C: @ 80D344C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3488 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ ldr r0, _080D348C @ =0x0000ffff
+ cmp r1, r0
+ bne _080D346E
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+_080D346E:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D3480
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D3480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3488: .4byte gUnknown_03004B00
+_080D348C: .4byte 0x0000ffff
+ thumb_func_end sub_80D344C
+
+ thumb_func_start sub_80D3490
+sub_80D3490: @ 80D3490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D34C4 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r0, _080D34C8 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r4, 0x8]
+ ldr r0, _080D34CC @ =0x0000279c
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _080D34D0 @ =sub_80D34D4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D34C4: .4byte gTasks
+_080D34C8: .4byte gUnknown_03004B00
+_080D34CC: .4byte 0x0000279c
+_080D34D0: .4byte sub_80D34D4
+ thumb_func_end sub_80D3490
+
+ thumb_func_start sub_80D34D4
+sub_80D34D4: @ 80D34D4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080D354C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0x3
+ bne _080D3526
+ movs r0, 0
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080D3550 @ =gPlttBufferFaded
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ adds r7, r1, 0
+ adds r3, r0, 0x2
+ movs r1, 0x6
+ adds r2, r0, 0
+_080D3510:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080D3510
+ adds r0, r5, 0x7
+ lsls r0, 1
+ adds r0, r7
+ strh r6, [r0]
+_080D3526:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x1E]
+ adds r1, 0x1
+ strh r1, [r0, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _080D3546
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D3546:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D354C: .4byte gTasks
+_080D3550: .4byte gPlttBufferFaded
+ thumb_func_end sub_80D34D4
+
+ thumb_func_start sub_80D3554
+sub_80D3554: @ 80D3554
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D35BC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r0, 0xD2
+ lsls r0, 8
+ bl __divsi3
+ strh r0, [r5, 0x38]
+ ldr r0, _080D35C0 @ =gUnknown_03004B00
+ ldrh r2, [r0, 0x6]
+ strh r2, [r5, 0x3C]
+ ldrh r1, [r0, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7F
+ ble _080D35C4
+ adds r0, r1, 0
+ subs r0, 0x7F
+ lsls r0, 8
+ strh r0, [r5, 0x3A]
+ negs r0, r2
+ strh r0, [r5, 0x3C]
+ b _080D35C8
+ .align 2, 0
+_080D35BC: .4byte gUnknown_0202F7C9
+_080D35C0: .4byte gUnknown_03004B00
+_080D35C4:
+ lsls r0, r1, 8
+ strh r0, [r5, 0x3A]
+_080D35C8:
+ ldr r1, _080D35D8 @ =sub_80D35DC
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D35D8: .4byte sub_80D35DC
+ thumb_func_end sub_80D3554
+
+ thumb_func_start sub_80D35DC
+sub_80D35DC: @ 80D35DC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D35F0
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D35F0:
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ asrs r0, 8
+ cmp r0, 0x7F
+ ble _080D3620
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ b _080D3628
+_080D3620:
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x3A]
+ adds r0, r1
+ strh r0, [r4, 0x3A]
+_080D3628:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D35DC
+
+ thumb_func_start sub_80D3630
+sub_80D3630: @ 80D3630
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D3650 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r3, _080D3654 @ =gUnknown_03004B00
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r3, 0xE]
+ ldr r0, _080D3658 @ =sub_80D365C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D3650: .4byte gTasks
+_080D3654: .4byte gUnknown_03004B00
+_080D3658: .4byte sub_80D365C
+ thumb_func_end sub_80D3630
+
+ thumb_func_start sub_80D365C
+sub_80D365C: @ 80D365C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080D3690 @ =gUnknown_03004B00
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0xE]
+ ldr r1, _080D3694 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080D368A
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D368A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3690: .4byte gUnknown_03004B00
+_080D3694: .4byte gTasks
+ thumb_func_end sub_80D365C
+
+ thumb_func_start sub_80D3698
+sub_80D3698: @ 80D3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r7, _080D36E4 @ =gUnknown_0202F7C8
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r6, _080D36E8 @ =0x0000fff6
+ strh r6, [r4, 0x26]
+ ldrb r0, [r7]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36F2
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D36EC
+ movs r0, 0xA
+ strh r0, [r4, 0x24]
+ b _080D36F4
+ .align 2, 0
+_080D36E4: .4byte gUnknown_0202F7C8
+_080D36E8: .4byte 0x0000fff6
+_080D36EC:
+ strh r6, [r4, 0x24]
+ subs r0, r5, 0x2
+ b _080D36F6
+_080D36F2:
+ strh r6, [r4, 0x24]
+_080D36F4:
+ adds r0, r5, 0x2
+_080D36F6:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r0, _080D3708 @ =sub_80D370C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3708: .4byte sub_80D370C
+ thumb_func_end sub_80D3698
+
+ thumb_func_start sub_80D370C
+sub_80D370C: @ 80D370C
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D3722
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D3722:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D370C
+
+ thumb_func_start sub_80D3728
+sub_80D3728: @ 80D3728
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r5, _080D37E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D37EC @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D3772
+ ldr r4, _080D37F0 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D376A
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D3772
+_080D376A:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4]
+_080D3772:
+ ldr r5, _080D37F0 @ =gUnknown_03004B00
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0
+ bne _080D3786
+ movs r1, 0x1
+_080D3786:
+ ldrb r0, [r5, 0xA]
+ movs r7, 0x1
+ cmp r0, 0
+ bne _080D3790
+ movs r7, 0x3
+_080D3790:
+ adds r0, r6, 0
+ bl sub_80787B0
+ ldr r0, _080D37E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D37AA
+ ldrh r0, [r5, 0x4]
+ negs r0, r0
+ strh r0, [r5, 0x4]
+_080D37AA:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r4, _080D37EC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r4]
+ adds r1, r7, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r6, 0x36]
+ ldr r0, _080D37F4 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080D37F8 @ =move_anim_8072740
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D37E8: .4byte gUnknown_0202F7C8
+_080D37EC: .4byte gUnknown_0202F7C9
+_080D37F0: .4byte gUnknown_03004B00
+_080D37F4: .4byte sub_8078B34
+_080D37F8: .4byte move_anim_8072740
+ thumb_func_end sub_80D3728
+
+ thumb_func_start sub_80D37FC
+sub_80D37FC: @ 80D37FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D382C @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x8]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ ldr r0, _080D3830 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080D3834 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D382C: .4byte gUnknown_03004B00
+_080D3830: .4byte sub_8078B34
+_080D3834: .4byte move_anim_8072740
+ thumb_func_end sub_80D37FC
+
+ thumb_func_start sub_80D3838
+sub_80D3838: @ 80D3838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D3850 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D3854
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D385C
+ .align 2, 0
+_080D3850: .4byte gUnknown_03004B00
+_080D3854:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+_080D385C:
+ ldr r0, _080D386C @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D3870 @ =sub_80D3874
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D386C: .4byte gUnknown_03004B00
+_080D3870: .4byte sub_80D3874
+ thumb_func_end sub_80D3838
+
+ thumb_func_start sub_80D3874
+sub_80D3874: @ 80D3874
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D38B4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D38B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3874
+
+ thumb_func_start sub_80D38BC
+sub_80D38BC: @ 80D38BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080D398C @ =REG_BLDCNT
+ ldr r2, _080D3990 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r2, _080D3994 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ add r0, sp, 0xC
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080D3998 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r7, _080D399C @ =0x85000400
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3920:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3920
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ mov r3, r12
+ strb r0, [r3]
+ strb r0, [r3]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ ldr r0, _080D3998 @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D399C @ =0x85000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D39B8
+ ldr r2, _080D3994 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D39A0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D39A8
+ ldr r0, _080D39A4 @ =gUnknown_08E70968
+ b _080D39AA
+ .align 2, 0
+_080D398C: .4byte REG_BLDCNT
+_080D3990: .4byte 0x00003f42
+_080D3994: .4byte REG_BG1CNT
+_080D3998: .4byte 0x040000d4
+_080D399C: .4byte 0x85000400
+_080D39A0: .4byte gUnknown_0202F7C8
+_080D39A4: .4byte gUnknown_08E70968
+_080D39A8:
+ ldr r0, _080D39B4 @ =gUnknown_08E70C38
+_080D39AA:
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080D39CE
+ .align 2, 0
+_080D39B4: .4byte gUnknown_08E70C38
+_080D39B8:
+ ldr r0, _080D39F0 @ =gUnknown_08E70F0C
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80763FC
+_080D39CE:
+ ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080D39F8 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D3A00
+ ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080D3A0E
+ .align 2, 0
+_080D39F0: .4byte gUnknown_08E70F0C
+_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
+_080D39F8: .4byte gUnknown_03004B00
+_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
+_080D3A00:
+ ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080D3A0E:
+ ldr r0, _080D3A7C @ =sub_80D3D68
+ ldr r4, _080D3A80 @ =gTasks
+ mov r2, r10
+ lsls r5, r2, 2
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r6, r1, r4
+ ldrb r1, [r6, 0x7]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ mov r9, r3
+ mov r0, r8
+ strh r0, [r6, 0x26]
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r7, r0, r4
+ mov r2, r9
+ strh r2, [r7, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r7, 0xA]
+ strh r0, [r7, 0xC]
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080D3A94
+ ldr r3, _080D3A84 @ =0x0000ffb0
+ adds r0, r3, 0
+ ldr r1, _080D3A88 @ =gUnknown_030042C0
+ strh r0, [r1]
+ ldr r2, _080D3A8C @ =0x0000ffd0
+ adds r0, r2, 0
+ ldr r3, _080D3A90 @ =gUnknown_030041B4
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ mov r0, r9
+ strh r0, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
+_080D3A7C: .4byte sub_80D3D68
+_080D3A80: .4byte gTasks
+_080D3A84: .4byte 0x0000ffb0
+_080D3A88: .4byte gUnknown_030042C0
+_080D3A8C: .4byte 0x0000ffd0
+_080D3A90: .4byte gUnknown_030041B4
+_080D3A94:
+ ldr r0, _080D3AC4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080D3AD8
+ ldr r2, _080D3AC8 @ =0x0000ff20
+ adds r0, r2, 0
+ ldr r3, _080D3ACC @ =gUnknown_030042C0
+ strh r0, [r3]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldr r3, _080D3AD0 @ =gUnknown_030041B4
+ strh r0, [r3]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ ldr r0, _080D3AD4 @ =0x0000ffff
+ strh r0, [r6, 0xA]
+ strh r1, [r7, 0xE]
+ b _080D3AEE
+ .align 2, 0
+_080D3AC4: .4byte gUnknown_0202F7C8
+_080D3AC8: .4byte 0x0000ff20
+_080D3ACC: .4byte gUnknown_030042C0
+_080D3AD0: .4byte gUnknown_030041B4
+_080D3AD4: .4byte 0x0000ffff
+_080D3AD8:
+ ldr r0, _080D3B1C @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r1, _080D3B20 @ =0x0000ffd0
+ adds r0, r1, 0
+ ldr r2, _080D3B24 @ =gUnknown_030041B4
+ strh r0, [r2]
+ ldr r0, _080D3B28 @ =0x0000fffe
+ strh r0, [r6, 0x8]
+ movs r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r7, 0xE]
+_080D3AEE:
+ ldr r1, _080D3B2C @ =REG_BG1HOFS
+ ldr r3, _080D3B1C @ =gUnknown_030042C0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080D3B24 @ =gUnknown_030041B4
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _080D3B30 @ =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080D3B34
+ movs r0, 0x30
+ strh r0, [r2, 0x10]
+ movs r0, 0x70
+ b _080D3B38
+ .align 2, 0
+_080D3B1C: .4byte gUnknown_030042C0
+_080D3B20: .4byte 0x0000ffd0
+_080D3B24: .4byte gUnknown_030041B4
+_080D3B28: .4byte 0x0000fffe
+_080D3B2C: .4byte REG_BG1HOFS
+_080D3B30: .4byte gTasks
+_080D3B34:
+ movs r0, 0
+ strh r0, [r2, 0x10]
+_080D3B38:
+ strh r0, [r2, 0x12]
+ mov r2, r10
+ adds r0, r5, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ ldr r1, _080D3B5C @ =sub_80D3B60
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3B5C: .4byte sub_80D3B60
+ thumb_func_end sub_80D38BC
+
+ thumb_func_start sub_80D3B60
+sub_80D3B60: @ 80D3B60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080D3D44 @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ ldr r1, _080D3D48 @ =gUnknown_030042C0
+ ldrh r1, [r1]
+ adds r0, r1
+ ldr r2, _080D3D48 @ =gUnknown_030042C0
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ ldr r3, _080D3D4C @ =gUnknown_030041B4
+ ldrh r3, [r3]
+ adds r0, r3
+ ldr r1, _080D3D4C @ =gUnknown_030041B4
+ strh r0, [r1]
+ add r5, sp, 0x4
+ adds r0, r5, 0
+ bl sub_8078914
+ ldrh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ mov r10, r5
+ cmp r0, 0x4
+ bne _080D3C02
+ ldr r1, _080D3D50 @ =gPlttBufferFaded
+ ldrb r0, [r5, 0x8]
+ lsls r0, 4
+ adds r0, 0x7
+ lsls r0, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r2, 0x6
+ adds r5, r1, 0
+ adds r3, r5, 0
+ mov r4, r10
+_080D3BC8:
+ ldrb r0, [r4, 0x8]
+ lsls r0, 4
+ adds r1, r2, 0x1
+ adds r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080D3BC8
+ mov r3, r10
+ ldrb r0, [r3, 0x8]
+ lsls r0, 4
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ strh r6, [r0]
+ ldr r1, _080D3D44 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+_080D3C02:
+ ldr r1, _080D3D44 @ =gTasks
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0x14]
+ adds r0, 0x1
+ strh r0, [r3, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r1, 0
+ str r2, [sp, 0x14]
+ cmp r0, 0x1
+ ble _080D3C70
+ movs r0, 0
+ strh r0, [r3, 0x14]
+ ldrh r0, [r3, 0xE]
+ adds r2, r0, 0x1
+ strh r2, [r3, 0xE]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bgt _080D3C4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x1
+ strh r0, [r3, 0x10]
+_080D3C4C:
+ movs r2, 0xE
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x36
+ ble _080D3C70
+ ldrh r2, [r3, 0x10]
+ subs r2, 0x1
+ strh r2, [r3, 0x10]
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r2, r0
+ strh r2, [r1, 0xA]
+_080D3C70:
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0xA]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080D3D32
+ ldr r2, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 6
+ add r6, sp, 0x10
+ movs r5, 0
+ ldr r1, _080D3D54 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r6
+ ldr r0, _080D3D58 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D3CAA:
+ str r5, [sp, 0x10]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D3CAA
+ str r5, [sp, 0x10]
+ str r6, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0]
+ mov r3, r10
+ ldr r1, [r3, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x10]
+ ldr r0, _080D3D54 @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D3D58 @ =0x85000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3D02
+ ldr r2, _080D3D5C @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D3D02:
+ ldr r0, _080D3D48 @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r1, _080D3D4C @ =gUnknown_030041B4
+ strh r4, [r1]
+ ldr r0, _080D3D60 @ =REG_BLDCNT
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r2, _080D3D44 @ =gTasks
+ ldr r3, [sp, 0x14]
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0x26
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080D3D64 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D3D32:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3D44: .4byte gTasks
+_080D3D48: .4byte gUnknown_030042C0
+_080D3D4C: .4byte gUnknown_030041B4
+_080D3D50: .4byte gPlttBufferFaded
+_080D3D54: .4byte 0x040000d4
+_080D3D58: .4byte 0x85000400
+_080D3D5C: .4byte REG_BG1CNT
+_080D3D60: .4byte REG_BLDCNT
+_080D3D64: .4byte 0x0000ffff
+ thumb_func_end sub_80D3B60
+
+ thumb_func_start sub_80D3D68
+sub_80D3D68: @ 80D3D68
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080D3D90 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D3D84
+ b _080D3EBC
+_080D3D84:
+ cmp r0, 0x1
+ bgt _080D3D94
+ cmp r0, 0
+ beq _080D3D9C
+ b _080D4032
+ .align 2, 0
+_080D3D90: .4byte gTasks
+_080D3D94:
+ cmp r0, 0x2
+ bne _080D3D9A
+ b _080D3F88
+_080D3D9A:
+ b _080D4032
+_080D3D9C:
+ movs r3, 0
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ ldr r1, _080D3E6C @ =gUnknown_03004DE0
+ mov r12, r1
+ cmp r3, r0
+ bge _080D3DDA
+ mov r7, r12
+ movs r5, 0xF0
+ lsls r5, 3
+ add r5, r12
+ ldr r6, _080D3E70 @ =0x0000ffff
+_080D3DB4:
+ lsls r2, r3, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r7
+ adds r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r6, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080D3DB4
+_080D3DDA:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3E14
+ ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70 @ =0x0000ffff
+_080D3DF2:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3DF2
+_080D3E14:
+ ldrh r3, [r4, 0x12]
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ bgt _080D3E4A
+ ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+ ldr r7, _080D3E70 @ =0x0000ffff
+_080D3E28:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r3, r1, r5
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ ldrh r1, [r4, 0xC]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ lsls r2, r3, 16
+ asrs r0, r2, 16
+ cmp r0, 0x9F
+ ble _080D3E28
+_080D3E4A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D3E74
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r3, r12
+ adds r2, r0, r3
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xA]
+ b _080D3E8A
+ .align 2, 0
+_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E70: .4byte 0x0000ffff
+_080D3E74:
+ lsls r0, r3, 16
+ asrs r0, 15
+ mov r1, r12
+ adds r2, r0, r1
+ movs r1, 0xF0
+ lsls r1, 3
+ add r1, r12
+ adds r0, r1
+ ldrh r1, [r4, 0xC]
+ strh r1, [r0]
+ ldrh r0, [r4, 0xC]
+_080D3E8A:
+ strh r0, [r2]
+ ldr r0, _080D3EB4 @ =REG_BLDALPHA
+ str r0, [sp]
+ ldr r0, _080D3EB8 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4032
+ .align 2, 0
+_080D3EB4: .4byte REG_BLDALPHA
+_080D3EB8: .4byte 0xa2600001
+_080D3EBC:
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _080D3ED4
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D3EE8
+ strh r1, [r4, 0x10]
+ b _080D3EE2
+_080D3ED4:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080D3EE8
+_080D3EE2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D3EE8:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3F1C
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3EF6:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3EF6
+_080D3F1C:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3F50
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3F2E:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3F2E
+_080D3F50:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D4032
+ ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r5, _080D3F84 @ =gUnknown_03004DC0
+_080D3F5E:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3F5E
+ b _080D4032
+ .align 2, 0
+_080D3F80: .4byte gUnknown_03004DE0
+_080D3F84: .4byte gUnknown_03004DC0
+_080D3F88:
+ movs r3, 0
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bge _080D3FBC
+ ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r5, _080D4040 @ =gUnknown_03004DC0
+_080D3F96:
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldrb r2, [r5, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ adds r3, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D3F96
+_080D3FBC:
+ ldrh r3, [r4, 0x10]
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D3FF0
+ ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r5, _080D4040 @ =gUnknown_03004DC0
+_080D3FCE:
+ asrs r3, r2, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ blt _080D3FCE
+_080D3FF0:
+ ldrh r3, [r4, 0x12]
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080D401C
+ ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r5, _080D4040 @ =gUnknown_03004DC0
+_080D3FFE:
+ asrs r3, r1, 16
+ lsls r2, r3, 1
+ ldrb r1, [r5, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ lsls r1, r3, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080D3FFE
+_080D401C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D4032
+ bl remove_some_task
+ adds r0, r7, 0
+ bl DestroyTask
+_080D4032:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D403C: .4byte gUnknown_03004DE0
+_080D4040: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80D3D68
+
+ thumb_func_start sub_80D4044
+sub_80D4044: @ 80D4044
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D4098 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D409C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D40A0 @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D408A
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D408A:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D40A4 @ =sub_80D40A8
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4098: .4byte 0x000003ff
+_080D409C: .4byte 0xfffffc00
+_080D40A0: .4byte 0x000001ff
+_080D40A4: .4byte sub_80D40A8
+ thumb_func_end sub_80D4044
+
+ thumb_func_start sub_80D40A8
+sub_80D40A8: @ 80D40A8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D40CC
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D40D0
+_080D40CC:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D40D0:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D40EE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D40EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D40A8
+
+ thumb_func_start sub_80D40F4
+sub_80D40F4: @ 80D40F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D4144 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r2, _080D4148 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x12]
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D414C @ =sub_80D4150
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4144: .4byte gTasks
+_080D4148: .4byte gSprites
+_080D414C: .4byte sub_80D4150
+ thumb_func_end sub_80D40F4
+
+ thumb_func_start sub_80D4150
+sub_80D4150: @ 80D4150
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D4178 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bls _080D416C
+ b _080D438A
+_080D416C:
+ lsls r0, 2
+ ldr r1, _080D417C @ =_080D4180
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D4178: .4byte gTasks
+_080D417C: .4byte _080D4180
+ .align 2, 0
+_080D4180:
+ .4byte _080D41A0
+ .4byte _080D41C6
+ .4byte _080D4258
+ .4byte _080D428E
+ .4byte _080D42A2
+ .4byte _080D42B0
+ .4byte _080D4330
+ .4byte _080D437C
+_080D41A0:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D41C6:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4222
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D4210
+ ldr r2, _080D420C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+ b _080D4222
+ .align 2, 0
+_080D420C: .4byte gSprites
+_080D4210:
+ ldr r2, _080D4250 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D4254 @ =0x0000fffd
+ strh r1, [r0, 0x24]
+_080D4222:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D4232
+ b _080D438A
+_080D4232:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D4250 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xE]
+ b _080D436C
+ .align 2, 0
+_080D4250: .4byte gSprites
+_080D4254: .4byte 0x0000fffd
+_080D4258:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D4268
+ b _080D438A
+_080D4268:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xE0
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ b _080D436E
+_080D428E:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080D438A
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+_080D42A2:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80D4418
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D42B0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D438A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D42E8
+ ldr r2, _080D42E4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x2
+ b _080D42FA
+ .align 2, 0
+_080D42E4: .4byte gSprites
+_080D42E8:
+ ldr r2, _080D432C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x2
+_080D42FA:
+ strh r1, [r0, 0x26]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080D438A
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xE0
+ bl sub_8079C08
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ strh r0, [r4, 0x10]
+ b _080D436E
+ .align 2, 0
+_080D432C: .4byte gSprites
+_080D4330:
+ ldr r6, _080D4378 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D438A
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x22]
+_080D436C:
+ strh r5, [r4, 0x10]
+_080D436E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D438A
+ .align 2, 0
+_080D4378: .4byte gSprites
+_080D437C:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D438A
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D438A:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4150
+
+ thumb_func_start sub_80D4394
+sub_80D4394: @ 80D4394
+ push {r4,r5,lr}
+ ldr r4, _080D43B8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D43C8
+ ldr r1, _080D43BC @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D43C0 @ =gPlayerParty
+ b _080D43D8
+ .align 2, 0
+_080D43B8: .4byte gUnknown_0202F7C8
+_080D43BC: .4byte gUnknown_02024A6A
+_080D43C0: .4byte gPlayerParty
+_080D43C4:
+ adds r0, r2, 0
+ b _080D440A
+_080D43C8:
+ ldr r1, _080D4410 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080D4414 @ =gEnemyParty
+_080D43D8:
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsrs r4, 18
+ movs r2, 0
+_080D43F6:
+ adds r1, r2, 0x1
+ adds r0, r4, 0
+ muls r0, r1
+ cmp r3, r0
+ blt _080D43C4
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080D43F6
+ movs r0, 0x3
+_080D440A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D4410: .4byte gUnknown_02024A6A
+_080D4414: .4byte gEnemyParty
+ thumb_func_end sub_80D4394
+
+ thumb_func_start sub_80D4418
+sub_80D4418: @ 80D4418
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ ldr r4, _080D4520 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0xAC
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldrh r1, [r7, 0xA]
+ movs r0, 0x4
+ subs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bgt _080D4468
+ movs r1, 0x1
+_080D4468:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r1, 16
+ mov r10, r8
+ mov r9, r6
+ mov r1, r10
+ lsls r1, 4
+ str r1, [sp, 0xC]
+ mov r1, r9
+ lsls r1, 4
+ str r1, [sp, 0x10]
+ asrs r0, 16
+ mov r8, r0
+_080D4482:
+ ldr r0, _080D4524 @ =gSpriteTemplate_83D9378
+ mov r1, r10
+ mov r2, r9
+ ldr r3, [sp, 0x8]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r6, r5, 16
+ cmp r2, 0x40
+ beq _080D44EA
+ ldr r1, _080D4528 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r5, 0x32]
+ mov r0, sp
+ ldrh r0, [r0, 0x10]
+ strh r0, [r5, 0x34]
+ asrs r4, r6, 16
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Cos
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl Sin
+ strh r0, [r5, 0x38]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r5, 0x3A]
+ movs r0, 0x2
+ strh r0, [r5, 0x3C]
+ ldrh r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D44E4
+ adds r0, r5, 0
+ bl sub_80D452C
+_080D44E4:
+ ldrh r0, [r7, 0xC]
+ adds r0, 0x1
+ strh r0, [r7, 0xC]
+_080D44EA:
+ mov r1, r8
+ lsls r0, r1, 1
+ asrs r1, r6, 16
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ add r0, r8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ str r1, [sp, 0x4]
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D4482
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4520: .4byte gUnknown_0202F7C8
+_080D4524: .4byte gSpriteTemplate_83D9378
+_080D4528: .4byte gSprites
+ thumb_func_end sub_80D4418
+
+ thumb_func_start sub_80D452C
+sub_80D452C: @ 80D452C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D453E
+ cmp r0, 0x1
+ beq _080D4574
+ b _080D45CE
+_080D453E:
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ strh r1, [r4, 0x36]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D4574:
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x20]
+ lsls r1, 16
+ asrs r2, r1, 20
+ strh r2, [r4, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D45AA
+ adds r1, r2, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D45AA
+ cmp r1, 0x78
+ ble _080D45CE
+_080D45AA:
+ ldr r3, _080D45D4 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D45CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D45D4: .4byte gTasks
+ thumb_func_end sub_80D452C
+
+ thumb_func_start sub_80D45D8
+sub_80D45D8: @ 80D45D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4608 @ =gTasks
+ adds r4, r1, r0
+ bl sub_80D4394
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldr r0, _080D460C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D4610
+ movs r0, 0x88
+ strh r0, [r4, 0x10]
+ movs r0, 0x28
+ b _080D4616
+ .align 2, 0
+_080D4608: .4byte gTasks
+_080D460C: .4byte gUnknown_0202F7C8
+_080D4610:
+ movs r0, 0x10
+ strh r0, [r4, 0x10]
+ movs r0, 0x50
+_080D4616:
+ strh r0, [r4, 0x14]
+ movs r0, 0x62
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x31
+ strh r0, [r4, 0x16]
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, 0x5
+ strh r0, [r4, 0x20]
+ ldr r0, _080D4638 @ =sub_80D463C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4638: .4byte sub_80D463C
+ thumb_func_end sub_80D45D8
+
+ thumb_func_start sub_80D463C
+sub_80D463C: @ 80D463C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r7, _080D4660 @ =gTasks
+ adds r4, r0, r7
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _080D4664
+ cmp r2, 0x1
+ beq _080D4714
+ b _080D4722
+ .align 2, 0
+_080D4660: .4byte gTasks
+_080D4664:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D467A
+ strh r2, [r4, 0xC]
+ adds r0, r4, 0
+ bl sub_80D472C
+_080D467A:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D46F4
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D46F4
+ ldr r5, _080D4708 @ =gUnknown_03004B00
+ movs r1, 0x1
+ mov r8, r1
+ mov r2, r8
+ strh r2, [r5]
+ strh r0, [r5, 0x2]
+ movs r0, 0xC
+ strh r0, [r5, 0x4]
+ ldr r6, _080D470C @ =sub_80E1864
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46C4
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46C4:
+ movs r0, 0x3
+ strh r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080D46F0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ ldr r1, _080D4710 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080D46F0:
+ mov r0, r8
+ strh r0, [r4, 0x22]
+_080D46F4:
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _080D4722
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4722
+ .align 2, 0
+_080D4708: .4byte gUnknown_03004B00
+_080D470C: .4byte sub_80E1864
+_080D4710: .4byte gUnknown_0202F7B2
+_080D4714:
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D4722
+ adds r0, r1, 0
+ bl move_anim_task_del
+_080D4722:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D463C
+
+ thumb_func_start sub_80D472C
+sub_80D472C: @ 80D472C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080D47B8 @ =gSineTable
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x3
+ asrs r0, 4
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080D47BC @ =gSpriteTemplate_83D9378
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D4786
+ ldr r3, _080D47C0 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D47C4 @ =sub_80D47D0
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x38]
+ strh r6, [r0, 0x3A]
+ movs r1, 0x9
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+_080D4786:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x27
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x18]
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ ldr r0, _080D47C8 @ =0x41c64e6d
+ muls r0, r1
+ ldr r1, _080D47CC @ =0x00003039
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ ldrh r1, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D47B8: .4byte gSineTable
+_080D47BC: .4byte gSpriteTemplate_83D9378
+_080D47C0: .4byte gSprites
+_080D47C4: .4byte sub_80D47D0
+_080D47C8: .4byte 0x41c64e6d
+_080D47CC: .4byte 0x00003039
+ thumb_func_end sub_80D472C
+
+ thumb_func_start sub_80D47D0
+sub_80D47D0: @ 80D47D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D4866
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D4866
+ ldr r2, _080D486C @ =gTasks
+ movs r3, 0x3A
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x1C]
+ ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ cmp r0, 0x40
+ beq _080D4860
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D4874 @ =gSprites
+ adds r0, r4
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r3, 0x30
+ ldrsh r1, [r5, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r5, 0x3C]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D4878 @ =sub_80D487C
+ str r1, [r0]
+_080D4860:
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4866:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D486C: .4byte gTasks
+_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
+_080D4874: .4byte gSprites
+_080D4878: .4byte sub_80D487C
+ thumb_func_end sub_80D47D0
+
+ thumb_func_start sub_80D487C
+sub_80D487C: @ 80D487C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D48E8
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080D48E8
+ ldr r3, _080D48F0 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D48E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D48F0: .4byte gTasks
+ thumb_func_end sub_80D487C
+
+ thumb_func_start sub_80D48F4
+sub_80D48F4: @ 80D48F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D4978 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080D497C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D4938
+ movs r1, 0x1
+_080D4938:
+ strh r1, [r5, 0x16]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D494C
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x16]
+_080D494C:
+ movs r2, 0x16
+ ldrsh r0, [r5, r2]
+ lsls r0, 3
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0x12]
+ movs r2, 0x16
+ ldrsh r1, [r5, r2]
+ lsls r1, 3
+ ldrh r0, [r5, 0x10]
+ subs r0, r1
+ strh r0, [r5, 0x14]
+ ldr r0, _080D4980 @ =0x0000ffe0
+ strh r0, [r5, 0x1A]
+ strh r6, [r5, 0xA]
+ strh r6, [r5, 0x8]
+ ldr r0, _080D4984 @ =sub_80D4988
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4978: .4byte gTasks
+_080D497C: .4byte gUnknown_0202F7C8
+_080D4980: .4byte 0x0000ffe0
+_080D4984: .4byte sub_80D4988
+ thumb_func_end sub_80D48F4
+
+ thumb_func_start sub_80D4988
+sub_80D4988: @ 80D4988
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D49AC @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D49A2
+ b _080D4AC2
+_080D49A2:
+ lsls r0, 2
+ ldr r1, _080D49B0 @ =_080D49B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D49AC: .4byte gTasks
+_080D49B0: .4byte _080D49B4
+ .align 2, 0
+_080D49B4:
+ .4byte _080D49D0
+ .4byte _080D49E0
+ .4byte _080D49FA
+ .4byte _080D4A3C
+ .4byte _080D4A5E
+ .4byte _080D4A8C
+ .4byte _080D4AB2
+_080D49D0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D4AC8
+ b _080D4ABA
+_080D49E0:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D4AC8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D49FA:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ adds r1, r0
+ movs r2, 0
+ strh r1, [r4, 0x12]
+ adds r1, 0x10
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D4A38
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ strh r2, [r4, 0xA]
+ b _080D4AC8
+_080D4A38:
+ strh r2, [r4, 0xA]
+ b _080D4ABA
+_080D4A3C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ b _080D4ABA
+_080D4A5E:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x12]
+ adds r0, 0x10
+ lsls r0, 16
+ movs r1, 0x88
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D4AC8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D4ABA
+_080D4A8C:
+ adds r0, r4, 0
+ bl sub_80D4AD0
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x14]
+ subs r0, r1
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080D4AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AB2:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D4AC8
+_080D4ABA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D4AC8
+_080D4AC2:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D4AC8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4988
+
+ thumb_func_start sub_80D4AD0
+sub_80D4AD0: @ 80D4AD0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D4B2A
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ movs r3, 0x10
+ ldrsh r2, [r6, r3]
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D4B2A
+ ldr r5, _080D4B34 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r6, 0x12]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r6, 0x1A]
+ strh r1, [r0, 0x38]
+ bl sub_80786EC
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080D4B38 @ =sub_80D4B3C
+ str r0, [r4]
+ ldrh r0, [r6, 0x18]
+ adds r0, 0x1
+ strh r0, [r6, 0x18]
+_080D4B2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B30: .4byte gSpriteTemplate_83D9378
+_080D4B34: .4byte gSprites
+_080D4B38: .4byte sub_80D4B3C
+ thumb_func_end sub_80D4AD0
+
+ thumb_func_start sub_80D4B3C
+sub_80D4B3C: @ 80D4B3C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4B96
+ ldrh r0, [r6, 0x24]
+ ldrh r1, [r6, 0x20]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrh r0, [r6, 0x26]
+ ldrh r1, [r6, 0x22]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ movs r0, 0x6
+ strh r0, [r6, 0x2E]
+ bl Random
+ movs r4, 0x1F
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r5, _080D4B9C @ =0x0000fff0
+ adds r1, r5
+ ldrh r0, [r6, 0x20]
+ adds r1, r0
+ strh r1, [r6, 0x32]
+ bl Random
+ ands r4, r0
+ adds r4, r5
+ ldrh r1, [r6, 0x22]
+ adds r4, r1
+ strh r4, [r6, 0x36]
+ bl Random
+ movs r1, 0x7
+ ands r1, r0
+ mvns r1, r1
+ strh r1, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080D4BA0 @ =sub_80D4BA4
+ str r0, [r6, 0x1C]
+_080D4B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4B9C: .4byte 0x0000fff0
+_080D4BA0: .4byte sub_80D4BA4
+ thumb_func_end sub_80D4B3C
+
+ thumb_func_start sub_80D4BA4
+sub_80D4BA4: @ 80D4BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4BE0
+ movs r4, 0
+ ldr r6, _080D4BE8 @ =gTasks
+_080D4BB6:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r6
+ ldr r1, [r2]
+ ldr r0, _080D4BEC @ =sub_80D4988
+ cmp r1, r0
+ bne _080D4BD6
+ movs r0, 0x1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x18]
+ subs r0, 0x1
+ strh r0, [r2, 0x18]
+ adds r0, r5, 0
+ bl DestroySprite
+_080D4BD6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080D4BB6
+_080D4BE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4BE8: .4byte gTasks
+_080D4BEC: .4byte sub_80D4988
+ thumb_func_end sub_80D4BA4
+
+ thumb_func_start sub_80D4BF0
+sub_80D4BF0: @ 80D4BF0
+ ldr r2, _080D4C10 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r0, 0x20]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x22]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0x2E]
+ ldrh r1, [r2, 0x6]
+ strh r1, [r0, 0x30]
+ ldrh r1, [r2, 0x8]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0, 0x34]
+ ldr r1, _080D4C14 @ =sub_80D4C18
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D4C10: .4byte gUnknown_03004B00
+_080D4C14: .4byte sub_80D4C18
+ thumb_func_end sub_80D4BF0
+
+ thumb_func_start sub_80D4C18
+sub_80D4C18: @ 80D4C18
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C5C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4C5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C18
+
+ thumb_func_start sub_80D4C64
+sub_80D4C64: @ 80D4C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 23
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D4C9C
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D4C9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4C64
+
+ thumb_func_start sub_80D4CA4
+sub_80D4CA4: @ 80D4CA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D4CE0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r1, _080D4CE4 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldr r0, _080D4CE8 @ =sub_80D4CEC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4CE0: .4byte gUnknown_0202F7C9
+_080D4CE4: .4byte gUnknown_03004B00
+_080D4CE8: .4byte sub_80D4CEC
+ thumb_func_end sub_80D4CA4
+
+ thumb_func_start sub_80D4CEC
+sub_80D4CEC: @ 80D4CEC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ subs r6, r1, r0
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ subs r5, r1, r0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ muls r0, r5
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080D4D44
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80D4D64
+_080D4D44:
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D4D56
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D4D56:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4CEC
+
+ thumb_func_start sub_80D4D64
+sub_80D4D64: @ 80D4D64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r4, r1, 0
+ adds r5, r2, 0
+ movs r2, 0x2E
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ lsls r1, 15
+ lsrs r1, 16
+ str r1, [sp]
+ ldrh r1, [r0, 0x24]
+ ldrh r3, [r0, 0x20]
+ adds r1, r3
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, r5, r0
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ bl Random
+ negs r4, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0
+ subs r4, 0x5
+ lsls r4, 16
+ lsrs r7, r4, 16
+ movs r6, 0
+ mov r0, r8
+ lsls r0, 16
+ mov r8, r0
+ mov r1, r10
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ ldr r2, [sp]
+ lsls r2, 16
+ str r2, [sp, 0x10]
+ asrs r1, 16
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ str r0, [sp, 0x14]
+ negs r3, r5
+ str r3, [sp, 0x4]
+ asrs r0, r2, 16
+ adds r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4DF2:
+ ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4E38 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4E3C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ bge _080D4E40
+ mov r1, sp
+ ldrh r1, [r1, 0x4]
+ strh r1, [r4, 0x32]
+ b _080D4E42
+ .align 2, 0
+_080D4E34: .4byte gSpriteTemplate_83D9420
+_080D4E38: .4byte gSprites
+_080D4E3C: .4byte gUnknown_0202F7C8
+_080D4E40:
+ strh r7, [r4, 0x32]
+_080D4E42:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4DF2
+ movs r6, 0
+ ldr r3, [sp, 0xC]
+ asrs r1, r3, 16
+ ldr r0, [sp, 0x14]
+ asrs r5, r0, 16
+ negs r2, r5
+ str r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ asrs r0, r3, 16
+ subs r1, r0
+ lsls r1, 16
+ mov r10, r1
+_080D4E68:
+ ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420
+ mov r2, r8
+ asrs r1, r2, 16
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0x82
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080D4EB0 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ mov r0, r9
+ strh r0, [r4, 0x30]
+ ldr r0, _080D4EB4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ cmp r5, 0
+ ble _080D4EB8
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ b _080D4EBA
+ .align 2, 0
+_080D4EAC: .4byte gSpriteTemplate_83D9420
+_080D4EB0: .4byte gSprites
+_080D4EB4: .4byte gUnknown_0202F7C8
+_080D4EB8:
+ strh r7, [r4, 0x32]
+_080D4EBA:
+ lsls r0, r6, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r6, r0, 16
+ cmp r0, 0
+ ble _080D4E68
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4D64
+
+ thumb_func_start sub_80D4ED8
+sub_80D4ED8: @ 80D4ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4F0C @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D4F10 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D4F14 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F0C: .4byte gUnknown_03004B00
+_080D4F10: .4byte move_anim_8072740
+_080D4F14: .4byte sub_8078174
+ thumb_func_end sub_80D4ED8
+
+ thumb_func_start sub_80D4F18
+sub_80D4F18: @ 80D4F18
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D4F50 @ =gUnknown_03004B00
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x32]
+ ldr r0, _080D4F54 @ =sub_8078394
+ str r0, [r4, 0x1C]
+ ldr r1, _080D4F58 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4F50: .4byte gUnknown_03004B00
+_080D4F54: .4byte sub_8078394
+_080D4F58: .4byte move_anim_8072740
+ thumb_func_end sub_80D4F18
+
+ thumb_func_start sub_80D4F5C
+sub_80D4F5C: @ 80D4F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D4F90 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D4F98
+ ldr r2, _080D4F94 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D4FAE
+ .align 2, 0
+_080D4F90: .4byte gUnknown_0202F7C8
+_080D4F94: .4byte gUnknown_03004B00
+_080D4F98:
+ ldr r1, _080D4FC4 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+_080D4FAE:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D4FC8 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4FC4: .4byte gUnknown_03004B00
+_080D4FC8: .4byte sub_80D5038
+ thumb_func_end sub_80D4F5C
+
+ thumb_func_start sub_80D4FCC
+sub_80D4FCC: @ 80D4FCC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D4FF8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5000
+ ldr r2, _080D4FFC @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ adds r1, r2, 0
+ b _080D5018
+ .align 2, 0
+_080D4FF8: .4byte gUnknown_0202F7C8
+_080D4FFC: .4byte gUnknown_03004B00
+_080D5000:
+ ldr r1, _080D5030 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x32]
+_080D5018:
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080D5034 @ =sub_80D5038
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5030: .4byte gUnknown_03004B00
+_080D5034: .4byte sub_80D5038
+ thumb_func_end sub_80D4FCC
+
+ thumb_func_start sub_80D5038
+sub_80D5038: @ 80D5038
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _080D505E
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r0, r3
+ strh r0, [r2, 0x26]
+_080D505E:
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080D5070
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D5070:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5038
+
+ thumb_func_start sub_80D5074
+sub_80D5074: @ 80D5074
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r0, _080D5098 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D50A0
+ ldr r0, _080D509C @ =gUnknown_03004B00
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D50B2
+ .align 2, 0
+_080D5098: .4byte gUnknown_0202F7C8
+_080D509C: .4byte gUnknown_03004B00
+_080D50A0:
+ ldr r0, _080D50E0 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ adds r2, r4, 0
+ adds r2, 0x43
+ movs r1, 0x8
+ strb r1, [r2]
+_080D50B2:
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r2, 0xC]
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ ldr r0, _080D50E4 @ =sub_80D50E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D50E0: .4byte gUnknown_03004B00
+_080D50E4: .4byte sub_80D50E8
+ thumb_func_end sub_80D5074
+
+ thumb_func_start sub_80D50E8
+sub_80D50E8: @ 80D50E8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5170
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ ldr r0, _080D5154 @ =0x00002710
+ cmp r1, r0
+ ble _080D5106
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+_080D5106:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r2, [r4, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D515C
+ ldr r2, _080D5158 @ =0xffffff00
+ b _080D5164
+ .align 2, 0
+_080D5154: .4byte 0x00002710
+_080D5158: .4byte 0xffffff00
+_080D515C:
+ cmp r0, 0
+ bge _080D5168
+ movs r2, 0x80
+ lsls r2, 1
+_080D5164:
+ adds r0, r1, r2
+ strh r0, [r4, 0x2E]
+_080D5168:
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _080D5176
+_080D5170:
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D5176:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D50E8
+
+ thumb_func_start sub_80D517C
+sub_80D517C: @ 80D517C
+ push {lr}
+ movs r1, 0
+ strh r1, [r0, 0x20]
+ strh r1, [r0, 0x22]
+ movs r1, 0x3C
+ strh r1, [r0, 0x2E]
+ movs r1, 0x8C
+ strh r1, [r0, 0x32]
+ movs r1, 0x50
+ strh r1, [r0, 0x36]
+ ldr r1, _080D51A0 @ =sub_8078B34
+ str r1, [r0, 0x1C]
+ ldr r1, _080D51A4 @ =move_anim_8072740
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D51A0: .4byte sub_8078B34
+_080D51A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D517C
+
+ thumb_func_start sub_80D51A8
+sub_80D51A8: @ 80D51A8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D5200 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080D5204 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080D51EE
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _080D51E6
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080D51EE
+_080D51E6:
+ ldr r1, _080D5208 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D51EE:
+ ldr r1, _080D520C @ =sub_8079534
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5200: .4byte gUnknown_0202F7C8
+_080D5204: .4byte gUnknown_0202F7C9
+_080D5208: .4byte gUnknown_03004B00
+_080D520C: .4byte sub_8079534
+ thumb_func_end sub_80D51A8
+
+ thumb_func_start sub_80D5210
+sub_80D5210: @ 80D5210
+ ldr r2, _080D5224 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ negs r1, r1
+ strh r1, [r2]
+ ldrh r1, [r2, 0x4]
+ negs r1, r1
+ strh r1, [r2, 0x4]
+ ldr r1, _080D5228 @ =sub_8079534
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080D5224: .4byte gUnknown_03004B00
+_080D5228: .4byte sub_8079534
+ thumb_func_end sub_80D5210
+
+ thumb_func_start sub_80D522C
+sub_80D522C: @ 80D522C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D524C @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x2E]
+ ldr r0, _080D5250 @ =sub_80D5254
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D524C: .4byte gUnknown_03004B00
+_080D5250: .4byte sub_80D5254
+ thumb_func_end sub_80D522C
+
+ thumb_func_start sub_80D5254
+sub_80D5254: @ 80D5254
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x12
+ bne _080D529E
+ movs r0, 0x19
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080D52A4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D52A8 @ =sub_80D52AC
+ str r0, [r5, 0x1C]
+_080D529E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D52A4: .4byte gUnknown_0202F7C9
+_080D52A8: .4byte sub_80D52AC
+ thumb_func_end sub_80D5254
+
+ thumb_func_start sub_80D52AC
+sub_80D52AC: @ 80D52AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D52F4
+ movs r4, 0
+ strh r4, [r6, 0x2E]
+ ldr r5, _080D52EC @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r4, [r6, 0x26]
+ strh r4, [r6, 0x24]
+ ldr r1, _080D52F0 @ =sub_80D5324
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080D531E
+ .align 2, 0
+_080D52EC: .4byte gUnknown_0202F7C9
+_080D52F0: .4byte sub_80D5324
+_080D52F4:
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Sin
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1C
+ bl Cos
+ ldrh r1, [r6, 0x26]
+ adds r0, r1
+ strh r0, [r6, 0x26]
+ ldrh r0, [r6, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0x3C]
+_080D531E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D52AC
+
+ thumb_func_start sub_80D5324
+sub_80D5324: @ 80D5324
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D5348
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5340
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5340:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5324
+
+ thumb_func_start sub_80D5348
+sub_80D5348: @ 80D5348
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1C
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5348
+
+ thumb_func_start sub_80D5374
+sub_80D5374: @ 80D5374
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D53A8 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldr r1, _080D53AC @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D53B0 @ =sub_8078364
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53A8: .4byte gUnknown_03004B00
+_080D53AC: .4byte move_anim_8072740
+_080D53B0: .4byte sub_8078364
+ thumb_func_end sub_80D5374
+
+ thumb_func_start sub_80D53B4
+sub_80D53B4: @ 80D53B4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D53E8 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080D53EC @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D53F0 @ =sub_80D53F4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D53E8: .4byte gUnknown_03004B00
+_080D53EC: .4byte sub_80782D8
+_080D53F0: .4byte sub_80D53F4
+ thumb_func_end sub_80D53B4
+
+ thumb_func_start sub_80D53F4
+sub_80D53F4: @ 80D53F4
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3]
+ ldrh r1, [r0, 0x30]
+ movs r2, 0
+ strh r1, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ ldr r1, _080D5418 @ =sub_80D541C
+ str r1, [r0, 0x1C]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5418: .4byte sub_80D541C
+ thumb_func_end sub_80D53F4
+
+ thumb_func_start sub_80D541C
+sub_80D541C: @ 80D541C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0xD0
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D5468
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5468:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D541C
+
+ thumb_func_start sub_80D5470
+sub_80D5470: @ 80D5470
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080D54D0 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r2, _080D54D4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x10]
+ ldr r0, _080D54D8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _080D54DC @ =sub_80D54E0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D54D0: .4byte gTasks
+_080D54D4: .4byte gSprites
+_080D54D8: .4byte gUnknown_0202F7C8
+_080D54DC: .4byte sub_80D54E0
+ thumb_func_end sub_80D5470
+
+ thumb_func_start sub_80D54E0
+sub_80D54E0: @ 80D54E0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080D5508 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bls _080D54FC
+ b _080D57BA
+_080D54FC:
+ lsls r0, 2
+ ldr r1, _080D550C @ =_080D5510
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D5508: .4byte gTasks
+_080D550C: .4byte _080D5510
+ .align 2, 0
+_080D5510:
+ .4byte _080D552C
+ .4byte _080D5552
+ .4byte _080D5604
+ .4byte _080D5664
+ .4byte _080D5682
+ .4byte _080D5758
+ .4byte _080D57AC
+_080D552C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 1
+ movs r0, 0xE0
+ str r0, [sp]
+ movs r0, 0x80
+ lsls r0, 2
+ str r0, [sp, 0x4]
+ movs r0, 0x20
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r2, r3, 0
+ bl sub_8079C08
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D5552:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D559A
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5588
+ ldr r2, _080D5584 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ b _080D5598
+ .align 2, 0
+_080D5584: .4byte gSprites
+_080D5588:
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080D5600 @ =0x0000fffd
+_080D5598:
+ strh r1, [r0, 0x24]
+_080D559A:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D55C8
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D55C8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x1
+ strh r1, [r0, 0x22]
+_080D55C8:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080D55D8
+ b _080D57BA
+_080D55D8:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079A64
+ ldr r2, _080D55FC @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D55FC: .4byte gSprites
+_080D5600: .4byte 0x0000fffd
+_080D5604:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080D5614
+ b _080D57BA
+_080D5614:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D563E
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xF0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+ b _080D565E
+_080D563E:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r3, 0x80
+ lsls r3, 2
+ movs r0, 0xC0
+ lsls r0, 1
+ str r0, [sp]
+ movs r0, 0xC0
+ str r0, [sp, 0x4]
+ movs r0, 0x6
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r2, 0xE0
+ bl sub_8079C08
+_080D565E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080D57A0
+_080D5664:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5672
+ b _080D57BA
+_080D5672:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80D57C4
+ b _080D57A0
+_080D5682:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D56D0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D56BC
+ ldr r2, _080D56B8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x3
+ b _080D56CE
+ .align 2, 0
+_080D56B8: .4byte gSprites
+_080D56BC:
+ ldr r2, _080D5708 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+_080D56CE:
+ strh r1, [r0, 0x26]
+_080D56D0:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _080D57BA
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D570C
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xF0
+ bl sub_8079C08
+ b _080D572A
+ .align 2, 0
+_080D5708: .4byte gSprites
+_080D570C:
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xC0
+ lsls r2, 1
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x8
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r3, 0xC0
+ bl sub_8079C08
+_080D572A:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5748
+ ldr r2, _080D5754 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x3
+ strh r1, [r0, 0x26]
+_080D5748:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ b _080D57A0
+ .align 2, 0
+_080D5754: .4byte gSprites
+_080D5758:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D5774
+ ldr r2, _080D57A8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_080D5774:
+ adds r0, r4, 0
+ bl sub_8079C74
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080D57BA
+ ldr r2, _080D57A8 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0, 0x22]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ strh r5, [r4, 0xC]
+_080D57A0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D57BA
+ .align 2, 0
+_080D57A8: .4byte gSprites
+_080D57AC:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D57BA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080D57BA:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D54E0
+
+ thumb_func_start sub_80D57C4
+sub_80D57C4: @ 80D57C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80D5940
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r1, _080D5814 @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r4, [r0, 0x20]
+ ldr r0, _080D5818 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D581C
+ adds r0, r4, 0
+ subs r0, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ b _080D5826
+ .align 2, 0
+_080D5814: .4byte gSprites
+_080D5818: .4byte gUnknown_0202F7C8
+_080D581C:
+ adds r0, r4, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xFF
+_080D5826:
+ movs r6, 0
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x4]
+ ldr r2, _080D58E0 @ =gUnknown_083D96DC
+ mov r9, r2
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r3, r8
+ lsls r3, 1
+ mov r10, r3
+_080D5844:
+ ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x4]
+ asrs r2, r3, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D58C6
+ ldr r1, _080D58E8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ lsls r0, r5, 2
+ adds r0, 0x40
+ adds r1, r0
+ ldr r3, _080D58EC @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r3, _080D58F0 @ =0xfffffc00
+ adds r0, r3, 0
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r4, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080D588E
+ movs r5, 0
+_080D588E:
+ lsls r2, r6, 2
+ mov r1, r9
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ ldr r3, [sp]
+ adds r1, r0, 0
+ muls r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2
+ adds r2, r0
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r0, r4, 0
+ bl sub_80D5994
+ strh r7, [r4, 0x3A]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ add r0, r10
+ ldr r1, _080D58F8 @ =gTasks + 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+_080D58C6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x6
+ bls _080D5844
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D58E0: .4byte gUnknown_083D96DC
+_080D58E4: .4byte gSpriteTemplate_83D96C4
+_080D58E8: .4byte gSprites
+_080D58EC: .4byte 0x000003ff
+_080D58F0: .4byte 0xfffffc00
+_080D58F4: .4byte gUnknown_083D96DC + 0x2
+_080D58F8: .4byte gTasks + 0x8
+ thumb_func_end sub_80D57C4
+
+ thumb_func_start sub_80D58FC
+sub_80D58FC: @ 80D58FC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D59B0
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5936
+ ldr r3, _080D593C @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D5936:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D593C: .4byte gTasks
+ thumb_func_end sub_80D58FC
+
+ thumb_func_start sub_80D5940
+sub_80D5940: @ 80D5940
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D5978 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x26]
+ ldrh r0, [r1, 0x22]
+ adds r2, r0
+ adds r1, 0x29
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080D597C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5980
+ lsls r0, r4, 16
+ movs r1, 0x94
+ lsls r1, 15
+ b _080D5986
+ .align 2, 0
+_080D5978: .4byte gSprites
+_080D597C: .4byte gUnknown_0202F7C8
+_080D5980:
+ lsls r0, r4, 16
+ movs r1, 0xB0
+ lsls r1, 14
+_080D5986:
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D5940
+
+ thumb_func_start sub_80D5994
+sub_80D5994: @ 80D5994
+ movs r3, 0
+ strh r3, [r0, 0x2E]
+ strh r3, [r0, 0x30]
+ ldrh r3, [r0, 0x20]
+ lsls r3, 3
+ strh r3, [r0, 0x32]
+ ldrh r3, [r0, 0x22]
+ lsls r3, 3
+ strh r3, [r0, 0x34]
+ lsls r1, 3
+ strh r1, [r0, 0x36]
+ lsls r2, 3
+ strh r2, [r0, 0x38]
+ bx lr
+ thumb_func_end sub_80D5994
+
+ thumb_func_start sub_80D59B0
+sub_80D59B0: @ 80D59B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D59DA
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r3, [r2, 0x34]
+ adds r0, r3
+ strh r0, [r2, 0x34]
+_080D59DA:
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r1, 16
+ asrs r3, r1, 19
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D5A10
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D5A10
+ cmp r1, 0x78
+ ble _080D5A1C
+_080D5A10:
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080D5A1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D59B0
+
+ thumb_func_start sub_80D5A20
+sub_80D5A20: @ 80D5A20
+ push {r4,r5,lr}
+ ldr r3, _080D5A64 @ =gUnknown_03004B00
+ ldrh r1, [r3]
+ movs r2, 0
+ strh r1, [r0, 0x20]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x2E]
+ strh r2, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0, 0x3A]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r0, 0x3C]
+ ldrh r4, [r0, 0x4]
+ lsls r2, r4, 22
+ lsrs r2, 22
+ movs r5, 0x8
+ ldrsh r1, [r3, r5]
+ lsls r1, 4
+ adds r2, r1
+ ldr r3, _080D5A68 @ =0x000003ff
+ adds r1, r3, 0
+ ands r2, r1
+ ldr r1, _080D5A6C @ =0xfffffc00
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r1, _080D5A70 @ =sub_80D5A74
+ str r1, [r0, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5A64: .4byte gUnknown_03004B00
+_080D5A68: .4byte 0x000003ff
+_080D5A6C: .4byte 0xfffffc00
+_080D5A70: .4byte sub_80D5A74
+ thumb_func_end sub_80D5A20
+
+ thumb_func_start sub_80D5A74
+sub_80D5A74: @ 80D5A74
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080D5AA6
+ cmp r0, 0x1
+ bgt _080D5A8A
+ cmp r0, 0
+ beq _080D5A90
+ b _080D5B04
+_080D5A8A:
+ cmp r0, 0x2
+ beq _080D5AC4
+ b _080D5B04
+_080D5A90:
+ ldrh r1, [r2, 0x3A]
+ movs r3, 0x3A
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080D5AA0
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x3A]
+ b _080D5B04
+_080D5AA0:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080D5AA6:
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x3C]
+ movs r4, 0x3C
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080D5B04
+ strh r3, [r2, 0x22]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _080D5B04
+_080D5AC4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5AF0
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5AEC
+ ldr r0, _080D5AE8 @ =0x0000fffd
+ b _080D5AEE
+ .align 2, 0
+_080D5AE8: .4byte 0x0000fffd
+_080D5AEC:
+ movs r0, 0x3
+_080D5AEE:
+ strh r0, [r2, 0x26]
+_080D5AF0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D5B04
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D5B04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5A74
+
+ thumb_func_start sub_80D5B0C
+sub_80D5B0C: @ 80D5B0C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D5B80
+ cmp r0, 0x1
+ bgt _080D5B22
+ cmp r0, 0
+ beq _080D5B28
+ b _080D5C4E
+_080D5B22:
+ cmp r0, 0x2
+ beq _080D5BDE
+ b _080D5C4E
+_080D5B28:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldr r4, _080D5B50 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D5B54 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5B58
+ movs r0, 0x4
+ b _080D5B5A
+ .align 2, 0
+_080D5B50: .4byte gUnknown_03004B00
+_080D5B54: .4byte gUnknown_0202F7C8
+_080D5B58:
+ ldr r0, _080D5B78 @ =0x0000fffc
+_080D5B5A:
+ strh r0, [r5, 0x36]
+ ldr r0, _080D5B7C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080D5BD6
+ .align 2, 0
+_080D5B78: .4byte 0x0000fffc
+_080D5B7C: .4byte gUnknown_0202F7C9
+_080D5B80:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldr r0, _080D5BA0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D5BA4
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D5BAA
+ .align 2, 0
+_080D5BA0: .4byte gUnknown_0202F7C8
+_080D5BA4:
+ ldrh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_080D5BAA:
+ strh r0, [r5, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080D5C4E
+ movs r0, 0
+ strh r0, [r5, 0x34]
+_080D5BD6:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D5C4E
+_080D5BDE:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r2, r0, 0
+ movs r3, 0
+ strh r2, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080D5C4E
+ ldrh r0, [r5, 0x20]
+ adds r1, r2, r0
+ strh r1, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r3, [r5, 0x26]
+ strh r3, [r5, 0x24]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x2E]
+ strh r1, [r5, 0x30]
+ ldr r4, _080D5C54 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080D5C58 @ =sub_80D5C5C
+ str r0, [r5, 0x1C]
+_080D5C4E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5C54: .4byte gUnknown_0202F7C9
+_080D5C58: .4byte sub_80D5C5C
+ thumb_func_end sub_80D5B0C
+
+ thumb_func_start sub_80D5C5C
+sub_80D5C5C: @ 80D5C5C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D5CB4
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x4
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080D5C92
+ cmp r2, 0xC4
+ ble _080D5CBA
+_080D5C92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D5CBA
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D5CBA
+ ldr r0, _080D5CB0 @ =gUnknown_0202F7D2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x90
+ bl PlaySE12WithPanning
+ b _080D5CBA
+ .align 2, 0
+_080D5CB0: .4byte gUnknown_0202F7D2
+_080D5CB4:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5C5C
+
+ thumb_func_start sub_80D5CC0
+sub_80D5CC0: @ 80D5CC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D5CD8
+ ldr r0, _080D5D4C @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_080D5CD8:
+ movs r0, 0xC0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0xA0
+ strh r0, [r4, 0x36]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x7
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x30]
+ ldr r0, _080D5D50 @ =gMain
+ ldr r1, _080D5D54 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5D84
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D5C
+ ldr r0, _080D5D58 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D4C: .4byte gUnknown_03004B00
+_080D5D50: .4byte gMain
+_080D5D54: .4byte 0x0000043d
+_080D5D58: .4byte gUnknown_0202F7C9
+_080D5D5C:
+ ldr r0, _080D5D80 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080D5DA0
+ .align 2, 0
+_080D5D80: .4byte gUnknown_0202F7C9
+_080D5D84:
+ adds r0, r2, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x83
+ bls _080D5D98
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1D
+ b _080D5D9E
+_080D5D98:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1F
+_080D5D9E:
+ strb r0, [r1]
+_080D5DA0:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080D5DC8
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+_080D5DC8:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1E
+ bne _080D5DD6
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D5DD6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D5CC0
+
+ thumb_func_start sub_80D5DDC
+sub_80D5DDC: @ 80D5DDC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D5E3C @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080D5E40 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D5E02
+ movs r1, 0x1
+_080D5E02:
+ strh r1, [r4, 0x20]
+ ldr r0, _080D5E44 @ =gUnknown_0202F7C9
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0x3
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _080D5E48 @ =sub_80D5E4C
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D5E3C: .4byte gTasks
+_080D5E40: .4byte gUnknown_0202F7C8
+_080D5E44: .4byte gUnknown_0202F7C9
+_080D5E48: .4byte sub_80D5E4C
+ thumb_func_end sub_80D5DDC
+
+ thumb_func_start sub_80D5E4C
+sub_80D5E4C: @ 80D5E4C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D5E70 @ =gTasks
+ adds r2, r0, r1
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ cmp r3, 0x1
+ beq _080D5F14
+ cmp r3, 0x1
+ bgt _080D5E74
+ cmp r3, 0
+ beq _080D5E82
+ b _080D6074
+ .align 2, 0
+_080D5E70: .4byte gTasks
+_080D5E74:
+ cmp r3, 0x2
+ bne _080D5E7A
+ b _080D5F9C
+_080D5E7A:
+ cmp r3, 0x3
+ bne _080D5E80
+ b _080D6030
+_080D5E80:
+ b _080D6074
+_080D5E82:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5EB4
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5EB0
+ movs r0, 0x2
+ b _080D5EB2
+_080D5EB0:
+ ldr r0, _080D5F0C @ =0x0000fffe
+_080D5EB2:
+ strh r0, [r2, 0x1E]
+_080D5EB4:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5EF6
+ ldr r4, _080D5F10 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5EC6:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5EC6
+_080D5EF6:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ beq _080D5F06
+ b _080D6074
+_080D5F06:
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F0C: .4byte 0x0000fffe
+_080D5F10: .4byte gSprites
+_080D5F14:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D5F3C
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ands r0, r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D5F38
+ movs r0, 0x2
+ b _080D5F3A
+_080D5F38:
+ ldr r0, _080D5F94 @ =0x0000fffe
+_080D5F3A:
+ strh r0, [r2, 0x1E]
+_080D5F3C:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r7, 0x22
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080D5F7E
+ ldr r4, _080D5F98 @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5F4E:
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r7, [r2, 0x1C]
+ adds r0, r7
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r5, 0x22
+ ldrsh r1, [r2, r5]
+ cmp r0, r1
+ blt _080D5F4E
+_080D5F7E:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x60
+ bne _080D6074
+ movs r0, 0
+ strh r0, [r2, 0x1A]
+ b _080D6020
+ .align 2, 0
+_080D5F94: .4byte 0x0000fffe
+_080D5F98: .4byte gSprites
+_080D5F9C:
+ movs r7, 0x20
+ ldrsh r1, [r2, r7]
+ lsls r1, 1
+ ldrh r0, [r2, 0x1C]
+ subs r0, r1
+ strh r0, [r2, 0x1C]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D5FD0
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D5FCC
+ strh r3, [r2, 0x1E]
+ b _080D5FD0
+_080D5FCC:
+ ldr r0, _080D6028 @ =0x0000fffe
+ strh r0, [r2, 0x1E]
+_080D5FD0:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D6012
+ ldr r4, _080D602C @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+_080D5FE2:
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r2, 0x1E]
+ ldrh r5, [r2, 0x1C]
+ adds r0, r5
+ strh r0, [r1, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D5FE2
+_080D6012:
+ ldrh r0, [r2, 0x1A]
+ adds r0, 0x1
+ strh r0, [r2, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080D6074
+_080D6020:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080D6074
+ .align 2, 0
+_080D6028: .4byte 0x0000fffe
+_080D602C: .4byte gSprites
+_080D6030:
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bge _080D606E
+ ldr r6, _080D607C @ =gSprites
+ adds r3, r2, 0
+ adds r3, 0x8
+ movs r5, 0
+_080D6044:
+ movs r7, 0xE
+ ldrsh r0, [r2, r7]
+ adds r0, 0xE
+ lsls r0, 1
+ adds r0, r3, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x24]
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ movs r7, 0x22
+ ldrsh r1, [r2, r7]
+ cmp r0, r1
+ blt _080D6044
+_080D606E:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D6074:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D607C: .4byte gSprites
+ thumb_func_end sub_80D5E4C
+
+ thumb_func_start sub_80D6080
+sub_80D6080: @ 80D6080
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_8078914
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ lsls r0, 4
+ ldr r1, _080D60B0 @ =gUnknown_03004B00
+ ldrb r2, [r1]
+ ldrh r3, [r1, 0x2]
+ movs r1, 0x10
+ bl BlendPalette
+ adds r0, r4, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D60B0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D6080
+
+ thumb_func_start sub_80D60B4
+sub_80D60B4: @ 80D60B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080D610C @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r9, r1
+ ldr r4, _080D6110 @ =gUnknown_03004B00
+ mov r8, r4
+ cmp r0, 0
+ bne _080D60EA
+ ldrh r0, [r4]
+ strh r0, [r2, 0xA]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r2, 0x10]
+_080D60EA:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080D6114 @ =gUnknown_02024BE0
+ ldr r0, _080D6118 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r6, [r0]
+ movs r5, 0x10
+ ldrsh r0, [r2, r5]
+ cmp r0, 0
+ bne _080D6120
+ ldr r4, _080D611C @ =gUnknown_083D9794
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ b _080D6126
+ .align 2, 0
+_080D610C: .4byte gTasks
+_080D6110: .4byte gUnknown_03004B00
+_080D6114: .4byte gUnknown_02024BE0
+_080D6118: .4byte gUnknown_0202F7C9
+_080D611C: .4byte gUnknown_083D9794
+_080D6120:
+ ldr r4, _080D616C @ =gUnknown_083D97A4
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+_080D6126:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, r4
+ ldrb r5, [r0]
+ lsls r0, r7, 2
+ adds r1, r0, r7
+ lsls r1, 3
+ add r1, r9
+ movs r4, 0xE
+ ldrsh r1, [r1, r4]
+ mov r12, r0
+ cmp r1, 0x1
+ bne _080D6174
+ ldr r2, _080D6170 @ =gSprites
+ lsls r3, r6, 4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ mov r10, r0
+ mov r0, r8
+ movs r4, 0x2
+ ldrsh r1, [r0, r4]
+ lsls r0, r5, 24
+ asrs r0, 24
+ muls r0, r1
+ cmp r0, 0
+ bge _080D6164
+ negs r0, r0
+_080D6164:
+ mov r5, r10
+ strh r0, [r5, 0x26]
+ b _080D618E
+ .align 2, 0
+_080D616C: .4byte gUnknown_083D97A4
+_080D6170: .4byte gSprites
+_080D6174:
+ ldr r3, _080D61C4 @ =gSprites
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ lsls r0, r5, 24
+ asrs r0, 24
+ mov r5, r8
+ ldrh r1, [r5, 0x2]
+ muls r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_080D618E:
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r9
+ movs r4, 0x8
+ ldrsh r1, [r0, r4]
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080D61B4
+ adds r0, r3, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080D61B4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D61C4: .4byte gSprites
+ thumb_func_end sub_80D60B4
+
+ thumb_func_start sub_80D61C8
+sub_80D61C8: @ 80D61C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D61E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D61F0
+ ldr r0, _080D61EC @ =gUnknown_03004B00
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080D61FC
+ .align 2, 0
+_080D61E8: .4byte gUnknown_0202F7C8
+_080D61EC: .4byte gUnknown_03004B00
+_080D61F0:
+ ldr r1, _080D6210 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080D61FC:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6214 @ =sub_80D6218
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6210: .4byte gUnknown_03004B00
+_080D6214: .4byte sub_80D6218
+ thumb_func_end sub_80D61C8
+
+ thumb_func_start sub_80D6218
+sub_80D6218: @ 80D6218
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D622E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D622E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6218
+
+ thumb_func_start sub_80D6234
+sub_80D6234: @ 80D6234
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6254 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D625C
+ ldr r0, _080D6258 @ =gUnknown_03004B00
+ ldrh r1, [r4, 0x20]
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ b _080D6266
+ .align 2, 0
+_080D6254: .4byte gUnknown_0202F7C8
+_080D6258: .4byte gUnknown_03004B00
+_080D625C:
+ ldr r0, _080D6270 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+_080D6266:
+ ldr r0, _080D6274 @ =sub_80D6278
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6270: .4byte gUnknown_03004B00
+_080D6274: .4byte sub_80D6278
+ thumb_func_end sub_80D6234
+
+ thumb_func_start sub_80D6278
+sub_80D6278: @ 80D6278
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D628E
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080D628E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6278
+
+ thumb_func_start sub_80D6294
+sub_80D6294: @ 80D6294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D62D8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D62DC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D62E4
+ ldr r2, _080D62E0 @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ b _080D62F8
+ .align 2, 0
+_080D62D8: .4byte gUnknown_0202F7C9
+_080D62DC: .4byte gUnknown_0202F7C8
+_080D62E0: .4byte gUnknown_03004B00
+_080D62E4:
+ ldr r0, _080D631C @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r1, r2
+ strh r1, [r5, 0x22]
+ adds r2, r0, 0
+_080D62F8:
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x34]
+ ldr r1, _080D6320 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6324 @ =sub_8078114
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D631C: .4byte gUnknown_03004B00
+_080D6320: .4byte move_anim_8074EE0
+_080D6324: .4byte sub_8078114
+ thumb_func_end sub_80D6294
+
+ thumb_func_start sub_80D6328
+sub_80D6328: @ 80D6328
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6340 @ =gUnknown_03004B00
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080D63A0
+ cmp r0, 0x1
+ bgt _080D6344
+ cmp r0, 0
+ beq _080D634E
+ b _080D63A0
+ .align 2, 0
+_080D6340: .4byte gUnknown_03004B00
+_080D6344:
+ cmp r0, 0x2
+ beq _080D6358
+ cmp r0, 0x3
+ beq _080D637C
+ b _080D63A0
+_080D634E:
+ ldr r0, _080D6354 @ =gUnknown_0202F7C8
+ b _080D63A2
+ .align 2, 0
+_080D6354: .4byte gUnknown_0202F7C8
+_080D6358:
+ ldr r4, _080D6370 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6374
+ ldrb r4, [r4]
+ b _080D63A4
+ .align 2, 0
+_080D6370: .4byte gUnknown_0202F7C8
+_080D6374:
+ ldrb r0, [r4]
+ adds r4, r6, 0
+ eors r4, r0
+ b _080D63A4
+_080D637C:
+ ldr r0, _080D6398 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r4, 0x2
+ eors r0, r4
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D63A0
+ ldr r0, _080D639C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ eors r4, r0
+ b _080D63A4
+ .align 2, 0
+_080D6398: .4byte gUnknown_0202F7C8
+_080D639C: .4byte gUnknown_0202F7C9
+_080D63A0:
+ ldr r0, _080D63C4 @ =gUnknown_0202F7C9
+_080D63A2:
+ ldrb r4, [r0]
+_080D63A4:
+ ldr r0, _080D63C8 @ =gUnknown_03004B00
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080D63CC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _080D63DE
+ .align 2, 0
+_080D63C4: .4byte gUnknown_0202F7C9
+_080D63C8: .4byte gUnknown_03004B00
+_080D63CC:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ movs r1, 0x3
+_080D63DE:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r7, _080D647C @ =gSineTable
+ ldr r6, _080D6480 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r7
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r1, [r6, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D6442
+ adds r0, r4, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r5, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x5]
+_080D6442:
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ ldr r3, _080D6484 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r7
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D6488 @ =sub_80DA48C
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D647C: .4byte gSineTable
+_080D6480: .4byte gUnknown_03004B00
+_080D6484: .4byte gOamMatrices
+_080D6488: .4byte sub_80DA48C
+ thumb_func_end sub_80D6328
+
+ thumb_func_start sub_80D648C
+sub_80D648C: @ 80D648C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080D6500 @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r6, _080D6504 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x38]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x3C]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6508 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D650C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r1, _080D6510 @ =sub_80D6514
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6500: .4byte gUnknown_03004B00
+_080D6504: .4byte gUnknown_0202F7C9
+_080D6508: .4byte 0x000003ff
+_080D650C: .4byte 0xfffffc00
+_080D6510: .4byte sub_80D6514
+ thumb_func_end sub_80D648C
+
+ thumb_func_start sub_80D6514
+sub_80D6514: @ 80D6514
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D657E
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D6584
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+ b _080D6584
+_080D657E:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6584:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6514
+
+ thumb_func_start sub_80D658C
+sub_80D658C: @ 80D658C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x1
+ strh r0, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D65C4
+ 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]
+ ldrh r0, [r3, 0x36]
+ strh r0, [r3, 0x38]
+_080D65C4:
+ ldrh r0, [r3, 0x34]
+ subs r1, r0, 0x1
+ strh r1, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D65D6
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D65D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D658C
+
+ thumb_func_start sub_80D65DC
+sub_80D65DC: @ 80D65DC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D6644 @ =gMain
+ ldr r1, _080D6648 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D65FE
+ ldr r0, _080D664C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6606
+_080D65FE:
+ ldr r1, _080D6650 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080D6606:
+ ldr r5, _080D664C @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6650 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4]
+ strh r0, [r6, 0x34]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x36]
+ strh r0, [r6, 0x38]
+ ldr r0, _080D6654 @ =sub_80D658C
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6644: .4byte gMain
+_080D6648: .4byte 0x0000043d
+_080D664C: .4byte gUnknown_0202F7C9
+_080D6650: .4byte gUnknown_03004B00
+_080D6654: .4byte sub_80D658C
+ thumb_func_end sub_80D65DC
+
+ thumb_func_start sub_80D6658
+sub_80D6658: @ 80D6658
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r1, _080D6674 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D667C
+ ldr r0, _080D6678 @ =gUnknown_0202F7C9
+ b _080D667E
+ .align 2, 0
+_080D6674: .4byte gUnknown_03004B00
+_080D6678: .4byte gUnknown_0202F7C9
+_080D667C:
+ ldr r0, _080D670C @ =gUnknown_0202F7C8
+_080D667E:
+ ldrb r6, [r0]
+ ldr r0, _080D6710 @ =gMain
+ ldr r3, _080D6714 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D669C
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D66A4
+_080D669C:
+ ldr r1, _080D6718 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D66A4:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080D6718 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r1, [r4, 0xE]
+ ldr r0, _080D671C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x3C]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D6720 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D6724 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _080D6728 @ =sub_80D672C
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D670C: .4byte gUnknown_0202F7C8
+_080D6710: .4byte gMain
+_080D6714: .4byte 0x0000043d
+_080D6718: .4byte gUnknown_03004B00
+_080D671C: .4byte 0x00007fff
+_080D6720: .4byte 0x000003ff
+_080D6724: .4byte 0xfffffc00
+_080D6728: .4byte sub_80D672C
+ thumb_func_end sub_80D6658
+
+ thumb_func_start sub_80D672C
+sub_80D672C: @ 80D672C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _080D6782
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ 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
+ strb r0, [r3]
+_080D6782:
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D6794
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D6794:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D672C
+
+ thumb_func_start sub_80D679C
+sub_80D679C: @ 80D679C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D67D8 @ =gUnknown_03004B00
+ movs r5, 0x6
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r5, _080D67DC @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _080D67E0 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080D67E4
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ b _080D67F2
+ .align 2, 0
+_080D67D8: .4byte gUnknown_03004B00
+_080D67DC: .4byte 0x000003ff
+_080D67E0: .4byte 0xfffffc00
+_080D67E4:
+ cmp r0, 0x2
+ bne _080D67F6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x20
+_080D67F2:
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_080D67F6:
+ ldr r0, _080D6810 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D6814 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D6818 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6810: .4byte gUnknown_03004B00
+_080D6814: .4byte sub_80782D8
+_080D6818: .4byte move_anim_8072740
+ thumb_func_end sub_80D679C
+
+ thumb_func_start sub_80D681C
+sub_80D681C: @ 80D681C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080D6864 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ ldr r1, _080D6868 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r1
+ lsls r0, 24
+ ldr r5, _080D686C @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldr r0, _080D6870 @ =sub_80D6874
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6864: .4byte gUnknown_0202F7C9
+_080D6868: .4byte gTasks
+_080D686C: .4byte gUnknown_03004B00
+_080D6870: .4byte sub_80D6874
+ thumb_func_end sub_80D681C
+
+ thumb_func_start sub_80D6874
+sub_80D6874: @ 80D6874
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _080D68B4 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ str r2, [sp]
+ ldrh r4, [r0, 0x8]
+ ldrh r6, [r0, 0xA]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0
+ bne _080D68B8
+ movs r0, 0
+ mov r8, r0
+ movs r2, 0x1
+ movs r1, 0x10
+ mov r12, r1
+ b _080D68C2
+ .align 2, 0
+_080D68B4: .4byte gTasks
+_080D68B8:
+ movs r2, 0x10
+ mov r12, r2
+ movs r3, 0x8
+ mov r8, r3
+ movs r2, 0x4
+_080D68C2:
+ mov r0, r9
+ lsls r1, r0, 2
+ adds r0, r1, r0
+ lsls r0, 3
+ add r0, r10
+ movs r3, 0x1C
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ cmp r0, 0xA
+ bhi _080D69B8
+ lsls r0, 2
+ ldr r1, _080D68E0 @ =_080D68E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D68E0: .4byte _080D68E4
+ .align 2, 0
+_080D68E4:
+ .4byte _080D6910
+ .4byte _080D69B8
+ .4byte _080D6924
+ .4byte _080D69B8
+ .4byte _080D6944
+ .4byte _080D69B8
+ .4byte _080D695A
+ .4byte _080D69B8
+ .4byte _080D697C
+ .4byte _080D69B8
+ .4byte _080D69B0
+_080D6910:
+ ldr r0, _080D6920 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ mov r4, r12
+ lsls r3, r4, 16
+ b _080D6992
+ .align 2, 0
+_080D6920: .4byte gSpriteTemplate_83D9938
+_080D6924:
+ mov r0, r12
+ lsls r3, r0, 17
+ mov r1, r8
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6940 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6940: .4byte gSpriteTemplate_83D9938
+_080D6944:
+ mov r3, r12
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ b _080D6986
+_080D695A:
+ mov r0, r12
+ lsls r3, r0, 18
+ lsls r0, r2, 1
+ adds r0, r2
+ add r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _080D6978 @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ b _080D6992
+ .align 2, 0
+_080D6978: .4byte gSpriteTemplate_83D9938
+_080D697C:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r3, r0, 2
+ adds r3, r0
+_080D6986:
+ ldr r0, _080D69AC @ =gSpriteTemplate_83D9938
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r2, 16
+ lsls r3, 16
+_080D6992:
+ asrs r3, 16
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080D69B8
+ .align 2, 0
+_080D69AC: .4byte gSpriteTemplate_83D9938
+_080D69B0:
+ mov r0, r9
+ bl move_anim_task_del
+ b _080D69FC
+_080D69B8:
+ cmp r7, 0
+ beq _080D69EC
+ ldr r4, _080D6A0C @ =gSprites
+ lsls r3, r5, 4
+ adds r3, r5
+ lsls r3, 2
+ adds r0, r3, r4
+ ldrh r5, [r0, 0x4]
+ lsls r2, r5, 22
+ lsrs r2, 22
+ add r2, r8
+ ldr r6, _080D6A10 @ =0x000003ff
+ adds r1, r6, 0
+ ands r2, r1
+ ldr r1, _080D6A14 @ =0xfffffc00
+ ands r1, r5
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r1, [r3]
+ bl _call_via_r1
+_080D69EC:
+ ldr r0, _080D6A18 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ adds r0, 0x1
+ strh r0, [r1, 0x1C]
+_080D69FC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6A0C: .4byte gSprites
+_080D6A10: .4byte 0x000003ff
+_080D6A14: .4byte 0xfffffc00
+_080D6A18: .4byte gTasks
+ thumb_func_end sub_80D6874
+
+ thumb_func_start sub_80D6A1C
+sub_80D6A1C: @ 80D6A1C
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D6A3E
+ ldrb r1, [r3, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r2, r0
+ strb r2, [r3, 0x3]
+ b _080D6A52
+_080D6A3E:
+ ldrb r2, [r3, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+ ldrb r0, [r3, 0x3]
+ ands r1, r0
+ movs r0, 0x40
+ orrs r1, r0
+ strb r1, [r3, 0x3]
+_080D6A52:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _080D6A66
+ adds r0, r3, 0
+ bl DestroySprite
+_080D6A66:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6A1C
+
+ thumb_func_start sub_80D6A6C
+sub_80D6A6C: @ 80D6A6C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080D6AD4 @ =gUnknown_03004B00
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ strh r1, [r4, 0x20]
+ ldrh r0, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ movs r7, 0x22
+ ldrsh r2, [r4, r7]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080D6ADC @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r6, r2, r3
+ ldrh r5, [r6, 0x4]
+ lsls r1, r5, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r7, _080D6AE0 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080D6AE4 @ =0xfffffc00
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080D6AE8 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080D6AEC @ =sub_80D6AF0
+ str r0, [r2]
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6AD4: .4byte gUnknown_03004B00
+_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
+_080D6ADC: .4byte gSprites
+_080D6AE0: .4byte 0x000003ff
+_080D6AE4: .4byte 0xfffffc00
+_080D6AE8: .4byte gUnknown_0202F7B2
+_080D6AEC: .4byte sub_80D6AF0
+ thumb_func_end sub_80D6A6C
+
+ thumb_func_start sub_80D6AF0
+sub_80D6AF0: @ 80D6AF0
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D6B24
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ 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]
+_080D6B24:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080D6B38
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080D6B38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6AF0
+
+ thumb_func_start sub_80D6B3C
+sub_80D6B3C: @ 80D6B3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D6B5C @ =gTasks
+ adds r5, r1, r0
+ ldr r0, _080D6B60 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6B68
+ ldr r4, _080D6B64 @ =gUnknown_0202F7C8
+ b _080D6B6A
+ .align 2, 0
+_080D6B5C: .4byte gTasks
+_080D6B60: .4byte gUnknown_03004B00
+_080D6B64: .4byte gUnknown_0202F7C8
+_080D6B68:
+ ldr r4, _080D6BAC @ =gUnknown_0202F7C9
+_080D6B6A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x26]
+ ldr r2, _080D6BB0 @ =gUnknown_03004B00
+ ldrh r0, [r2, 0x2]
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ strh r1, [r5, 0x18]
+ strh r1, [r5, 0x1A]
+ strh r1, [r5, 0x1C]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r5, 0x1E]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x22]
+ ldr r0, _080D6BB4 @ =sub_80D6BB8
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6BAC: .4byte gUnknown_0202F7C9
+_080D6BB0: .4byte gUnknown_03004B00
+_080D6BB4: .4byte sub_80D6BB8
+ thumb_func_end sub_80D6B3C
+
+ thumb_func_start sub_80D6BB8
+sub_80D6BB8: @ 80D6BB8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r2, r6, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D6CA0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D6CB8
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ ble _080D6CC6
+ strh r7, [r5, 0x20]
+ ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ movs r3, 0x26
+ ldrsh r2, [r5, r3]
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080D6CC6
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080D6CA8 @ =gSprites
+ adds r4, r0
+ ldr r1, _080D6CAC @ =gUnknown_083D9968
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x20]
+ adds r3, r0
+ strh r3, [r4, 0x20]
+ movs r2, 0x1A
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r4, 0x22]
+ adds r2, r0
+ strh r2, [r4, 0x22]
+ movs r1, 0x18
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0x28
+ subs r0, r1
+ strh r0, [r4, 0x2E]
+ strh r3, [r4, 0x30]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x32]
+ strh r2, [r4, 0x34]
+ ldrh r0, [r5, 0x26]
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D6CB0 @ =sub_80D6D00
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6CB4 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x1
+ strh r0, [r5, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080D6C70
+ strh r7, [r5, 0x1A]
+_080D6C70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ blt _080D6C92
+ strh r7, [r5, 0x1C]
+ ldrh r1, [r5, 0x18]
+ movs r3, 0x18
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x5
+ bgt _080D6C92
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x18]
+_080D6C92:
+ ldrh r0, [r5, 0x16]
+ adds r0, 0x1
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x14]
+ subs r0, 0x1
+ strh r0, [r5, 0x14]
+ b _080D6CC6
+ .align 2, 0
+_080D6CA0: .4byte gTasks
+_080D6CA4: .4byte gSpriteTemplate_83D99B8
+_080D6CA8: .4byte gSprites
+_080D6CAC: .4byte gUnknown_083D9968
+_080D6CB0: .4byte sub_80D6D00
+_080D6CB4: .4byte sub_8078600
+_080D6CB8:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D6CC6
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D6CC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D6BB8
+
+ thumb_func_start sub_80D6CCC
+sub_80D6CCC: @ 80D6CCC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D6CF4
+ ldr r2, _080D6CFC @ =gTasks
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x16]
+ subs r1, 0x1
+ strh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D6CF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6CFC: .4byte gTasks
+ thumb_func_end sub_80D6CCC
+
+ thumb_func_start sub_80D6D00
+sub_80D6D00: @ 80D6D00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D6D14 @ =sub_80D6CCC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D14: .4byte sub_80D6CCC
+ thumb_func_end sub_80D6D00
+
+ thumb_func_start sub_80D6D18
+sub_80D6D18: @ 80D6D18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D2C @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D34
+ ldr r4, _080D6D30 @ =gUnknown_0202F7C8
+ b _080D6D36
+ .align 2, 0
+_080D6D2C: .4byte gUnknown_03004B00
+_080D6D30: .4byte gUnknown_0202F7C8
+_080D6D34:
+ ldr r4, _080D6D64 @ =gUnknown_0202F7C9
+_080D6D36:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6D68 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6D6C @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6D64: .4byte gUnknown_0202F7C9
+_080D6D68: .4byte move_anim_8074EE0
+_080D6D6C: .4byte sub_80785E4
+ thumb_func_end sub_80D6D18
+
+ thumb_func_start sub_80D6D70
+sub_80D6D70: @ 80D6D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D6D84 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D6D8C
+ ldr r4, _080D6D88 @ =gUnknown_0202F7C8
+ b _080D6D8E
+ .align 2, 0
+_080D6D84: .4byte gUnknown_03004B00
+_080D6D88: .4byte gUnknown_0202F7C8
+_080D6D8C:
+ ldr r4, _080D6DC8 @ =gUnknown_0202F7C9
+_080D6D8E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D6DCC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x26]
+ ldr r1, _080D6DD0 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D6DD4 @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6DC8: .4byte gUnknown_0202F7C9
+_080D6DCC: .4byte gUnknown_03004B00
+_080D6DD0: .4byte move_anim_8072740
+_080D6DD4: .4byte sub_8078600
+ thumb_func_end sub_80D6D70
+
+ thumb_func_start sub_80D6DD8
+sub_80D6DD8: @ 80D6DD8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r4, _080D6E30 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3A]
+ movs r0, 0x10
+ strh r0, [r5, 0x3C]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080D6E26
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r5, 0x3C]
+_080D6E26:
+ ldr r0, _080D6E34 @ =sub_80D6E38
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E30: .4byte gUnknown_0202F7C8
+_080D6E34: .4byte sub_80D6E38
+ thumb_func_end sub_80D6DD8
+
+ thumb_func_start sub_80D6E38
+sub_80D6E38: @ 80D6E38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D6E4A
+ cmp r0, 0x1
+ beq _080D6E60
+ b _080D6E90
+_080D6E4A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D6E90
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D6E90
+_080D6E60:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x20]
+ adds r0, r2, r1
+ strh r0, [r4, 0x20]
+ ldr r3, _080D6E98 @ =gSprites
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x50
+ lsls r0, 16
+ movs r1, 0xC8
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D6E90
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080D6E90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D6E98: .4byte gSprites
+ thumb_func_end sub_80D6E38
+
+ thumb_func_start sub_80D6E9C
+sub_80D6E9C: @ 80D6E9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080D6EC0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D6F30
+ cmp r0, 0x1
+ bgt _080D6EC4
+ cmp r0, 0
+ beq _080D6ED0
+ b _080D7000
+ .align 2, 0
+_080D6EC0: .4byte gTasks
+_080D6EC4:
+ cmp r0, 0x2
+ beq _080D6F8C
+ cmp r0, 0x3
+ bne _080D6ECE
+ b _080D6FE0
+_080D6ECE:
+ b _080D7000
+_080D6ED0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ strh r0, [r5, 0x26]
+ ldr r4, _080D6F04 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D6F0C
+ ldr r0, _080D6F08 @ =0x0000ffe0
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _080D6F12
+ .align 2, 0
+_080D6F04: .4byte gUnknown_0202F7C8
+_080D6F08: .4byte 0x0000ffe0
+_080D6F0C:
+ movs r0, 0x20
+ strh r0, [r5, 0x24]
+ ldr r0, _080D6F28 @ =0x0000fffe
+_080D6F12:
+ strh r0, [r5, 0x22]
+ ldr r2, _080D6F2C @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r5, 0x24]
+ strh r1, [r0, 0x24]
+ b _080D6FD2
+ .align 2, 0
+_080D6F28: .4byte 0x0000fffe
+_080D6F2C: .4byte gSprites
+_080D6F30:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r4, _080D6F88 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r1, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D6FD2
+ ldrh r2, [r5, 0x22]
+ adds r2, r1, r2
+ strh r2, [r5, 0x24]
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ b _080D7000
+ .align 2, 0
+_080D6F88: .4byte gSprites
+_080D6F8C:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D7000
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ ldr r1, _080D6FDC @ =gSprites
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080D7000
+_080D6FD2:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D7000
+ .align 2, 0
+_080D6FDC: .4byte gSprites
+_080D6FE0:
+ ldr r2, _080D7008 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080D7000:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7008: .4byte gSprites
+ thumb_func_end sub_80D6E9C
+
+ thumb_func_start sub_80D700C
+sub_80D700C: @ 80D700C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080D7030 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7026
+ b _080D714C
+_080D7026:
+ cmp r0, 0x1
+ bgt _080D7034
+ cmp r0, 0
+ beq _080D703C
+ b _080D718E
+ .align 2, 0
+_080D7030: .4byte gTasks
+_080D7034:
+ cmp r0, 0x2
+ bne _080D703A
+ b _080D7180
+_080D703A:
+ b _080D718E
+_080D703C:
+ ldr r4, _080D707C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _080D7052
+ movs r1, 0x1
+_080D7052:
+ movs r6, 0
+ strh r1, [r5, 0xA]
+ ldr r0, _080D7080 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r3, r0, 0
+ cmp r2, 0
+ beq _080D7088
+ cmp r2, 0x4
+ beq _080D70B0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D70E8
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xE]
+ ldr r0, _080D7084 @ =0x0000fff0
+ b _080D70F0
+ .align 2, 0
+_080D707C: .4byte gUnknown_0202F7C8
+_080D7080: .4byte gUnknown_03004B00
+_080D7084: .4byte 0x0000fff0
+_080D7088:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ movs r2, 0xA
+ ldrsh r0, [r5, r2]
+ lsls r0, 7
+ adds r0, 0x78
+ strh r0, [r5, 0x10]
+ b _080D7126
+_080D70B0:
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r1, 7
+ movs r0, 0x78
+ subs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r4, _080D70E4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xA
+ ldrsh r1, [r5, r2]
+ lsls r1, 5
+ subs r0, r1
+ strh r0, [r5, 0x10]
+ b _080D7126
+ .align 2, 0
+_080D70E4: .4byte gUnknown_0202F7C9
+_080D70E8:
+ ldr r0, _080D710C @ =0x0000fff0
+ strh r0, [r5, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+_080D70F0:
+ strh r0, [r5, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080D7110
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0x50
+ subs r0, r1
+ strh r0, [r5, 0x12]
+ b _080D7126
+ .align 2, 0
+_080D710C: .4byte 0x0000fff0
+_080D7110:
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x28
+ strh r0, [r5, 0x12]
+ ldrh r1, [r5, 0xE]
+ ldrh r0, [r5, 0x10]
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+_080D7126:
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bge _080D713C
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ strh r1, [r5, 0x14]
+ b _080D7178
+_080D713C:
+ ldr r0, _080D7148 @ =0x0000ffff
+ strh r0, [r5, 0xA]
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ b _080D7178
+ .align 2, 0
+_080D7148: .4byte 0x0000ffff
+_080D714C:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D718E
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7178
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D7194
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D718E
+_080D7178:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D718E
+_080D7180:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D718E
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080D718E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D700C
+
+ thumb_func_start sub_80D7194
+sub_80D7194: @ 80D7194
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r3, 0x12
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D71CA
+ ldr r1, _080D7224 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r5, [r0, 0x3A]
+ movs r1, 0x7
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080D71CA:
+ ldrh r1, [r4, 0xA]
+ ldrh r5, [r4, 0x14]
+ adds r0, r1, r5
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D71DC
+ movs r0, 0x3
+ strh r0, [r4, 0x14]
+_080D71DC:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ ble _080D71E8
+ movs r0, 0
+ strh r0, [r4, 0x14]
+_080D71E8:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ ldrh r5, [r4, 0xE]
+ adds r2, r0, r5
+ strh r2, [r4, 0xE]
+ lsls r0, r1, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1
+ bne _080D7208
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x10
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ bge _080D721C
+_080D7208:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r3, r0
+ bne _080D7228
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bgt _080D7228
+_080D721C:
+ movs r0, 0x1
+ b _080D722A
+ .align 2, 0
+_080D7220: .4byte gSpriteTemplate_83D9B10
+_080D7224: .4byte gSprites
+_080D7228:
+ movs r0, 0
+_080D722A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7194
+
+ thumb_func_start sub_80D7230
+sub_80D7230: @ 80D7230
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7270
+ ldr r3, _080D7278 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7278: .4byte gTasks
+ thumb_func_end sub_80D7230
+
+ thumb_func_start sub_80D727C
+sub_80D727C: @ 80D727C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D728E
+ cmp r0, 0x1
+ beq _080D72C0
+ b _080D72D4
+_080D728E:
+ ldr r4, _080D72BC @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080D72D4
+ .align 2, 0
+_080D72BC: .4byte gUnknown_0202F7C8
+_080D72C0:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D72D4
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080D72D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D727C
+
+ thumb_func_start sub_80D72DC
+sub_80D72DC: @ 80D72DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D7300 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080D72F6
+ b _080D7468
+_080D72F6:
+ lsls r0, 2
+ ldr r1, _080D7304 @ =_080D7308
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D7300: .4byte gTasks
+_080D7304: .4byte _080D7308
+ .align 2, 0
+_080D7308:
+ .4byte _080D731C
+ .4byte _080D73AC
+ .4byte _080D73E8
+ .4byte _080D7444
+ .4byte _080D7454
+_080D731C:
+ ldr r4, _080D73A0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ ldr r0, _080D73A4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r5, r2]
+ movs r2, 0x14
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r5, 0x1A]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D73A8 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ subs r0, 0x4C
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x20]
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x24]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ b _080D7466
+ .align 2, 0
+_080D73A0: .4byte gUnknown_0202F7C8
+_080D73A4: .4byte gUnknown_0202F7C9
+_080D73A8: .4byte 0x0000ffff
+_080D73AC:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080D73DC
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7470
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D73DC
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bne _080D73D6
+ movs r0, 0x3
+ b _080D73DA
+_080D73D6:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+_080D73DA:
+ strh r0, [r5, 0x8]
+_080D73DC:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7468
+ b _080D745E
+_080D73E8:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D73F6
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+_080D73F6:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080D7468
+ strh r3, [r5, 0xA]
+ ldrh r1, [r5, 0xC]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7422
+ movs r0, 0x4
+ strh r0, [r5, 0x16]
+ movs r0, 0x44
+ strh r0, [r5, 0x18]
+ strh r3, [r5, 0x10]
+ strh r2, [r5, 0x12]
+ b _080D7432
+_080D7422:
+ movs r0, 0x44
+ strh r0, [r5, 0x16]
+ movs r0, 0x4
+ strh r0, [r5, 0x18]
+ movs r0, 0x7
+ strh r0, [r5, 0x10]
+ ldr r0, _080D7440 @ =0x0000ffff
+ strh r0, [r5, 0x12]
+_080D7432:
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080D7464
+ movs r0, 0x4
+ b _080D7466
+ .align 2, 0
+_080D7440: .4byte 0x0000ffff
+_080D7444:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7468
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _080D7468
+_080D7454:
+ ldrh r1, [r5, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080D7464
+_080D745E:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x1E]
+ b _080D7468
+_080D7464:
+ movs r0, 0x1
+_080D7466:
+ strh r0, [r5, 0x8]
+_080D7468:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D72DC
+
+ thumb_func_start sub_80D7470
+sub_80D7470: @ 80D7470
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0x16
+ ldrsh r2, [r4, r3]
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080D74DC
+ ldr r1, _080D753C @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldrh r6, [r4, 0x10]
+ adds r1, r6
+ ldr r6, _080D7540 @ =0x000003ff
+ adds r0, r6, 0
+ ands r1, r0
+ ldr r0, _080D7544 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D74C4
+ movs r0, 0x7
+ strh r0, [r4, 0x10]
+_080D74C4:
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7
+ ble _080D74D0
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_080D74D0:
+ strh r5, [r3, 0x3A]
+ movs r0, 0x3
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080D74DC:
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D74FE
+ movs r5, 0x12
+ ldrsh r0, [r4, r5]
+ cmp r0, 0
+ ble _080D74FE
+ ldrh r1, [r4, 0x26]
+ ldrh r6, [r4, 0x24]
+ adds r1, r6
+ strh r1, [r4, 0x24]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x76
+ bl PlaySE12WithPanning
+_080D74FE:
+ movs r0, 0x12
+ ldrsh r3, [r4, r0]
+ ldrh r2, [r4, 0x16]
+ cmp r3, 0
+ bge _080D7514
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0x18
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080D7524
+_080D7514:
+ cmp r3, 0
+ ble _080D7548
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r6, 0x18
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ blt _080D7548
+_080D7524:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x1A]
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r0, 0x1
+ b _080D7554
+ .align 2, 0
+_080D7538: .4byte gSpriteTemplate_83D9B40
+_080D753C: .4byte gSprites
+_080D7540: .4byte 0x000003ff
+_080D7544: .4byte 0xfffffc00
+_080D7548:
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ strh r0, [r4, 0x16]
+ movs r0, 0
+_080D7554:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7470
+
+ thumb_func_start sub_80D755C
+sub_80D755C: @ 80D755C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080D7592
+ ldr r3, _080D7598 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D7592:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7598: .4byte gTasks
+ thumb_func_end sub_80D755C
+
+ thumb_func_start sub_80D759C
+sub_80D759C: @ 80D759C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D75C0 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080D7618
+ cmp r0, 0x1
+ bgt _080D75C4
+ cmp r0, 0
+ beq _080D75CA
+ b _080D764E
+ .align 2, 0
+_080D75C0: .4byte gTasks
+_080D75C4:
+ cmp r0, 0x2
+ beq _080D7640
+ b _080D764E
+_080D75CA:
+ ldr r0, _080D7614 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ strh r0, [r5, 0x24]
+ cmp r0, 0x10
+ ble _080D75F4
+ adds r2, r0, 0
+_080D75E4:
+ adds r1, r2, 0
+ subs r1, 0x20
+ adds r2, r1, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bgt _080D75E4
+ strh r1, [r5, 0x24]
+_080D75F4:
+ ldr r4, _080D7614 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _080D7638
+ .align 2, 0
+_080D7614: .4byte gUnknown_0202F7C9
+_080D7618:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D764E
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_80D7654
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D764E
+_080D7638:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080D764E
+_080D7640:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D764E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D764E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D759C
+
+ thumb_func_start sub_80D7654
+sub_80D7654: @ 80D7654
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ ldrh r3, [r4, 0x20]
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080D7698
+ ldr r3, _080D76B4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _080D76B8 @ =sub_80D76C4
+ str r2, [r1]
+ adds r0, r3
+ strh r5, [r0, 0x3A]
+ movs r1, 0xA
+ strh r1, [r0, 0x3C]
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+_080D7698:
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _080D76BC
+ adds r0, r2, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x24]
+ movs r0, 0
+ b _080D76BE
+ .align 2, 0
+_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
+_080D76B4: .4byte gSprites
+_080D76B8: .4byte sub_80D76C4
+_080D76BC:
+ movs r0, 0x1
+_080D76BE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D7654
+
+ thumb_func_start sub_80D76C4
+sub_80D76C4: @ 80D76C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D76F8
+ ldr r3, _080D7700 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_080D76F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7700: .4byte gTasks
+ thumb_func_end sub_80D76C4
+
+ thumb_func_start sub_80D7704
+sub_80D7704: @ 80D7704
+ 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, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x7
+ ldr r3, _080D780C @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D7810 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r4, _080D7814 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080D7818 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080D781C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1]
+ ldr r3, [sp]
+ adds r0, r3
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x4]
+ mov r4, r9
+ adds r0, r4, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x6]
+ mov r7, r8
+ adds r0, r7, r0
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ adds r4, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ mov r12, r0
+ ldr r3, [sp]
+ cmp r4, r12
+ bhi _080D77DE
+ adds r0, r7, 0
+ adds r0, 0x20
+ ldrh r1, [r5, 0x30]
+ ldrh r2, [r5, 0x32]
+ cmp r0, 0xE0
+ bhi _080D77DE
+ adds r4, r1, 0
+ mov r10, r12
+_080D77AA:
+ mov r7, r9
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r4
+ lsls r1, 16
+ mov r7, r8
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r0, r1, 16
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 14
+ adds r1, r7
+ lsrs r1, 16
+ cmp r1, r10
+ bhi _080D77DE
+ mov r1, r8
+ lsls r0, r1, 16
+ adds r0, r7
+ lsrs r0, 16
+ cmp r0, 0xE0
+ bls _080D77AA
+_080D77DE:
+ ldrh r0, [r5, 0x30]
+ negs r7, r0
+ strh r7, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ negs r4, r0
+ strh r4, [r5, 0x32]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r0, 16
+ movs r2, 0x98
+ lsls r2, 1
+ mov r12, r2
+ ldr r1, _080D781C @ =gUnknown_03004B00
+ mov r10, r1
+ cmp r0, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r1, r2
+ b _080D7842
+ .align 2, 0
+_080D780C: .4byte 0x000003ff
+_080D7810: .4byte 0xfffffc00
+_080D7814: .4byte gUnknown_0202F7C9
+_080D7818: .4byte gUnknown_0202F7C8
+_080D781C: .4byte gUnknown_03004B00
+_080D7820:
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r1, r7
+ lsls r1, 16
+ asrs r0, r2, 16
+ adds r0, r4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r3, r1, 16
+ movs r0, 0x80
+ lsls r0, 14
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, r12
+ bhi _080D784A
+ lsls r1, r6, 16
+ adds r0, r1, r0
+_080D7842:
+ lsrs r0, 16
+ adds r2, r1, 0
+ cmp r0, 0xE0
+ bls _080D7820
+_080D784A:
+ strh r3, [r5, 0x20]
+ strh r6, [r5, 0x22]
+ mov r1, r10
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ strh r3, [r5, 0x30]
+ mov r2, r9
+ strh r2, [r5, 0x32]
+ strh r6, [r5, 0x34]
+ mov r3, r8
+ strh r3, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078314
+ mov r7, r10
+ ldrh r0, [r7, 0xA]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r7, 0xC]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D7884 @ =sub_80D7888
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7884: .4byte sub_80D7888
+ thumb_func_end sub_80D7704
+
+ thumb_func_start sub_80D7888
+sub_80D7888: @ 80D7888
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D78E0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x38]
+ adds r1, r2
+ strh r1, [r4, 0x38]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ strh r1, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D78E6
+_080D78E0:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D78E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7888
+
+ thumb_func_start sub_80D78EC
+sub_80D78EC: @ 80D78EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7920 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ movs r0, 0x3C
+ strh r0, [r4, 0x30]
+ movs r0, 0x9
+ strh r0, [r4, 0x32]
+ movs r0, 0x1E
+ strh r0, [r4, 0x34]
+ movs r0, 0xFE
+ lsls r0, 8
+ strh r0, [r4, 0x36]
+ ldr r1, _080D7924 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080D7928 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7920: .4byte gUnknown_03004B00
+_080D7924: .4byte move_anim_8072740
+_080D7928: .4byte sub_8078174
+ thumb_func_end sub_80D78EC
+
+ thumb_func_start sub_80D792C
+sub_80D792C: @ 80D792C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D7960 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldr r0, _080D7964 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D796C
+ ldr r0, _080D7968 @ =gUnknown_03004B00
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r4, 0x32]
+ b _080D7976
+ .align 2, 0
+_080D7960: .4byte gUnknown_0202F7C9
+_080D7964: .4byte gUnknown_0202F7C8
+_080D7968: .4byte gUnknown_03004B00
+_080D796C:
+ ldr r0, _080D79A4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+_080D7976:
+ ldr r0, _080D79A8 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r1, _080D79A4 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r2, [r1, 0x6]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080D79AC @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D79B0 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D79A4: .4byte gUnknown_03004B00
+_080D79A8: .4byte gUnknown_0202F7C9
+_080D79AC: .4byte move_anim_8072740
+_080D79B0: .4byte sub_8078B34
+ thumb_func_end sub_80D792C
+
+ thumb_func_start sub_80D79B4
+sub_80D79B4: @ 80D79B4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D79CC @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D79D0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D7A06
+ .align 2, 0
+_080D79CC: .4byte gUnknown_03004B00
+_080D79D0:
+ ldr r0, _080D7A18 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D7A1C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D79F6
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D79F6:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7A06:
+ ldr r1, _080D7A20 @ =sub_80D7A28
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D7A24 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7A18: .4byte gUnknown_0202F7C9
+_080D7A1C: .4byte gUnknown_0202F7C8
+_080D7A20: .4byte sub_80D7A28
+_080D7A24: .4byte sub_80785E4
+ thumb_func_end sub_80D79B4
+
+ thumb_func_start sub_80D7A28
+sub_80D7A28: @ 80D7A28
+ push {lr}
+ adds r3, r0, 0
+ 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]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D7A5E
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080D7A5E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7A28
+
+ thumb_func_start sub_80D7A64
+sub_80D7A64: @ 80D7A64
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D7AAC @ =gUnknown_03004B00
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7AB4
+ ldr r4, _080D7AB0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ b _080D7AC6
+ .align 2, 0
+_080D7AAC: .4byte gUnknown_03004B00
+_080D7AB0: .4byte gUnknown_0202F7C9
+_080D7AB4:
+ ldr r0, _080D7AE0 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7AC6:
+ ldr r0, _080D7AE4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7AEC
+ ldr r0, _080D7AE8 @ =gUnknown_03004B00
+ ldrh r1, [r5, 0x32]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r5, 0x32]
+ b _080D7AF6
+ .align 2, 0
+_080D7AE0: .4byte gUnknown_0202F7C9
+_080D7AE4: .4byte gUnknown_0202F7C8
+_080D7AE8: .4byte gUnknown_03004B00
+_080D7AEC:
+ ldr r0, _080D7B94 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7AF6:
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7B00:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B00
+ adds r0, r5, 0
+ bl sub_8078D60
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7B22:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7B56
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7B56
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7B22
+_080D7B56:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r6, _080D7B98 @ =sub_8078D8C
+ ldr r1, _080D7B9C @ =sub_80D7BA0
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7B76:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7B76
+ str r6, [r5, 0x1C]
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7B94: .4byte gUnknown_03004B00
+_080D7B98: .4byte sub_8078D8C
+_080D7B9C: .4byte sub_80D7BA0
+ thumb_func_end sub_80D7A64
+
+ thumb_func_start sub_80D7BA0
+sub_80D7BA0: @ 80D7BA0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r5, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ strh r5, [r4, 0x24]
+ movs r0, 0x80
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D7BFC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C00 @ =0x0000ffec
+ cmp r0, 0
+ beq _080D7BD0
+ movs r1, 0x14
+_080D7BD0:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ strh r0, [r4, 0x34]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+ ldr r1, _080D7C04 @ =sub_80D7C08
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7BFC: .4byte gUnknown_0202F7C8
+_080D7C00: .4byte 0x0000ffec
+_080D7C04: .4byte sub_80D7C08
+ thumb_func_end sub_80D7BA0
+
+ thumb_func_start sub_80D7C08
+sub_80D7C08: @ 80D7C08
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D7C5C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080D7C60 @ =0x0000ffec
+ cmp r0, 0
+ beq _080D7C1E
+ movs r1, 0x14
+_080D7C1E:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1F
+ bgt _080D7C64
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x36]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x10
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _080D7C82
+ .align 2, 0
+_080D7C5C: .4byte gUnknown_0202F7C8
+_080D7C60: .4byte 0x0000ffec
+_080D7C64:
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ 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, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x36]
+ strh r1, [r4, 0x34]
+ ldr r0, _080D7C88 @ =sub_80D7C8C
+ str r0, [r4, 0x1C]
+_080D7C82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7C88: .4byte sub_80D7C8C
+ thumb_func_end sub_80D7C08
+
+ thumb_func_start sub_80D7C8C
+sub_80D7C8C: @ 80D7C8C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078CE8
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7CC8
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r1, r0, r1
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bgt _080D7CC8
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7CCE
+_080D7CC8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7CCE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7C8C
+
+ thumb_func_start sub_80D7CD4
+sub_80D7CD4: @ 80D7CD4
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r5, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080D7D18 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D7D20
+ ldr r4, _080D7D1C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080D7D32
+ .align 2, 0
+_080D7D18: .4byte gUnknown_03004B00
+_080D7D1C: .4byte gUnknown_0202F7C9
+_080D7D20:
+ ldr r0, _080D7D50 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080D7D32:
+ ldr r0, _080D7D54 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7D5C
+ ldr r0, _080D7D58 @ =gUnknown_03004B00
+ ldrh r1, [r5, 0x32]
+ ldrh r2, [r0, 0x4]
+ subs r1, r2
+ strh r1, [r5, 0x32]
+ adds r1, r0, 0
+ b _080D7D66
+ .align 2, 0
+_080D7D50: .4byte gUnknown_0202F7C9
+_080D7D54: .4byte gUnknown_0202F7C8
+_080D7D58: .4byte gUnknown_03004B00
+_080D7D5C:
+ ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+_080D7D66:
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078D60
+ adds r7, r5, 0
+ adds r7, 0x2E
+ adds r2, r7, 0
+ mov r1, sp
+ movs r4, 0x7
+_080D7D7E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7D7E
+ ldrh r0, [r5, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ eors r0, r1
+ strh r0, [r5, 0x32]
+_080D7D9A:
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ bl sub_8078CE8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r2, 0x24
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ adds r1, 0x10
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bhi _080D7DCE
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7DCE
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7D9A
+_080D7DCE:
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ ldr r1, _080D7E10 @ =gUnknown_03004B00
+ ldr r6, _080D7E14 @ =sub_80D7E18
+ mov r3, sp
+ adds r2, r7, 0
+ movs r4, 0x7
+_080D7DEE:
+ ldrh r0, [r3]
+ strh r0, [r2]
+ adds r3, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080D7DEE
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r5, 0x3A]
+ str r6, [r5, 0x1C]
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D7E10: .4byte gUnknown_03004B00
+_080D7E14: .4byte sub_80D7E18
+ thumb_func_end sub_80D7CD4
+
+ thumb_func_start sub_80D7E18
+sub_80D7E18: @ 80D7E18
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078CE8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7E2C
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080D7E2C:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D7E82
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x10
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080D7E7C
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ adds r1, r0
+ cmp r1, 0xA0
+ bgt _080D7E7C
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _080D7E82
+_080D7E7C:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7E82:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E18
+
+ thumb_func_start sub_80D7E88
+sub_80D7E88: @ 80D7E88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D7EF4
+ ldr r5, _080D7EA8 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D7EAC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7EE2
+ .align 2, 0
+_080D7EA8: .4byte gUnknown_03004B00
+_080D7EAC:
+ ldr r0, _080D7EEC @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080D7EF0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7ED2
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D7ED2:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D7EE2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D7F08
+ .align 2, 0
+_080D7EEC: .4byte gUnknown_0202F7C9
+_080D7EF0: .4byte gUnknown_0202F7C8
+_080D7EF4:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080D7F08
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D7F08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D7E88
+
+ thumb_func_start sub_80D7F10
+sub_80D7F10: @ 80D7F10
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D7F30 @ =gUnknown_03004B00
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F80
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F34
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D7F72
+ .align 2, 0
+_080D7F30: .4byte gUnknown_03004B00
+_080D7F34:
+ ldr r4, _080D7F5C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7F60
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7F66
+ .align 2, 0
+_080D7F5C: .4byte gUnknown_0202F7C8
+_080D7F60:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7F66:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7F78 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7F72:
+ ldr r0, _080D7F7C @ =gUnknown_0202F7C8
+ b _080D7FD0
+ .align 2, 0
+_080D7F78: .4byte gUnknown_03004B00
+_080D7F7C: .4byte gUnknown_0202F7C8
+_080D7F80:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D7F92
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+ b _080D7FCE
+_080D7F92:
+ ldr r4, _080D7FB8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D7FBC
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r6]
+ subs r0, r1
+ b _080D7FC2
+ .align 2, 0
+_080D7FB8: .4byte gUnknown_0202F7C9
+_080D7FBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080D7FC2:
+ strh r0, [r5, 0x20]
+ ldr r0, _080D7FEC @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_080D7FCE:
+ ldr r0, _080D7FF0 @ =gUnknown_0202F7C9
+_080D7FD0:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080D7FEC @ =gUnknown_03004B00
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080D7FE8
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D7FF4
+_080D7FE8:
+ movs r0, 0x20
+ b _080D7FF6
+ .align 2, 0
+_080D7FEC: .4byte gUnknown_03004B00
+_080D7FF0: .4byte gUnknown_0202F7C9
+_080D7FF4:
+ movs r0, 0x40
+_080D7FF6:
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D803C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D800C
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+_080D800C:
+ ldr r1, _080D8040 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ movs r0, 0x40
+ strh r0, [r5, 0x38]
+ ldr r1, _080D8044 @ =sub_80D8048
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D803C: .4byte gUnknown_0202F7C9
+_080D8040: .4byte gUnknown_03004B00
+_080D8044: .4byte sub_80D8048
+ thumb_func_end sub_80D7F10
+
+ thumb_func_start sub_80D8048
+sub_80D8048: @ 80D8048
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D80D2
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0x6
+ negs r1, r1
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D80A4
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080D80C6
+_080D80A4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_080D80C6:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ b _080D80D8
+_080D80D2:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D80D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8048
+
+ thumb_func_start sub_80D80E0
+sub_80D80E0: @ 80D80E0
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D81A8 @ =REG_BLDCNT
+ ldr r2, _080D81AC @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D81B0 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D812A
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D812A:
+ ldr r0, _080D81B4 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D81B8 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D81BC @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D81C0 @ =0x040000d4
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D81C4 @ =0x85000400
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D81C8 @ =gWeatherFog1Tiles
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D81CC @ =0x80000400
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D81D0 @ =gWeatherFog1Tilemap
+ bl LZDecompressVram
+ ldr r0, _080D81D4 @ =gUnknown_083970E8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8190
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D8190:
+ ldr r0, _080D81D8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080D81DC @ =sub_80D81E0
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D81A8: .4byte REG_BLDCNT
+_080D81AC: .4byte 0x00003f42
+_080D81B0: .4byte REG_BG1CNT
+_080D81B4: .4byte gUnknown_030042C0
+_080D81B8: .4byte gUnknown_030041B4
+_080D81BC: .4byte REG_BG1HOFS
+_080D81C0: .4byte 0x040000d4
+_080D81C4: .4byte 0x85000400
+_080D81C8: .4byte gWeatherFog1Tiles
+_080D81CC: .4byte 0x80000400
+_080D81D0: .4byte gWeatherFog1Tilemap
+_080D81D4: .4byte gUnknown_083970E8
+_080D81D8: .4byte gTasks
+_080D81DC: .4byte sub_80D81E0
+ thumb_func_end sub_80D80E0
+
+ thumb_func_start sub_80D81E0
+sub_80D81E0: @ 80D81E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080D8220 @ =gUnknown_030042C0
+ ldr r1, _080D8224 @ =0x0000ffff
+ adds r0, r1, 0
+ ldrh r4, [r2]
+ adds r0, r4
+ strh r0, [r2]
+ ldr r1, _080D8228 @ =gUnknown_030041B4
+ ldr r3, _080D822C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0x20
+ ldrsh r0, [r0, r4]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _080D8214
+ b _080D83B0
+_080D8214:
+ lsls r0, 2
+ ldr r1, _080D8230 @ =_080D8234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8220: .4byte gUnknown_030042C0
+_080D8224: .4byte 0x0000ffff
+_080D8228: .4byte gUnknown_030041B4
+_080D822C: .4byte gTasks
+_080D8230: .4byte _080D8234
+ .align 2, 0
+_080D8234:
+ .4byte _080D8248
+ .4byte _080D82A0
+ .4byte _080D82C2
+ .4byte _080D8304
+ .4byte _080D838C
+_080D8248:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080D8262
+ b _080D83B0
+_080D8262:
+ strh r4, [r3, 0x1C]
+ ldrh r0, [r3, 0x1A]
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+ ldr r1, _080D8298 @ =gUnknown_083D9D6C
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D829C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ beq _080D828C
+ b _080D83B0
+_080D828C:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8298: .4byte gUnknown_083D9D6C
+_080D829C: .4byte REG_BLDALPHA
+_080D82A0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1E]
+ adds r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D83B0
+ movs r0, 0x9
+ strh r0, [r3, 0x1E]
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ b _080D83B0
+_080D82C2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D83B0
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080D8300 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080D83B0
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080D83B0
+ .align 2, 0
+_080D8300: .4byte REG_BLDALPHA
+_080D8304:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r4, r6, 2
+ mov r10, r4
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D83C0 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D83C4 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D832A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D832A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D83C0 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D83C8 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8378
+ ldr r2, _080D83CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8378:
+ ldr r0, _080D83D0 @ =gTasks
+ mov r4, r10
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r2, _080D83D4 @ =gUnknown_030042C0
+ ldr r4, _080D83D8 @ =gUnknown_030041B4
+_080D838C:
+ movs r1, 0
+ strh r1, [r2]
+ strh r1, [r4]
+ ldr r0, _080D83DC @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D83CC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D83B0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D83C0: .4byte 0x040000d4
+_080D83C4: .4byte 0x85000400
+_080D83C8: .4byte 0x85000200
+_080D83CC: .4byte REG_BG1CNT
+_080D83D0: .4byte gTasks
+_080D83D4: .4byte gUnknown_030042C0
+_080D83D8: .4byte gUnknown_030041B4
+_080D83DC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D81E0
+
+ thumb_func_start sub_80D83E0
+sub_80D83E0: @ 80D83E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D840C @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080D8410 @ =sub_807941C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D840C: .4byte gUnknown_0202F7C8
+_080D8410: .4byte sub_807941C
+ thumb_func_end sub_80D83E0
+
+ thumb_func_start sub_80D8414
+sub_80D8414: @ 80D8414
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D84E0 @ =REG_BLDCNT
+ ldr r2, _080D84E4 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080D84E8 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D845E
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080D845E:
+ ldr r0, _080D84EC @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080D84F0 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080D84F4 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D84F8 @ =0x040000d4
+ add r2, sp, 0xC
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r2, _080D84FC @ =0x85000400
+ str r2, [r0, 0x8]
+ ldr r2, [r0, 0x8]
+ ldr r2, _080D8500 @ =gWeatherFog1Tiles
+ ldr r3, [sp]
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ ldr r2, _080D8504 @ =0x80000400
+ str r2, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _080D8508 @ =gWeatherFog1Tilemap
+ bl LZDecompressVram
+ ldr r0, _080D850C @ =gUnknown_083970E8
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D84C4
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080D84C4:
+ ldr r1, _080D8510 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080D8514 @ =0x0000ffff
+ strh r1, [r0, 0x26]
+ ldr r1, _080D8518 @ =sub_80D851C
+ str r1, [r0]
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D84E0: .4byte REG_BLDCNT
+_080D84E4: .4byte 0x00003f42
+_080D84E8: .4byte REG_BG1CNT
+_080D84EC: .4byte gUnknown_030042C0
+_080D84F0: .4byte gUnknown_030041B4
+_080D84F4: .4byte REG_BG1HOFS
+_080D84F8: .4byte 0x040000d4
+_080D84FC: .4byte 0x85000400
+_080D8500: .4byte gWeatherFog1Tiles
+_080D8504: .4byte 0x80000400
+_080D8508: .4byte gWeatherFog1Tilemap
+_080D850C: .4byte gUnknown_083970E8
+_080D8510: .4byte gTasks
+_080D8514: .4byte 0x0000ffff
+_080D8518: .4byte sub_80D851C
+ thumb_func_end sub_80D8414
+
+ thumb_func_start sub_80D851C
+sub_80D851C: @ 80D851C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _080D8558 @ =gUnknown_030042C0
+ ldr r4, _080D855C @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r4
+ ldrh r0, [r1, 0x26]
+ ldrh r2, [r3]
+ adds r0, r2
+ strh r0, [r3]
+ ldr r2, _080D8560 @ =gUnknown_030041B4
+ movs r5, 0x20
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x4
+ bls _080D854C
+ b _080D86D0
+_080D854C:
+ lsls r0, 2
+ ldr r1, _080D8564 @ =_080D8568
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080D8558: .4byte gUnknown_030042C0
+_080D855C: .4byte gTasks
+_080D8560: .4byte gUnknown_030041B4
+_080D8564: .4byte _080D8568
+ .align 2, 0
+_080D8568:
+ .4byte _080D857C
+ .4byte _080D85C0
+ .4byte _080D85E2
+ .4byte _080D8624
+ .4byte _080D86AC
+_080D857C:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ ldr r1, _080D85B8 @ =gUnknown_083D9D98
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D85BC @ =REG_BLDALPHA
+ movs r0, 0x11
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x5
+ beq _080D85AC
+ b _080D86D0
+_080D85AC:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D85B8: .4byte gUnknown_083D9D98
+_080D85BC: .4byte REG_BLDALPHA
+_080D85C0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _080D86D0
+ movs r0, 0x5
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080D86D0
+_080D85E2:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080D86D0
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ subs r1, 0x1
+ strh r1, [r4, 0x1E]
+ ldr r2, _080D8620 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080D86D0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ strh r1, [r4, 0x1E]
+ b _080D86D0
+ .align 2, 0
+_080D8620: .4byte REG_BLDALPHA
+_080D8624:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ lsls r1, r6, 2
+ mov r10, r1
+ add r5, sp, 0xC
+ movs r7, 0
+ ldr r1, _080D86E0 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _080D86E4 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_080D864A:
+ str r7, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080D864A
+ str r7, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080D86E0 @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080D86E8 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D8698
+ ldr r2, _080D86EC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080D8698:
+ ldr r0, _080D86F0 @ =gTasks
+ mov r5, r10
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r3, _080D86F4 @ =gUnknown_030042C0
+ ldr r2, _080D86F8 @ =gUnknown_030041B4
+_080D86AC:
+ movs r1, 0
+ strh r1, [r3]
+ strh r1, [r2]
+ ldr r0, _080D86FC @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080D86EC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D86D0:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D86E0: .4byte 0x040000d4
+_080D86E4: .4byte 0x85000400
+_080D86E8: .4byte 0x85000200
+_080D86EC: .4byte REG_BG1CNT
+_080D86F0: .4byte gTasks
+_080D86F4: .4byte gUnknown_030042C0
+_080D86F8: .4byte gUnknown_030041B4
+_080D86FC: .4byte REG_BLDCNT
+ thumb_func_end sub_80D851C
+
+ thumb_func_start sub_80D8700
+sub_80D8700: @ 80D8700
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldr r6, _080D87E8 @ =gUnknown_03004B00
+ ldrh r0, [r6]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D87EC @ =gUnknown_0202F7C8
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldr r7, _080D87F0 @ =gUnknown_0202F7C9
+ ldrb r0, [r7]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bcs _080D8734
+ movs r0, 0x80
+ lsls r0, 8
+ strh r0, [r5, 0x3C]
+_080D8734:
+ ldr r3, _080D87F4 @ =gUnknown_02024A72
+ ldrb r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8794
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ ldrh r0, [r6, 0x6]
+ negs r0, r0
+ strh r0, [r6, 0x6]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8790
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D8790
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080D87F8 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_080D8790:
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+_080D8794:
+ ldr r4, _080D87EC @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r6, _080D87E8 @ =gUnknown_03004B00
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080D87FC
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D87F0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ b _080D8824
+ .align 2, 0
+_080D87E8: .4byte gUnknown_03004B00
+_080D87EC: .4byte gUnknown_0202F7C8
+_080D87F0: .4byte gUnknown_0202F7C9
+_080D87F4: .4byte gUnknown_02024A72
+_080D87F8: .4byte gSprites
+_080D87FC:
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x30]
+ ldr r4, _080D886C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r6, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x1
+_080D8824:
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x8]
+ adds r0, r6
+ strh r0, [r5, 0x36]
+ ldrb r0, [r4]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 16
+ ldrh r1, [r5, 0x3C]
+ orrs r0, r1
+ strh r0, [r5, 0x3C]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8858
+ movs r0, 0x1
+ strh r0, [r5, 0x3A]
+ adds r1, r5, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ strb r0, [r1]
+_080D8858:
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080D8870 @ =sub_80D8874
+ str r0, [r5, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D886C: .4byte gUnknown_0202F7C9
+_080D8870: .4byte sub_80D8874
+ thumb_func_end sub_80D8700
+
+ thumb_func_start sub_80D8874
+sub_80D8874: @ 80D8874
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ movs r5, 0xFF
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x1
+ beq _080D8968
+ cmp r1, 0x1
+ bgt _080D888E
+ cmp r1, 0
+ beq _080D8896
+ b _080D8AD0
+_080D888E:
+ cmp r1, 0x2
+ bne _080D8894
+ b _080D8A94
+_080D8894:
+ b _080D8AD0
+_080D8896:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D88C0 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 4
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080D88C4
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x8
+ b _080D88C8
+ .align 2, 0
+_080D88C0: .4byte gSineTable
+_080D88C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x8
+_080D88C8:
+ ands r0, r5
+ strh r0, [r4, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080D88D6
+ b _080D8AD0
+_080D88D6:
+ movs r5, 0x50
+ strh r5, [r4, 0x2E]
+ ldr r6, _080D8928 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x1D
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldr r0, _080D892C @ =gMain
+ ldr r2, _080D8930 @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ ldr r1, _080D8934 @ =gUnknown_02024A72
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8938
+ movs r0, 0xCC
+ strh r0, [r4, 0x38]
+ b _080D893A
+ .align 2, 0
+_080D8928: .4byte gUnknown_0202F7C9
+_080D892C: .4byte gMain
+_080D8930: .4byte 0x0000043d
+_080D8934: .4byte gUnknown_02024A72
+_080D8938:
+ strh r5, [r4, 0x38]
+_080D893A:
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080D8964 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r0, 3
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _080D8AD0
+ .align 2, 0
+_080D8964: .4byte gSineTable
+_080D8968:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldr r1, _080D89C8 @ =gSineTable
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r0, 3
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ negs r0, r0
+ asrs r0, 8
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r0, _080D89CC @ =gMain
+ ldr r2, _080D89D0 @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D89F2
+ ldrh r1, [r4, 0x38]
+ adds r0, r1, 0
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r1, 0
+ cmp r0, 0x7F
+ bhi _080D89D4
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ b _080D89DC
+ .align 2, 0
+_080D89C8: .4byte gSineTable
+_080D89CC: .4byte gMain
+_080D89D0: .4byte 0x0000043d
+_080D89D4:
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 24
+ adds r1, 0x1
+_080D89DC:
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r3, 0x4
+ b _080D8A12
+_080D89F2:
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x40
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7F
+ bhi _080D8A06
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x80
+ b _080D8A0C
+_080D8A06:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x8C
+_080D8A0C:
+ strb r0, [r1]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x4
+_080D8A12:
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080D8AD0
+ movs r2, 0
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ adds r0, 0x4
+ strh r0, [r4, 0x36]
+ ldr r0, _080D8A68 @ =gMain
+ ldr r1, _080D8A6C @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ ldr r1, _080D8A70 @ =gUnknown_02024A72
+ ldr r0, _080D8A74 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8A78
+ movs r0, 0x80
+ lsls r0, 1
+ b _080D8A7A
+ .align 2, 0
+_080D8A68: .4byte gMain
+_080D8A6C: .4byte 0x0000043d
+_080D8A70: .4byte gUnknown_02024A72
+_080D8A74: .4byte gUnknown_0202F7C9
+_080D8A78:
+ ldr r0, _080D8A90 @ =0x0000fff0
+_080D8A7A:
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x3C]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ b _080D8AD0
+ .align 2, 0
+_080D8A90: .4byte 0x0000fff0
+_080D8A94:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8AD0
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080D8AC2
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080D8AC2:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080D8AD8 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080D8AD0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8AD8: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80D8874
+
+ thumb_func_start sub_80D8ADC
+sub_80D8ADC: @ 80D8ADC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080D8AF0 @ =gTasks
+ adds r1, r0
+ ldr r0, _080D8AF4 @ =sub_80D8AF8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080D8AF0: .4byte gTasks
+_080D8AF4: .4byte sub_80D8AF8
+ thumb_func_end sub_80D8ADC
+
+ thumb_func_start sub_80D8AF8
+sub_80D8AF8: @ 80D8AF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080D8B1C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080D8B3C
+ cmp r5, 0x1
+ bgt _080D8B20
+ cmp r5, 0
+ beq _080D8B26
+ b _080D8BA0
+ .align 2, 0
+_080D8B1C: .4byte gTasks
+_080D8B20:
+ cmp r5, 0x2
+ beq _080D8B92
+ b _080D8BA0
+_080D8B26:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080D8BA0
+ strh r5, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ strh r5, [r4, 0xC]
+ b _080D8B78
+_080D8B3C:
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080D8B8C
+ ldrb r0, [r4, 0xE]
+ ldrb r1, [r4, 0xC]
+ movs r3, 0x1
+ bl sub_80D8BA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8B5C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+_080D8B5C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080D8B88
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080D8B80
+_080D8B78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B80:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D8BA0
+_080D8B88:
+ strh r5, [r4, 0x12]
+ b _080D8BA0
+_080D8B8C:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+ b _080D8BA0
+_080D8B92:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8BA0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080D8BA0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8AF8
+
+ thumb_func_start sub_80D8BA8
+sub_80D8BA8: @ 80D8BA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r1, _080D8C20 @ =gUnknown_083D9DC4
+ lsrs r0, 22
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x3]
+ lsls r0, 24
+ asrs r0, 28
+ mov r8, r0
+ cmp r0, 0x2
+ beq _080D8C94
+ ldrh r0, [r4, 0x2]
+ lsls r0, 20
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8C94
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ beq _080D8C24
+ cmp r1, 0x1
+ beq _080D8C5A
+ b _080D8CA6
+ .align 2, 0
+_080D8C20: .4byte gUnknown_083D9DC4
+_080D8C24:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r0
+ b _080D8C8E
+_080D8C5A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x6
+ bl __divsi3
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+_080D8C8E:
+ lsls r1, 16
+ lsrs r6, r1, 16
+ b _080D8CA6
+_080D8C94:
+ ldrh r0, [r4]
+ lsls r0, 22
+ asrs r0, 6
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ lsls r0, 12
+ asrs r0, 22
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080D8CA6:
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, 0x8
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r1, r7, 16
+ asrs r1, 16
+ subs r1, r0
+ ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x8
+ negs r2, r2
+ movs r3, 0x12
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080D8D08
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080D8D04 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ bl StartSpriteAffineAnim
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ strh r7, [r4, 0x34]
+ strh r6, [r4, 0x36]
+ mov r1, r9
+ strh r1, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x3A]
+ mov r1, r10
+ strh r1, [r4, 0x3C]
+ movs r0, 0x1
+ b _080D8D0A
+ .align 2, 0
+_080D8D00: .4byte gSpriteTemplate_83D9E3C
+_080D8D04: .4byte gSprites
+_080D8D08:
+ movs r0, 0
+_080D8D0A:
+ 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_80D8BA8
+
+ thumb_func_start sub_80D8D1C
+sub_80D8D1C: @ 80D8D1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x22]
+ adds r2, r1, 0
+ adds r2, 0x8
+ strh r2, [r4, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _080D8D46
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080D8DF6
+_080D8D46:
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080D8DC8
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D8DC8
+ ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ movs r3, 0x36
+ ldrsh r2, [r4, r3]
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ cmp r0, 0x40
+ beq _080D8DAA
+ ldr r2, _080D8DC0 @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080D8DC4 @ =sub_80D8E00
+ str r1, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3A]
+ strh r1, [r0, 0x3A]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x3C]
+ strh r1, [r0, 0x3C]
+_080D8DAA:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _080D8DF6
+ .align 2, 0
+_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
+_080D8DC0: .4byte gSprites
+_080D8DC4: .4byte sub_80D8E00
+_080D8DC8:
+ ldr r3, _080D8DFC @ =gTasks
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8DF6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8DFC: .4byte gTasks
+ thumb_func_end sub_80D8D1C
+
+ thumb_func_start sub_80D8E00
+sub_80D8E00: @ 80D8E00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080D8E40
+ ldr r3, _080D8E48 @ =gTasks
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080D8E40:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8E48: .4byte gTasks
+ thumb_func_end sub_80D8E00
+
+ thumb_func_start unc_080B06FC
+unc_080B06FC: @ 80D8E4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080D8ECC @ =gUnknown_0202F7B4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080D8E6A
+ movs r1, 0x4
+_080D8E6A:
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r6, _080D8ED0 @ =gUnknown_03004B00
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D8ED4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8E92
+ ldrh r0, [r6, 0x4]
+ negs r0, r0
+ strh r0, [r6, 0x4]
+_080D8E92:
+ ldr r4, _080D8ED8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D8EDC @ =sub_80D8EE0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8ECC: .4byte gUnknown_0202F7B4
+_080D8ED0: .4byte gUnknown_03004B00
+_080D8ED4: .4byte gUnknown_0202F7C8
+_080D8ED8: .4byte gUnknown_0202F7C9
+_080D8EDC: .4byte sub_80D8EE0
+ thumb_func_end unc_080B06FC
+
+ thumb_func_start sub_80D8EE0
+sub_80D8EE0: @ 80D8EE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D8F02
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _080D8F08 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080D8F0C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080D8F02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F08: .4byte sub_8078600
+_080D8F0C: .4byte move_anim_8072740
+ thumb_func_end sub_80D8EE0
+
+ thumb_func_start sub_80D8F10
+sub_80D8F10: @ 80D8F10
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r3, _080D8F64 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D8F68 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ bl Random
+ movs r5, 0xFF
+ ands r5, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0, 0
+ orrs r5, r6
+ bl Random
+ ldr r1, _080D8F6C @ =0x000001ff
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ ble _080D8F56
+ subs r0, r6, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080D8F56:
+ strh r5, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldr r0, _080D8F70 @ =sub_80D8F74
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8F64: .4byte 0x000003ff
+_080D8F68: .4byte 0xfffffc00
+_080D8F6C: .4byte 0x000001ff
+_080D8F70: .4byte sub_80D8F74
+ thumb_func_end sub_80D8F10
+
+ thumb_func_start sub_80D8F74
+sub_80D8F74: @ 80D8F74
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r3, r0, r1
+ strh r3, [r2, 0x34]
+ ldrh r1, [r2, 0x32]
+ ldrh r4, [r2, 0x36]
+ adds r1, r4
+ strh r1, [r2, 0x36]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080D8F98
+ lsls r0, r3, 16
+ asrs r0, 24
+ negs r0, r0
+ b _080D8F9C
+_080D8F98:
+ lsls r0, r3, 16
+ asrs r0, 24
+_080D8F9C:
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080D8FBA
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D8FBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D8F74
+
+ thumb_func_start sub_80D8FC0
+sub_80D8FC0: @ 80D8FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D8FE8 @ =gUnknown_03004B00
+ ldrb r3, [r1]
+ lsls r3, 1
+ adds r3, r1
+ ldr r1, _080D8FEC @ =gUnknown_0202F7B4
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x11]
+ lsrs r2, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r2, r1
+ subs r2, 0x1
+ strh r2, [r3]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D8FE8: .4byte gUnknown_03004B00
+_080D8FEC: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80D8FC0
+
+ thumb_func_start unc_080B08A0
+unc_080B08A0: @ 80D8FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9020 @ =gUnknown_03004B00
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0xF
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D9024 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9028 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9020: .4byte gUnknown_03004B00
+_080D9024: .4byte sub_80782D8
+_080D9028: .4byte move_anim_8072740
+ thumb_func_end unc_080B08A0
+
+ thumb_func_start sub_80D902C
+sub_80D902C: @ 80D902C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9070 @ =gUnknown_03004B00
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080D9054
+ ldr r0, _080D9074 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9054
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x6]
+_080D9054:
+ ldr r4, _080D9070 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8079534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9070: .4byte gUnknown_03004B00
+_080D9074: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80D902C
+
+ thumb_func_start sub_80D9078
+sub_80D9078: @ 80D9078
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9094
+ ldr r0, _080D90A0 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080D9094:
+ adds r0, r4, 0
+ bl sub_80D902C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90A0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9078
+
+ thumb_func_start sub_80D90A4
+sub_80D90A4: @ 80D90A4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D90C4 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x8]
+ bl StartSpriteAnim
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D90C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080D90D0
+ .align 2, 0
+_080D90C4: .4byte gUnknown_03004B00
+_080D90C8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080D90D0:
+ ldr r0, _080D90E8 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D90EC @ =sub_80782D8
+ str r0, [r5, 0x1C]
+ ldr r1, _080D90F0 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D90E8: .4byte gUnknown_03004B00
+_080D90EC: .4byte sub_80782D8
+_080D90F0: .4byte move_anim_8072740
+ thumb_func_end sub_80D90A4
+
+ thumb_func_start sub_80D90F4
+sub_80D90F4: @ 80D90F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _080D9110 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r9, r0
+ cmp r1, 0
+ bne _080D9118
+ ldr r0, _080D9114 @ =gUnknown_0202F7C8
+ b _080D911A
+ .align 2, 0
+_080D9110: .4byte gUnknown_03004B00
+_080D9114: .4byte gUnknown_0202F7C8
+_080D9118:
+ ldr r0, _080D9260 @ =gUnknown_0202F7C9
+_080D911A:
+ ldrb r0, [r0]
+ mov r8, r0
+ mov r4, r9
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _080D9138
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x4]
+_080D9138:
+ ldrb r1, [r4, 0x4]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ mov r0, r8
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ mov r0, r8
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r6, r1, 16
+ mov r0, r8
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080D9182
+ adds r0, 0x3
+_080D9182:
+ lsls r4, r0, 14
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91C4
+ lsls r0, r6, 16
+ negs r0, r0
+ lsrs r6, r0, 16
+_080D91C4:
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080D91D6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080D91D6:
+ ldr r0, _080D9264 @ =gUnknown_02024A72
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080D91EC
+ lsls r0, r4, 16
+ ldr r1, _080D9268 @ =0xfff00000
+ adds r0, r1
+ lsrs r4, r0, 16
+_080D91EC:
+ lsls r0, r6, 16
+ asrs r0, 16
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ mov r1, r9
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ adds r3, r5, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x3C]
+ cmp r0, 0x40
+ beq _080D9250
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080D9270 @ =gSprites
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r2, 0x3C
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080D9274 @ =SpriteCallbackDummy
+ str r1, [r0]
+_080D9250:
+ ldr r0, _080D9278 @ =sub_80D927C
+ str r0, [r5, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9260: .4byte gUnknown_0202F7C9
+_080D9264: .4byte gUnknown_02024A72
+_080D9268: .4byte 0xfff00000
+_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
+_080D9270: .4byte gSprites
+_080D9274: .4byte SpriteCallbackDummy
+_080D9278: .4byte sub_80D927C
+ thumb_func_end sub_80D90F4
+
+ thumb_func_start sub_80D927C
+sub_80D927C: @ 80D927C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080D92C4
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x40
+ beq _080D92B8
+ ldr r4, _080D92C0 @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x3C
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+_080D92B8:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D92C8
+ .align 2, 0
+_080D92C0: .4byte gSprites
+_080D92C4:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+_080D92C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D927C
+
+ thumb_func_start sub_80D92D0
+sub_80D92D0: @ 80D92D0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D92F0 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D92F4
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x14
+ strh r0, [r4, 0x32]
+ b _080D9306
+ .align 2, 0
+_080D92F0: .4byte gUnknown_03004B00
+_080D92F4:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x14
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_080D9306:
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x14
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9320 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9324 @ =sub_80D9328
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9320: .4byte sub_8078B34
+_080D9324: .4byte sub_80D9328
+ thumb_func_end sub_80D92D0
+
+ thumb_func_start sub_80D9328
+sub_80D9328: @ 80D9328
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _080D9368
+ ldrh r2, [r5, 0x20]
+ ldrh r4, [r5, 0x24]
+ subs r0, r2, r4
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x22]
+ ldrh r3, [r5, 0x26]
+ subs r0, r1, r3
+ strh r0, [r5, 0x36]
+ movs r0, 0x8
+ strh r0, [r5, 0x2E]
+ adds r2, r4
+ strh r2, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x22]
+ strh r6, [r5, 0x26]
+ strh r6, [r5, 0x24]
+ ldr r0, _080D9370 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9374 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9368:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9370: .4byte sub_8078B34
+_080D9374: .4byte move_anim_8072740
+ thumb_func_end sub_80D9328
+
+ thumb_func_start sub_80D9378
+sub_80D9378: @ 80D9378
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080D93F4 @ =gUnknown_0202F7C8
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ldr r2, _080D93F8 @ =gUnknown_0202F7C9
+ eors r0, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _080D93A4
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080D93A4
+ ldr r1, _080D93FC @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+_080D93A4:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D93F4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D93C2
+ ldr r1, _080D93FC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080D93C2:
+ ldr r4, _080D93FC @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x6]
+ movs r5, 0
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x3A]
+ strh r5, [r6, 0x3C]
+ ldr r0, _080D9400 @ =sub_80D9404
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D93F4: .4byte gUnknown_0202F7C8
+_080D93F8: .4byte gUnknown_0202F7C9
+_080D93FC: .4byte gUnknown_03004B00
+_080D9400: .4byte sub_80D9404
+ thumb_func_end sub_80D9378
+
+ thumb_func_start sub_80D9404
+sub_80D9404: @ 80D9404
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9430
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x3C]
+ adds r0, r2
+ strh r0, [r4, 0x3C]
+ b _080D9436
+_080D9430:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9404
+
+ thumb_func_start sub_80D943C
+sub_80D943C: @ 80D943C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r5, _080D9468 @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D946C @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9470 @ =sub_80D9474
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9468: .4byte gUnknown_03004B00
+_080D946C: .4byte sub_80782D8
+_080D9470: .4byte sub_80D9474
+ thumb_func_end sub_80D943C
+
+ thumb_func_start sub_80D9474
+sub_80D9474: @ 80D9474
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94A0 @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ ldr r1, _080D94A4 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94A0: .4byte sub_80782D8
+_080D94A4: .4byte move_anim_8072740
+ thumb_func_end sub_80D9474
+
+ thumb_func_start sub_80D94A8
+sub_80D94A8: @ 80D94A8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080D94C4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080D94C8 @ =sub_80D94CC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D94C4: .4byte gUnknown_03004B00
+_080D94C8: .4byte sub_80D94CC
+ thumb_func_end sub_80D94A8
+
+ thumb_func_start sub_80D94CC
+sub_80D94CC: @ 80D94CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9510
+ movs r0, 0x6
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9518 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D951C @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080D9520 @ =sub_80D9524
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+_080D9510:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9518: .4byte gUnknown_0202F7C9
+_080D951C: .4byte sub_8078B34
+_080D9520: .4byte sub_80D9524
+ thumb_func_end sub_80D94CC
+
+ thumb_func_start sub_80D9524
+sub_80D9524: @ 80D9524
+ push {lr}
+ movs r1, 0xF
+ strh r1, [r0, 0x2E]
+ ldr r1, _080D9538 @ =sub_80782D8
+ str r1, [r0, 0x1C]
+ ldr r1, _080D953C @ =move_anim_8072740
+ bl oamt_set_x3A_32
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9538: .4byte sub_80782D8
+_080D953C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9524
+
+ thumb_func_start sub_80D9540
+sub_80D9540: @ 80D9540
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D956C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080D9568 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080D95C8
+ .align 2, 0
+_080D9568: .4byte gUnknown_03004B00
+_080D956C:
+ ldrh r0, [r4, 0x30]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ cmp r0, 0x64
+ ble _080D95BA
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r0, 1
+ lsls r0, 1
+ subs r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080D95BA:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _080D95C8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D95C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9540
+
+ thumb_func_start sub_80D95D0
+sub_80D95D0: @ 80D95D0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D95E4 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D95EC
+ ldr r4, _080D95E8 @ =gUnknown_0202F7C8
+ b _080D95EE
+ .align 2, 0
+_080D95E4: .4byte gUnknown_03004B00
+_080D95E8: .4byte gUnknown_0202F7C8
+_080D95EC:
+ ldr r4, _080D9634 @ =gUnknown_0202F7C9
+_080D95EE:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9638 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x4]
+ ldrh r3, [r5, 0x22]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ strh r2, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldr r0, _080D963C @ =sub_80D9640
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9634: .4byte gUnknown_0202F7C9
+_080D9638: .4byte gUnknown_03004B00
+_080D963C: .4byte sub_80D9640
+ thumb_func_end sub_80D95D0
+
+ thumb_func_start sub_80D9640
+sub_80D9640: @ 80D9640
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080D9652
+ cmp r2, 0x1
+ beq _080D9676
+ b _080D96B0
+_080D9652:
+ ldrh r0, [r1, 0x30]
+ subs r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ movs r2, 0x32
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080D966E
+ adds r0, r1, 0
+ bl move_anim_8072740
+ b _080D96B0
+_080D966E:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _080D96B0
+_080D9676:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D969E
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x34]
+ adds r0, 0x1
+ strh r0, [r1, 0x34]
+ ands r0, r2
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D969A
+ movs r0, 0x2
+ b _080D969C
+_080D969A:
+ ldr r0, _080D96B4 @ =0x0000fffe
+_080D969C:
+ strh r0, [r1, 0x24]
+_080D969E:
+ ldrh r0, [r1, 0x32]
+ subs r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D96B0
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D96B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D96B4: .4byte 0x0000fffe
+ thumb_func_end sub_80D9640
+
+ thumb_func_start sub_80D96B8
+sub_80D96B8: @ 80D96B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080D96DC @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080D96E4
+ ldr r4, _080D96E0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x4]
+ adds r0, r2
+ b _080D96F6
+ .align 2, 0
+_080D96DC: .4byte gUnknown_03004B00
+_080D96E0: .4byte gUnknown_0202F7C8
+_080D96E4:
+ ldr r4, _080D9740 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x4]
+ adds r0, r1
+_080D96F6:
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x6]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ ldr r3, _080D9744 @ =gUnknown_03004B00
+ movs r4, 0x2
+ ldrsh r0, [r3, r4]
+ lsls r0, 4
+ adds r1, r0
+ ldr r4, _080D9748 @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080D974C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _080D9764
+ cmp r0, 0x1
+ bgt _080D9750
+ cmp r0, 0
+ beq _080D975A
+ b _080D978A
+ .align 2, 0
+_080D9740: .4byte gUnknown_0202F7C9
+_080D9744: .4byte gUnknown_03004B00
+_080D9748: .4byte 0x000003ff
+_080D974C: .4byte 0xfffffc00
+_080D9750:
+ cmp r0, 0x2
+ beq _080D9774
+ cmp r0, 0x3
+ beq _080D9784
+ b _080D978A
+_080D975A:
+ ldr r0, _080D9760 @ =0x0000fffd
+ b _080D9784
+ .align 2, 0
+_080D9760: .4byte 0x0000fffd
+_080D9764:
+ movs r0, 0x3
+ strh r0, [r5, 0x3A]
+ ldr r0, _080D9770 @ =0x0000fffd
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9770: .4byte 0x0000fffd
+_080D9774:
+ ldr r0, _080D9780 @ =0x0000fffd
+ strh r0, [r5, 0x3A]
+ movs r0, 0x3
+ strh r0, [r5, 0x3C]
+ b _080D9792
+ .align 2, 0
+_080D9780: .4byte 0x0000fffd
+_080D9784:
+ strh r0, [r5, 0x3A]
+ strh r0, [r5, 0x3C]
+ b _080D9792
+_080D978A:
+ adds r0, r5, 0
+ bl move_anim_8072740
+ b _080D9796
+_080D9792:
+ ldr r0, _080D979C @ =sub_80D97A0
+ str r0, [r5, 0x1C]
+_080D9796:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D979C: .4byte sub_80D97A0
+ thumb_func_end sub_80D96B8
+
+ thumb_func_start sub_80D97A0
+sub_80D97A0: @ 80D97A0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x3A]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldrh r0, [r1, 0x3C]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D97C8
+ adds r0, r1, 0
+ bl move_anim_8072740
+_080D97C8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D97A0
+
+ thumb_func_start sub_80D97CC
+sub_80D97CC: @ 80D97CC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9818 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9828
+ ldr r4, _080D981C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9820 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9824 @ =gUnknown_0202F7C9
+ b _080D9844
+ .align 2, 0
+_080D9818: .4byte gUnknown_03004B00
+_080D981C: .4byte gUnknown_02024C07
+_080D9820: .4byte gUnknown_0202F7C8
+_080D9824: .4byte gUnknown_0202F7C9
+_080D9828:
+ ldr r0, _080D9860 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ ldr r0, _080D9864 @ =gUnknown_0202F7C8
+_080D9844:
+ ldrb r0, [r0]
+ strh r0, [r5, 0x3C]
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ movs r0, 0xC
+ strh r0, [r5, 0x30]
+ movs r0, 0x8
+ strh r0, [r5, 0x32]
+ ldr r0, _080D9868 @ =sub_80D986C
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9860: .4byte gUnknown_0202F7C9
+_080D9864: .4byte gUnknown_0202F7C8
+_080D9868: .4byte sub_80D986C
+ thumb_func_end sub_80D97CC
+
+ thumb_func_start sub_80D986C
+sub_80D986C: @ 80D986C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB4
+ bne _080D98C6
+ ldr r1, _080D98CC @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D98D0 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D98D4 @ =sub_8078BB8
+ str r0, [r4, 0x1C]
+_080D98C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D98CC: .4byte REG_BLDCNT
+_080D98D0: .4byte move_anim_8074EE0
+_080D98D4: .4byte sub_8078BB8
+ thumb_func_end sub_80D986C
+
+ thumb_func_start sub_80D98D8
+sub_80D98D8: @ 80D98D8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9924 @ =gUnknown_03004B00
+ ldrh r0, [r4]
+ strh r0, [r5, 0x20]
+ movs r2, 0x78
+ strh r2, [r5, 0x22]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ adds r0, 0x36
+ adds r1, r5, 0
+ adds r1, 0x38
+ lsls r2, 8
+ bl sub_8079BF4
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080D9928 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080D992C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r0, _080D9930 @ =sub_80D9934
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9924: .4byte gUnknown_03004B00
+_080D9928: .4byte 0x000003ff
+_080D992C: .4byte 0xfffffc00
+_080D9930: .4byte sub_80D9934
+ thumb_func_end sub_80D98D8
+
+ thumb_func_start sub_80D9934
+sub_80D9934: @ 80D9934
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _080D9986
+ movs r2, 0x36
+ ldrsh r0, [r7, r2]
+ movs r2, 0x38
+ ldrsh r1, [r7, r2]
+ bl sub_8079BFC
+ adds r4, r0, 0
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ subs r4, r0
+ adds r0, r7, 0
+ adds r0, 0x36
+ adds r1, r7, 0
+ adds r1, 0x38
+ adds r2, r4, 0
+ bl sub_8079BF4
+ asrs r4, 8
+ strh r4, [r7, 0x22]
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r4, r0
+ bge _080D997E
+ adds r0, r7, 0
+ bl move_anim_8072740
+ b _080D99DC
+_080D997E:
+ ldrh r0, [r7, 0x2E]
+ subs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _080D99DC
+_080D9986:
+ ldr r4, _080D99E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _080D99EC @ =gUnknown_0202F7C9
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ subs r4, r6
+ strh r4, [r7, 0x2E]
+ lsrs r0, 24
+ subs r0, r5
+ strh r0, [r7, 0x30]
+ ldrh r0, [r7, 0x20]
+ lsls r0, 4
+ strh r0, [r7, 0x32]
+ ldrh r0, [r7, 0x22]
+ lsls r0, 4
+ strh r0, [r7, 0x34]
+ ldr r0, _080D99F0 @ =sub_80D99F4
+ str r0, [r7, 0x1C]
+_080D99DC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D99E8: .4byte gUnknown_0202F7C8
+_080D99EC: .4byte gUnknown_0202F7C9
+_080D99F0: .4byte sub_80D99F4
+ thumb_func_end sub_80D9934
+
+ thumb_func_start sub_80D99F4
+sub_80D99F4: @ 80D99F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x34]
+ adds r1, r3
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080D9A2E
+ adds r1, r3, 0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ blt _080D9A2E
+ cmp r1, 0x78
+ ble _080D9A34
+_080D9A2E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080D9A34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D99F4
+
+ thumb_func_start sub_80D9A38
+sub_80D9A38: @ 80D9A38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080D9A6C @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9A7C
+ ldr r4, _080D9A70 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r0, _080D9A74 @ =gUnknown_0202F7C9
+ ldrb r4, [r0]
+ ldr r0, _080D9A78 @ =gUnknown_0202F7C8
+ b _080D9A82
+ .align 2, 0
+_080D9A6C: .4byte gUnknown_03004B00
+_080D9A70: .4byte gUnknown_02024C07
+_080D9A74: .4byte gUnknown_0202F7C9
+_080D9A78: .4byte gUnknown_0202F7C8
+_080D9A7C:
+ ldr r0, _080D9AB4 @ =gUnknown_0202F7C8
+ ldrb r4, [r0]
+ ldr r0, _080D9AB8 @ =gUnknown_0202F7C9
+_080D9A82:
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9ABC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ b _080D9AD6
+ .align 2, 0
+_080D9AB4: .4byte gUnknown_0202F7C8
+_080D9AB8: .4byte gUnknown_0202F7C9
+_080D9ABC:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9ADC
+ ldrb r2, [r5, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x18
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x57
+_080D9AD6:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+_080D9ADC:
+ movs r0, 0x10
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r1, _080D9B1C @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080D9B20 @ =sub_8078BB8
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9B1C: .4byte move_anim_8072740
+_080D9B20: .4byte sub_8078BB8
+ thumb_func_end sub_80D9A38
+
+ thumb_func_start sub_80D9B24
+sub_80D9B24: @ 80D9B24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080D9B3A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9B3A:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9B24
+
+ thumb_func_start sub_80D9B48
+sub_80D9B48: @ 80D9B48
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9BC4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r1, _080D9BC8 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9BCC @ =gUnknown_0202F7C4
+ ldrb r6, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9B92
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080D9B92:
+ movs r0, 0x1
+ ands r6, r0
+ cmp r6, 0
+ beq _080D9BA6
+ ldrh r0, [r5, 0x32]
+ negs r0, r0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+_080D9BA6:
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x32]
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x26]
+ ldr r0, _080D9BD0 @ =sub_80D9B24
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9BC4: .4byte gUnknown_0202F7C9
+_080D9BC8: .4byte gUnknown_03004B00
+_080D9BCC: .4byte gUnknown_0202F7C4
+_080D9BD0: .4byte sub_80D9B24
+ thumb_func_end sub_80D9B48
+
+ thumb_func_start sub_80D9BD4
+sub_80D9BD4: @ 80D9BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9BEC @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D9BF0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080D9BF8
+ .align 2, 0
+_080D9BEC: .4byte gUnknown_03004B00
+_080D9BF0:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080D9BF8:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C0C
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ b _080D9C22
+_080D9C0C:
+ ldr r0, _080D9C34 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9C22
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080D9C22:
+ ldr r0, _080D9C38 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9C3C @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9C34: .4byte gUnknown_0202F7C8
+_080D9C38: .4byte sub_8078600
+_080D9C3C: .4byte move_anim_8072740
+ thumb_func_end sub_80D9BD4
+
+ thumb_func_start sub_80D9C40
+sub_80D9C40: @ 80D9C40
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080D9C7A
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x28
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _080D9C7A
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9C40
+
+ thumb_func_start sub_80D9C80
+sub_80D9C80: @ 80D9C80
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080D9CB0 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080D9CB8
+ cmp r0, 0x1
+ bgt _080D9CD2
+ cmp r0, 0
+ bne _080D9CD2
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080D9CB4 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r4, 0x18]
+ b _080D9CCA
+ .align 2, 0
+_080D9CB0: .4byte gTasks
+_080D9CB4: .4byte gUnknown_03004B00
+_080D9CB8:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080D9CDE
+_080D9CCA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080D9CDE
+_080D9CD2:
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+_080D9CDE:
+ movs r2, 0xB0
+ lsls r2, 4
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x1C]
+ adds r0, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D0C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D9D14
+ ldr r1, _080D9D10 @ =gUnknown_030041B0
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r7, r1, 0
+ b _080D9D24
+ .align 2, 0
+_080D9D0C: .4byte gUnknown_0202F7C9
+_080D9D10: .4byte gUnknown_030041B0
+_080D9D14:
+ ldr r2, _080D9D64 @ =gUnknown_030041B0
+ ldrh r1, [r4, 0x1A]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r7, r2, 0
+_080D9D24:
+ ldr r3, _080D9D68 @ =gUnknown_030041B8
+ ldrh r2, [r4, 0x1C]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ movs r0, 0xFF
+ ldrb r1, [r4, 0x1A]
+ movs r5, 0
+ strh r1, [r4, 0x1A]
+ ands r0, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, _080D9D6C @ =gUnknown_03004B00
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080D9D5C
+ strh r5, [r7]
+ strh r5, [r3]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080D9D5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9D64: .4byte gUnknown_030041B0
+_080D9D68: .4byte gUnknown_030041B8
+_080D9D6C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80D9C80
+
+ thumb_func_start sub_80D9D70
+sub_80D9D70: @ 80D9D70
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080D9DC4 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9D86
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9D86:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x2E]
+ ldr r4, _080D9DC8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080D9DCC @ =0x0000ffe2
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080D9DD0 @ =sub_80D9DD4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9DC4: .4byte gUnknown_03004B00
+_080D9DC8: .4byte gUnknown_0202F7C9
+_080D9DCC: .4byte 0x0000ffe2
+_080D9DD0: .4byte sub_80D9DD4
+ thumb_func_end sub_80D9D70
+
+ thumb_func_start sub_80D9DD4
+sub_80D9DD4: @ 80D9DD4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9DE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9DE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9DD4
+
+ thumb_func_start sub_80D9DF0
+sub_80D9DF0: @ 80D9DF0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r5, _080D9E64 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9E08
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080D9E08:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080D9E68 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ mov r6, sp
+ adds r6, 0x2
+ movs r1, 0x1
+ mov r2, sp
+ adds r3, r6, 0
+ bl sub_807A3FC
+ ldr r0, _080D9E6C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E36
+ ldrh r0, [r5, 0x8]
+ negs r0, r0
+ strh r0, [r5, 0x8]
+_080D9E36:
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0xA]
+ ldrh r6, [r6]
+ adds r0, r6
+ strh r0, [r4, 0x36]
+ ldr r0, _080D9E70 @ =0x0000ffe2
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080D9E74 @ =sub_80D9E78
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9E64: .4byte gUnknown_03004B00
+_080D9E68: .4byte gUnknown_0202F7C9
+_080D9E6C: .4byte gUnknown_0202F7C8
+_080D9E70: .4byte 0x0000ffe2
+_080D9E74: .4byte sub_80D9E78
+ thumb_func_end sub_80D9DF0
+
+ thumb_func_start sub_80D9E78
+sub_80D9E78: @ 80D9E78
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9E8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9E8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9E78
+
+ thumb_func_start sub_80D9E94
+sub_80D9E94: @ 80D9E94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9EE0 @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x38]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ ldr r0, _080D9EE4 @ =sub_80D9EE8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9EE0: .4byte gUnknown_03004B00
+_080D9EE4: .4byte sub_80D9EE8
+ thumb_func_end sub_80D9E94
+
+ thumb_func_start sub_80D9EE8
+sub_80D9EE8: @ 80D9EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078394
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ subs r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D9F0E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080D9F0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9EE8
+
+ thumb_func_start sub_80D9F14
+sub_80D9F14: @ 80D9F14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D9F74 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9F78 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9F40
+ ldr r1, _080D9F7C @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080D9F40:
+ ldr r0, _080D9F7C @ =gUnknown_03004B00
+ ldrh r2, [r0]
+ ldrh r1, [r4, 0x20]
+ adds r2, r1
+ strh r2, [r4, 0x20]
+ ldrh r1, [r0, 0x2]
+ ldrh r3, [r4, 0x22]
+ adds r1, r3
+ strh r1, [r4, 0x22]
+ ldrh r3, [r0, 0x8]
+ strh r3, [r4, 0x2E]
+ ldrh r0, [r0, 0x4]
+ adds r2, r0
+ strh r2, [r4, 0x32]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ ldr r0, _080D9F80 @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080D9F84 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9F74: .4byte gUnknown_0202F7C9
+_080D9F78: .4byte gUnknown_0202F7C8
+_080D9F7C: .4byte gUnknown_03004B00
+_080D9F80: .4byte sub_8078B34
+_080D9F84: .4byte move_anim_8072740
+ thumb_func_end sub_80D9F14
+
+ thumb_func_start sub_80D9F88
+sub_80D9F88: @ 80D9F88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D9FA0 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080D9FA4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+ b _080D9FDA
+ .align 2, 0
+_080D9FA0: .4byte gUnknown_03004B00
+_080D9FA4:
+ ldr r0, _080D9FE4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0x1
+ bl sub_807A3FC
+ ldr r0, _080D9FE8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D9FCA
+ ldrh r0, [r5]
+ negs r0, r0
+ strh r0, [r5]
+_080D9FCA:
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_080D9FDA:
+ ldr r0, _080D9FEC @ =sub_80D9FF0
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D9FE4: .4byte gUnknown_0202F7C9
+_080D9FE8: .4byte gUnknown_0202F7C8
+_080D9FEC: .4byte sub_80D9FF0
+ thumb_func_end sub_80D9F88
+
+ thumb_func_start sub_80D9FF0
+sub_80D9FF0: @ 80D9FF0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0xB
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x4
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x30
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA02C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA02C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D9FF0
+
+ thumb_func_start sub_80DA034
+sub_80DA034: @ 80DA034
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x14
+ strh r0, [r4, 0x22]
+ movs r0, 0xBF
+ strh r0, [r4, 0x30]
+ ldr r1, _080DA058 @ =sub_80DA05C
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA058: .4byte sub_80DA05C
+ thumb_func_end sub_80DA034
+
+ thumb_func_start sub_80DA05C
+sub_80DA05C: @ 80DA05C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x47
+ bne _080DA096
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA096:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA05C
+
+ thumb_func_start sub_80DA09C
+sub_80DA09C: @ 80DA09C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080DA0CC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r1, _080DA0D0 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ ldr r0, _080DA0D4 @ =0x00002719
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldr r0, _080DA0D8 @ =sub_80DA0DC
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA0CC: .4byte gTasks
+_080DA0D0: .4byte gUnknown_03004B00
+_080DA0D4: .4byte 0x00002719
+_080DA0D8: .4byte sub_80DA0DC
+ thumb_func_end sub_80DA09C
+
+ thumb_func_start sub_80DA0DC
+sub_80DA0DC: @ 80DA0DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080DA15C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r3, r4]
+ adds r7, r2, 0
+ cmp r0, r1
+ bne _080DA13A
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrb r0, [r3, 0xC]
+ ldr r2, _080DA160 @ =gPlttBufferFaded
+ lsls r0, 4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r1, r0, r3
+ lsls r1, 1
+ adds r1, r2
+ ldrh r6, [r1]
+ movs r4, 0x7
+ mov r12, r0
+ ldr r0, _080DA164 @ =0x00000107
+ add r0, r12
+ lsls r0, 1
+ adds r3, r0, r2
+_080DA122:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _080DA122
+ ldr r0, _080DA168 @ =0x00000101
+ add r0, r12
+ lsls r0, 1
+ adds r0, r2
+ strh r6, [r0]
+_080DA13A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ subs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080DA154
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DA154:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA15C: .4byte gTasks
+_080DA160: .4byte gPlttBufferFaded
+_080DA164: .4byte 0x00000107
+_080DA168: .4byte 0x00000101
+ thumb_func_end sub_80DA0DC
+
+ thumb_func_start sub_80DA16C
+sub_80DA16C: @ 80DA16C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DA1D8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA18C
+ ldr r1, _080DA1DC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DA18C:
+ ldr r4, _080DA1DC @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrh r0, [r6, 0x20]
+ strh r0, [r6, 0x30]
+ ldr r5, _080DA1E0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrh r0, [r6, 0x22]
+ strh r0, [r6, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ adds r0, r6, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA1E4 @ =sub_80785E4
+ str r0, [r6, 0x1C]
+ ldr r1, _080DA1E8 @ =sub_80DA1EC
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA1D8: .4byte gUnknown_0202F7C8
+_080DA1DC: .4byte gUnknown_03004B00
+_080DA1E0: .4byte gUnknown_0202F7C9
+_080DA1E4: .4byte sub_80785E4
+_080DA1E8: .4byte sub_80DA1EC
+ thumb_func_end sub_80DA16C
+
+ thumb_func_start sub_80DA1EC
+sub_80DA1EC: @ 80DA1EC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA200
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA200:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA1EC
+
+ thumb_func_start sub_80DA208
+sub_80DA208: @ 80DA208
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DA2A4 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA234
+ ldr r1, _080DA2A8 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DA234:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA24C
+ ldr r0, _080DA2A8 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0x6]
+ negs r1, r1
+ strh r1, [r0, 0x6]
+_080DA24C:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r2, _080DA2A8 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ ldrh r3, [r5, 0x20]
+ adds r1, r3
+ strh r1, [r5, 0x20]
+ lsrs r0, 24
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080DA2B0
+ ldr r4, _080DA2AC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DA2C2
+ .align 2, 0
+_080DA2A4: .4byte gUnknown_0202F7C8
+_080DA2A8: .4byte gUnknown_03004B00
+_080DA2AC: .4byte gUnknown_0202F7C9
+_080DA2B0:
+ ldr r0, _080DA2F0 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DA2C2:
+ ldr r4, _080DA2F4 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ ldrh r3, [r5, 0x36]
+ adds r0, r3
+ strh r0, [r5, 0x36]
+ ldr r0, _080DA2F8 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080DA2FC @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrb r1, [r4, 0xA]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA2F0: .4byte gUnknown_0202F7C9
+_080DA2F4: .4byte gUnknown_03004B00
+_080DA2F8: .4byte sub_8078B34
+_080DA2FC: .4byte move_anim_8072740
+ thumb_func_end sub_80DA208
+
+ thumb_func_start sub_80DA300
+sub_80DA300: @ 80DA300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DA33C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DA340 @ =sub_80DA348
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA344 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA33C: .4byte gUnknown_03004B00
+_080DA340: .4byte sub_80DA348
+_080DA344: .4byte gSprites
+ thumb_func_end sub_80DA300
+
+ thumb_func_start sub_80DA348
+sub_80DA348: @ 80DA348
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DA35C
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DA36E
+_080DA35C:
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+_080DA36E:
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DA386
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DA386:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DA348
+
+ thumb_func_start sub_80DA38C
+sub_80DA38C: @ 80DA38C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DA3B4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA3BC
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldr r0, _080DA3B8 @ =0x0000ffe0
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _080DA3C2
+ .align 2, 0
+_080DA3B4: .4byte gUnknown_0202F7C8
+_080DA3B8: .4byte 0x0000ffe0
+_080DA3BC:
+ ldr r0, _080DA400 @ =0x0000ffe0
+ strh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+_080DA3C2:
+ ldr r0, _080DA404 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldr r4, _080DA408 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ ldr r0, _080DA40C @ =sub_80DA410
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA400: .4byte 0x0000ffe0
+_080DA404: .4byte gUnknown_03004B00
+_080DA408: .4byte gUnknown_0202F7C9
+_080DA40C: .4byte sub_80DA410
+ thumb_func_end sub_80DA38C
+
+ thumb_func_start sub_80DA410
+sub_80DA410: @ 80DA410
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ ldrh r1, [r4, 0x34]
+ lsrs r0, r1, 8
+ cmp r0, 0xC8
+ bls _080DA438
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+_080DA438:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bhi _080DA45A
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ ble _080DA480
+_080DA45A:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DA488 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DA480:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA488: .4byte gSprites
+ thumb_func_end sub_80DA410
+
+ thumb_func_start sub_80DA48C
+sub_80DA48C: @ 80DA48C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DA4CC
+ ldrb r0, [r4, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA4BE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+_080DA4BE:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r1, _080DA4D4 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080DA4CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA4D4: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80DA48C
+
+ thumb_func_start sub_80DA4D8
+sub_80DA4D8: @ 80DA4D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r5, r7, 0
+ adds r5, 0x2E
+ ldr r0, _080DA4F8 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA500
+ ldr r0, _080DA4FC @ =gUnknown_0202F7C8
+ b _080DA502
+ .align 2, 0
+_080DA4F8: .4byte gUnknown_03004B00
+_080DA4FC: .4byte gUnknown_0202F7C8
+_080DA500:
+ ldr r0, _080DA5B0 @ =gUnknown_0202F7C9
+_080DA502:
+ ldrb r6, [r0]
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DA518
+ ldr r1, _080DA5B4 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DA518:
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DA5B4 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ ldrh r1, [r4, 0x2]
+ lsrs r0, 24
+ adds r1, r0, r1
+ strh r1, [r7, 0x22]
+ lsls r1, 8
+ strh r1, [r5, 0x8]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 1
+ ldrh r2, [r5, 0xE]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0xE]
+ ldrb r0, [r5]
+ movs r2, 0x4
+ mov r8, r2
+ mov r1, r8
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r4, 0x4]
+ ldrb r1, [r4, 0x4]
+ strh r1, [r5, 0x2]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x6]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0xC]
+ subs r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x7F
+ bhi _080DA618
+ ldr r0, _080DA5B8 @ =gMain
+ ldr r2, _080DA5BC @ =0x0000043d
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA5C0
+ adds r0, r6, 0
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r7, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ b _080DA5D8
+ .align 2, 0
+_080DA5B0: .4byte gUnknown_0202F7C9
+_080DA5B4: .4byte gUnknown_03004B00
+_080DA5B8: .4byte gMain
+_080DA5BC: .4byte 0x0000043d
+_080DA5C0:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+_080DA5D8:
+ ldrb r1, [r5, 0xE]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ strb r0, [r5, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ b _080DA66E
+_080DA618:
+ adds r0, r6, 0
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ ldrb r0, [r5, 0xE]
+ movs r4, 0x1
+ orrs r0, r4
+ strb r0, [r5, 0xE]
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA678
+ adds r3, r7, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r4
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r7, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ mov r1, r8
+_080DA66E:
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+_080DA678:
+ ldrh r1, [r5, 0x2]
+ lsrs r1, 6
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r3, _080DA6E4 @ =gSineTable
+ ldrh r0, [r5, 0x2]
+ lsls r0, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldrb r0, [r5, 0xC]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ ldrb r2, [r7, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r1, 0x24
+ ldrsh r0, [r7, r1]
+ negs r0, r0
+ asrs r0, 1
+ ldrb r5, [r5, 0xA]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r4, [r1]
+ ldr r1, _080DA6E8 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r4, [r2, 0x2]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ ldr r0, _080DA6EC @ =sub_80DA6F0
+ str r0, [r7, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DA6E4: .4byte gSineTable
+_080DA6E8: .4byte gOamMatrices
+_080DA6EC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DA4D8
+
+ thumb_func_start sub_80DA6F0
+sub_80DA6F0: @ 80DA6F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r6, 0
+ movs r0, 0x2E
+ adds r0, r5
+ mov r12, r0
+ ldrb r2, [r0]
+ movs r7, 0x1
+ movs r1, 0x1
+ mov r9, r1
+ mov r0, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA730
+ mov r3, r12
+ ldrb r0, [r3, 0x1]
+ adds r1, r0, 0
+ adds r1, 0xFF
+ strb r1, [r3, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DA724
+ b _080DAD1A
+_080DA724:
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAD1A
+_080DA730:
+ mov r4, r12
+ ldrh r0, [r4, 0x2]
+ lsrs r4, r0, 6
+ mov r8, r0
+ cmp r4, 0x1
+ bne _080DA73E
+ b _080DA896
+_080DA73E:
+ cmp r4, 0x1
+ bgt _080DA748
+ cmp r4, 0
+ beq _080DA756
+ b _080DAC52
+_080DA748:
+ cmp r4, 0x2
+ bne _080DA74E
+ b _080DA9C8
+_080DA74E:
+ cmp r4, 0x3
+ bne _080DA754
+ b _080DAB0E
+_080DA754:
+ b _080DAC52
+_080DA756:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA76C
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r1, r12
+ strb r0, [r1]
+ strb r6, [r1, 0x1]
+ b _080DA88A
+_080DA76C:
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA790
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r2, r12
+ strb r1, [r2]
+ strb r6, [r2, 0x1]
+ b _080DA88A
+_080DA790:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA88A
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA87A
+ ldr r0, _080DA80C @ =gMain
+ ldr r1, _080DA810 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA82E
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA814
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA868
+ .align 2, 0
+_080DA80C: .4byte gMain
+_080DA810: .4byte 0x0000043d
+_080DA814:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA866
+_080DA82E:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA85C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DA87A
+_080DA85C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA866:
+ mov r3, r12
+_080DA868:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DA87A:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DA88A:
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r2]
+ b _080DAC52
+_080DA896:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DA8AC
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DA9BC
+_080DA8AC:
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DA8BE
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DA9BC
+_080DA8BE:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DA9BC
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA9AC
+ ldr r0, _080DA940 @ =gMain
+ ldr r1, _080DA944 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DA962
+ mov r2, r12
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA948
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r3, r12
+ b _080DA978
+ .align 2, 0
+_080DA940: .4byte gMain
+_080DA944: .4byte 0x0000043d
+_080DA948:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DA996
+_080DA962:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DA98C
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+_080DA978:
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DA9AC
+_080DA98C:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DA996:
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+_080DA9AC:
+ mov r3, r12
+ ldrb r1, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r4, [r3, 0x2]
+ mov r8, r4
+_080DA9BC:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080DAC4C
+_080DA9C8:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x3
+ bne _080DA9DE
+ movs r0, 0x8
+ orrs r0, r2
+ orrs r0, r7
+ mov r3, r12
+ strb r0, [r3]
+ strb r6, [r3, 0x1]
+ b _080DAAFE
+_080DA9DE:
+ lsrs r0, r1, 28
+ cmp r0, 0x1
+ bne _080DA9F0
+ adds r0, r2, 0
+ orrs r0, r7
+ mov r4, r12
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ b _080DAAFE
+_080DA9F0:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080DA9FA
+ b _080DAAFE
+_080DA9FA:
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r6, 0x1
+ eors r1, r6
+ ands r1, r7
+ movs r0, 0x2
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAAEC
+ ldr r0, _080DAA6C @ =gMain
+ ldr r3, _080DAA70 @ =0x0000043d
+ adds r0, r3
+ ldrb r0, [r0]
+ ands r4, r0
+ cmp r4, 0
+ beq _080DAAA4
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAA74
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAAD8
+ .align 2, 0
+_080DAA6C: .4byte gMain
+_080DAA70: .4byte 0x0000043d
+_080DAA74:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAAEC
+_080DAAA4:
+ mov r3, r12
+ ldrb r1, [r3, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAACE
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+ b _080DAAEC
+_080DAACE:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAAD8:
+ mov r4, r12
+ ldrb r2, [r4, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r6
+ ands r0, r7
+ mov r1, r8
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0xE]
+_080DAAEC:
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r8, r2
+_080DAAFE:
+ mov r3, r12
+ ldrb r0, [r3]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r3]
+ b _080DAC52
+_080DAB0E:
+ lsls r1, r2, 24
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bne _080DAB20
+ movs r0, 0x8
+ orrs r0, r2
+ mov r4, r12
+ strb r0, [r4]
+ b _080DAC42
+_080DAB20:
+ lsrs r0, r1, 28
+ cmp r0, 0
+ bne _080DAB44
+ lsls r0, r2, 30
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r7
+ lsls r0, 1
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ orrs r1, r7
+ mov r0, r12
+ strb r1, [r0]
+ strb r6, [r0, 0x1]
+ b _080DAC42
+_080DAB44:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080DAC42
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r1, r2, 31
+ lsrs r1, 31
+ movs r4, 0x1
+ eors r1, r4
+ ands r1, r7
+ movs r6, 0x2
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r5, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAC32
+ ldr r0, _080DABC4 @ =gMain
+ ldr r3, _080DABC8 @ =0x0000043d
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DABE6
+ ldrb r1, [r2, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DABCC
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ mov r0, r12
+ ldrb r2, [r0, 0xE]
+ b _080DAC00
+ .align 2, 0
+_080DABC4: .4byte gMain
+_080DABC8: .4byte 0x0000043d
+_080DABCC:
+ ldrb r2, [r5, 0x5]
+ lsls r1, r2, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ b _080DAC1E
+_080DABE6:
+ mov r0, r12
+ ldrb r1, [r0, 0xE]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080DAC14
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0xC
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r2, [r1, 0xE]
+_080DAC00:
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2, 0xE]
+ b _080DAC32
+_080DAC14:
+ adds r1, r5, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0xC
+ strb r0, [r1]
+_080DAC1E:
+ mov r3, r12
+ ldrb r2, [r3, 0xE]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ eors r0, r4
+ ands r0, r7
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xE]
+_080DAC32:
+ mov r4, r12
+ ldrb r1, [r4]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrh r0, [r4, 0x2]
+ mov r8, r0
+_080DAC42:
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x30
+_080DAC4C:
+ orrs r1, r0
+ mov r2, r12
+ strb r1, [r2]
+_080DAC52:
+ mov r3, r12
+ ldrb r1, [r3]
+ lsls r1, 30
+ lsrs r1, 31
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r3, _080DACE0 @ =gSineTable
+ mov r4, r8
+ lsls r0, r4, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r0, r1
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrb r2, [r5, 0x3]
+ lsls r2, 26
+ lsrs r2, 27
+ movs r4, 0x24
+ ldrsh r0, [r5, r4]
+ negs r0, r0
+ asrs r0, 1
+ mov r1, r12
+ ldrb r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r3
+ ldrh r6, [r1]
+ ldr r1, _080DACE4 @ =gOamMatrices
+ lsls r2, 3
+ adds r2, r1
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ strh r0, [r2]
+ strh r6, [r2, 0x2]
+ lsls r0, r6, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ mov r2, r12
+ ldrh r0, [r2, 0x6]
+ ldrh r3, [r2, 0x8]
+ adds r0, r3
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r4, 0x4
+ ldrsh r0, [r2, r4]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080DACE8
+ ldrh r0, [r2, 0x4]
+ subs r1, 0x1
+ ands r1, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x2]
+ b _080DACFE
+ .align 2, 0
+_080DACE0: .4byte gSineTable
+_080DACE4: .4byte gOamMatrices
+_080DACE8:
+ mov r1, r12
+ ldrh r0, [r1, 0x4]
+ ldr r1, _080DAD28 @ =0x00007fff
+ ands r1, r0
+ mov r2, r12
+ ldrh r2, [r2, 0x2]
+ adds r1, r2
+ movs r0, 0xFF
+ ands r1, r0
+ mov r3, r12
+ strh r1, [r3, 0x2]
+_080DACFE:
+ movs r4, 0x22
+ ldrsh r1, [r5, r4]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ adds r1, r0
+ mov r3, r12
+ ldrh r0, [r3, 0xE]
+ lsrs r0, 1
+ cmp r1, r0
+ blt _080DAD1A
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DAD2C @ =sub_80DA48C
+ str r0, [r5, 0x1C]
+_080DAD1A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD28: .4byte 0x00007fff
+_080DAD2C: .4byte sub_80DA48C
+ thumb_func_end sub_80DA6F0
+
+ thumb_func_start sub_80DAD30
+sub_80DAD30: @ 80DAD30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _080DAD78 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r5, _080DAD7C @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080DAD80 @ =sub_807941C
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAD78: .4byte gUnknown_0202F7C9
+_080DAD7C: .4byte gUnknown_0202F7C8
+_080DAD80: .4byte sub_807941C
+ thumb_func_end sub_80DAD30
+
+ thumb_func_start sub_80DAD84
+sub_80DAD84: @ 80DAD84
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080DADCC @ =gUnknown_03004B00
+ ldrh r0, [r5]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DADD0 @ =gMain
+ ldr r1, _080DADD4 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080DAE44
+ ldr r0, _080DADD8 @ =gUnknown_02024A72
+ ldr r1, _080DADDC @ =gUnknown_0202F7C9
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DADE0
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ b _080DADEE
+ .align 2, 0
+_080DADCC: .4byte gUnknown_03004B00
+_080DADD0: .4byte gMain
+_080DADD4: .4byte 0x0000043d
+_080DADD8: .4byte gUnknown_02024A72
+_080DADDC: .4byte gUnknown_0202F7C9
+_080DADE0:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x28
+_080DADEE:
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DAE1C @ =gUnknown_03004B00
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DAE24
+ ldr r0, _080DAE20 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 2
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE1C: .4byte gUnknown_03004B00
+_080DAE20: .4byte gUnknown_0202F7C9
+_080DAE24:
+ ldr r0, _080DAE40 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ b _080DAE58
+ .align 2, 0
+_080DAE40: .4byte gUnknown_0202F7C9
+_080DAE44:
+ ldr r0, _080DAEFC @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x3C]
+_080DAE58:
+ ldr r5, _080DAF00 @ =gSineTable
+ ldrh r3, [r4, 0x30]
+ movs r1, 0xFF
+ ands r1, r3
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r4, 0x36]
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ strh r2, [r4, 0x26]
+ strh r2, [r4, 0x24]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r6, r0, 27
+ lsls r3, 16
+ lsrs r3, 24
+ strh r3, [r4, 0x30]
+ bl Random
+ lsls r0, 16
+ asrs r7, r0, 16
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEA2
+ ldrh r1, [r4, 0x30]
+ movs r0, 0xFF
+ subs r0, r1
+ strh r0, [r4, 0x30]
+_080DAEA2:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, _080DAF04 @ =gOamMatrices
+ lsls r2, r6, 3
+ adds r2, r3
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ strh r1, [r2, 0x6]
+ strh r1, [r2]
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r2, 0x4]
+ adds r3, r4, 0
+ adds r3, 0x3F
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _080DAEF2
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r1, 0x1
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+_080DAEF2:
+ ldr r0, _080DAF08 @ =sub_80DAF0C
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAEFC: .4byte gUnknown_0202F7C9
+_080DAF00: .4byte gSineTable
+_080DAF04: .4byte gOamMatrices
+_080DAF08: .4byte sub_80DAF0C
+ thumb_func_end sub_80DAD84
+
+ thumb_func_start sub_80DAF0C
+sub_80DAF0C: @ 80DAF0C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r4, 0
+ adds r5, 0x2E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ mov r8, r1
+ movs r7, 0
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080DAFF0
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r6, r0, 8
+ strh r6, [r4, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ asrs r3, r0, 8
+ strh r3, [r4, 0x26]
+ ldrh r2, [r4, 0x34]
+ movs r1, 0xFF
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x3A]
+ adds r0, r2
+ strh r0, [r4, 0x3A]
+ ldrh r2, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ ands r1, r2
+ cmp r0, r1
+ blt _080DAFF0
+ ldrh r0, [r4, 0x20]
+ adds r0, r6
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ strh r7, [r4, 0x24]
+ strh r7, [r4, 0x26]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ ldrh r0, [r4, 0x22]
+ lsls r0, 8
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ lsrs r1, r0, 8
+ strh r1, [r5, 0x6]
+ strh r7, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080DAFC0
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFB8
+ ldr r0, _080DAFB4 @ =0x00008001
+ b _080DAFCE
+ .align 2, 0
+_080DAFB4: .4byte 0x00008001
+_080DAFB8:
+ ldr r0, _080DAFBC @ =0x00008002
+ b _080DAFCE
+ .align 2, 0
+_080DAFBC: .4byte 0x00008002
+_080DAFC0:
+ movs r0, 0x8
+ ands r1, r0
+ cmp r1, 0
+ beq _080DAFCC
+ movs r0, 0x1
+ b _080DAFCE
+_080DAFCC:
+ movs r0, 0x2
+_080DAFCE:
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ lsrs r0, 8
+ strb r0, [r5, 0xC]
+ subs r0, 0x2
+ strb r0, [r5, 0xD]
+ mov r0, sp
+ ldrh r1, [r0, 0xE]
+ lsls r1, 1
+ ldrh r2, [r5, 0xE]
+ movs r0, 0x1
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _080DAFFC @ =sub_80DA6F0
+ str r0, [r4, 0x1C]
+_080DAFF0:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DAFFC: .4byte sub_80DA6F0
+ thumb_func_end sub_80DAF0C
+
+ thumb_func_start sub_80DB000
+sub_80DB000: @ 80DB000
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DB018 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB01C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DB024
+ .align 2, 0
+_080DB018: .4byte gUnknown_03004B00
+_080DB01C:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078764
+_080DB024:
+ ldr r4, _080DB08C @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DB03C
+ ldr r0, _080DB090 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB052
+_080DB03C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080DB058
+ ldr r0, _080DB094 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB058
+_080DB052:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+_080DB058:
+ ldr r4, _080DB08C @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x8]
+ adds r0, r5, 0
+ bl SeekSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x20
+ strh r0, [r5, 0x20]
+ ldr r0, _080DB098 @ =0x00000ccc
+ strh r0, [r5, 0x30]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ ldrh r2, [r5, 0x24]
+ adds r0, r2
+ strh r0, [r5, 0x24]
+ strh r1, [r5, 0x2E]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x3C]
+ ldr r0, _080DB09C @ =sub_80DB0A0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB08C: .4byte gUnknown_03004B00
+_080DB090: .4byte gUnknown_0202F7C8
+_080DB094: .4byte gUnknown_0202F7C9
+_080DB098: .4byte 0x00000ccc
+_080DB09C: .4byte sub_80DB0A0
+ thumb_func_end sub_80DB000
+
+ thumb_func_start sub_80DB0A0
+sub_80DB0A0: @ 80DB0A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _080DB0CA
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x24]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080DB0CA:
+ ldrh r0, [r4, 0x3C]
+ subs r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB0E2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB0E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB0A0
+
+ thumb_func_start sub_80DB0E8
+sub_80DB0E8: @ 80DB0E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r1, _080DB180 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x8]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _080DB162
+ ldr r1, _080DB184 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r5, 0xD
+ negs r5, r5
+ adds r1, r5, 0
+ bl Sin
+ ldr r4, _080DB188 @ =gUnknown_03004B00
+ strh r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ adds r1, r5, 0
+ bl Cos
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ movs r0, 0x3
+ strh r0, [r4, 0x6]
+ ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
+ mov r8, r0
+ ldr r5, _080DB190 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl CreateSpriteAndAnimate
+_080DB162:
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x8
+ strh r0, [r7, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DB176
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DB176:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB180: .4byte gTasks
+_080DB184: .4byte gUnknown_0202F7B2
+_080DB188: .4byte gUnknown_03004B00
+_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
+_080DB190: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80DB0E8
+
+ thumb_func_start sub_80DB194
+sub_80DB194: @ 80DB194
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DB1A6
+ cmp r0, 0x1
+ beq _080DB1D8
+ b _080DB1EC
+_080DB1A6:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB1D4 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB1EC
+ .align 2, 0
+_080DB1D4: .4byte gSprites
+_080DB1D8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB1EC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB1EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB194
+
+ thumb_func_start sub_80DB1F4
+sub_80DB1F4: @ 80DB1F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DB22C
+ cmp r0, 0x1
+ bgt _080DB20A
+ cmp r0, 0
+ beq _080DB210
+ b _080DB27E
+_080DB20A:
+ cmp r0, 0x2
+ beq _080DB240
+ b _080DB27E
+_080DB210:
+ ldr r0, _080DB228 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080DB238
+ .align 2, 0
+_080DB228: .4byte gUnknown_0202F7C9
+_080DB22C:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080DB27E
+_080DB238:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DB27E
+_080DB240:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0xA
+ strh r0, [r4, 0x26]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DB27E
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB284 @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB27E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB284: .4byte gSprites
+ thumb_func_end sub_80DB1F4
+
+ thumb_func_start sub_80DB288
+sub_80DB288: @ 80DB288
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DB2C4 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DB2C8 @ =sub_80DB2D0
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _080DB2CC @ =gSprites
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB2C4: .4byte gUnknown_03004B00
+_080DB2C8: .4byte sub_80DB2D0
+_080DB2CC: .4byte gSprites
+ thumb_func_end sub_80DB288
+
+ thumb_func_start sub_80DB2D0
+sub_80DB2D0: @ 80DB2D0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080DB2E4
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x2E]
+ b _080DB328
+_080DB2E4:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB30A
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ subs r1, r0
+ strh r1, [r2, 0x26]
+ b _080DB328
+_080DB30A:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DB328
+ ldr r0, _080DB32C @ =sub_80DB330
+ str r0, [r2, 0x1C]
+_080DB328:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB32C: .4byte sub_80DB330
+ thumb_func_end sub_80DB2D0
+
+ thumb_func_start sub_80DB330
+sub_80DB330: @ 80DB330
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ movs r3, 0x22
+ ldrsh r0, [r2, r3]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _080DB360
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080DB360:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _080DB36E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DB36E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB330
+
+ thumb_func_start sub_80DB374
+sub_80DB374: @ 80DB374
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080DB388
+ cmp r0, 0x1
+ beq _080DB3E0
+ b _080DB44C
+_080DB388:
+ ldr r0, _080DB398 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080DB3A0
+ ldr r4, _080DB39C @ =gUnknown_0202F7C8
+ b _080DB3A2
+ .align 2, 0
+_080DB398: .4byte gUnknown_03004B00
+_080DB39C: .4byte gUnknown_0202F7C8
+_080DB3A0:
+ ldr r4, _080DB3DC @ =gUnknown_0202F7C9
+_080DB3A2:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0
+ movs r3, 0x80
+ lsls r3, 2
+ strh r3, [r5, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DB44C
+ .align 2, 0
+_080DB3DC: .4byte gUnknown_0202F7C9
+_080DB3E0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xB
+ bgt _080DB3EE
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x28
+ b _080DB3F2
+_080DB3EE:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x28
+_080DB3F2:
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x30
+ ldrsh r3, [r5, r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ bl sub_8078FDC
+ ldrb r1, [r5, 0x3]
+ lsls r1, 26
+ lsrs r1, 27
+ movs r0, 0xF4
+ lsls r0, 6
+ ldr r2, _080DB454 @ =gOamMatrices
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x6
+ ldrsh r1, [r1, r2]
+ bl __divsi3
+ adds r1, r0, 0x1
+ cmp r1, 0x80
+ ble _080DB42C
+ movs r1, 0x80
+_080DB42C:
+ movs r0, 0x40
+ subs r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r1, r0, 1
+ strh r1, [r5, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x18
+ bne _080DB44C
+ adds r0, r5, 0
+ bl sub_8079098
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DB44C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB454: .4byte gOamMatrices
+ thumb_func_end sub_80DB374
+
+ thumb_func_start sub_80DB458
+sub_80DB458: @ 80DB458
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ ldr r4, _080DB47C @ =0x000001ff
+ ands r4, r0
+ bl Random
+ movs r1, 0x7F
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080DB480
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r4, r2
+ b _080DB488
+ .align 2, 0
+_080DB47C: .4byte 0x000001ff
+_080DB480:
+ movs r2, 0xB8
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r4
+_080DB488:
+ strh r0, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB49C
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ adds r0, r1, r0
+ b _080DB4A4
+_080DB49C:
+ movs r2, 0xE0
+ lsls r2, 2
+ adds r0, r2, 0
+ subs r0, r1
+_080DB4A4:
+ strh r0, [r5, 0x30]
+ ldr r2, _080DB4CC @ =gUnknown_03004B00
+ ldrh r0, [r2]
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DB4C0
+ ldrb r0, [r5, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+_080DB4C0:
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080DB4D4
+ ldr r4, _080DB4D0 @ =gUnknown_0202F7C8
+ b _080DB4D6
+ .align 2, 0
+_080DB4CC: .4byte gUnknown_03004B00
+_080DB4D0: .4byte gUnknown_0202F7C8
+_080DB4D4:
+ ldr r4, _080DB500 @ =gUnknown_0202F7C9
+_080DB4D6:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r5, 0x22]
+ ldr r0, _080DB504 @ =sub_80DB508
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB500: .4byte gUnknown_0202F7C9
+_080DB504: .4byte sub_80DB508
+ thumb_func_end sub_80DB458
+
+ thumb_func_start sub_80DB508
+sub_80DB508: @ 80DB508
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DB520
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _080DB52A
+_080DB520:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_080DB52A:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ strh r3, [r4, 0x2E]
+ adds r0, r2, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x30]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080DB54A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080DB54A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _080DB55E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DB55E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB508
+
+ thumb_func_start sub_80DB564
+sub_80DB564: @ 80DB564
+ movs r1, 0
+ strh r1, [r0, 0x3A]
+ movs r1, 0x40
+ strh r1, [r0, 0x3C]
+ ldr r1, _080DB574 @ =sub_80DB578
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DB574: .4byte sub_80DB578
+ thumb_func_end sub_80DB564
+
+ thumb_func_start sub_80DB578
+sub_80DB578: @ 80DB578
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080DB58A
+ cmp r1, 0x1
+ beq _080DB5D8
+ b _080DB5DE
+_080DB58A:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080DB5DE
+ strh r1, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DB5DE
+ ldrb r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080DB5DE
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DB5DE
+_080DB5D8:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DB5DE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB578
+
+ thumb_func_start sub_80DB5E4
+sub_80DB5E4: @ 80DB5E4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ ldrh r4, [r0, 0x20]
+ ldrh r5, [r0, 0x22]
+ ldr r6, _080DB698 @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r2, r8
+ strh r6, [r2, 0x22]
+ ldrh r0, [r2, 0x20]
+ mov r9, r0
+ mov r1, r9
+ lsls r0, r1, 4
+ strh r0, [r2, 0x36]
+ lsls r0, r6, 4
+ strh r0, [r2, 0x38]
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ subs r0, r4, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3A]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ subs r0, r5, r0
+ lsls r0, 4
+ movs r1, 0xC
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ subs r5, r6
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ mov r0, r8
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _080DB69C @ =sub_80DB6A0
+ mov r2, r8
+ str r0, [r2, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB698: .4byte gUnknown_0202F7C8
+_080DB69C: .4byte sub_80DB6A0
+ thumb_func_end sub_80DB5E4
+
+ thumb_func_start sub_80DB6A0
+sub_80DB6A0: @ 80DB6A0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x3C]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r3, r1, 20
+ strh r3, [r2, 0x22]
+ adds r0, 0x2D
+ lsls r0, 16
+ movs r1, 0xA5
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080DB6DA
+ adds r1, r3, 0
+ cmp r1, 0x9D
+ bgt _080DB6DA
+ movs r0, 0x2D
+ negs r0, r0
+ cmp r1, r0
+ bge _080DB6E0
+_080DB6DA:
+ adds r0, r2, 0
+ bl move_anim_8074EE0
+_080DB6E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB6A0
+
+ thumb_func_start unref_sub_80DB6E4
+unref_sub_80DB6E4: @ 80DB6E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DB714 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DB71C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB718 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ b _080DB73A
+ .align 2, 0
+_080DB714: .4byte gUnknown_03004B00
+_080DB718: .4byte gSprites
+_080DB71C:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DB748 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_080DB73A:
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB748: .4byte gSprites
+ thumb_func_end unref_sub_80DB6E4
+
+ thumb_func_start sub_80DB74C
+sub_80DB74C: @ 80DB74C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, _080DB804 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB768
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB77E
+_080DB768:
+ ldrb r1, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ adds r1, r6, 0
+ adds r1, 0x43
+ movs r0, 0xC8
+ strb r0, [r1]
+_080DB77E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB7DA
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7BC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7BC:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r7
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB7DA
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8076034
+_080DB7DA:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB810
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB810
+ ldr r0, _080DB804 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB808
+ movs r0, 0x48
+ strh r0, [r6, 0x20]
+ movs r0, 0x50
+ b _080DB84A
+ .align 2, 0
+_080DB804: .4byte gUnknown_0202F7C8
+_080DB808:
+ movs r0, 0xB0
+ strh r0, [r6, 0x20]
+ movs r0, 0x28
+ b _080DB84A
+_080DB810:
+ ldr r5, _080DB880 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB826
+ ldr r1, _080DB884 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DB826:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _080DB884 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x2]
+ adds r0, r4
+_080DB84A:
+ strh r0, [r6, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB85C
+ ldrh r0, [r6, 0x22]
+ adds r0, 0x9
+ strh r0, [r6, 0x22]
+_080DB85C:
+ ldr r0, _080DB884 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 20
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x2E]
+ ldr r1, _080DB888 @ =sub_80DB88C
+ str r1, [r6, 0x1C]
+ adds r0, r6, 0
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB880: .4byte gUnknown_0202F7C8
+_080DB884: .4byte gUnknown_03004B00
+_080DB888: .4byte sub_80DB88C
+ thumb_func_end sub_80DB74C
+
+ thumb_func_start sub_80DB88C
+sub_80DB88C: @ 80DB88C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _080DB8B0 @ =REG_BLDALPHA
+ ldrh r1, [r3, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0xD
+ bne _080DB8B8
+ ldr r0, _080DB8B4 @ =sub_80DB8C0
+ str r0, [r3, 0x1C]
+ b _080DB8BC
+ .align 2, 0
+_080DB8B0: .4byte REG_BLDALPHA
+_080DB8B4: .4byte sub_80DB8C0
+_080DB8B8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x34]
+_080DB8BC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DB88C
+
+ thumb_func_start sub_80DB8C0
+sub_80DB8C0: @ 80DB8C0
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080DB91E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x2E]
+ ldr r1, _080DB924 @ =gPlttBufferFaded
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 1
+ adds r0, r1
+ ldrh r7, [r0]
+ movs r5, 0x8
+ adds r6, r1, 0
+ adds r1, r4, 0x7
+ lsls r0, r4, 1
+ adds r0, r6
+ adds r2, r0, 0
+ adds r2, 0x10
+ lsls r1, 1
+ adds r1, r6
+_080DB8F6:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ subs r1, 0x2
+ subs r2, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bgt _080DB8F6
+ adds r0, r4, 0x1
+ lsls r0, 1
+ adds r0, r6
+ strh r7, [r0]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080DB91E
+ ldr r0, _080DB928 @ =sub_80DB92C
+ str r0, [r3, 0x1C]
+_080DB91E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB924: .4byte gPlttBufferFaded
+_080DB928: .4byte sub_80DB92C
+ thumb_func_end sub_80DB8C0
+
+ thumb_func_start sub_80DB92C
+sub_80DB92C: @ 80DB92C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r2, _080DB9D4 @ =REG_BLDALPHA
+ ldrh r1, [r5, 0x34]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DB9CC
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DB9BC
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB98E
+ ldr r2, _080DB9D8 @ =gSprites
+ ldr r0, _080DB9DC @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB98E:
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r6
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DB9BC
+ ldr r2, _080DB9D8 @ =gSprites
+ ldr r0, _080DB9DC @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_080DB9BC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DB9E0 @ =sub_80DB9E4
+ str r0, [r5, 0x1C]
+_080DB9CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DB9D4: .4byte REG_BLDALPHA
+_080DB9D8: .4byte gSprites
+_080DB9DC: .4byte gUnknown_02024BE0
+_080DB9E0: .4byte sub_80DB9E4
+ thumb_func_end sub_80DB92C
+
+ thumb_func_start sub_80DB9E4
+sub_80DB9E4: @ 80DB9E4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBA3C
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA22
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA22:
+ movs r0, 0x2
+ eors r4, r0
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBA3C
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080DBA3C:
+ ldr r0, _080DBA48 @ =move_anim_8072740
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBA48: .4byte move_anim_8072740
+ thumb_func_end sub_80DB9E4
+
+ thumb_func_start sub_80DBA4C
+sub_80DBA4C: @ 80DBA4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DBAD8
+ ldr r5, _080DBA98 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ movs r6, 0
+ cmp r0, 0
+ bne _080DBA66
+ movs r6, 0x1
+_080DBA66:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAAE
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBAAE
+ ldr r0, _080DBA9C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBAA0
+ ldrh r0, [r5]
+ movs r1, 0x48
+ subs r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x50
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+ .align 2, 0
+_080DBA98: .4byte gUnknown_03004B00
+_080DBA9C: .4byte gUnknown_0202F7C8
+_080DBAA0:
+ ldrh r0, [r5]
+ adds r0, 0xB0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x28
+ strh r0, [r4, 0x22]
+ b _080DBAD0
+_080DBAAE:
+ ldr r0, _080DBAC4 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DBAC8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80787B0
+ b _080DBAD0
+ .align 2, 0
+_080DBAC4: .4byte gUnknown_03004B00
+_080DBAC8:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8078764
+_080DBAD0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBAEC
+_080DBAD8:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBAEC
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080DBAEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBA4C
+
+ thumb_func_start sub_80DBAF4
+sub_80DBAF4: @ 80DBAF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DBB3C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DBB44
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xA
+ strh r0, [r5, 0x22]
+ ldr r0, _080DBB40 @ =0x0000ffff
+ b _080DBB52
+ .align 2, 0
+_080DBB3C: .4byte gUnknown_0202F7C8
+_080DBB40: .4byte 0x0000ffff
+_080DBB44:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x28
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ subs r0, 0xA
+ strh r0, [r5, 0x22]
+ movs r0, 0x1
+_080DBB52:
+ strh r0, [r5, 0x30]
+ ldr r1, _080DBB68 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBB6C @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBB68: .4byte move_anim_8072740
+_080DBB6C: .4byte sub_8078600
+ thumb_func_end sub_80DBAF4
+
+ thumb_func_start sub_80DBB70
+sub_80DBB70: @ 80DBB70
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r6, _080DBBF4 @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ lsls r1, 15
+ lsrs r4, r1, 16
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ negs r1, r1
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DBBB6
+ lsls r0, r4, 16
+ negs r0, r0
+ lsrs r4, r0, 16
+_080DBBB6:
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r7
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _080DBBE2
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_080DBBE2:
+ ldr r1, _080DBBF8 @ =sub_80DBC00
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DBBFC @ =sub_8078600
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBBF4: .4byte gUnknown_0202F7C8
+_080DBBF8: .4byte sub_80DBC00
+_080DBBFC: .4byte sub_8078600
+ thumb_func_end sub_80DBB70
+
+ thumb_func_start sub_80DBC00
+sub_80DBC00: @ 80DBC00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080DBC2C @ =gUnknown_083DA888
+ str r0, [r4, 0x10]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldr r0, _080DBC30 @ =sub_80DBC34
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBC2C: .4byte gUnknown_083DA888
+_080DBC30: .4byte sub_80DBC34
+ thumb_func_end sub_80DBC00
+
+ thumb_func_start sub_80DBC34
+sub_80DBC34: @ 80DBC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBC46
+ cmp r0, 0x1
+ beq _080DBC74
+ b _080DBC8C
+_080DBC46:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DBC8C
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x12
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DBC8C
+_080DBC74:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DBC8C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DBC8C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DBC34
+
+ thumb_func_start sub_80DBC94
+sub_80DBC94: @ 80DBC94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DBCC4 @ =gTasks
+ adds r4, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x8]
+ ldr r2, _080DBCC8 @ =gUnknown_083DA8A4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBCCC @ =sub_80DBCD0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCC4: .4byte gTasks
+_080DBCC8: .4byte gUnknown_083DA8A4
+_080DBCCC: .4byte sub_80DBCD0
+ thumb_func_end sub_80DBC94
+
+ thumb_func_start sub_80DBCD0
+sub_80DBCD0: @ 80DBCD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DBCF8 @ =gTasks
+ adds r0, r1
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DBCF0
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080DBCF0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBCF8: .4byte gTasks
+ thumb_func_end sub_80DBCD0
+
+ thumb_func_start sub_80DBCFC
+sub_80DBCFC: @ 80DBCFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBD48 @ =gTasks
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ ldr r0, _080DBD4C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080DBD30
+ movs r1, 0x4
+_080DBD30:
+ strh r1, [r4, 0xE]
+ ldrb r1, [r4, 0x8]
+ ldr r2, _080DBD50 @ =gUnknown_083DA8C4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _080DBD54 @ =sub_80DBD58
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBD48: .4byte gTasks
+_080DBD4C: .4byte gUnknown_0202F7C8
+_080DBD50: .4byte gUnknown_083DA8C4
+_080DBD54: .4byte sub_80DBD58
+ thumb_func_end sub_80DBCFC
+
+ thumb_func_start sub_80DBD58
+sub_80DBD58: @ 80DBD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DBD78 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBD7C
+ cmp r0, 0x1
+ beq _080DBD98
+ b _080DBDF6
+ .align 2, 0
+_080DBD78: .4byte gTasks
+_080DBD7C:
+ adds r0, r4, 0
+ bl sub_807992C
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080DBDF6
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080DBDF6
+_080DBD98:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DBDC0
+ ldr r2, _080DBDBC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBDF6
+ .align 2, 0
+_080DBDBC: .4byte gSprites
+_080DBDC0:
+ ldr r3, _080DBDFC @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ ldrb r0, [r4, 0x8]
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DBDF6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBDFC: .4byte gSprites
+ thumb_func_end sub_80DBD58
+
+ thumb_func_start sub_80DBE00
+sub_80DBE00: @ 80DBE00
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DBE84 @ =gTasks
+ adds r5, r1, r0
+ movs r0, 0
+ movs r7, 0x10
+ strh r7, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ ldr r4, _080DBE88 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r0, 0
+ cmp r0, r6
+ bcs _080DBE6A
+ adds r1, r6, 0
+_080DBE6A:
+ strh r1, [r5, 0x20]
+ ldr r1, _080DBE8C @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DBE90 @ =REG_BLDALPHA
+ strh r7, [r0]
+ ldr r0, _080DBE94 @ =sub_80DBE98
+ str r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DBE84: .4byte gTasks
+_080DBE88: .4byte gUnknown_0202F7C8
+_080DBE8C: .4byte REG_BLDCNT
+_080DBE90: .4byte REG_BLDALPHA
+_080DBE94: .4byte sub_80DBE98
+ thumb_func_end sub_80DBE00
+
+ thumb_func_start sub_80DBE98
+sub_80DBE98: @ 80DBE98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DBEBC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DBF98
+ cmp r1, 0x1
+ bgt _080DBEC0
+ cmp r1, 0
+ beq _080DBECE
+ b _080DC014
+ .align 2, 0
+_080DBEBC: .4byte gTasks
+_080DBEC0:
+ cmp r1, 0x2
+ bne _080DBEC6
+ b _080DBFF4
+_080DBEC6:
+ cmp r1, 0x3
+ bne _080DBECC
+ b _080DC004
+_080DBECC:
+ b _080DC014
+_080DBECE:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bgt _080DBEDE
+ b _080DC014
+_080DBEDE:
+ strh r1, [r4, 0xA]
+ ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ movs r3, 0x24
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ adds r1, 0x8
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ strh r2, [r0]
+ cmp r2, 0x40
+ beq _080DBF82
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DBF3C
+ cmp r0, 0x1
+ bgt _080DBF20
+ cmp r0, 0
+ beq _080DBF2A
+ b _080DBF82
+ .align 2, 0
+_080DBF1C: .4byte gSpriteTemplate_83DA8DC
+_080DBF20:
+ cmp r0, 0x2
+ beq _080DBF54
+ cmp r0, 0x3
+ beq _080DBF6C
+ b _080DBF82
+_080DBF2A:
+ ldr r0, _080DBF38 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ b _080DBF7A
+ .align 2, 0
+_080DBF38: .4byte gSprites
+_080DBF3C:
+ ldr r0, _080DBF50 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ b _080DBF80
+ .align 2, 0
+_080DBF50: .4byte gSprites
+_080DBF54:
+ ldr r1, _080DBF68 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x24]
+ ldrh r1, [r4, 0x20]
+ strh r1, [r0, 0x26]
+ b _080DBF82
+ .align 2, 0
+_080DBF68: .4byte gSprites
+_080DBF6C:
+ ldr r0, _080DBF94 @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF7A:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x20]
+ negs r0, r0
+_080DBF80:
+ strh r0, [r1, 0x26]
+_080DBF82:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DC014
+ b _080DBFF4
+ .align 2, 0
+_080DBF94: .4byte gSprites
+_080DBF98:
+ ldrh r0, [r4, 0xA]
+ ands r1, r0
+ cmp r1, 0
+ beq _080DBFA8
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ b _080DBFAE
+_080DBFA8:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_080DBFAE:
+ ldr r2, _080DBFFC @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x10]
+ lsls r0, 8
+ ldrh r1, [r4, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _080DC014
+ movs r5, 0x8
+ adds r6, r4, 0
+ adds r6, 0x8
+_080DBFCE:
+ lsls r0, r5, 1
+ adds r1, r6, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x40
+ beq _080DBFEA
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC000 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+_080DBFEA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xC
+ bls _080DBFCE
+_080DBFF4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC014
+ .align 2, 0
+_080DBFFC: .4byte REG_BLDALPHA
+_080DC000: .4byte gSprites
+_080DC004:
+ ldr r0, _080DC01C @ =REG_BLDALPHA
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC014:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC01C: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DBE98
+
+ thumb_func_start sub_80DC020
+sub_80DC020: @ 80DC020
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ subs r0, 0xA
+ cmp r1, r0
+ ble _080DC04A
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080DC04A:
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080DC05C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DC05C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC020
+
+ thumb_func_start sub_80DC068
+sub_80DC068: @ 80DC068
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DC0A4 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080DC094
+ ldr r4, _080DC0A8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DC094:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DC0AC @ =sub_80DC020
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC0A4: .4byte gUnknown_03004B00
+_080DC0A8: .4byte gUnknown_0202F7C8
+_080DC0AC: .4byte sub_80DC020
+ thumb_func_end sub_80DC068
+
+ thumb_func_start sub_80DC0B0
+sub_80DC0B0: @ 80DC0B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC10C @ =gTasks
+ adds r5, r1, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC154
+ ldr r0, _080DC110 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC120
+ ldr r0, _080DC114 @ =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC118 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC11C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC10C: .4byte gTasks
+_080DC110: .4byte gUnknown_03004B00
+_080DC114: .4byte 0x0000fff6
+_080DC118: .4byte gUnknown_0202F7C9
+_080DC11C: .4byte gUnknown_0202F7C8
+_080DC120:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC14C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC150 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1D2
+ .align 2, 0
+_080DC14C: .4byte gUnknown_0202F7C8
+_080DC150: .4byte gUnknown_0202F7C9
+_080DC154:
+ ldr r0, _080DC198 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _080DC1A8
+ ldr r0, _080DC19C @ =0x0000fff6
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1A0 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1A4 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080DC1DE
+ .align 2, 0
+_080DC198: .4byte gUnknown_03004B00
+_080DC19C: .4byte 0x0000fff6
+_080DC1A0: .4byte gUnknown_0202F7C9
+_080DC1A4: .4byte gUnknown_0202F7C8
+_080DC1A8:
+ movs r0, 0xA
+ strh r0, [r5, 0x1C]
+ ldr r4, _080DC1F0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x1E]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r5, 0x20]
+ ldr r4, _080DC1F4 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1D2:
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ subs r0, 0x8
+_080DC1DE:
+ strh r0, [r5, 0x24]
+ movs r0, 0x6
+ strh r0, [r5, 0xA]
+ ldr r0, _080DC1F8 @ =sub_80DC1FC
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC1F0: .4byte gUnknown_0202F7C8
+_080DC1F4: .4byte gUnknown_0202F7C9
+_080DC1F8: .4byte sub_80DC1FC
+ thumb_func_end sub_80DC0B0
+
+ thumb_func_start sub_80DC1FC
+sub_80DC1FC: @ 80DC1FC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC21C @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _080DC220
+ cmp r1, 0x1
+ beq _080DC294
+ b _080DC2A8
+ .align 2, 0
+_080DC21C: .4byte gTasks
+_080DC220:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080DC2A8
+ strh r1, [r5, 0xA]
+ ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC
+ movs r2, 0x1E
+ ldrsh r1, [r5, r2]
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080DC274
+ ldr r0, _080DC290 @ =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r0, 0x10
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+_080DC274:
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _080DC2A8
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC2A8
+ .align 2, 0
+_080DC28C: .4byte gSpriteTemplate_83DA9AC
+_080DC290: .4byte gSprites
+_080DC294:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _080DC2A8
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC2A8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC1FC
+
+ thumb_func_start sub_80DC2B0
+sub_80DC2B0: @ 80DC2B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC2CE
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_080DC2CE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC2B0
+
+ thumb_func_start sub_80DC2D4
+sub_80DC2D4: @ 80DC2D4
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DC30C @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080DC310 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r1, 0
+ subs r0, 0x20
+ strh r0, [r4, 0x24]
+ ldr r0, _080DC314 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x1
+ beq _080DC32A
+ cmp r0, 0x1
+ bgt _080DC318
+ cmp r0, 0
+ beq _080DC31E
+ b _080DC346
+ .align 2, 0
+_080DC30C: .4byte gTasks
+_080DC310: .4byte gUnknown_0202F7C9
+_080DC314: .4byte gUnknown_03004B00
+_080DC318:
+ cmp r0, 0x2
+ beq _080DC336
+ b _080DC346
+_080DC31E:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ b _080DC33E
+_080DC32A:
+ movs r0, 0x2
+ strh r0, [r4, 0x1E]
+ movs r0, 0x5
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ b _080DC33E
+_080DC336:
+ movs r0, 0x4
+ strh r0, [r4, 0x1E]
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_080DC33E:
+ strh r0, [r4, 0x22]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+_080DC346:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080DC352
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080DC352:
+ ldr r0, _080DC36C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DC378
+ ldr r0, _080DC370 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC374 @ =REG_BG1HOFS
+ b _080DC380
+ .align 2, 0
+_080DC36C: .4byte gUnknown_0202F7C9
+_080DC370: .4byte gUnknown_030042C0
+_080DC374: .4byte REG_BG1HOFS
+_080DC378:
+ ldr r0, _080DC3E0 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r4, 0x1C]
+ ldr r0, _080DC3E4 @ =REG_BG2HOFS
+_080DC380:
+ str r0, [sp]
+ ldrh r1, [r4, 0x24]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ bgt _080DC3BA
+ ldr r5, _080DC3E8 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DC39A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ adds r0, 0x40
+ cmp r1, r0
+ ble _080DC39A
+_080DC3BA:
+ ldr r0, _080DC3EC @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DC3F0 @ =sub_80DC3F4
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC3E0: .4byte gUnknown_03004288
+_080DC3E4: .4byte REG_BG2HOFS
+_080DC3E8: .4byte gUnknown_03004DE0
+_080DC3EC: .4byte 0xa2600001
+_080DC3F0: .4byte sub_80DC3F4
+ thumb_func_end sub_80DC2D4
+
+ thumb_func_start sub_80DC3F4
+sub_80DC3F4: @ 80DC3F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DC41C @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC4CE
+ cmp r0, 0x1
+ bgt _080DC420
+ cmp r0, 0
+ beq _080DC426
+ b _080DC4E6
+ .align 2, 0
+_080DC41C: .4byte gTasks
+_080DC420:
+ cmp r0, 0x2
+ beq _080DC4E0
+ b _080DC4E6
+_080DC426:
+ ldrh r3, [r5, 0x22]
+ ldrh r4, [r5, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r1, r0
+ bgt _080DC4BE
+ ldr r0, _080DC470 @ =gSineTable
+ mov r9, r0
+ movs r7, 0x3
+ ldr r1, _080DC474 @ =gUnknown_03004DE0
+ mov r12, r1
+ movs r2, 0xF0
+ lsls r2, 3
+ add r2, r12
+ mov r8, r2
+_080DC448:
+ lsls r2, r3, 16
+ asrs r0, r2, 15
+ add r0, r9
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r3, 0x20
+ ldrsh r1, [r5, r3]
+ asrs r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r3, r0, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ ble _080DC478
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r0, r3, r0
+ b _080DC484
+ .align 2, 0
+_080DC470: .4byte gSineTable
+_080DC474: .4byte gUnknown_03004DE0
+_080DC478:
+ cmp r3, 0
+ bge _080DC488
+ ldrh r1, [r5, 0xA]
+ adds r0, r7, 0
+ ands r0, r1
+ subs r0, r3, r0
+_080DC484:
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080DC488:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ mov r0, r12
+ adds r4, r3, r0
+ ldrh r0, [r5, 0x1C]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1, r0
+ strh r0, [r4]
+ add r3, r8
+ ldrh r0, [r5, 0x1C]
+ adds r1, r0
+ strh r1, [r3]
+ asrs r0, r6, 16
+ ldrh r1, [r5, 0x1E]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r2, r0
+ ble _080DC448
+_080DC4BE:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _080DC4E6
+ b _080DC4D4
+_080DC4CE:
+ ldr r1, _080DC4DC @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080DC4D4:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080DC4E6
+ .align 2, 0
+_080DC4DC: .4byte gUnknown_03004DC0
+_080DC4E0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DC4E6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC3F4
+
+ thumb_func_start sub_80DC4F4
+sub_80DC4F4: @ 80DC4F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DC528 @ =gTasks
+ adds r7, r0, r1
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r5
+ adds r6, r5, 0
+ cmp r6, 0xFF
+ bne _080DC52C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC528: .4byte gTasks
+_080DC52C:
+ ldr r1, _080DC550 @ =gUnknown_03004B00
+ ldrb r0, [r1]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r9, r1
+ asrs r0, 16
+ cmp r0, 0
+ bge _080DC554
+ adds r0, r5, 0
+ bl FreeOamMatrix
+ mov r0, r8
+ bl move_anim_task_del
+ b _080DC5D6
+ .align 2, 0
+_080DC550: .4byte gUnknown_03004B00
+_080DC554:
+ ldr r2, _080DC5E4 @ =gSprites
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r2, 0
+ adds r0, 0x1C
+ adds r0, r4, r0
+ ldr r1, _080DC5E8 @ =SpriteCallbackDummy
+ str r1, [r0]
+ adds r4, r2
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ands r6, r0
+ lsls r2, r6, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrb r3, [r4, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r4, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r4, 0
+ bl CalcCenterToCornerVec
+ ldr r1, _080DC5EC @ =gUnknown_03004B00
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r0, r10
+ strh r0, [r7, 0x24]
+ mov r1, r9
+ strh r1, [r7, 0x26]
+ ldr r0, _080DC5F0 @ =sub_80DC5F4
+ str r0, [r7]
+_080DC5D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC5E4: .4byte gSprites
+_080DC5E8: .4byte SpriteCallbackDummy
+_080DC5EC: .4byte gUnknown_03004B00
+_080DC5F0: .4byte sub_80DC5F4
+ thumb_func_end sub_80DC4F4
+
+ thumb_func_start sub_80DC5F4
+sub_80DC5F4: @ 80DC5F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DC618 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DC678
+ cmp r0, 0x1
+ bgt _080DC61C
+ cmp r0, 0
+ beq _080DC626
+ b _080DC6F8
+ .align 2, 0
+_080DC618: .4byte gTasks
+_080DC61C:
+ cmp r0, 0x2
+ beq _080DC6C8
+ cmp r0, 0x3
+ beq _080DC6E8
+ b _080DC6F8
+_080DC626:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC674 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x30
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC674: .4byte gSineTable
+_080DC678:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldr r1, _080DC6C4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8079AB8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DC6F8
+ b _080DC6DA
+ .align 2, 0
+_080DC6C4: .4byte gSineTable
+_080DC6C8:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DC6E4 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_080DC6DA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DC6F8
+ .align 2, 0
+_080DC6E4: .4byte gSprites
+_080DC6E8:
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FreeOamMatrix
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DC6F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DC5F4
+
+ thumb_func_start sub_80DC700
+sub_80DC700: @ 80DC700
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DC778
+ cmp r0, 0x1
+ bgt _080DC716
+ cmp r0, 0
+ beq _080DC720
+ b _080DC818
+_080DC716:
+ cmp r0, 0x2
+ beq _080DC7AA
+ cmp r0, 0x3
+ beq _080DC808
+ b _080DC818
+_080DC720:
+ ldr r4, _080DC76C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC74E
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xC
+ strh r0, [r5, 0x22]
+_080DC74E:
+ movs r0, 0x8
+ strh r0, [r5, 0x30]
+ ldr r1, _080DC770 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DC774 @ =REG_BLDALPHA
+ ldrh r1, [r5, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ b _080DC7A2
+ .align 2, 0
+_080DC76C: .4byte gUnknown_0202F7C8
+_080DC770: .4byte REG_BLDCNT
+_080DC774: .4byte REG_BLDALPHA
+_080DC778:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080DC818
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCB
+ bl PlaySE12WithPanning
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_080DC7A2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DC818
+_080DC7AA:
+ ldrh r0, [r5, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DC7E8
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r1, [r5, 0x30]
+ subs r1, 0x1
+ strh r1, [r5, 0x30]
+ ldr r2, _080DC804 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DC7E8
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080DC7E8:
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r0, 0
+ ldrh r1, [r5, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r5, 0x26]
+ subs r0, r1
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r5, 0x34]
+ b _080DC818
+ .align 2, 0
+_080DC804: .4byte REG_BLDALPHA
+_080DC808:
+ ldr r0, _080DC820 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_8072740
+_080DC818:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC820: .4byte REG_BLDCNT
+ thumb_func_end sub_80DC700
+
+ thumb_func_start sub_80DC824
+sub_80DC824: @ 80DC824
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC850
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080DC84C @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x4]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+ b _080DC880
+ .align 2, 0
+_080DC84C: .4byte gUnknown_03004B00
+_080DC850:
+ ldr r0, _080DC8E4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC880
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r1, _080DC8E8 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_080DC880:
+ ldr r5, _080DC8E4 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC8E8 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC8EC @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC8F0 @ =move_anim_8072740
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC8E4: .4byte gUnknown_0202F7C9
+_080DC8E8: .4byte gUnknown_03004B00
+_080DC8EC: .4byte sub_8078B34
+_080DC8F0: .4byte move_anim_8072740
+ thumb_func_end sub_80DC824
+
+ thumb_func_start sub_80DC8F4
+sub_80DC8F4: @ 80DC8F4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC918
+ ldr r1, _080DC914 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _080DC934
+ .align 2, 0
+_080DC914: .4byte gUnknown_03004B00
+_080DC918:
+ ldr r0, _080DC990 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DC934
+ ldr r0, _080DC994 @ =gUnknown_03004B00
+ ldrh r1, [r0, 0x2]
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0]
+ negs r1, r1
+ strh r1, [r0]
+_080DC934:
+ ldr r5, _080DC990 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ ldr r4, _080DC994 @ =gUnknown_03004B00
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r6, 0x22]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x36]
+ ldr r0, _080DC998 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080DC99C @ =move_anim_8072740
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DC990: .4byte gUnknown_0202F7C9
+_080DC994: .4byte gUnknown_03004B00
+_080DC998: .4byte sub_8078B34
+_080DC99C: .4byte move_anim_8072740
+ thumb_func_end sub_80DC8F4
+
+ thumb_func_start sub_80DC9A0
+sub_80DC9A0: @ 80DC9A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DC9BC
+ ldr r0, _080DC9FC @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r0, 0x4]
+_080DC9BC:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r1, _080DC9FC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x22]
+ strh r0, [r5, 0x34]
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080DCA04
+ ldr r4, _080DCA00 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ b _080DCA16
+ .align 2, 0
+_080DC9FC: .4byte gUnknown_03004B00
+_080DCA00: .4byte gUnknown_0202F7C9
+_080DCA04:
+ ldr r0, _080DCA2C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x32
+ adds r3, r5, 0
+ adds r3, 0x36
+ movs r1, 0x1
+ bl sub_807A3FC
+_080DCA16:
+ adds r0, r5, 0
+ bl sub_8078BD4
+ ldr r0, _080DCA30 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x6]
+ strh r0, [r5, 0x38]
+ ldr r0, _080DCA34 @ =sub_80DCA38
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCA2C: .4byte gUnknown_0202F7C9
+_080DCA30: .4byte gUnknown_03004B00
+_080DCA34: .4byte sub_80DCA38
+ thumb_func_end sub_80DC9A0
+
+ thumb_func_start sub_80DCA38
+sub_80DCA38: @ 80DCA38
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCA4E
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCA6A
+_080DCA4E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0xD
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+_080DCA6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCA38
+
+ thumb_func_start sub_80DCA70
+sub_80DCA70: @ 80DCA70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCAA0 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+ ldr r0, _080DCAA4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCAAC
+ ldr r0, _080DCAA8 @ =gUnknown_03004B00
+ ldrh r1, [r4, 0x20]
+ ldrh r2, [r0]
+ subs r1, r2
+ strh r1, [r4, 0x20]
+ b _080DCAB8
+ .align 2, 0
+_080DCAA0: .4byte gUnknown_0202F7C9
+_080DCAA4: .4byte gUnknown_0202F7C8
+_080DCAA8: .4byte gUnknown_03004B00
+_080DCAAC:
+ ldr r1, _080DCAE0 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, r1, 0
+_080DCAB8:
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _080DCAE4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCAD4
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_080DCAD4:
+ ldr r0, _080DCAE8 @ =sub_80DCAEC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCAE0: .4byte gUnknown_03004B00
+_080DCAE4: .4byte gUnknown_0202F7C9
+_080DCAE8: .4byte sub_80DCAEC
+ thumb_func_end sub_80DCA70
+
+ thumb_func_start sub_80DCAEC
+sub_80DCAEC: @ 80DCAEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DCB20
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ 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]
+_080DCB20:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _080DCB34
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080DCB34:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCAEC
+
+ thumb_func_start sub_80DCB38
+sub_80DCB38: @ 80DCB38
+ ldr r2, _080DCB54 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r1, 0x10
+ strh r1, [r2]
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ ldr r1, _080DCB58 @ =sub_80DCB5C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080DCB54: .4byte REG_BLDCNT
+_080DCB58: .4byte sub_80DCB5C
+ thumb_func_end sub_80DCB38
+
+ thumb_func_start sub_80DCB5C
+sub_80DCB5C: @ 80DCB5C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x13
+ bgt _080DCB70
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x32]
+ b _080DCBA8
+_080DCB70:
+ ldrh r1, [r3, 0x30]
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DCBA8
+ ldrh r1, [r3, 0x2E]
+ subs r1, 0x1
+ strh r1, [r3, 0x2E]
+ ldr r2, _080DCBAC @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DCBA8
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DCBB0 @ =sub_80DCBB4
+ str r0, [r3, 0x1C]
+_080DCBA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBAC: .4byte REG_BLDALPHA
+_080DCBB0: .4byte sub_80DCBB4
+ thumb_func_end sub_80DCB5C
+
+ thumb_func_start sub_80DCBB4
+sub_80DCBB4: @ 80DCBB4
+ push {lr}
+ ldr r1, _080DCBC8 @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCBC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DCBB4
+
+ thumb_func_start sub_80DCBCC
+sub_80DCBCC: @ 80DCBCC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCBEC
+ ldr r1, _080DCBE8 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ b _080DCC0E
+ .align 2, 0
+_080DCBE8: .4byte gUnknown_03004B00
+_080DCBEC:
+ ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC0E
+ ldr r1, _080DCCEC @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1, 0x6]
+ negs r0, r0
+ strh r0, [r1, 0x6]
+_080DCC0E:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCC5E
+ ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080DCC5E
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCC4C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DCC5E
+_080DCC4C:
+ ldr r0, _080DCCEC @ =gUnknown_03004B00
+ movs r2, 0x4
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x4]
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0]
+_080DCC5E:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r6, _080DCCEC @ =gUnknown_03004B00
+ lsrs r4, 24
+ ldrh r0, [r6, 0x4]
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r6, 0x6]
+ adds r1, r2
+ lsls r1, 16
+ ldrh r2, [r7, 0x20]
+ lsls r0, r4, 16
+ asrs r0, 16
+ subs r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r7, 0x22]
+ lsrs r5, r1, 16
+ asrs r1, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldrh r0, [r6, 0x8]
+ strh r0, [r7, 0x2E]
+ strh r4, [r7, 0x32]
+ strh r5, [r7, 0x36]
+ ldr r0, _080DCCF4 @ =sub_8078B34
+ str r0, [r7, 0x1C]
+ ldr r1, _080DCCF8 @ =move_anim_8072740
+ adds r0, r7, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCCE8: .4byte gUnknown_0202F7C8
+_080DCCEC: .4byte gUnknown_03004B00
+_080DCCF0: .4byte gUnknown_0202F7C9
+_080DCCF4: .4byte sub_8078B34
+_080DCCF8: .4byte move_anim_8072740
+ thumb_func_end sub_80DCBCC
+
+ thumb_func_start sub_80DCCFC
+sub_80DCCFC: @ 80DCCFC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DCD68 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCD1C
+ ldr r1, _080DCD6C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080DCD1C:
+ ldr r4, _080DCD6C @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080DCD70 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r6, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r6, 0x38]
+ adds r0, r6, 0
+ bl sub_80786EC
+ ldr r0, _080DCD74 @ =sub_80DCD78
+ str r0, [r6, 0x1C]
+ adds r2, r6, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCD68: .4byte gUnknown_0202F7C8
+_080DCD6C: .4byte gUnknown_03004B00
+_080DCD70: .4byte gUnknown_0202F7C9
+_080DCD74: .4byte sub_80DCD78
+ thumb_func_end sub_80DCCFC
+
+ thumb_func_start sub_80DCD78
+sub_80DCD78: @ 80DCD78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCDA4
+ adds r0, r4, 0
+ bl move_anim_8072740
+ b _080DCE34
+_080DCDA4:
+ movs r0, 0x2E
+ adds r0, r4
+ mov r8, r0
+ ldrh r7, [r4, 0x20]
+ ldrh r5, [r4, 0x24]
+ ldrh r1, [r4, 0x22]
+ mov r12, r1
+ ldrh r6, [r4, 0x26]
+ mov r2, r8
+ add r1, sp, 0x4
+ movs r3, 0x7
+_080DCDBA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCDBA
+ adds r0, r7, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DCE34
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r1, r5, 16
+ asrs r1, 16
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r1, r2
+ lsls r2, r6, 16
+ asrs r2, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 16
+ movs r3, 0x80
+ lsls r3, 1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ add r2, sp, 0x4
+ mov r1, r8
+ movs r3, 0x7
+_080DCE26:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080DCE26
+_080DCE34:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DCD78
+
+ thumb_func_start sub_80DCE40
+sub_80DCE40: @ 80DCE40
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DCE54 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DCE5C
+ ldr r4, _080DCE58 @ =gUnknown_0202F7C8
+ b _080DCE5E
+ .align 2, 0
+_080DCE54: .4byte gUnknown_03004B00
+_080DCE58: .4byte gUnknown_0202F7C8
+_080DCE5C:
+ ldr r4, _080DCE90 @ =gUnknown_0202F7C9
+_080DCE5E:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x12
+ strh r0, [r5, 0x22]
+ ldr r1, _080DCE94 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DCE98 @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCE90: .4byte gUnknown_0202F7C9
+_080DCE94: .4byte move_anim_8074EE0
+_080DCE98: .4byte sub_80785E4
+ thumb_func_end sub_80DCE40
+
+ thumb_func_start sub_80DCE9C
+sub_80DCE9C: @ 80DCE9C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _080DCF08 @ =gUnknown_03004B00
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _080DCEBC
+ ldr r0, _080DCF0C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x20
+ adds r3, r5, 0
+ adds r3, 0x22
+ movs r1, 0
+ bl sub_807A3FC
+_080DCEBC:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r4, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0xE
+ strh r0, [r5, 0x22]
+ ldrb r1, [r6, 0x2]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ strh r4, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+ movs r0, 0x4
+ strh r0, [r5, 0x32]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldr r0, _080DCF10 @ =0x0000ffba
+ strh r0, [r5, 0x36]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x38]
+ ldr r1, _080DCF14 @ =sub_80DCF1C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF18 @ =sub_8078278
+ str r1, [r5, 0x1C]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF08: .4byte gUnknown_03004B00
+_080DCF0C: .4byte gUnknown_0202F7C9
+_080DCF10: .4byte 0x0000ffba
+_080DCF14: .4byte sub_80DCF1C
+_080DCF18: .4byte sub_8078278
+ thumb_func_end sub_80DCE9C
+
+ thumb_func_start sub_80DCF1C
+sub_80DCF1C: @ 80DCF1C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x38]
+ ldrh r2, [r4, 0x20]
+ adds r0, r1, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xC0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ movs r0, 0x4
+ strh r0, [r4, 0x32]
+ movs r0, 0x20
+ strh r0, [r4, 0x34]
+ ldr r0, _080DCF54 @ =0x0000ffe8
+ strh r0, [r4, 0x36]
+ ldr r1, _080DCF58 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080DCF5C @ =sub_8078278
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCF54: .4byte 0x0000ffe8
+_080DCF58: .4byte move_anim_8074EE0
+_080DCF5C: .4byte sub_8078278
+ thumb_func_end sub_80DCF1C
+
+ thumb_func_start sub_80DCF60
+sub_80DCF60: @ 80DCF60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DCF88 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0xA]
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl AnimateSprite
+ ldr r0, _080DCF8C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DCF90
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r4]
+ subs r0, r1
+ b _080DCF96
+ .align 2, 0
+_080DCF88: .4byte gUnknown_03004B00
+_080DCF8C: .4byte gUnknown_0202F7C8
+_080DCF90:
+ ldrh r0, [r4]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+_080DCF96:
+ strh r0, [r5, 0x20]
+ ldr r3, _080DCFD8 @ =gUnknown_03004B00
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r5, 0x22]
+ adds r2, r0
+ movs r4, 0
+ strh r2, [r5, 0x22]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x30]
+ ldrh r1, [r3, 0x4]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ strh r2, [r5, 0x34]
+ ldrh r0, [r3, 0x6]
+ adds r2, r0
+ strh r2, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_8078A5C
+ strh r4, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _080DCFDC @ =sub_8078394
+ str r0, [r5, 0x1C]
+ ldr r1, _080DCFE0 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DCFD8: .4byte gUnknown_03004B00
+_080DCFDC: .4byte sub_8078394
+_080DCFE0: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DCF60
+
+ thumb_func_start sub_80DCFE4
+sub_80DCFE4: @ 80DCFE4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DCFFC @ =gUnknown_03004B00
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DD000
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080DD008
+ .align 2, 0
+_080DCFFC: .4byte gUnknown_03004B00
+_080DD000:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080DD008:
+ ldr r1, _080DD024 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DD028 @ =sub_80DD02C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD024: .4byte gUnknown_03004B00
+_080DD028: .4byte sub_80DD02C
+ thumb_func_end sub_80DCFE4
+
+ thumb_func_start sub_80DD02C
+sub_80DD02C: @ 80DD02C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x38]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080DD072
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DD072:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD02C
+
+ thumb_func_start do_boulder_dust
+do_boulder_dust: @ 80DD078
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _080DD154 @ =REG_BLDCNT
+ ldr r2, _080DD158 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _080DD15C @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD0C4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080DD0C4:
+ ldr r0, _080DD160 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _080DD164 @ =gUnknown_030041B4
+ strh r5, [r0]
+ ldr r0, _080DD168 @ =REG_BG1HOFS
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r2, _080DD16C @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080DD170 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew
+ bl LZDecompressVram
+ ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD120
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080DD120:
+ ldr r0, _080DD180 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080DD13A
+ ldr r0, _080DD184 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD13A
+ movs r5, 0x1
+_080DD13A:
+ ldr r0, _080DD188 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x8]
+ ldr r0, _080DD18C @ =sub_80DD190
+ str r0, [r1]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD154: .4byte REG_BLDCNT
+_080DD158: .4byte 0x00003f42
+_080DD15C: .4byte REG_BG1CNT
+_080DD160: .4byte gUnknown_030042C0
+_080DD164: .4byte gUnknown_030041B4
+_080DD168: .4byte REG_BG1HOFS
+_080DD16C: .4byte 0x040000d4
+_080DD170: .4byte 0x85000400
+_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
+_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
+_080DD17C: .4byte gBattleAnimSpritePalette_261
+_080DD180: .4byte gUnknown_03004B00
+_080DD184: .4byte gUnknown_0202F7C8
+_080DD188: .4byte gTasks
+_080DD18C: .4byte sub_80DD190
+ thumb_func_end do_boulder_dust
+
+ thumb_func_start sub_80DD190
+sub_80DD190: @ 80DD190
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080DD1C0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0
+ bne _080DD1CC
+ ldr r1, _080DD1C4 @ =gUnknown_030042C0
+ ldr r5, _080DD1C8 @ =0x0000fffa
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ b _080DD1D2
+ .align 2, 0
+_080DD1C0: .4byte gTasks
+_080DD1C4: .4byte gUnknown_030042C0
+_080DD1C8: .4byte 0x0000fffa
+_080DD1CC:
+ ldr r1, _080DD204 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080DD1D2:
+ strh r0, [r1]
+ adds r4, r1, 0
+ ldr r1, _080DD208 @ =gUnknown_030041B4
+ ldr r5, _080DD20C @ =0x0000ffff
+ adds r0, r5, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r3
+ movs r5, 0x20
+ ldrsh r0, [r0, r5]
+ mov r8, r2
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080DD1F8
+ b _080DD37C
+_080DD1F8:
+ lsls r0, 2
+ ldr r1, _080DD210 @ =_080DD214
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD204: .4byte gUnknown_030042C0
+_080DD208: .4byte gUnknown_030041B4
+_080DD20C: .4byte 0x0000ffff
+_080DD210: .4byte _080DD214
+ .align 2, 0
+_080DD214:
+ .4byte _080DD228
+ .4byte _080DD270
+ .4byte _080DD292
+ .4byte _080DD2D4
+ .4byte _080DD358
+_080DD228:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _080DD242
+ b _080DD37C
+_080DD242:
+ strh r4, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ adds r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD26C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x7
+ beq _080DD260
+ b _080DD37C
+_080DD260:
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r4, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD26C: .4byte REG_BLDALPHA
+_080DD270:
+ mov r5, r8
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x1E]
+ adds r0, 0x1
+ strh r0, [r1, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x65
+ bne _080DD37C
+ movs r0, 0x7
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ b _080DD37C
+_080DD292:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r3, r0, r3
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080DD37C
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0x1E]
+ subs r1, 0x1
+ strh r1, [r3, 0x1E]
+ ldr r2, _080DD2D0 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x1E
+ ldrsh r1, [r3, r2]
+ cmp r1, 0
+ bne _080DD37C
+ ldrh r0, [r3, 0x20]
+ adds r0, 0x1
+ strh r0, [r3, 0x20]
+ strh r1, [r3, 0x1E]
+ b _080DD37C
+ .align 2, 0
+_080DD2D0: .4byte REG_BLDALPHA
+_080DD2D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _080DD38C @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ mov r9, r5
+ ldr r0, _080DD390 @ =0x85000400
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r10, r0
+_080DD2F6:
+ str r6, [sp, 0xC]
+ mov r0, r9
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080DD2F6
+ str r6, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r10
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r0, _080DD38C @ =0x040000d4
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _080DD394 @ =0x85000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DD344
+ ldr r2, _080DD398 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080DD344:
+ ldr r0, _080DD39C @ =gTasks
+ mov r5, r8
+ adds r1, r5, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ ldr r4, _080DD3A0 @ =gUnknown_030042C0
+ ldr r2, _080DD3A4 @ =gUnknown_030041B4
+_080DD358:
+ movs r1, 0
+ strh r1, [r4]
+ strh r1, [r2]
+ ldr r0, _080DD3A8 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _080DD398 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DD37C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD38C: .4byte 0x040000d4
+_080DD390: .4byte 0x85000400
+_080DD394: .4byte 0x85000200
+_080DD398: .4byte REG_BG1CNT
+_080DD39C: .4byte gTasks
+_080DD3A0: .4byte gUnknown_030042C0
+_080DD3A4: .4byte gUnknown_030041B4
+_080DD3A8: .4byte REG_BLDCNT
+ thumb_func_end sub_80DD190
+
+ thumb_func_start sub_80DD3AC
+sub_80DD3AC: @ 80DD3AC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD428
+ ldr r4, _080DD3F0 @ =gUnknown_03004B00
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DD3F8
+ ldr r0, _080DD3F4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD3F8
+ movs r0, 0x98
+ lsls r0, 1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ ldrb r1, [r5, 0x3]
+ subs r0, 0x40
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ b _080DD3FC
+ .align 2, 0
+_080DD3F0: .4byte gUnknown_03004B00
+_080DD3F4: .4byte gUnknown_0202F7C8
+_080DD3F8:
+ ldr r0, _080DD41C @ =0x0000ffc0
+ strh r0, [r5, 0x20]
+_080DD3FC:
+ ldr r4, _080DD420 @ =gUnknown_03004B00
+ ldrh r0, [r4]
+ strh r0, [r5, 0x22]
+ ldr r1, _080DD424 @ =gUnknown_083DAD10
+ adds r0, r5, 0
+ bl SetSubspriteTables
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DD484
+ .align 2, 0
+_080DD41C: .4byte 0x0000ffc0
+_080DD420: .4byte gUnknown_03004B00
+_080DD424: .4byte gUnknown_083DAD10
+_080DD428:
+ ldrh r1, [r5, 0x30]
+ ldrh r3, [r5, 0x34]
+ adds r1, r3
+ ldrh r2, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r2, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x24]
+ adds r0, r3
+ strh r0, [r5, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r3, [r5, 0x26]
+ adds r0, r3
+ strh r0, [r5, 0x26]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r5, 0x34]
+ ands r2, r0
+ strh r2, [r5, 0x36]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DD46E
+ movs r2, 0x20
+ ldrsh r0, [r5, r2]
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ movs r1, 0x88
+ lsls r1, 1
+ cmp r0, r1
+ ble _080DD484
+ b _080DD480
+_080DD46E:
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080DD484
+_080DD480:
+ ldr r0, _080DD48C @ =move_anim_8072740
+ str r0, [r5, 0x1C]
+_080DD484:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD48C: .4byte move_anim_8072740
+ thumb_func_end sub_80DD3AC
+
+ thumb_func_start sub_80DD490
+sub_80DD490: @ 80DD490
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD4C8 @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldr r0, _080DD4CC @ =sub_8078B34
+ str r0, [r4, 0x1C]
+ ldr r1, _080DD4D0 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD4C8: .4byte gUnknown_03004B00
+_080DD4CC: .4byte sub_8078B34
+_080DD4D0: .4byte move_anim_8072740
+ thumb_func_end sub_80DD490
+
+ thumb_func_start sub_80DD4D4
+sub_80DD4D4: @ 80DD4D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DD554 @ =gTasks
+ adds r6, r1, r0
+ ldr r5, _080DD558 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r7, r0, 16
+ ldr r4, _080DD55C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ ldrb r4, [r4]
+ cmp r0, r4
+ bne _080DD544
+ mov r8, r7
+_080DD544:
+ bl sub_80DD8BC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _080DD560
+ movs r0, 0x20
+ b _080DD566
+ .align 2, 0
+_080DD554: .4byte gTasks
+_080DD558: .4byte gUnknown_0202F7C8
+_080DD55C: .4byte gUnknown_0202F7C9
+_080DD560:
+ lsls r1, r5, 3
+ movs r0, 0x30
+ subs r0, r1
+_080DD566:
+ strh r0, [r6, 0x18]
+ movs r4, 0
+ strh r4, [r6, 0x8]
+ strh r4, [r6, 0x1E]
+ strh r4, [r6, 0x1A]
+ movs r0, 0x1
+ strh r0, [r6, 0x20]
+ movs r1, 0x18
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _080DD57E
+ adds r0, 0x7
+_080DD57E:
+ asrs r0, 3
+ subs r0, 0x1
+ strh r0, [r6, 0x1C]
+ mov r2, r9
+ lsls r0, r2, 3
+ strh r0, [r6, 0xC]
+ lsls r0, r7, 3
+ strh r0, [r6, 0xE]
+ mov r1, r10
+ subs r0, r1, r2
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x10]
+ mov r1, r8
+ subs r0, r1, r7
+ lsls r0, 3
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x12]
+ strh r4, [r6, 0x14]
+ strh r4, [r6, 0x16]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ asrs r4, 8
+ lsrs r4, 16
+ movs r0, 0x3F
+ bl sub_8076F98
+ lsls r0, 24
+ strh r4, [r6, 0x22]
+ asrs r0, 24
+ lsls r4, 16
+ asrs r4, 16
+ subs r0, r4
+ movs r2, 0x18
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ strh r0, [r6, 0x24]
+ strh r5, [r6, 0xA]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ ldr r0, _080DD600 @ =sub_80DD604
+ str r0, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD600: .4byte sub_80DD604
+ thumb_func_end sub_80DD4D4
+
+ thumb_func_start sub_80DD604
+sub_80DD604: @ 80DD604
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DD628 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080DD61E
+ b _080DD76C
+_080DD61E:
+ lsls r0, 2
+ ldr r1, _080DD62C @ =_080DD630
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD628: .4byte gTasks
+_080DD62C: .4byte _080DD630
+ .align 2, 0
+_080DD630:
+ .4byte _080DD644
+ .4byte _080DD6A8
+ .4byte _080DD6B0
+ .4byte _080DD70C
+ .4byte _080DD75E
+_080DD644:
+ ldrh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ subs r2, r0
+ strh r2, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ ldr r3, _080DD6A4 @ =gSprites
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ lsls r2, 16
+ asrs r2, 19
+ strh r2, [r0, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080DD694
+ movs r0, 0x14
+ strh r0, [r4, 0x1E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD694:
+ ldrh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xA2
+ bl PlaySE12WithPanning
+ b _080DD76C
+ .align 2, 0
+_080DD6A4: .4byte gSprites
+_080DD6A8:
+ ldrh r0, [r4, 0x1E]
+ subs r0, 0x1
+ strh r0, [r4, 0x1E]
+ b _080DD750
+_080DD6B0:
+ ldrh r0, [r4, 0x1A]
+ subs r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _080DD6D0
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0x14]
+ adds r0, r2
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ b _080DD6DA
+_080DD6D0:
+ strh r0, [r4, 0x14]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DD6DA:
+ ldr r2, _080DD708 @ =gSprites
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r1, 0x26]
+ b _080DD76C
+ .align 2, 0
+_080DD708: .4byte gSprites
+_080DD70C:
+ ldrh r0, [r4, 0x10]
+ ldrh r2, [r4, 0xC]
+ adds r0, r2
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1C
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _080DD74A
+ movs r0, 0
+ strh r0, [r4, 0x1A]
+ adds r0, r4, 0
+ bl sub_80DD774
+ ldrh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xAF
+ bl PlaySE12WithPanning
+_080DD74A:
+ ldrh r0, [r4, 0x18]
+ subs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DD750:
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD76C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DD76C
+_080DD75E:
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DD76C
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DD76C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD604
+
+ thumb_func_start sub_80DD774
+sub_80DD774: @ 80DD774
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bhi _080DD864
+ lsls r0, 2
+ ldr r1, _080DD790 @ =_080DD794
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DD790: .4byte _080DD794
+ .align 2, 0
+_080DD794:
+ .4byte _080DD7A8
+ .4byte _080DD7B4
+ .4byte _080DD7B4
+ .4byte _080DD7C0
+ .4byte _080DD7CC
+_080DD7A8:
+ ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78
+ movs r5, 0
+ b _080DD7D0
+ .align 2, 0
+_080DD7B0: .4byte gSpriteTemplate_83DAD78
+_080DD7B4:
+ ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90
+ movs r5, 0x50
+ b _080DD7D0
+ .align 2, 0
+_080DD7BC: .4byte gSpriteTemplate_83DAD90
+_080DD7C0:
+ ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90
+ movs r5, 0x40
+ b _080DD7D0
+ .align 2, 0
+_080DD7C8: .4byte gSpriteTemplate_83DAD90
+_080DD7CC:
+ ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90
+ movs r5, 0x30
+_080DD7D0:
+ ldrh r1, [r4, 0xC]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r4, 0xE]
+ lsls r2, 16
+ asrs r2, 19
+ lsls r2, 16
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ lsls r0, 2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r0, r3, 0
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DD85C
+ ldr r1, _080DD870 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x12
+ strh r1, [r0, 0x2E]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r6, r2
+ movs r6, 0xA
+ ldrsh r3, [r4, r6]
+ lsls r1, r3, 1
+ adds r1, r3
+ adds r2, r1
+ strh r2, [r0, 0x32]
+ strh r7, [r0, 0x36]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r2, 1
+ movs r3, 0x10
+ negs r3, r3
+ adds r1, r3, 0
+ subs r1, r2
+ strh r1, [r0, 0x38]
+ ldrh r3, [r0, 0x4]
+ lsls r2, r3, 22
+ lsrs r2, 22
+ adds r2, r5
+ ldr r5, _080DD874 @ =0x000003ff
+ adds r1, r5, 0
+ ands r2, r1
+ ldr r1, _080DD878 @ =0xfffffc00
+ ands r1, r3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ bl sub_80786EC
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+_080DD85C:
+ movs r6, 0x20
+ ldrsh r0, [r4, r6]
+ negs r0, r0
+ strh r0, [r4, 0x20]
+_080DD864:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD86C: .4byte gSpriteTemplate_83DAD90
+_080DD870: .4byte gSprites
+_080DD874: .4byte 0x000003ff
+_080DD878: .4byte 0xfffffc00
+ thumb_func_end sub_80DD774
+
+ thumb_func_start sub_80DD87C
+sub_80DD87C: @ 80DD87C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DD8AE
+ ldr r0, _080DD8B4 @ =sub_80DD604
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080DD8A8
+ ldr r0, _080DD8B8 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1E]
+ subs r0, 0x1
+ strh r0, [r1, 0x1E]
+_080DD8A8:
+ adds r0, r4, 0
+ bl DestroySprite
+_080DD8AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD8B4: .4byte sub_80DD604
+_080DD8B8: .4byte gTasks
+ thumb_func_end sub_80DD87C
+
+ thumb_func_start sub_80DD8BC
+sub_80DD8BC: @ 80DD8BC
+ push {lr}
+ ldr r0, _080DD8E4 @ =gUnknown_0202F7B4
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x11]
+ lsrs r0, r1, 4
+ lsls r1, 28
+ lsrs r1, 28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _080DD8DE
+ movs r1, 0x1
+_080DD8DE:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080DD8E4: .4byte gUnknown_0202F7B4
+ thumb_func_end sub_80DD8BC
+
+ thumb_func_start sub_80DD8E8
+sub_80DD8E8: @ 80DD8E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD920 @ =gUnknown_03004B00
+ ldrb r1, [r5, 0x8]
+ bl StartSpriteAnim
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r5, 0x4]
+ subs r0, r1
+ strh r0, [r4, 0x34]
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ ldr r0, _080DD924 @ =sub_80DD928
+ str r0, [r4, 0x1C]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD920: .4byte gUnknown_03004B00
+_080DD924: .4byte sub_80DD928
+ thumb_func_end sub_80DD8E8
+
+ thumb_func_start sub_80DD928
+sub_80DD928: @ 80DD928
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ ldrh r1, [r2, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080DD960
+ ldrh r3, [r2, 0x32]
+ adds r0, r1, r3
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x2E]
+ adds r1, r0
+ strh r1, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ ble _080DD972
+ movs r0, 0
+ strh r0, [r2, 0x34]
+ b _080DD972
+_080DD960:
+ ldrh r0, [r2, 0x30]
+ subs r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DD972
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080DD972:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD928
+
+ thumb_func_start sub_80DD978
+sub_80DD978: @ 80DD978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DD9A0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DD994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DD994:
+ adds r0, r4, 0
+ bl sub_807941C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9A0: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DD978
+
+ thumb_func_start sub_80DD9A4
+sub_80DD9A4: @ 80DD9A4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DD9F0 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DD9F4 @ =gUnknown_03004B00
+ ldrh r3, [r2]
+ ldrh r5, [r4, 0x20]
+ adds r1, r3, r5
+ strh r1, [r4, 0x20]
+ ldrh r1, [r2, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r3, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r4, 0x38]
+ ldrb r1, [r2, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080DD9F8 @ =sub_80DD9FC
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DD9F0: .4byte gUnknown_0202F7C9
+_080DD9F4: .4byte gUnknown_03004B00
+_080DD9F8: .4byte sub_80DD9FC
+ thumb_func_end sub_80DD9A4
+
+ thumb_func_start sub_80DD9FC
+sub_80DD9FC: @ 80DD9FC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r1, 0x28
+ bl __divsi3
+ ldrh r1, [r4, 0x24]
+ adds r1, r0
+ strh r1, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r1, [r4, 0x26]
+ subs r1, r0
+ strh r1, [r4, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8C
+ ble _080DDA46
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDA46:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DD9FC
+
+ thumb_func_start sub_80DDA4C
+sub_80DDA4C: @ 80DDA4C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080DDA84 @ =gUnknown_0202F7B8
+ ldr r0, [r2]
+ cmp r0, 0x20
+ bgt _080DDA60
+ ldr r1, _080DDA88 @ =gUnknown_03004B00
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080DDA60:
+ ldr r2, [r2]
+ adds r0, r2, 0
+ subs r0, 0x21
+ cmp r0, 0x20
+ bhi _080DDA70
+ ldr r1, _080DDA88 @ =gUnknown_03004B00
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080DDA70:
+ cmp r2, 0x41
+ ble _080DDA7A
+ ldr r1, _080DDA88 @ =gUnknown_03004B00
+ movs r0, 0x2
+ strh r0, [r1, 0xE]
+_080DDA7A:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDA84: .4byte gUnknown_0202F7B8
+_080DDA88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80DDA4C
+
+ thumb_func_start sub_80DDA8C
+sub_80DDA8C: @ 80DDA8C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080DDAE8 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080DDAAE
+ movs r0, 0
+ bl sub_80789D4
+ movs r0, 0xC8
+ strh r0, [r5, 0xA]
+_080DDAAE:
+ ldr r4, _080DDAEC @ =gUnknown_030041B8
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r1, 0xA
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x3
+ strh r0, [r5, 0xA]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x78
+ bne _080DDADA
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080DDADA:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDAE8: .4byte gTasks
+_080DDAEC: .4byte gUnknown_030041B8
+ thumb_func_end sub_80DDA8C
+
+ thumb_func_start sub_80DDAF0
+sub_80DDAF0: @ 80DDAF0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDB5C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDB1C
+ movs r0, 0
+ bl sub_80789D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080DDB60 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+_080DDB1C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x50
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldr r6, _080DDB60 @ =gUnknown_030041B8
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0x4
+ bl Cos
+ ldrh r4, [r4, 0xC]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r0, _080DDB64 @ =gUnknown_03004B00
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ ldr r0, _080DDB68 @ =0x00000fff
+ cmp r1, r0
+ bne _080DDB54
+ movs r0, 0
+ strh r0, [r6]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DDB54:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDB5C: .4byte gTasks
+_080DDB60: .4byte gUnknown_030041B8
+_080DDB64: .4byte gUnknown_03004B00
+_080DDB68: .4byte 0x00000fff
+ thumb_func_end sub_80DDAF0
+
+ thumb_func_start sub_80DDB6C
+sub_80DDB6C: @ 80DDB6C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DDBC8 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ ldr r5, _080DDBCC @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_8078BD4
+ ldr r0, _080DDBD0 @ =sub_80DDBD8
+ str r0, [r4, 0x1C]
+ movs r0, 0x10
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DDBD4 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDBC8: .4byte gUnknown_03004B00
+_080DDBCC: .4byte gUnknown_0202F7C9
+_080DDBD0: .4byte sub_80DDBD8
+_080DDBD4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDB6C
+
+ thumb_func_start sub_80DDBD8
+sub_80DDBD8: @ 80DDBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80DDCC8
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DDBF8
+ ldr r0, _080DDBF4 @ =sub_80DDC4C
+ str r0, [r4, 0x1C]
+ b _080DDC42
+ .align 2, 0
+_080DDBF4: .4byte sub_80DDC4C
+_080DDBF8:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC30
+ cmp r2, 0xC4
+ ble _080DDC42
+_080DDC30:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC42
+ ldr r0, _080DDC48 @ =gUnknown_0202F7D2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xC4
+ bl PlaySE12WithPanning
+_080DDC42:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDC48: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_80DDBD8
+
+ thumb_func_start sub_80DDC4C
+sub_80DDC4C: @ 80DDC4C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078B5C
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl Sin
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r1, 0xF
+ bl Cos
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x38]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _080DDC92
+ cmp r2, 0xC4
+ ble _080DDC9E
+_080DDC92:
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DDC9E
+ movs r0, 0xC4
+ bl PlaySE
+_080DDC9E:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DDCBC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DDCB8 @ =sub_807861C
+ str r0, [r4, 0x1C]
+ b _080DDCC2
+ .align 2, 0
+_080DDCB8: .4byte sub_807861C
+_080DDCBC:
+ adds r0, r4, 0
+ bl sub_80DDCC8
+_080DDCC2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDC4C
+
+ thumb_func_start sub_80DDCC8
+sub_80DDCC8: @ 80DDCC8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xFF
+ ble _080DDCEC
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ lsls r0, 16
+ ldr r1, _080DDCE8 @ =0x010d0000
+ cmp r0, r1
+ bne _080DDD4C
+ movs r0, 0
+ b _080DDD4A
+ .align 2, 0
+_080DDCE8: .4byte 0x010d0000
+_080DDCEC:
+ ldrh r1, [r3, 0x3C]
+ adds r4, r1, 0x1
+ strh r4, [r3, 0x3C]
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r0, 0
+ bne _080DDD4C
+ ldr r1, _080DDD10 @ =0xffffff00
+ ands r1, r4
+ strh r1, [r3, 0x3C]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DDD14
+ adds r0, r2, 0x1
+ b _080DDD16
+ .align 2, 0
+_080DDD10: .4byte 0xffffff00
+_080DDD14:
+ subs r0, r2, 0x1
+_080DDD16:
+ strh r0, [r3, 0x3A]
+ ldr r2, _080DDD54 @ =REG_BLDALPHA
+ ldrh r1, [r3, 0x3A]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080DDD32
+ cmp r0, 0x10
+ bne _080DDD3E
+_080DDD32:
+ ldrh r0, [r3, 0x3C]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r3, 0x3C]
+_080DDD3E:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080DDD4C
+ movs r0, 0x80
+ lsls r0, 1
+_080DDD4A:
+ strh r0, [r3, 0x3A]
+_080DDD4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DDCC8
+
+ thumb_func_start sub_80DDD58
+sub_80DDD58: @ 80DDD58
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r1, _080DDD74 @ =sub_80DDD78
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDD74: .4byte sub_80DDD78
+ thumb_func_end sub_80DDD58
+
+ thumb_func_start sub_80DDD78
+sub_80DDD78: @ 80DDD78
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x20
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x8
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x82
+ bhi _080DDDAC
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x8
+ b _080DDDB6
+_080DDDAC:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+_080DDDB6:
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x13
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x50
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3D
+ bne _080DDDE8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DDDE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDD78
+
+ thumb_func_start sub_80DDDF0
+sub_80DDDF0: @ 80DDDF0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080DDE68 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078E70
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x80
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldr r1, _080DDE6C @ =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, _080DDE70 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ strh r1, [r0, 0x8]
+ ldr r1, _080DDE74 @ =gUnknown_03004B00
+ ldrh r1, [r1]
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x10
+ strh r1, [r0, 0xE]
+ ldr r1, _080DDE78 @ =sub_80DDE7C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDE68: .4byte REG_BLDCNT
+_080DDE6C: .4byte gSprites
+_080DDE70: .4byte gTasks
+_080DDE74: .4byte gUnknown_03004B00
+_080DDE78: .4byte sub_80DDE7C
+ thumb_func_end sub_80DDDF0
+
+ thumb_func_start sub_80DDE7C
+sub_80DDE7C: @ 80DDE7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DDEC4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DDEBE
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xC]
+ adds r1, 0x1
+ strh r1, [r3, 0xC]
+ ldrh r0, [r3, 0xE]
+ subs r0, 0x1
+ strh r0, [r3, 0xE]
+ ldr r2, _080DDEC8 @ =REG_BLDALPHA
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x9
+ bne _080DDEBE
+ ldr r0, _080DDECC @ =sub_80DDED0
+ str r0, [r3]
+_080DDEBE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDEC4: .4byte gTasks
+_080DDEC8: .4byte REG_BLDALPHA
+_080DDECC: .4byte sub_80DDED0
+ thumb_func_end sub_80DDE7C
+
+ thumb_func_start sub_80DDED0
+sub_80DDED0: @ 80DDED0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _080DDEF4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DDEF8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080DDF36
+ .align 2, 0
+_080DDEF4: .4byte gTasks
+_080DDEF8:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x8
+ movs r6, 0
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bgt _080DDF22
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ adds r0, r1, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ b _080DDF36
+_080DDF22:
+ adds r0, r1, 0
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+ ldr r0, _080DDF3C @ =REG_BLDCNT
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+_080DDF36:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDF3C: .4byte REG_BLDCNT
+ thumb_func_end sub_80DDED0
+
+ thumb_func_start sub_80DDF40
+sub_80DDF40: @ 80DDF40
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x20]
+ ldrh r6, [r4, 0x22]
+ ldr r0, _080DDFDC @ =gUnknown_0202F7C8
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ strh r0, [r4, 0x20]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ mov r1, r9
+ strh r1, [r4, 0x2E]
+ ldr r2, _080DDFE0 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r4, 0x30]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r4, 0x32]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x20]
+ lsls r1, 4
+ strh r1, [r4, 0x36]
+ lsls r0, 4
+ strh r0, [r4, 0x38]
+ lsls r5, 16
+ asrs r5, 16
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ subs r5, r0
+ lsls r5, 4
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r5, 0
+ str r2, [sp]
+ bl __divsi3
+ strh r0, [r4, 0x3A]
+ lsls r6, 16
+ asrs r6, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ subs r6, r0
+ lsls r6, 4
+ ldr r2, [sp]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r1, 1
+ adds r0, r6, 0
+ bl __divsi3
+ strh r0, [r4, 0x3C]
+ ldr r0, _080DDFE4 @ =sub_80DDFE8
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DDFDC: .4byte gUnknown_0202F7C8
+_080DDFE0: .4byte gUnknown_03004B00
+_080DDFE4: .4byte sub_80DDFE8
+ thumb_func_end sub_80DDF40
+
+ thumb_func_start sub_80DDFE8
+sub_80DDFE8: @ 80DDFE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080DE032
+ cmp r0, 0x1
+ bgt _080DDFFE
+ cmp r0, 0
+ beq _080DE008
+ b _080DE0F6
+_080DDFFE:
+ cmp r0, 0x2
+ beq _080DE09C
+ cmp r0, 0x3
+ beq _080DE0F0
+ b _080DE0F6
+_080DE008:
+ ldrh r0, [r5, 0x3A]
+ ldrh r2, [r5, 0x36]
+ adds r0, r2
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x30]
+ subs r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ b _080DE0E2
+_080DE032:
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE098 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x30]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r5, 0x38]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3A]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r2, 0x22
+ ldrsh r1, [r5, r2]
+ subs r0, r1
+ lsls r0, 4
+ movs r2, 0x34
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r5, 0x3C]
+ b _080DE0E2
+ .align 2, 0
+_080DE098: .4byte gUnknown_0202F7C9
+_080DE09C:
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r1, [r5, 0x3C]
+ ldrh r2, [r5, 0x38]
+ adds r1, r2
+ strh r1, [r5, 0x38]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x34]
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080DE0F6
+ ldr r4, _080DE0EC @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_080DE0E2:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _080DE0F6
+ .align 2, 0
+_080DE0EC: .4byte gUnknown_0202F7C9
+_080DE0F0:
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_080DE0F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DDFE8
+
+ thumb_func_start sub_80DE0FC
+sub_80DE0FC: @ 80DE0FC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080DE110 @ =sub_80DE114
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE110: .4byte sub_80DE114
+ thumb_func_end sub_80DE0FC
+
+ thumb_func_start sub_80DE114
+sub_80DE114: @ 80DE114
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ movs r5, 0
+ movs r6, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080DE1AA
+ adds r1, r3, 0
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x4
+ ands r0, r2
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _080DE13E
+ movs r0, 0x4
+ orrs r0, r2
+ strb r0, [r4]
+_080DE13E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080DE14E
+ cmp r0, 0x1
+ beq _080DE158
+ movs r6, 0x1
+ b _080DE162
+_080DE14E:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _080DE162
+ b _080DE166
+_080DE158:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bne _080DE162
+ movs r5, 0x1
+_080DE162:
+ cmp r5, 0
+ beq _080DE198
+_080DE166:
+ ldrb r2, [r4]
+ 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
+ strb r0, [r4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080DE1AA
+ strh r1, [r3, 0x32]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080DE1AA
+_080DE198:
+ cmp r6, 0
+ beq _080DE1A4
+ adds r0, r3, 0
+ bl move_anim_8072740
+ b _080DE1AA
+_080DE1A4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_080DE1AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE114
+
+ thumb_func_start sub_80DE1B0
+sub_80DE1B0: @ 80DE1B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE1DC @ =gTasks
+ adds r5, r0, r1
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ movs r6, 0
+ movs r1, 0
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE1E0
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE2C0
+ .align 2, 0
+_080DE1DC: .4byte gTasks
+_080DE1E0:
+ strh r1, [r5, 0xA]
+ movs r0, 0xF
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0x10]
+ ldr r1, _080DE244 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080DE248 @ =REG_BLDALPHA
+ ldrh r0, [r5, 0xE]
+ lsls r0, 8
+ ldrh r1, [r5, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r4, _080DE24C @ =gSprites
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x50
+ strh r1, [r0, 0x2E]
+ ldr r0, _080DE250 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DE258
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE254 @ =0x0000ff70
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x70
+ b _080DE276
+ .align 2, 0
+_080DE244: .4byte REG_BLDCNT
+_080DE248: .4byte REG_BLDALPHA
+_080DE24C: .4byte gSprites
+_080DE250: .4byte gUnknown_0202F7C9
+_080DE254: .4byte 0x0000ff70
+_080DE258:
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x90
+ strh r1, [r0, 0x30]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2C8 @ =0x0000ff90
+_080DE276:
+ strh r1, [r0, 0x32]
+ ldr r4, _080DE2CC @ =gSprites
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x34]
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x36]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _080DE2D0 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _080DE2D4 @ =sub_8078394
+ str r1, [r0]
+ ldr r0, _080DE2D8 @ =sub_80DE2DC
+ str r0, [r5]
+_080DE2C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE2C8: .4byte 0x0000ff90
+_080DE2CC: .4byte gSprites
+_080DE2D0: .4byte SpriteCallbackDummy
+_080DE2D4: .4byte sub_8078394
+_080DE2D8: .4byte sub_80DE2DC
+ thumb_func_end sub_80DE1B0
+
+ thumb_func_start sub_80DE2DC
+sub_80DE2DC: @ 80DE2DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DE300 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE37C
+ cmp r0, 0x1
+ bgt _080DE304
+ cmp r0, 0
+ beq _080DE30A
+ b _080DE3A6
+ .align 2, 0
+_080DE300: .4byte gTasks
+_080DE304:
+ cmp r0, 0x2
+ beq _080DE3A0
+ b _080DE3A6
+_080DE30A:
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0x1
+ bne _080DE328
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DE328
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xC]
+_080DE328:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _080DE33E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DE33E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+_080DE33E:
+ ldr r2, _080DE374 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0xC]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DE3A6
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080DE3A6
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DE378 @ =gSprites
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE374: .4byte REG_BLDALPHA
+_080DE378: .4byte gSprites
+_080DE37C:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DE3A6
+ ldr r0, _080DE39C @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ b _080DE3A6
+ .align 2, 0
+_080DE39C: .4byte REG_BLDCNT
+_080DE3A0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DE3A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE2DC
+
+ thumb_func_start sub_80DE3AC
+sub_80DE3AC: @ 80DE3AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _080DE3CC @ =gTasks
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ ldr r2, _080DE3D0 @ =sub_80DE3D4
+ str r2, [r1]
+ bl _call_via_r2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE3CC: .4byte gTasks
+_080DE3D0: .4byte sub_80DE3D4
+ thumb_func_end sub_80DE3AC
+
+ thumb_func_start sub_80DE3D4
+sub_80DE3D4: @ 80DE3D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080DE40C @ =gTasks
+ adds r5, r0, r1
+ ldr r0, _080DE410 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080DE400
+ b _080DE604
+_080DE400:
+ lsls r0, 2
+ ldr r1, _080DE414 @ =_080DE418
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DE40C: .4byte gTasks
+_080DE410: .4byte gUnknown_0202F7C9
+_080DE414: .4byte _080DE418
+ .align 2, 0
+_080DE418:
+ .4byte _080DE42C
+ .4byte _080DE500
+ .4byte _080DE544
+ .4byte _080DE5AC
+ .4byte _080DE5E0
+_080DE42C:
+ ldr r7, _080DE460 @ =0x00002771
+ adds r0, r7, 0
+ bl AllocSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r5, 0x24]
+ cmp r0, 0xFF
+ beq _080DE456
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080DE464
+ adds r0, r7, 0
+ bl FreeSpritePaletteByTag
+_080DE456:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DE60A
+ .align 2, 0
+_080DE460: .4byte 0x00002771
+_080DE464:
+ ldr r4, _080DE4E4 @ =gSprites
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r2, [r5, 0x24]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ mov r3, r8
+ strh r3, [r5, 0xA]
+ strh r3, [r5, 0xC]
+ movs r0, 0x10
+ strh r0, [r5, 0xE]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x10]
+ cmp r6, 0x1
+ bne _080DE4EC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4E8 @ =0x0000fdff
+ b _080DE4F4
+ .align 2, 0
+_080DE4E4: .4byte gSprites
+_080DE4E8: .4byte 0x0000fdff
+_080DE4EC:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE4FC @ =0x0000fbff
+_080DE4F4:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE604
+ .align 2, 0
+_080DE4FC: .4byte 0x0000fbff
+_080DE500:
+ movs r1, 0x24
+ ldrsh r0, [r5, r1]
+ adds r0, 0x10
+ lsls r0, 4
+ strh r0, [r5, 0x24]
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ ldr r1, _080DE534 @ =gPlttBufferUnfaded
+ adds r0, r1
+ movs r3, 0x24
+ ldrsh r1, [r5, r3]
+ lsls r1, 1
+ ldr r2, _080DE538 @ =gPlttBufferFaded
+ adds r1, r2
+ ldr r2, _080DE53C @ =REG_BG0CNT
+ bl CpuSet
+ ldrh r0, [r5, 0x10]
+ ldr r3, _080DE540 @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0xA
+ bl BlendPalette
+ b _080DE604
+ .align 2, 0
+_080DE534: .4byte gPlttBufferUnfaded
+_080DE538: .4byte gPlttBufferFaded
+_080DE53C: .4byte REG_BG0CNT
+_080DE540: .4byte 0x00003c0d
+_080DE544:
+ ldr r2, _080DE580 @ =gSprites
+ movs r0, 0x22
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ subs r1, 0x20
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080DE564
+ movs r2, 0
+_080DE564:
+ cmp r6, 0x1
+ bne _080DE584
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x4
+ str r2, [sp, 0x4]
+ str r6, [sp, 0x8]
+ b _080DE59C
+ .align 2, 0
+_080DE580: .4byte gSprites
+_080DE584:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x8
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+_080DE59C:
+ movs r2, 0x2
+ movs r3, 0x6
+ bl sub_8089944
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ b _080DE604
+_080DE5AC:
+ cmp r6, 0x1
+ bne _080DE5C0
+ ldr r1, _080DE5B8 @ =REG_BLDCNT
+ ldr r2, _080DE5BC @ =0x00003f42
+ adds r0, r2, 0
+ b _080DE5C6
+ .align 2, 0
+_080DE5B8: .4byte REG_BLDCNT
+_080DE5BC: .4byte 0x00003f42
+_080DE5C0:
+ ldr r1, _080DE5D4 @ =REG_BLDCNT
+ ldr r3, _080DE5D8 @ =0x00003f44
+ adds r0, r3, 0
+_080DE5C6:
+ strh r0, [r1]
+ ldr r1, _080DE5DC @ =REG_BLDALPHA
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080DE604
+ .align 2, 0
+_080DE5D4: .4byte REG_BLDCNT
+_080DE5D8: .4byte 0x00003f44
+_080DE5DC: .4byte REG_BLDALPHA
+_080DE5E0:
+ cmp r6, 0x1
+ bne _080DE5F0
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE5FA
+_080DE5F0:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE5FA:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ ldr r0, _080DE618 @ =sub_80DE61C
+ str r0, [r5]
+_080DE604:
+ ldrh r0, [r5, 0x26]
+ adds r0, 0x1
+ strh r0, [r5, 0x26]
+_080DE60A:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE618: .4byte sub_80DE61C
+ thumb_func_end sub_80DE3D4
+
+ thumb_func_start sub_80DE61C
+sub_80DE61C: @ 80DE61C
+ 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, _080DE6A0 @ =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x12]
+ cmp r0, 0
+ bne _080DE654
+ ldr r1, _080DE6A4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ strh r0, [r4, 0xC]
+_080DE654:
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _080DE676
+ ldr r1, _080DE6A4 @ =gSineTable
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x12
+ bl __divsi3
+ movs r1, 0x10
+ subs r1, r0
+ strh r1, [r4, 0xE]
+_080DE676:
+ ldr r2, _080DE6A8 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0xE]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x80
+ bne _080DE698
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080DE6AC @ =sub_80DE6B0
+ str r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+_080DE698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE6A0: .4byte gTasks
+_080DE6A4: .4byte gSineTable
+_080DE6A8: .4byte REG_BLDALPHA
+_080DE6AC: .4byte sub_80DE6B0
+ thumb_func_end sub_80DE61C
+
+ thumb_func_start sub_80DE6B0
+sub_80DE6B0: @ 80DE6B0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080DE6E0 @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080DE6E4 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080DE72C
+ cmp r0, 0x1
+ bgt _080DE6E8
+ cmp r0, 0
+ beq _080DE6EE
+ b _080DE7AA
+ .align 2, 0
+_080DE6E0: .4byte gTasks
+_080DE6E4: .4byte gUnknown_0202F7C9
+_080DE6E8:
+ cmp r0, 0x2
+ beq _080DE740
+ b _080DE7AA
+_080DE6EE:
+ ldr r1, _080DE710 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ cmp r6, 0x1
+ bne _080DE718
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE714 @ =0x0000fdff
+ b _080DE720
+ .align 2, 0
+_080DE710: .4byte gUnknown_03004DC0
+_080DE714: .4byte 0x0000fdff
+_080DE718:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080DE728 @ =0x0000fbff
+_080DE720:
+ ands r0, r1
+ strh r0, [r2]
+ b _080DE7AA
+ .align 2, 0
+_080DE728: .4byte 0x0000fbff
+_080DE72C:
+ ldrh r0, [r4, 0x10]
+ ldr r3, _080DE73C @ =0x00003c0d
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ b _080DE7AA
+ .align 2, 0
+_080DE73C: .4byte 0x00003c0d
+_080DE740:
+ ldr r3, _080DE788 @ =gSprites
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl obj_delete_but_dont_free_vram
+ ldr r0, _080DE78C @ =0x00002771
+ bl FreeSpritePaletteByTag
+ ldr r0, _080DE790 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ cmp r6, 0x1
+ bne _080DE794
+ subs r0, 0x52
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 2
+ b _080DE79E
+ .align 2, 0
+_080DE788: .4byte gSprites
+_080DE78C: .4byte 0x00002771
+_080DE790: .4byte REG_BLDCNT
+_080DE794:
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+_080DE79E:
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+_080DE7AA:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE6B0
+
+ thumb_func_start sub_80DE7B8
+sub_80DE7B8: @ 80DE7B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ ldr r0, _080DE7F4 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DE800
+ ldr r4, _080DE7F8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE7FC @ =gUnknown_0202F7C9
+ b _080DE824
+ .align 2, 0
+_080DE7F4: .4byte gUnknown_03004B00
+_080DE7F8: .4byte gUnknown_0202F7C8
+_080DE7FC: .4byte gUnknown_0202F7C9
+_080DE800:
+ ldr r4, _080DE8C8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r2, 0xE0
+ lsls r2, 13
+ adds r0, r2
+ lsrs r5, r0, 16
+ ldr r4, _080DE8CC @ =gUnknown_0202F7C8
+_080DE824:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 8
+ movs r1, 0xE0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r0, 16
+ mov r9, r0
+ mov r8, r5
+ mov r2, r9
+ subs r4, r2, r5
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, r6, 4
+ strh r0, [r7, 0x2E]
+ lsls r0, r5, 4
+ strh r0, [r7, 0x30]
+ mov r1, r10
+ subs r0, r1, r6
+ lsls r0, 4
+ ldr r5, _080DE8D0 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl __divsi3
+ strh r0, [r7, 0x32]
+ lsls r4, 16
+ asrs r4, 12
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ strh r0, [r7, 0x34]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0x36]
+ mov r1, r10
+ strh r1, [r7, 0x38]
+ mov r2, r9
+ strh r2, [r7, 0x3A]
+ movs r1, 0x36
+ ldrsh r0, [r7, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r7, 0x3C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x5]
+ strh r6, [r7, 0x20]
+ mov r2, r8
+ strh r2, [r7, 0x22]
+ ldr r0, _080DE8D4 @ =sub_80DE8D8
+ str r0, [r7, 0x1C]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DE8C8: .4byte gUnknown_0202F7C9
+_080DE8CC: .4byte gUnknown_0202F7C8
+_080DE8D0: .4byte gUnknown_03004B00
+_080DE8D4: .4byte sub_80DE8D8
+ thumb_func_end sub_80DE7B8
+
+ thumb_func_start sub_80DE8D8
+sub_80DE8D8: @ 80DE8D8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080DE910
+ ldrh r0, [r2, 0x32]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x34]
+ ldrh r4, [r2, 0x30]
+ adds r1, r4
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r2, 0x22]
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080DE910
+ strh r0, [r2, 0x2E]
+_080DE910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DE8D8
+
+ thumb_func_start sub_80DE918
+sub_80DE918: @ 80DE918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DEA68 @ =gTasks
+ adds r1, r0
+ str r1, [sp]
+ ldr r1, _080DEA6C @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0
+ ldr r1, [sp]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ movs r0, 0x10
+ strh r0, [r1, 0x1A]
+ ldr r2, _080DEA70 @ =gUnknown_03004B00
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldr r4, _080DEA74 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DE988
+ b _080DEA88
+_080DE988:
+ movs r4, 0
+_080DE98A:
+ lsls r1, r4, 16
+ asrs r3, r1, 16
+ ldr r0, _080DEA74 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ str r1, [sp, 0x10]
+ cmp r3, r2
+ beq _080DEA56
+ movs r0, 0x2
+ eors r2, r0
+ cmp r3, r2
+ beq _080DEA56
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DEA56
+ ldr r6, [sp, 0x4]
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEA56
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_807A100
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ lsls r5, r0, 4
+ add r5, r8
+ lsls r5, 2
+ ldr r1, _080DEA7C @ =gSprites
+ adds r4, r5, r1
+ lsls r0, r6, 4
+ strh r0, [r4, 0x2E]
+ lsls r0, r7, 4
+ strh r0, [r4, 0x30]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 4
+ ldr r3, _080DEA70 @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ lsls r0, r3, 16
+ asrs r0, 16
+ subs r0, r7
+ lsls r0, 4
+ ldr r2, _080DEA70 @ =gUnknown_03004B00
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEA70 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ ldr r0, _080DEA80 @ =gSprites + 0x1C
+ adds r5, r0
+ ldr r0, _080DEA84 @ =sub_80DE8D8
+ str r0, [r5]
+ ldr r2, [sp]
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+_080DEA56:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080DE98A
+ b _080DEB0C
+ .align 2, 0
+_080DEA68: .4byte gTasks
+_080DEA6C: .4byte REG_BLDCNT
+_080DEA70: .4byte gUnknown_03004B00
+_080DEA74: .4byte gUnknown_0202F7C8
+_080DEA78: .4byte gSpriteTemplate_83DAF08
+_080DEA7C: .4byte gSprites
+_080DEA80: .4byte gSprites + 0x1C
+_080DEA84: .4byte sub_80DE8D8
+_080DEA88:
+ ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08
+ ldr r7, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ lsls r1, r2, 16
+ asrs r1, 16
+ str r1, [sp, 0xC]
+ adds r1, r7, 0
+ ldr r2, [sp, 0xC]
+ movs r3, 0x37
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x40
+ beq _080DEB0C
+ movs r3, 0x30
+ mov r10, r3
+ movs r0, 0x28
+ mov r9, r0
+ ldr r6, _080DEB28 @ =gSprites
+ mov r1, r8
+ lsls r5, r1, 4
+ add r5, r8
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, r7, 4
+ strh r0, [r4, 0x2E]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 4
+ strh r0, [r4, 0x30]
+ subs r0, r3, r7
+ lsls r0, 4
+ ldr r3, _080DEB2C @ =gUnknown_03004B00
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ mov r3, r9
+ ldr r1, [sp, 0xC]
+ subs r0, r3, r1
+ lsls r0, 4
+ ldr r2, _080DEB2C @ =gUnknown_03004B00
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ ldr r1, _080DEB2C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x36]
+ mov r2, r10
+ strh r2, [r4, 0x38]
+ mov r3, r9
+ strh r3, [r4, 0x3A]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _080DEB30 @ =sub_80DE8D8
+ str r0, [r5]
+ mov r1, r8
+ ldr r0, [sp]
+ strh r1, [r0, 0x22]
+ movs r0, 0x1
+ ldr r2, [sp]
+ strh r0, [r2, 0x20]
+_080DEB0C:
+ ldr r0, _080DEB34 @ =sub_80DEB38
+ ldr r3, [sp]
+ str r0, [r3]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEB24: .4byte gSpriteTemplate_83DAF08
+_080DEB28: .4byte gSprites
+_080DEB2C: .4byte gUnknown_03004B00
+_080DEB30: .4byte sub_80DE8D8
+_080DEB34: .4byte sub_80DEB38
+ thumb_func_end sub_80DE918
+
+ thumb_func_start sub_80DEB38
+sub_80DEB38: @ 80DEB38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080DEB5C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080DEBEE
+ cmp r1, 0x1
+ bgt _080DEB60
+ cmp r1, 0
+ beq _080DEB6E
+ b _080DECA4
+ .align 2, 0
+_080DEB5C: .4byte gTasks
+_080DEB60:
+ cmp r1, 0x2
+ bne _080DEB66
+ b _080DEC80
+_080DEB66:
+ cmp r1, 0x3
+ bne _080DEB6C
+ b _080DEC94
+_080DEB6C:
+ b _080DECA4
+_080DEB6E:
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DEBCE
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DEBCE
+ strh r1, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DEBA4
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEBB2
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEBB2
+_080DEBA4:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBB2
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEBB2:
+ ldr r2, _080DEBE0 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ ble _080DEBCE
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ movs r0, 0x1
+ strh r0, [r4, 0x14]
+_080DEBCE:
+ ldrh r1, [r4, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEBE4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1C]
+ b _080DECA4
+ .align 2, 0
+_080DEBE0: .4byte REG_BLDALPHA
+_080DEBE4:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080DECA4
+ b _080DEC8C
+_080DEBEE:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DECA4
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080DEC1E
+ ldrh r1, [r4, 0x18]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080DEC2C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x18]
+ b _080DEC2C
+_080DEC1E:
+ ldrh r1, [r4, 0x1A]
+ movs r2, 0x1A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DEC2C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1A]
+_080DEC2C:
+ ldr r2, _080DEC48 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x1A]
+ lsls r0, 8
+ ldrh r1, [r4, 0x18]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x80
+ lsls r0, 13
+ cmp r1, r0
+ bne _080DECA4
+ movs r5, 0
+ b _080DEC70
+ .align 2, 0
+_080DEC48: .4byte REG_BLDALPHA
+_080DEC4C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080DEC7C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080DEC70:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ blt _080DEC4C
+ b _080DEC8C
+ .align 2, 0
+_080DEC7C: .4byte gSprites
+_080DEC80:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080DECA4
+_080DEC8C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DECA4
+_080DEC94:
+ ldr r0, _080DECAC @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080DECA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DECAC: .4byte REG_BLDCNT
+ thumb_func_end sub_80DEB38
+
+ thumb_func_start sub_80DECB0
+sub_80DECB0: @ 80DECB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080DECF8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080DECFC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080DED00 @ =REG_WININ
+ ldr r2, _080DED04 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0x20
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xC8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080DED08 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DECF4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DED0C
+_080DECF4:
+ movs r6, 0x28
+ b _080DED0E
+ .align 2, 0
+_080DECF8: .4byte gUnknown_030042C4
+_080DECFC: .4byte gUnknown_03004240
+_080DED00: .4byte REG_WININ
+_080DED04: .4byte 0x00003f3f
+_080DED08: .4byte gUnknown_0202F7C8
+_080DED0C:
+ movs r6, 0xC8
+_080DED0E:
+ ldr r1, _080DED4C @ =gUnknown_030042C4
+ lsls r3, r6, 16
+ asrs r2, r3, 16
+ lsls r0, r2, 8
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r1, _080DED50 @ =gUnknown_03004240
+ movs r5, 0x28
+ ldr r0, _080DED54 @ =0x00002828
+ strh r0, [r1]
+ lsrs r3, 16
+ movs r1, 0xF0
+ subs r1, r2
+ movs r4, 0x48
+ ldr r2, _080DED58 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ strh r3, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ strh r4, [r0, 0x10]
+ strh r6, [r0, 0x12]
+ strh r5, [r0, 0x14]
+ ldr r1, _080DED5C @ =sub_80DED60
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DED4C: .4byte gUnknown_030042C4
+_080DED50: .4byte gUnknown_03004240
+_080DED54: .4byte 0x00002828
+_080DED58: .4byte gTasks
+_080DED5C: .4byte sub_80DED60
+ thumb_func_end sub_80DECB0
+
+ thumb_func_start sub_80DED60
+sub_80DED60: @ 80DED60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DEE80 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x8]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r5, [r4, 0xA]
+ ldrh r7, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ mov r10, r0
+ ldrh r2, [r4, 0x10]
+ str r2, [sp, 0xC]
+ ldrh r0, [r4, 0x12]
+ ldrh r2, [r4, 0x14]
+ mov r8, r2
+ lsls r1, 16
+ asrs r6, r1, 16
+ cmp r6, 0xF
+ ble _080DED9C
+ b _080DEE8C
+_080DED9C:
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsidf
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl __floatsidf
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ adds r1, r5, 0
+ adds r0, r4, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ adds r5, r1, 0
+ adds r4, r0, 0
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __subdf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl __floatsidf
+ ldr r2, _080DEE84 @ =0x3fb00000
+ ldr r3, _080DEE88 @ =0x00000000
+ bl __muldf3
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl __muldf3
+ adds r3, r1, 0
+ adds r2, r0, 0
+ adds r1, r5, 0
+ adds r0, r4, 0
+ bl __adddf3
+ bl __fixunsdfsi
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080DEEBA
+ .align 2, 0
+_080DEE80: .4byte gTasks
+_080DEE84: .4byte 0x3fb00000
+_080DEE88: .4byte 0x00000000
+_080DEE8C:
+ movs r2, 0
+ mov r9, r2
+ movs r7, 0xF0
+ movs r6, 0
+ movs r5, 0x70
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ lsls r0, 16
+ lsrs r0, 16
+ str r6, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080DEEDC @ =sub_80DEEE8
+ str r0, [r4]
+_080DEEBA:
+ ldr r1, _080DEEE0 @ =gUnknown_030042C4
+ mov r2, r9
+ lsls r0, r2, 8
+ orrs r7, r0
+ strh r7, [r1]
+ ldr r1, _080DEEE4 @ =gUnknown_03004240
+ lsls r0, r6, 8
+ orrs r5, r0
+ strh r5, [r1]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEEDC: .4byte sub_80DEEE8
+_080DEEE0: .4byte gUnknown_030042C4
+_080DEEE4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DED60
+
+ thumb_func_start sub_80DEEE8
+sub_80DEEE8: @ 80DEEE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080DEF28 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080DEF20
+ ldr r0, _080DEF2C @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080DEF30 @ =gUnknown_03004240
+ strh r2, [r0]
+ ldr r0, _080DEF34 @ =REG_WININ
+ ldr r4, _080DEF38 @ =0x00003f3f
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DEF20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF28: .4byte gPaletteFade
+_080DEF2C: .4byte gUnknown_030042C4
+_080DEF30: .4byte gUnknown_03004240
+_080DEF34: .4byte REG_WININ
+_080DEF38: .4byte 0x00003f3f
+ thumb_func_end sub_80DEEE8
+
+ thumb_func_start sub_80DEF3C
+sub_80DEF3C: @ 80DEF3C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _080DEF68 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DEF70
+ movs r2, 0x18
+ ldr r3, _080DEF6C @ =0x0000fffe
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ b _080DEF74
+ .align 2, 0
+_080DEF68: .4byte gUnknown_0202F7C8
+_080DEF6C: .4byte 0x0000fffe
+_080DEF70:
+ ldr r2, _080DEF90 @ =0x0000ffe8
+ movs r3, 0x2
+_080DEF74:
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ strh r3, [r4, 0x30]
+ movs r0, 0x3C
+ strh r0, [r4, 0x2E]
+ ldr r0, _080DEF94 @ =sub_80DEF98
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DEF90: .4byte 0x0000ffe8
+_080DEF94: .4byte sub_80DEF98
+ thumb_func_end sub_80DEF3C
+
+ thumb_func_start sub_80DEF98
+sub_80DEF98: @ 80DEF98
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080DEFAA
+ subs r0, r1, 0x1
+ b _080DF00E
+_080DEFAA:
+ ldrh r0, [r3, 0x30]
+ ldrh r4, [r3, 0x24]
+ adds r1, r0, r4
+ strh r1, [r3, 0x24]
+ adds r0, r1, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bls _080DF010
+ ldrh r0, [r3, 0x20]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0
+ strh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x8
+ ldr r4, _080DEFFC @ =0x000003ff
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _080DF000 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DF00C
+ movs r0, 0x1E
+ strh r0, [r3, 0x2E]
+ ldr r0, _080DF004 @ =sub_80782D8
+ str r0, [r3, 0x1C]
+ ldr r1, _080DF008 @ =sub_80DF018
+ adds r0, r3, 0
+ bl oamt_set_x3A_32
+ b _080DF010
+ .align 2, 0
+_080DEFFC: .4byte 0x000003ff
+_080DF000: .4byte 0xfffffc00
+_080DF004: .4byte sub_80782D8
+_080DF008: .4byte sub_80DF018
+_080DF00C:
+ movs r0, 0x28
+_080DF00E:
+ strh r0, [r3, 0x2E]
+_080DF010:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DEF98
+
+ thumb_func_start sub_80DF018
+sub_80DF018: @ 80DF018
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _080DF044
+ ldr r1, _080DF040 @ =REG_BLDCNT
+ movs r4, 0xFD
+ lsls r4, 6
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ strh r2, [r3, 0x32]
+ b _080DF082
+ .align 2, 0
+_080DF040: .4byte REG_BLDCNT
+_080DF044:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ bgt _080DF054
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080DF082
+_080DF054:
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ ldr r2, _080DF088 @ =REG_BLDALPHA
+ movs r1, 0x10
+ subs r1, r0
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ cmp r0, 0x10
+ bne _080DF082
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF08C @ =sub_80DF090
+ str r0, [r3, 0x1C]
+_080DF082:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF088: .4byte REG_BLDALPHA
+_080DF08C: .4byte sub_80DF090
+ thumb_func_end sub_80DF018
+
+ thumb_func_start sub_80DF090
+sub_80DF090: @ 80DF090
+ push {lr}
+ ldr r1, _080DF0AC @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ ldr r1, _080DF0B0 @ =gUnknown_030042C4
+ strh r2, [r1]
+ ldr r1, _080DF0B4 @ =gUnknown_03004240
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF0AC: .4byte REG_BLDCNT
+_080DF0B0: .4byte gUnknown_030042C4
+_080DF0B4: .4byte gUnknown_03004240
+ thumb_func_end sub_80DF090
+
+ thumb_func_start sub_80DF0B8
+sub_80DF0B8: @ 80DF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldr r0, _080DF120 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF0DC
+ ldrh r0, [r4, 0x24]
+ negs r0, r0
+ strh r0, [r4, 0x24]
+_080DF0DC:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080DF12C
+ ldr r0, _080DF124 @ =0x0000050b
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DF128 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r1]
+ b _080DF17E
+ .align 2, 0
+_080DF120: .4byte gUnknown_0202F7C8
+_080DF124: .4byte 0x0000050b
+_080DF128: .4byte REG_BLDCNT
+_080DF12C:
+ cmp r0, 0x1E
+ ble _080DF17E
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x3A]
+ lsls r0, r1, 16
+ asrs r0, 24
+ lsls r0, 16
+ movs r2, 0xFF
+ ands r2, r1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _080DF150
+ movs r3, 0x10
+_080DF150:
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _080DF15C
+ movs r2, 0
+_080DF15C:
+ ldr r1, _080DF184 @ =REG_BLDALPHA
+ lsls r0, r3, 8
+ orrs r0, r2
+ strh r0, [r1]
+ strh r0, [r4, 0x3A]
+ cmp r3, 0x10
+ bne _080DF17E
+ cmp r2, 0
+ bne _080DF17E
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080DF188 @ =sub_80DF18C
+ str r0, [r4, 0x1C]
+_080DF17E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF184: .4byte REG_BLDALPHA
+_080DF188: .4byte sub_80DF18C
+ thumb_func_end sub_80DF0B8
+
+ thumb_func_start sub_80DF18C
+sub_80DF18C: @ 80DF18C
+ push {lr}
+ ldr r1, _080DF1A0 @ =REG_BLDCNT
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF1A0: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF18C
+
+ thumb_func_start sub_80DF1A4
+sub_80DF1A4: @ 80DF1A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080DF23C @ =gTasks
+ adds r4, r0
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ movs r0, 0x10
+ mov r8, r0
+ mov r2, r8
+ strh r2, [r4, 0xA]
+ ldr r5, _080DF240 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r5]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r0, 16
+ asrs r1, r0, 16
+ lsrs r0, 31
+ adds r1, r0
+ asrs r1, 1
+ adds r1, 0x8
+ strh r1, [r4, 0x1E]
+ strh r6, [r4, 0x16]
+ ldrb r0, [r5]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x2
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0xE]
+ mov r0, r8
+ strh r0, [r4, 0x10]
+ ldr r1, _080DF244 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0x18]
+ ldr r0, _080DF248 @ =sub_80DF24C
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF23C: .4byte gTasks
+_080DF240: .4byte gUnknown_0202F7C8
+_080DF244: .4byte REG_BLDCNT
+_080DF248: .4byte sub_80DF24C
+ thumb_func_end sub_80DF1A4
+
+ thumb_func_start sub_80DF24C
+sub_80DF24C: @ 80DF24C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _080DF270 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080DF266
+ b _080DF3CC
+_080DF266:
+ lsls r0, 2
+ ldr r1, _080DF274 @ =_080DF278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DF270: .4byte gTasks
+_080DF274: .4byte _080DF278
+ .align 2, 0
+_080DF278:
+ .4byte _080DF290
+ .4byte _080DF300
+ .4byte _080DF342
+ .4byte _080DF356
+ .4byte _080DF3AC
+ .4byte _080DF3BC
+_080DF290:
+ movs r6, 0
+_080DF292:
+ movs r2, 0x1A
+ ldrsh r1, [r4, r2]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ ldrb r3, [r4, 0x14]
+ ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080DF2E6
+ ldr r1, _080DF2F8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r1
+ strh r7, [r5, 0x2E]
+ ldr r0, _080DF2FC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080DF2C8
+ movs r1, 0x1
+_080DF2C8:
+ strh r1, [r5, 0x30]
+ movs r0, 0x2A
+ muls r0, r6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r5, 0x34]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ strh r0, [r4, 0x16]
+_080DF2E6:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080DF292
+ b _080DF3B4
+ .align 2, 0
+_080DF2F4: .4byte gSpriteTemplate_83DAF80
+_080DF2F8: .4byte gSprites
+_080DF2FC: .4byte gUnknown_0202F7C8
+_080DF300:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF31E
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xD
+ bgt _080DF32C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF32C
+_080DF31E:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ ble _080DF32C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF32C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0xE
+ bne _080DF39C
+ cmp r2, 0x4
+ bne _080DF39C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF396
+_080DF342:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _080DF3CC
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080DF3B4
+_080DF356:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080DF374
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080DF382
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _080DF382
+_080DF374:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF382
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_080DF382:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ bne _080DF39C
+ cmp r2, 0x10
+ bne _080DF39C
+ movs r0, 0x1
+ strh r0, [r4, 0x18]
+_080DF396:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080DF39C:
+ ldr r1, _080DF3A8 @ =REG_BLDALPHA
+ lsls r0, r2, 8
+ orrs r0, r3
+ strh r0, [r1]
+ b _080DF3CC
+ .align 2, 0
+_080DF3A8: .4byte REG_BLDALPHA
+_080DF3AC:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080DF3CC
+_080DF3B4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080DF3CC
+_080DF3BC:
+ ldr r0, _080DF3D4 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080DF3CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF3D4: .4byte REG_BLDCNT
+ thumb_func_end sub_80DF24C
+
+ thumb_func_start sub_80DF3D8
+sub_80DF3D8: @ 80DF3D8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080DF3EA
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x2
+ b _080DF3EE
+_080DF3EA:
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x2
+_080DF3EE:
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x41
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7E
+ bhi _080DF430
+ ldr r2, _080DF42C @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x12]
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ b _080DF444
+ .align 2, 0
+_080DF42C: .4byte gTasks
+_080DF430:
+ ldr r2, _080DF498 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x3
+ ldrb r1, [r0, 0x12]
+ ands r1, r2
+_080DF444:
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ movs r1, 0x7
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldr r2, _080DF498 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x18
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080DF492
+ ldrh r0, [r1, 0x16]
+ subs r0, 0x1
+ strh r0, [r1, 0x16]
+ adds r0, r4, 0
+ bl DestroySprite
+_080DF492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF498: .4byte gTasks
+ thumb_func_end sub_80DF3D8
+
+ thumb_func_start sub_80DF49C
+sub_80DF49C: @ 80DF49C
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r2, _080DF4E0 @ =gUnknown_02024BE0
+ ldr r1, _080DF4E4 @ =gUnknown_0202F7C8
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ strh r1, [r0, 0x38]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0xA
+ strh r1, [r0, 0x30]
+ ldr r2, _080DF4E8 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r0, 0x32]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0x34]
+ ldr r1, _080DF4EC @ =sub_80DF4F4
+ str r1, [r0, 0x1C]
+ ldr r2, _080DF4F0 @ =gSprites
+ movs r3, 0x38
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080DF4E0: .4byte gUnknown_02024BE0
+_080DF4E4: .4byte gUnknown_0202F7C8
+_080DF4E8: .4byte gUnknown_03004B00
+_080DF4EC: .4byte sub_80DF4F4
+_080DF4F0: .4byte gSprites
+ thumb_func_end sub_80DF49C
+
+ thumb_func_start sub_80DF4F4
+sub_80DF4F4: @ 80DF4F4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x34]
+ movs r1, 0x34
+ ldrsh r3, [r5, r1]
+ cmp r3, 0
+ beq _080DF55C
+ subs r0, 0x1
+ strh r0, [r5, 0x34]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ ldr r4, _080DF554 @ =gSprites
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Cos
+ movs r1, 0x38
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x32]
+ ldrh r2, [r5, 0x2E]
+ adds r1, r0, r2
+ strh r1, [r5, 0x2E]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080DF590
+ ldr r2, _080DF558 @ =0xffffff00
+ adds r0, r1, r2
+ strh r0, [r5, 0x2E]
+ b _080DF590
+ .align 2, 0
+_080DF554: .4byte gSprites
+_080DF558: .4byte 0xffffff00
+_080DF55C:
+ ldr r2, _080DF598 @ =gSprites
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x24]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x26]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x8
+ strh r1, [r0, 0x22]
+ ldr r0, _080DF59C @ =move_anim_8074EE0
+ str r0, [r5, 0x1C]
+_080DF590:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF598: .4byte gSprites
+_080DF59C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF4F4
+
+ thumb_func_start sub_80DF5A0
+sub_80DF5A0: @ 80DF5A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080DF5E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF5F0
+ ldr r2, _080DF5EC @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r2, 0x6]
+ negs r0, r0
+ strh r0, [r2, 0x6]
+ ldrh r0, [r2, 0x8]
+ negs r0, r0
+ strh r0, [r2, 0x8]
+ adds r1, r2, 0
+ b _080DF5FA
+ .align 2, 0
+_080DF5E8: .4byte gUnknown_0202F7C8
+_080DF5EC: .4byte gUnknown_03004B00
+_080DF5F0:
+ ldr r1, _080DF630 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+_080DF5FA:
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080DF634 @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080DF638 @ =sub_8078504
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF630: .4byte gUnknown_03004B00
+_080DF634: .4byte move_anim_8074EE0
+_080DF638: .4byte sub_8078504
+ thumb_func_end sub_80DF5A0
+
+ thumb_func_start sub_80DF63C
+sub_80DF63C: @ 80DF63C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078650
+ ldr r4, _080DF694 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _080DF698 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF6A0
+ ldr r2, _080DF69C @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r1, r0
+ strh r1, [r5, 0x22]
+ ldrh r0, [r5, 0x32]
+ ldrh r1, [r2, 0x4]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ b _080DF6CA
+ .align 2, 0
+_080DF694: .4byte gUnknown_0202F7C9
+_080DF698: .4byte gUnknown_0202F7C8
+_080DF69C: .4byte gUnknown_03004B00
+_080DF6A0:
+ ldr r1, _080DF6E4 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r5, 0x32]
+ adds r0, r2
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r5, 0x36]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080DF6CA:
+ ldr r0, _080DF6E4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080DF6E8 @ =sub_8078B34
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF6EC @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF6E4: .4byte gUnknown_03004B00
+_080DF6E8: .4byte sub_8078B34
+_080DF6EC: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF63C
+
+ thumb_func_start sub_80DF6F0
+sub_80DF6F0: @ 80DF6F0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080DF704 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080DF70C
+ ldr r4, _080DF708 @ =gUnknown_0202F7C8
+ b _080DF70E
+ .align 2, 0
+_080DF704: .4byte gUnknown_03004B00
+_080DF708: .4byte gUnknown_0202F7C8
+_080DF70C:
+ ldr r4, _080DF750 @ =gUnknown_0202F7C9
+_080DF70E:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r4, _080DF754 @ =gUnknown_03004B00
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ bl sub_807867C
+ ldrh r0, [r4, 0x4]
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, _080DF758 @ =sub_8078600
+ str r0, [r5, 0x1C]
+ ldr r1, _080DF75C @ =move_anim_8074EE0
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF750: .4byte gUnknown_0202F7C9
+_080DF754: .4byte gUnknown_03004B00
+_080DF758: .4byte sub_8078600
+_080DF75C: .4byte move_anim_8074EE0
+ thumb_func_end sub_80DF6F0
+
+ thumb_func_start sub_80DF760
+sub_80DF760: @ 80DF760
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080DF788 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080DF77A
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_080DF77A:
+ adds r0, r4, 0
+ bl sub_80DF63C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF788: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80DF760
+
+ thumb_func_start sub_80DF78C
+sub_80DF78C: @ 80DF78C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r4, _080DF7E0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r6, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ strh r5, [r6, 0x36]
+ movs r0, 0x1
+ strh r0, [r6, 0x38]
+ ldr r0, _080DF7E4 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r6, 0x3A]
+ ldr r4, _080DF7E8 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_807A100
+ lsls r7, r0, 16
+ lsrs r5, r7, 16
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_807A100
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r5, r0
+ bls _080DF7EC
+ lsrs r0, r7, 17
+ b _080DF7EE
+ .align 2, 0
+_080DF7E0: .4byte gUnknown_0202F7C8
+_080DF7E4: .4byte gUnknown_03004B00
+_080DF7E8: .4byte gUnknown_02024C07
+_080DF7EC:
+ lsrs r0, r1, 17
+_080DF7EE:
+ strh r0, [r6, 0x3C]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Cos
+ strh r0, [r6, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r6, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r6, r2]
+ bl Sin
+ strh r0, [r6, 0x26]
+ ldr r0, _080DF818 @ =sub_80DF81C
+ str r0, [r6, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF818: .4byte sub_80DF81C
+ thumb_func_end sub_80DF78C
+
+ thumb_func_start sub_80DF81C
+sub_80DF81C: @ 80DF81C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080DF82E
+ cmp r5, 0x1
+ beq _080DF89A
+ b _080DF91E
+_080DF82E:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF880
+ strh r5, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF880
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF880
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF880:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DF91E
+ movs r0, 0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080DF91E
+_080DF89A:
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x38]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x95
+ bgt _080DF8C2
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x95
+ ble _080DF8C2
+ movs r0, 0x96
+ strh r0, [r4, 0x3C]
+_080DF8C2:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080DF90A
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ bgt _080DF90A
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080DF90A
+ movs r0, 0x10
+ strh r0, [r4, 0x38]
+_080DF90A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080DF91E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DF91E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF81C
+
+ thumb_func_start sub_80DF924
+sub_80DF924: @ 80DF924
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080DF950 @ =gTasks
+ adds r4, r1, r0
+ ldr r0, _080DF954 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DF960
+ ldr r0, _080DF958 @ =REG_BG1HOFS
+ str r0, [sp]
+ ldr r0, _080DF95C @ =gUnknown_030042C0
+ b _080DF966
+ .align 2, 0
+_080DF950: .4byte gTasks
+_080DF954: .4byte gUnknown_0202F7C8
+_080DF958: .4byte REG_BG1HOFS
+_080DF95C: .4byte gUnknown_030042C0
+_080DF960:
+ ldr r0, _080DF9DC @ =REG_BG2HOFS
+ str r0, [sp]
+ ldr r0, _080DF9E0 @ =gUnknown_03004288
+_080DF966:
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ ldr r0, _080DF9E4 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r5, [r0, 0x9]
+ ldr r0, _080DF9E8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0xE]
+ adds r0, 0x20
+ strh r0, [r4, 0x10]
+ cmp r1, 0
+ bge _080DF996
+ strh r5, [r4, 0xE]
+_080DF996:
+ ldrh r3, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ bgt _080DF9C4
+ ldr r5, _080DF9EC @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080DF9A8:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0xC]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r3, r0
+ ble _080DF9A8
+_080DF9C4:
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _080DF9F0 @ =sub_80DF9F4
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DF9DC: .4byte REG_BG2HOFS
+_080DF9E0: .4byte gUnknown_03004288
+_080DF9E4: .4byte 0xa2600001
+_080DF9E8: .4byte gUnknown_0202F7C8
+_080DF9EC: .4byte gUnknown_03004DE0
+_080DF9F0: .4byte sub_80DF9F4
+ thumb_func_end sub_80DF924
+
+ thumb_func_start sub_80DF9F4
+sub_80DF9F4: @ 80DF9F4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080DFA18 @ =gTasks
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bhi _080DFAAA
+ lsls r0, 2
+ ldr r1, _080DFA1C @ =_080DFA20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080DFA18: .4byte gTasks
+_080DFA1C: .4byte _080DFA20
+ .align 2, 0
+_080DFA20:
+ .4byte _080DFA34
+ .4byte _080DFA56
+ .4byte _080DFA66
+ .4byte _080DFA92
+ .4byte _080DFAA4
+_080DFA34:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ adds r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080DFA8A
+ b _080DFA84
+_080DFA56:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080DFA8A
+ b _080DFA84
+_080DFA66:
+ ldrh r0, [r2, 0x16]
+ adds r0, 0x1
+ strh r0, [r2, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080DFA8A
+ movs r0, 0
+ strh r0, [r2, 0x16]
+ ldrh r0, [r2, 0x14]
+ subs r0, 0x1
+ strh r0, [r2, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFA8A
+_080DFA84:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_080DFA8A:
+ adds r0, r2, 0
+ bl sub_80DFAB0
+ b _080DFAAA
+_080DFA92:
+ ldr r1, _080DFAA0 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080DFAAA
+ .align 2, 0
+_080DFAA0: .4byte gUnknown_03004DC0
+_080DFAA4:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080DFAAA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DF9F4
+
+ thumb_func_start sub_80DFAB0
+sub_80DFAB0: @ 80DFAB0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ ldrh r3, [r5, 0x12]
+ ldrh r4, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ bgt _080DFB06
+ ldr r7, _080DFB1C @ =gUnknown_03004DE0
+ mov r12, r7
+ ldr r0, _080DFB20 @ =gSineTable
+ mov r8, r0
+ ldr r6, _080DFB24 @ =gUnknown_03004DC0
+_080DFACE:
+ lsls r2, r4, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ lsls r0, r3, 1
+ add r0, r8
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x14
+ ldrsh r0, [r5, r7]
+ muls r0, r1
+ asrs r0, 7
+ ldrh r1, [r5, 0xC]
+ adds r0, r1
+ strh r0, [r2]
+ adds r3, 0x8
+ movs r0, 0xFF
+ ands r3, r0
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0x10
+ ldrsh r0, [r5, r7]
+ cmp r4, r0
+ ble _080DFACE
+_080DFB06:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x12]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFB1C: .4byte gUnknown_03004DE0
+_080DFB20: .4byte gSineTable
+_080DFB24: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80DFAB0
+
+ thumb_func_start sub_80DFB28
+sub_80DFB28: @ 80DFB28
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080DFBC8 @ =gUnknown_03004B00
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ bl __divsi3
+ adds r6, r0, 0
+ ldr r1, _080DFBCC @ =gUnknown_0202F7C8
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r5, 0x8]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r4, 0x30]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r6, 0
+ bl Sin
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r5]
+ adds r3, r2, 0
+ muls r3, r1
+ adds r1, r3, 0
+ ldrh r3, [r4, 0x20]
+ adds r1, r3
+ strh r1, [r4, 0x20]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x34]
+ ldr r0, _080DFBD0 @ =sub_80DFBD8
+ str r0, [r4, 0x1C]
+ adds r4, 0x2E
+ ldr r2, _080DFBD4 @ =gUnknown_03000730
+ movs r1, 0x6
+_080DFBB0:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, 0x2
+ adds r2, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080DFBB0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFBC8: .4byte gUnknown_03004B00
+_080DFBCC: .4byte gUnknown_0202F7C8
+_080DFBD0: .4byte sub_80DFBD8
+_080DFBD4: .4byte gUnknown_03000730
+ thumb_func_end sub_80DFB28
+
+ thumb_func_start sub_80DFBD8
+sub_80DFBD8: @ 80DFBD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x38]
+ adds r0, r2
+ strh r0, [r4, 0x38]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x24]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl __divsi3
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _080DFC1C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFC1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFBD8
+
+ thumb_func_start sub_80DFC24
+sub_80DFC24: @ 80DFC24
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080DFC58 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC5C @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ ldr r0, _080DFC60 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ movs r2, 0x10
+ strh r2, [r1, 0xA]
+ ldr r1, _080DFC64 @ =REG_BLDALPHA
+ strh r2, [r1]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFC70
+ ldr r1, _080DFC68 @ =REG_BLDCNT
+ ldr r2, _080DFC6C @ =0x00003f42
+ b _080DFC74
+ .align 2, 0
+_080DFC58: .4byte gTasks
+_080DFC5C: .4byte gUnknown_03004B00
+_080DFC60: .4byte gUnknown_0202F7C8
+_080DFC64: .4byte REG_BLDALPHA
+_080DFC68: .4byte REG_BLDCNT
+_080DFC6C: .4byte 0x00003f42
+_080DFC70:
+ ldr r1, _080DFC8C @ =REG_BLDCNT
+ ldr r2, _080DFC90 @ =0x00003f44
+_080DFC74:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFC94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080DFC98 @ =sub_80DFC9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFC8C: .4byte REG_BLDCNT
+_080DFC90: .4byte 0x00003f44
+_080DFC94: .4byte gTasks
+_080DFC98: .4byte sub_80DFC9C
+ thumb_func_end sub_80DFC24
+
+ thumb_func_start sub_80DFC9C
+sub_80DFC9C: @ 80DFC9C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080DFD04 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ lsrs r2, r0, 8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ cmp r0, r3
+ bne _080DFD18
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r2, 8
+ orrs r1, r0
+ movs r3, 0
+ strh r1, [r4, 0xA]
+ ldr r0, _080DFD08 @ =REG_BLDALPHA
+ strh r1, [r0]
+ strh r3, [r4, 0xC]
+ cmp r2, 0x10
+ bne _080DFD1E
+ ldr r2, _080DFD0C @ =gSprites
+ ldr r1, _080DFD10 @ =gUnknown_02024BE0
+ ldr r0, _080DFD14 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080DFD1E
+ .align 2, 0
+_080DFD04: .4byte gTasks
+_080DFD08: .4byte REG_BLDALPHA
+_080DFD0C: .4byte gSprites
+_080DFD10: .4byte gUnknown_02024BE0
+_080DFD14: .4byte gUnknown_0202F7C8
+_080DFD18:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_080DFD1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFC9C
+
+ thumb_func_start sub_80DFD24
+sub_80DFD24: @ 80DFD24
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080DFD48 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080DFD4C @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ strh r0, [r1, 0x8]
+ movs r2, 0x80
+ lsls r2, 5
+ strh r2, [r1, 0xA]
+ ldr r0, _080DFD50 @ =sub_80DFD58
+ str r0, [r1]
+ ldr r0, _080DFD54 @ =REG_BLDALPHA
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080DFD48: .4byte gTasks
+_080DFD4C: .4byte gUnknown_03004B00
+_080DFD50: .4byte sub_80DFD58
+_080DFD54: .4byte REG_BLDALPHA
+ thumb_func_end sub_80DFD24
+
+ thumb_func_start sub_80DFD58
+sub_80DFD58: @ 80DFD58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDA8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsrs r1, r0, 8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ ldrb r3, [r2, 0x8]
+ cmp r0, r3
+ bne _080DFDB4
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r3, 8
+ orrs r1, r0
+ movs r0, 0
+ strh r1, [r2, 0xA]
+ ldr r5, _080DFDAC @ =REG_BLDALPHA
+ strh r1, [r5]
+ strh r0, [r2, 0xC]
+ cmp r3, 0
+ bne _080DFDBA
+ ldr r0, _080DFDB0 @ =REG_BLDCNT
+ strh r3, [r0]
+ strh r3, [r5]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080DFDBA
+ .align 2, 0
+_080DFDA8: .4byte gTasks
+_080DFDAC: .4byte REG_BLDALPHA
+_080DFDB0: .4byte REG_BLDCNT
+_080DFDB4:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+_080DFDBA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFD58
+
+ thumb_func_start sub_80DFDC0
+sub_80DFDC0: @ 80DFDC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080DFDE8 @ =REG_BLDALPHA
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080DFDEC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080DFDF8
+ ldr r1, _080DFDF0 @ =REG_BLDCNT
+ ldr r2, _080DFDF4 @ =0x00003f42
+ b _080DFDFC
+ .align 2, 0
+_080DFDE8: .4byte REG_BLDALPHA
+_080DFDEC: .4byte gUnknown_0202F7C8
+_080DFDF0: .4byte REG_BLDCNT
+_080DFDF4: .4byte 0x00003f42
+_080DFDF8:
+ ldr r1, _080DFE0C @ =REG_BLDCNT
+ ldr r2, _080DFE10 @ =0x00003f44
+_080DFDFC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE0C: .4byte REG_BLDCNT
+_080DFE10: .4byte 0x00003f44
+ thumb_func_end sub_80DFDC0
+
+ thumb_func_start sub_80DFE14
+sub_80DFE14: @ 80DFE14
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _080DFE80 @ =gUnknown_0202F7C9
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x30]
+ ldr r5, _080DFE84 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ movs r0, 0x7E
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ bl sub_8078A5C
+ ldrh r0, [r4, 0x30]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x32]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldr r0, _080DFE88 @ =0x0000ffd8
+ strh r0, [r4, 0x3A]
+ ldr r1, _080DFE8C @ =sub_80DFE90
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFE80: .4byte gUnknown_0202F7C9
+_080DFE84: .4byte gUnknown_0202F7C8
+_080DFE88: .4byte 0x0000ffd8
+_080DFE8C: .4byte sub_80DFE90
+ thumb_func_end sub_80DFE14
+
+ thumb_func_start sub_80DFE90
+sub_80DFE90: @ 80DFE90
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r5, [r4, 0x30]
+ ldrh r0, [r4, 0x34]
+ adds r2, r5, r0
+ strh r2, [r4, 0x34]
+ ldrh r3, [r4, 0x32]
+ ldrh r6, [r4, 0x36]
+ adds r1, r3, r6
+ strh r1, [r4, 0x36]
+ lsls r0, r2, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r6, 0x3C
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _080DFED2
+ adds r0, r2, r5
+ strh r0, [r4, 0x34]
+ adds r1, r3
+ strh r1, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+_080DFED2:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x3A
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldrh r6, [r4, 0x26]
+ adds r0, r6
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x3
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ cmp r0, 0x7F
+ ble _080DFF02
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x14
+ strh r0, [r4, 0x3A]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+_080DFF02:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFF14
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080DFF14:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFE90
+
+ thumb_func_start sub_80DFF1C
+sub_80DFF1C: @ 80DFF1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080DFF50 @ =gUnknown_03004B00
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrb r1, [r5, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x32]
+ ldr r0, _080DFF54 @ =sub_80DFF58
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF50: .4byte gUnknown_03004B00
+_080DFF54: .4byte sub_80DFF58
+ thumb_func_end sub_80DFF1C
+
+ thumb_func_start sub_80DFF58
+sub_80DFF58: @ 80DFF58
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x38]
+ adds r1, r3
+ strh r1, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bne _080DFF8E
+ ldr r0, _080DFF94 @ =sub_80DFF98
+ str r0, [r2, 0x1C]
+_080DFF8E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080DFF94: .4byte sub_80DFF98
+ thumb_func_end sub_80DFF58
+
+ thumb_func_start sub_80DFF98
+sub_80DFF98: @ 80DFF98
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x2E]
+ subs r1, r0
+ strh r1, [r3, 0x36]
+ ldrh r0, [r3, 0x38]
+ ldrh r2, [r3, 0x30]
+ subs r0, r2
+ strh r0, [r3, 0x38]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r3, 0x24]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080DFFCA
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_080DFFCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80DFF98
+
+ thumb_func_start sub_80DFFD0
+sub_80DFFD0: @ 80DFFD0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080DFFE4 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080DFFEC
+ ldr r0, _080DFFE8 @ =gUnknown_0202F7C8
+ b _080DFFEE
+ .align 2, 0
+_080DFFE4: .4byte gUnknown_03004B00
+_080DFFE8: .4byte gUnknown_0202F7C8
+_080DFFEC:
+ ldr r0, _080E001C @ =gUnknown_0202F7C9
+_080DFFEE:
+ ldrb r5, [r0]
+ movs r6, 0x14
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ ldr r7, _080E0020 @ =0x000003ff
+ adds r0, r7, 0
+ ands r1, r0
+ ldr r0, _080E0024 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _080E004C
+ cmp r0, 0x1
+ bgt _080E0028
+ cmp r0, 0
+ beq _080E0032
+ b _080E00A0
+ .align 2, 0
+_080E001C: .4byte gUnknown_0202F7C9
+_080E0020: .4byte 0x000003ff
+_080E0024: .4byte 0xfffffc00
+_080E0028:
+ cmp r0, 0x2
+ beq _080E0066
+ cmp r0, 0x3
+ beq _080E007E
+ b _080E00A0
+_080E0032:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E004C:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ b _080E00A0
+_080E0066:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x8
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x8
+ b _080E0094
+_080E007E:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0xE
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x10
+_080E0094:
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r6, 0xEC
+_080E00A0:
+ movs r0, 0x20
+ strh r0, [r4, 0x2E]
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0xC
+ strh r0, [r4, 0x36]
+ ldr r0, _080E00C8 @ =0x0000fff4
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E00CC @ =sub_80E00D0
+ str r0, [r4, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E00C8: .4byte 0x0000fff4
+_080E00CC: .4byte sub_80E00D0
+ thumb_func_end sub_80DFFD0
+
+ thumb_func_start sub_80E00D0
+sub_80E00D0: @ 80E00D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E00E4
+ adds r0, r4, 0
+ bl move_anim_8074EE0
+_080E00E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E00D0
+
+ thumb_func_start sub_80E00EC
+sub_80E00EC: @ 80E00EC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E0150 @ =gTasks
+ adds r5, r1, r0
+ ldr r4, _080E0154 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ strh r1, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r5, 0x24]
+ adds r0, 0x20
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E015C
+ ldr r0, _080E0158 @ =0x0000fff4
+ b _080E015E
+ .align 2, 0
+_080E0150: .4byte gTasks
+_080E0154: .4byte gUnknown_0202F7C8
+_080E0158: .4byte 0x0000fff4
+_080E015C:
+ ldr r0, _080E01A8 @ =0x0000ffc0
+_080E015E:
+ strh r0, [r5, 0x18]
+ ldr r0, _080E01AC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E01C4
+ add r4, sp, 0xC
+ adds r0, r4, 0
+ bl sub_8078914
+ ldr r0, _080E01B0 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E01B4 @ =REG_BLDCNT
+ ldr r2, _080E01B8 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldrb r1, [r4, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E01BC @ =REG_BG1VOFS
+ str r0, [sp]
+ movs r7, 0x2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E01C0 @ =gUnknown_03004288
+ b _080E01EE
+ .align 2, 0
+_080E01A8: .4byte 0x0000ffc0
+_080E01AC: .4byte gUnknown_0202F7C8
+_080E01B0: .4byte gUnknown_030041B4
+_080E01B4: .4byte REG_BLDCNT
+_080E01B8: .4byte 0x00003f42
+_080E01BC: .4byte REG_BG1VOFS
+_080E01C0: .4byte gUnknown_03004288
+_080E01C4:
+ ldr r0, _080E0278 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ ldr r1, _080E027C @ =REG_BLDCNT
+ ldr r2, _080E0280 @ =0x00003f44
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+ ldr r0, _080E0284 @ =REG_BG2VOFS
+ str r0, [sp]
+ movs r7, 0x4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E01F4
+ ldr r1, _080E0288 @ =gUnknown_030042C0
+_080E01EE:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+_080E01F4:
+ ldr r0, _080E028C @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r2, sp
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ strb r1, [r0, 0x9]
+ strh r1, [r5, 0x1E]
+ movs r0, 0x10
+ strh r0, [r5, 0x20]
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ strh r1, [r5, 0xC]
+ movs r0, 0x3
+ bl sub_80E08CC
+ movs r3, 0
+ ldr r4, _080E0290 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r4, r0
+_080E0220:
+ lsls r1, r3, 1
+ adds r2, r1, r4
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r5, 0x1C]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E0220
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r1, _080E0294 @ =REG_WINOUT
+ movs r0, 0x3F
+ eors r7, r0
+ movs r2, 0xFC
+ lsls r2, 6
+ adds r0, r2, 0
+ orrs r7, r0
+ strh r7, [r1]
+ subs r1, 0x2
+ adds r2, 0x3F
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E0298 @ =gUnknown_030042C4
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E029C @ =gUnknown_03004240
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080E02A0 @ =sub_80E02A4
+ str r0, [r5]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0278: .4byte gUnknown_03004280
+_080E027C: .4byte REG_BLDCNT
+_080E0280: .4byte 0x00003f44
+_080E0284: .4byte REG_BG2VOFS
+_080E0288: .4byte gUnknown_030042C0
+_080E028C: .4byte 0xa2600001
+_080E0290: .4byte gUnknown_03004DE0
+_080E0294: .4byte REG_WINOUT
+_080E0298: .4byte gUnknown_030042C4
+_080E029C: .4byte gUnknown_03004240
+_080E02A0: .4byte sub_80E02A4
+ thumb_func_end sub_80E00EC
+
+ thumb_func_start sub_80E02A4
+sub_80E02A4: @ 80E02A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E02C8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E02BE
+ b _080E03B6
+_080E02BE:
+ lsls r0, 2
+ ldr r1, _080E02CC @ =_080E02D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E02C8: .4byte gTasks
+_080E02CC: .4byte _080E02D0
+ .align 2, 0
+_080E02D0:
+ .4byte _080E02E4
+ .4byte _080E0344
+ .4byte _080E035E
+ .4byte _080E039C
+ .4byte _080E03B0
+_080E02E4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E03B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0314
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xC
+ beq _080E0322
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0322
+_080E0314:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _080E0322
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0322:
+ ldr r2, _080E0340 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ bne _080E03B6
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0340: .4byte REG_BLDALPHA
+_080E0344:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _080E03B6
+ b _080E03A2
+_080E035E:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x8
+ strh r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80E079C
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x4
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r2, r0, 0x4
+ strh r2, [r4, 0x26]
+ lsls r1, 16
+ lsls r0, r2, 16
+ cmp r1, r0
+ blt _080E0380
+ strh r2, [r4, 0x24]
+_080E0380:
+ ldr r3, _080E0398 @ =gUnknown_030042C4
+ ldrh r2, [r4, 0x24]
+ lsls r0, r2, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r3]
+ lsls r2, 16
+ lsls r1, 16
+ cmp r2, r1
+ bne _080E03B6
+ b _080E03A2
+ .align 2, 0
+_080E0398: .4byte gUnknown_030042C4
+_080E039C:
+ ldr r1, _080E03AC @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E03A2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E03B6
+ .align 2, 0
+_080E03AC: .4byte gUnknown_03004DC0
+_080E03B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E03B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E02A4
+
+ thumb_func_start sub_80E03BC
+sub_80E03BC: @ 80E03BC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080E03E4 @ =gTasks
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x4
+ bls _080E03D8
+ b _080E05F2
+_080E03D8:
+ lsls r0, 2
+ ldr r1, _080E03E8 @ =_080E03EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E03E4: .4byte gTasks
+_080E03E8: .4byte _080E03EC
+ .align 2, 0
+_080E03EC:
+ .4byte _080E0400
+ .4byte _080E048C
+ .4byte _080E04D0
+ .4byte _080E053C
+ .4byte _080E05A4
+_080E0400:
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E043C
+ ldr r0, _080E042C @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0430 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _080E0434 @ =REG_WININ
+ ldr r2, _080E0438 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E05F2
+ .align 2, 0
+_080E042C: .4byte gUnknown_030042C4
+_080E0430: .4byte gUnknown_03004240
+_080E0434: .4byte REG_WININ
+_080E0438: .4byte 0x00003f3f
+_080E043C:
+ ldr r0, _080E045C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xE]
+ cmp r0, 0x1
+ bne _080E046C
+ ldr r1, _080E0460 @ =REG_BLDCNT
+ ldr r2, _080E0464 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0468 @ =gUnknown_03004288
+ b _080E0476
+ .align 2, 0
+_080E045C: .4byte gUnknown_0202F7C9
+_080E0460: .4byte REG_BLDCNT
+_080E0464: .4byte 0x00003f42
+_080E0468: .4byte gUnknown_03004288
+_080E046C:
+ ldr r1, _080E0480 @ =REG_BLDCNT
+ ldr r2, _080E0484 @ =0x00003f44
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0488 @ =gUnknown_030042C0
+_080E0476:
+ ldrh r0, [r1]
+ adds r0, 0xF0
+ strh r0, [r1]
+ b _080E0590
+ .align 2, 0
+_080E0480: .4byte REG_BLDCNT
+_080E0484: .4byte 0x00003f44
+_080E0488: .4byte gUnknown_030042C0
+_080E048C:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E04B4
+ mov r0, sp
+ bl sub_8078914
+ ldr r0, _080E04B0 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ movs r0, 0
+ movs r2, 0x20
+ bl FillPalette
+ b _080E04C4
+ .align 2, 0
+_080E04B0: .4byte gUnknown_030041B4
+_080E04B4:
+ ldr r0, _080E04CC @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1C]
+ movs r0, 0
+ movs r1, 0x90
+ movs r2, 0x20
+ bl FillPalette
+_080E04C4:
+ movs r0, 0x3
+ bl sub_80E08CC
+ b _080E0590
+ .align 2, 0
+_080E04CC: .4byte gUnknown_03004280
+_080E04D0:
+ ldr r4, _080E051C @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1F
+ movs r6, 0
+ strh r0, [r5, 0x16]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ subs r0, 0x7
+ strh r0, [r5, 0x14]
+ ldrh r1, [r5, 0x16]
+ subs r1, r0
+ lsls r1, 8
+ strh r1, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x4
+ strh r1, [r5, 0x24]
+ adds r0, 0x4
+ strh r0, [r5, 0x26]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0524
+ ldr r0, _080E0520 @ =0x0000fff4
+ b _080E0526
+ .align 2, 0
+_080E051C: .4byte gUnknown_0202F7C9
+_080E0520: .4byte 0x0000fff4
+_080E0524:
+ ldr r0, _080E0538 @ =0x0000ffc0
+_080E0526:
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x10]
+ strh r0, [r5, 0x12]
+ movs r0, 0xC
+ strh r0, [r5, 0x1E]
+ movs r0, 0x8
+ strh r0, [r5, 0x20]
+ b _080E0590
+ .align 2, 0
+_080E0538: .4byte 0x0000ffc0
+_080E053C:
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ bne _080E054C
+ ldr r0, _080E0548 @ =REG_BG1VOFS
+ b _080E054E
+ .align 2, 0
+_080E0548: .4byte REG_BG1VOFS
+_080E054C:
+ ldr r0, _080E0598 @ =REG_BG2VOFS
+_080E054E:
+ str r0, [sp, 0xC]
+ movs r3, 0
+ add r4, sp, 0xC
+ ldr r6, _080E059C @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r7, r6, r0
+_080E055C:
+ lsls r1, r3, 1
+ adds r2, r1, r6
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r2]
+ adds r1, r7
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x9F
+ subs r0, r3
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6F
+ bls _080E055C
+ ldr r1, _080E05A0 @ =0xa2600001
+ str r1, [r4, 0x4]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r4, 0x8]
+ strb r2, [r4, 0x9]
+ ldr r0, [sp, 0xC]
+ ldr r2, [r4, 0x8]
+ bl sub_80895F8
+_080E0590:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080E05F2
+ .align 2, 0
+_080E0598: .4byte REG_BG2VOFS
+_080E059C: .4byte gUnknown_03004DE0
+_080E05A0: .4byte 0xa2600001
+_080E05A4:
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _080E05BC
+ ldr r1, _080E05B4 @ =REG_WINOUT
+ ldr r2, _080E05B8 @ =0x00003f3d
+ b _080E05C0
+ .align 2, 0
+_080E05B4: .4byte REG_WINOUT
+_080E05B8: .4byte 0x00003f3d
+_080E05BC:
+ ldr r1, _080E05FC @ =REG_WINOUT
+ ldr r2, _080E0600 @ =0x00003f3b
+_080E05C0:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E0604 @ =REG_WININ
+ ldr r2, _080E0608 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080E060C @ =gUnknown_030042C4
+ ldrh r0, [r5, 0x24]
+ lsls r0, 8
+ ldrh r1, [r5, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0610 @ =gUnknown_03004240
+ movs r0, 0xA0
+ strh r0, [r1]
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldr r1, _080E0614 @ =REG_BLDALPHA
+ ldr r2, _080E0618 @ =0x0000080c
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E061C @ =sub_80E0620
+ str r0, [r5]
+_080E05F2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E05FC: .4byte REG_WINOUT
+_080E0600: .4byte 0x00003f3b
+_080E0604: .4byte REG_WININ
+_080E0608: .4byte 0x00003f3f
+_080E060C: .4byte gUnknown_030042C4
+_080E0610: .4byte gUnknown_03004240
+_080E0614: .4byte REG_BLDALPHA
+_080E0618: .4byte 0x0000080c
+_080E061C: .4byte sub_80E0620
+ thumb_func_end sub_80E03BC
+
+ thumb_func_start sub_80E0620
+sub_80E0620: @ 80E0620
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E0644 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E063A
+ b _080E0784
+_080E063A:
+ lsls r0, 2
+ ldr r1, _080E0648 @ =_080E064C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0644: .4byte gTasks
+_080E0648: .4byte _080E064C
+ .align 2, 0
+_080E064C:
+ .4byte _080E0660
+ .4byte _080E068C
+ .4byte _080E06F4
+ .4byte _080E0754
+ .4byte _080E0768
+_080E0660:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x16]
+ movs r3, 0x16
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E0676
+ strh r2, [r4, 0x12]
+_080E0676:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _080E068A
+ b _080E0784
+_080E068A:
+ b _080E075A
+_080E068C:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ cmp r0, 0x3F
+ bgt _080E06A8
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x4
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x4
+ strh r0, [r4, 0x26]
+ b _080E06AC
+_080E06A8:
+ movs r0, 0x1
+ strh r0, [r4, 0xA]
+_080E06AC:
+ ldr r2, _080E06F0 @ =gUnknown_030042C4
+ ldrh r0, [r4, 0x24]
+ lsls r0, 8
+ ldrh r1, [r4, 0x26]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0x14]
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E06CE
+ strh r2, [r4, 0x10]
+_080E06CE:
+ adds r0, r4, 0
+ bl sub_80E079C
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E0784
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _080E075A
+ .align 2, 0
+_080E06F0: .4byte gUnknown_030042C4
+_080E06F4:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E0784
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E0724
+ ldrh r1, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E0732
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x1E]
+ b _080E0732
+_080E0724:
+ ldrh r1, [r4, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r4, r3]
+ cmp r0, 0xF
+ bgt _080E0732
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x20]
+_080E0732:
+ ldr r2, _080E0750 @ =REG_BLDALPHA
+ ldrh r0, [r4, 0x20]
+ lsls r0, 8
+ ldrh r1, [r4, 0x1E]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E0784
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bne _080E0784
+ b _080E075A
+ .align 2, 0
+_080E0750: .4byte REG_BLDALPHA
+_080E0754:
+ ldr r1, _080E0764 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E075A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E0784
+ .align 2, 0
+_080E0764: .4byte gUnknown_03004DC0
+_080E0768:
+ ldr r0, _080E078C @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E0790 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r0, _080E0794 @ =REG_WININ
+ ldr r3, _080E0798 @ =0x00003f3f
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E0784:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E078C: .4byte gUnknown_030042C4
+_080E0790: .4byte gUnknown_03004240
+_080E0794: .4byte REG_WININ
+_080E0798: .4byte 0x00003f3f
+ thumb_func_end sub_80E0620
+
+ thumb_func_start sub_80E079C
+sub_80E079C: @ 80E079C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r4, [r6, 0x10]
+ subs r0, r4
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080E0890
+ movs r2, 0x22
+ ldrsh r0, [r6, r2]
+ bl __divsi3
+ mov r8, r0
+ movs r3, 0x14
+ ldrsh r0, [r6, r3]
+ lsls r5, r0, 8
+ lsls r0, r4, 16
+ movs r4, 0
+ cmp r0, 0
+ ble _080E07FC
+ ldr r0, _080E0888 @ =gUnknown_03004DE0
+ mov r12, r0
+ ldr r7, _080E088C @ =gUnknown_03004DC0
+_080E07D0:
+ lsls r2, r4, 16
+ asrs r2, 16
+ lsls r3, r2, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ adds r1, r2, 0
+ subs r1, 0x9F
+ ldrh r0, [r6, 0x1C]
+ subs r0, r1
+ strh r0, [r3]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r2, r0
+ blt _080E07D0
+_080E07FC:
+ ldrh r4, [r6, 0x10]
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bgt _080E0846
+ ldr r0, _080E0888 @ =gUnknown_03004DE0
+ mov r12, r0
+ ldr r7, _080E088C @ =gUnknown_03004DC0
+_080E0810:
+ asrs r4, r3, 16
+ cmp r4, 0
+ blt _080E0832
+ asrs r1, r5, 8
+ subs r1, r4
+ lsls r3, r4, 1
+ ldrb r2, [r7, 0x14]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 7
+ adds r3, r0
+ add r3, r12
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r6, 0x1C]
+ adds r1, r2
+ strh r1, [r3]
+_080E0832:
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r3, r4, 16
+ asrs r1, r3, 16
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ ble _080E0810
+_080E0846:
+ movs r3, 0x1C
+ ldrsh r0, [r6, r3]
+ adds r0, 0x9F
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ subs r5, r0, r1
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bge _080E08BE
+ ldr r7, _080E0888 @ =gUnknown_03004DE0
+ ldr r4, _080E088C @ =gUnknown_03004DC0
+_080E085E:
+ asrs r3, r2, 16
+ cmp r3, 0
+ blt _080E0876
+ lsls r2, r3, 1
+ ldrb r1, [r4, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ strh r5, [r2]
+ subs r5, 0x1
+_080E0876:
+ adds r0, r3, 0x1
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ movs r3, 0x16
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ blt _080E085E
+ b _080E08BE
+ .align 2, 0
+_080E0888: .4byte gUnknown_03004DE0
+_080E088C: .4byte gUnknown_03004DC0
+_080E0890:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ adds r5, r0, 0
+ adds r5, 0x9F
+ movs r4, 0
+ ldr r3, _080E08C8 @ =gUnknown_03004DE0
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r6, r3, r2
+_080E08A2:
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ strh r5, [r1]
+ adds r2, r6
+ strh r5, [r2]
+ subs r5, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _080E08A2
+_080E08BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E08C8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_80E079C
+
+ thumb_func_start sub_80E08CC
+sub_80E08CC: @ 80E08CC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ ldr r7, _080E0914 @ =gSprites
+ movs r1, 0x3
+ ands r0, r1
+ lsls r5, r0, 2
+ movs r0, 0xD
+ negs r0, r0
+ adds r6, r0, 0
+_080E08E2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080E0902
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r0, r6
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_080E0902:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E08E2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0914: .4byte gSprites
+ thumb_func_end sub_80E08CC
+
+ thumb_func_start sub_80E0918
+sub_80E0918: @ 80E0918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r6, _080E09B8 @ =gUnknown_0202F7C8
+ ldrb r0, [r6]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldrb r0, [r6]
+ adds r1, r4, 0
+ bl sub_8076034
+ ldr r0, _080E09BC @ =gSprites
+ mov r9, r0
+ ldr r0, _080E09C0 @ =gUnknown_02024BE0
+ mov r8, r0
+ ldrb r0, [r6]
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r7, 0x5
+ negs r7, r7
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r6]
+ movs r5, 0x2
+ eors r0, r5
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E09A2
+ ldrb r0, [r6]
+ eors r0, r5
+ movs r1, 0x1
+ eors r4, r1
+ adds r1, r4, 0
+ bl sub_8076034
+ ldrb r0, [r6]
+ eors r0, r5
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+_080E09A2:
+ mov r0, r10
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E09B8: .4byte gUnknown_0202F7C8
+_080E09BC: .4byte gSprites
+_080E09C0: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E0918
+
+ thumb_func_start sub_80E09C4
+sub_80E09C4: @ 80E09C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _080E0A0C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+ adds r0, r5, 0
+ bl sub_8076464
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0A00
+ movs r0, 0x1
+ eors r5, r0
+ adds r0, r5, 0
+ bl sub_8076464
+_080E0A00:
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A0C: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E09C4
+
+ thumb_func_start sub_80E0A10
+sub_80E0A10: @ 80E0A10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E0A40 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ ldrb r1, [r1, 0x4]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _080E0A44 @ =sub_8078600
+ str r0, [r4, 0x1C]
+ ldr r1, _080E0A48 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0A40: .4byte gUnknown_03004B00
+_080E0A44: .4byte sub_8078600
+_080E0A48: .4byte move_anim_8072740
+ thumb_func_end sub_80E0A10
+
+ thumb_func_start sub_80E0A4C
+sub_80E0A4C: @ 80E0A4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E0B50 @ =gUnknown_030042C4
+ strh r7, [r0]
+ ldr r0, _080E0B54 @ =gUnknown_03004240
+ strh r7, [r0]
+ ldr r1, _080E0B58 @ =REG_WININ
+ ldr r2, _080E0B5C @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B60 @ =0x00003f3d
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E0B64 @ =REG_BLDCNT
+ ldr r2, _080E0B68 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E0B6C @ =0x00000c08
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r5, _080E0B70 @ =REG_BG1CNT
+ ldrb r1, [r5]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r5, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0AC4
+ ldrb r0, [r5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5]
+_080E0AC4:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B40
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+ ldr r4, _080E0B74 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E0AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0B40
+_080E0AF4:
+ ldrb r0, [r4]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E0B40
+ ldr r3, _080E0B78 @ =gSprites
+ ldr r1, _080E0B7C @ =gUnknown_02024BE0
+ ldrb r0, [r4]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r5]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5]
+ movs r7, 0x1
+_080E0B40:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0B84
+ ldr r0, _080E0B80 @ =0x02019348
+ ldrh r5, [r0]
+ b _080E0BCC
+ .align 2, 0
+_080E0B50: .4byte gUnknown_030042C4
+_080E0B54: .4byte gUnknown_03004240
+_080E0B58: .4byte REG_WININ
+_080E0B5C: .4byte 0x00003f3f
+_080E0B60: .4byte 0x00003f3d
+_080E0B64: .4byte REG_BLDCNT
+_080E0B68: .4byte 0x00003f42
+_080E0B6C: .4byte 0x00000c08
+_080E0B70: .4byte REG_BG1CNT
+_080E0B74: .4byte gUnknown_0202F7C8
+_080E0B78: .4byte gSprites
+_080E0B7C: .4byte gUnknown_02024BE0
+_080E0B80: .4byte 0x02019348
+_080E0B84:
+ ldr r4, _080E0BA4 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0BB0
+ ldr r1, _080E0BA8 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0BAC @ =gEnemyParty
+ b _080E0BC0
+ .align 2, 0
+_080E0BA4: .4byte gUnknown_0202F7C8
+_080E0BA8: .4byte gUnknown_02024A6A
+_080E0BAC: .4byte gEnemyParty
+_080E0BB0:
+ ldr r1, _080E0C58 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E0C5C @ =gPlayerParty
+_080E0BC0:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E0BCC:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E0C60 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E0C64 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E0C68 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E0C6C @ =gUnknown_08D1D574
+ bl LZDecompressVram
+ ldr r0, _080E0C70 @ =gUnknown_08D1D410
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E0C74 @ =gUnknown_08D1D54C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r2, _080E0C78 @ =gUnknown_030042C0
+ ldr r0, _080E0C7C @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x60
+ strh r0, [r2]
+ ldr r2, _080E0C80 @ =gUnknown_030041B4
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ ldr r2, _080E0C84 @ =gUnknown_03004B00
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E0C88
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_8079108
+ b _080E0C94
+ .align 2, 0
+_080E0C58: .4byte gUnknown_02024A6A
+_080E0C5C: .4byte gPlayerParty
+_080E0C60: .4byte gUnknown_0202F7C8
+_080E0C64: .4byte 0x040000d4
+_080E0C68: .4byte 0x85000400
+_080E0C6C: .4byte gUnknown_08D1D574
+_080E0C70: .4byte gUnknown_08D1D410
+_080E0C74: .4byte gUnknown_08D1D54C
+_080E0C78: .4byte gUnknown_030042C0
+_080E0C7C: .4byte gSprites
+_080E0C80: .4byte gUnknown_030041B4
+_080E0C84: .4byte gUnknown_03004B00
+_080E0C88:
+ lsls r0, r1, 4
+ ldrh r3, [r2, 0x4]
+ movs r1, 0x10
+ movs r2, 0xB
+ bl BlendPalette
+_080E0C94:
+ ldr r1, _080E0CC4 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r2, _080E0CC8 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ strh r1, [r0, 0xA]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0, 0xC]
+ ldrh r1, [r2, 0x4]
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E0CCC @ =sub_80E0CD0
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0CC4: .4byte gTasks
+_080E0CC8: .4byte gUnknown_03004B00
+_080E0CCC: .4byte sub_80E0CD0
+ thumb_func_end sub_80E0A4C
+
+ thumb_func_start sub_80E0CD0
+sub_80E0CD0: @ 80E0CD0
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080E0DF0 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r2, _080E0DF4 @ =gUnknown_030042C0
+ ldrh r3, [r2]
+ subs r1, r3, 0x4
+ strh r1, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x80
+ bne _080E0DE8
+ strh r5, [r4, 0x1C]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ strh r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080E0DE8
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E0DF8 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E0DFC @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E0E00 @ =REG_WININ
+ ldr r2, _080E0E04 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E0D40
+ ldr r2, _080E0E08 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E0D40:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E0E0C @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r6, _080E0E10 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ adds r1, r0, 0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080E0D84
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_8079108
+_080E0D84:
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E0E14 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E0E18 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E0DE2
+ ldr r2, _080E0E1C @ =gUnknown_02024BE0
+ ldr r0, _080E0E20 @ =gUnknown_0202F7C8
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E0DE2:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_080E0DE8:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0DF0: .4byte gTasks
+_080E0DF4: .4byte gUnknown_030042C0
+_080E0DF8: .4byte gUnknown_030042C4
+_080E0DFC: .4byte gUnknown_03004240
+_080E0E00: .4byte REG_WININ
+_080E0E04: .4byte 0x00003f3f
+_080E0E08: .4byte REG_BG1CNT
+_080E0E0C: .4byte REG_BLDCNT
+_080E0E10: .4byte gSprites
+_080E0E14: .4byte 0x040000d4
+_080E0E18: .4byte 0x85000200
+_080E0E1C: .4byte gUnknown_02024BE0
+_080E0E20: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E0CD0
+
+ thumb_func_start sub_80E0E24
+sub_80E0E24: @ 80E0E24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E0E44 @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0x7
+ bhi _080E0E88
+ lsls r0, r1, 2
+ ldr r1, _080E0E48 @ =_080E0E4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E0E44: .4byte gUnknown_03004B00
+_080E0E48: .4byte _080E0E4C
+ .align 2, 0
+_080E0E4C:
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E6C
+ .4byte _080E0E78
+ .4byte _080E0E7C
+ .4byte _080E0E80
+ .4byte _080E0E84
+_080E0E6C:
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080E0E8A
+_080E0E78:
+ movs r4, 0
+ b _080E0E90
+_080E0E7C:
+ movs r4, 0x2
+ b _080E0E90
+_080E0E80:
+ movs r4, 0x1
+ b _080E0E90
+_080E0E84:
+ movs r4, 0x3
+ b _080E0E90
+_080E0E88:
+ movs r2, 0xFF
+_080E0E8A:
+ movs r0, 0
+ cmp r0, 0
+ beq _080E0EB6
+_080E0E90:
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0EB4
+ ldr r0, _080E0EB0 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r2, [r0]
+ b _080E0EB6
+ .align 2, 0
+_080E0EB0: .4byte gUnknown_02024BE0
+_080E0EB4:
+ movs r2, 0xFF
+_080E0EB6:
+ cmp r2, 0xFF
+ beq _080E0ED2
+ ldr r1, _080E0EE0 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ adds r0, 0x10
+ ldr r1, _080E0EE4 @ =gUnknown_03004B00
+ ldrb r1, [r1, 0x2]
+ bl sub_8079108
+_080E0ED2:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0EE0: .4byte gSprites
+_080E0EE4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0E24
+
+ thumb_func_start sub_80E0EE8
+sub_80E0EE8: @ 80E0EE8
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E0F14 @ =gUnknown_0202F7C4
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bhi _080E0EFC
+ ldr r1, _080E0F18 @ =gUnknown_03004B00
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_080E0EFC:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ bne _080E0F08
+ ldr r1, _080E0F18 @ =gUnknown_03004B00
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+_080E0F08:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F14: .4byte gUnknown_0202F7C4
+_080E0F18: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E0EE8
+
+ thumb_func_start sub_80E0F1C
+sub_80E0F1C: @ 80E0F1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E0F74 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ ldr r5, _080E0F78 @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x36]
+ ldr r0, _080E0F7C @ =0x0000ffd8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _080E0F80 @ =sub_80E0F84
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0F74: .4byte gUnknown_0202F7C8
+_080E0F78: .4byte gUnknown_0202F7C9
+_080E0F7C: .4byte 0x0000ffd8
+_080E0F80: .4byte sub_80E0F84
+ thumb_func_end sub_80E0F1C
+
+ thumb_func_start sub_80E0F84
+sub_80E0F84: @ 80E0F84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FD8
+ ldrh r0, [r5, 0x24]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x26]
+ strh r1, [r5, 0x24]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _080E0FE0 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ movs r0, 0x28
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E0FE4 @ =sub_80E0FE8
+ str r0, [r5, 0x1C]
+_080E0FD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E0FE0: .4byte gUnknown_0202F7C8
+_080E0FE4: .4byte sub_80E0FE8
+ thumb_func_end sub_80E0F84
+
+ thumb_func_start sub_80E0FE8
+sub_80E0FE8: @ 80E0FE8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E0FFC
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E0FFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E0FE8
+
+ thumb_func_start sub_80E1004
+sub_80E1004: @ 80E1004
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldr r0, _080E1064 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E1024
+ ldr r1, _080E1068 @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1024:
+ ldr r4, _080E1068 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x8]
+ strh r0, [r6, 0x2E]
+ ldr r5, _080E106C @ =gUnknown_0202F7C9
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x32]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1070 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1074 @ =move_anim_8072740
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1064: .4byte gUnknown_0202F7C8
+_080E1068: .4byte gUnknown_03004B00
+_080E106C: .4byte gUnknown_0202F7C9
+_080E1070: .4byte sub_8078B34
+_080E1074: .4byte move_anim_8072740
+ thumb_func_end sub_80E1004
+
+ thumb_func_start sub_80E1078
+sub_80E1078: @ 80E1078
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r4, _080E10F8 @ =gUnknown_0202F7C9
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077EE4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl Random
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ bl Random
+ ands r4, r0
+ adds r1, r5, 0
+ cmp r1, 0x10
+ ble _080E10C0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080E10C0:
+ lsls r0, r4, 16
+ asrs r1, r0, 16
+ cmp r1, 0x10
+ ble _080E10D0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E10D0:
+ ldr r0, _080E10FC @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x4]
+ strh r0, [r6, 0x2E]
+ mov r1, r8
+ adds r0, r1, r5
+ strh r0, [r6, 0x32]
+ adds r0, r7, r4
+ strh r0, [r6, 0x36]
+ ldr r0, _080E1100 @ =sub_8078B34
+ str r0, [r6, 0x1C]
+ ldr r1, _080E1104 @ =move_anim_8074EE0
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E10F8: .4byte gUnknown_0202F7C9
+_080E10FC: .4byte gUnknown_03004B00
+_080E1100: .4byte sub_8078B34
+_080E1104: .4byte move_anim_8074EE0
+ thumb_func_end sub_80E1078
+
+ thumb_func_start sub_80E1108
+sub_80E1108: @ 80E1108
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x1
+ ldr r3, _080E1168 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E116C @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ ldr r6, _080E1170 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080E117C
+ ldr r4, _080E1174 @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r6, 0x2]
+ adds r0, r2
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r3, [r6, 0x4]
+ adds r0, r3
+ strh r0, [r5, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ ble _080E1162
+ movs r1, 0x1
+_080E1162:
+ strh r1, [r5, 0x2E]
+ ldr r0, _080E1178 @ =sub_80E1198
+ b _080E118A
+ .align 2, 0
+_080E1168: .4byte 0x000003ff
+_080E116C: .4byte 0xfffffc00
+_080E1170: .4byte gUnknown_03004B00
+_080E1174: .4byte gUnknown_0202F7C8
+_080E1178: .4byte sub_80E1198
+_080E117C:
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r5, 0x22]
+ negs r0, r0
+ strh r0, [r5, 0x26]
+ ldr r0, _080E1194 @ =sub_80E11D4
+_080E118A:
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1194: .4byte sub_80E11D4
+ thumb_func_end sub_80E1108
+
+ thumb_func_start sub_80E1198
+sub_80E1198: @ 80E1198
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E11B6
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+_080E11B6:
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x4
+ strh r0, [r2, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E11CE
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E11CE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1198
+
+ thumb_func_start sub_80E11D4
+sub_80E11D4: @ 80E11D4
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0
+ beq _080E11E6
+ cmp r1, 0x1
+ beq _080E11FC
+ b _080E123E
+_080E11E6:
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x4
+ strh r0, [r3, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E123E
+ strh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _080E123E
+_080E11FC:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E123E
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r2, [r1]
+ 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]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080E123E
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E123E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E11D4
+
+ thumb_func_start sub_80E1244
+sub_80E1244: @ 80E1244
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1264 @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080E1268 @ =gUnknown_03004B00
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E1270
+ ldr r0, _080E126C @ =sub_80E1284
+ b _080E1272
+ .align 2, 0
+_080E1264: .4byte gTasks
+_080E1268: .4byte gUnknown_03004B00
+_080E126C: .4byte sub_80E1284
+_080E1270:
+ ldr r0, _080E1280 @ =sub_80E143C
+_080E1272:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1280: .4byte sub_80E143C
+ thumb_func_end sub_80E1244
+
+ thumb_func_start sub_80E1284
+sub_80E1284: @ 80E1284
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E12A8 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _080E129E
+ b _080E1432
+_080E129E:
+ lsls r0, 2
+ ldr r1, _080E12AC @ =_080E12B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E12A8: .4byte gTasks
+_080E12AC: .4byte _080E12B0
+ .align 2, 0
+_080E12B0:
+ .4byte _080E12C4
+ .4byte _080E134C
+ .4byte _080E135C
+ .4byte _080E1400
+ .4byte _080E1414
+_080E12C4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E12EC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E12F8
+ ldr r0, _080E12F0 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E12F4 @ =gUnknown_030041B4
+ b _080E1300
+ .align 2, 0
+_080E12EC: .4byte gUnknown_0202F7C8
+_080E12F0: .4byte gUnknown_030042C0
+_080E12F4: .4byte gUnknown_030041B4
+_080E12F8:
+ ldr r0, _080E133C @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E1340 @ =gUnknown_03004280
+_080E1300:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E1344 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ cmp r1, 0
+ bge _080E1322
+ movs r0, 0
+ strh r0, [r4, 0x24]
+_080E1322:
+ ldr r2, _080E1348 @ =gSprites
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080E1406
+ .align 2, 0
+_080E133C: .4byte gUnknown_03004288
+_080E1340: .4byte gUnknown_03004280
+_080E1344: .4byte gUnknown_0202F7C8
+_080E1348: .4byte gSprites
+_080E134C:
+ ldrb r0, [r4, 0x1E]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ bl sub_80E1668
+ b _080E1406
+_080E135C:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x6
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E137E
+ movs r0, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+_080E137E:
+ ldr r1, _080E13A0 @ =gSineTable
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ ldrh r3, [r4, 0xE]
+ adds r2, r0, r3
+ strh r2, [r4, 0x12]
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080E13A8
+ ldr r1, _080E13A4 @ =gUnknown_030041B4
+ b _080E13AA
+ .align 2, 0
+_080E13A0: .4byte gSineTable
+_080E13A4: .4byte gUnknown_030041B4
+_080E13A8:
+ ldr r1, _080E13CC @ =gUnknown_03004280
+_080E13AA:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3F
+ ble _080E1432
+ ldrh r0, [r4, 0x24]
+ movs r1, 0x78
+ subs r2, r1, r0
+ strh r2, [r4, 0x12]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E13D4
+ ldr r1, _080E13D0 @ =gUnknown_030041B4
+ b _080E13D6
+ .align 2, 0
+_080E13CC: .4byte gUnknown_03004280
+_080E13D0: .4byte gUnknown_030041B4
+_080E13D4:
+ ldr r1, _080E13F8 @ =gUnknown_03004280
+_080E13D6:
+ ldrh r0, [r4, 0x22]
+ subs r0, r2
+ strh r0, [r1]
+ ldr r2, _080E13FC @ =gSprites
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ b _080E1406
+ .align 2, 0
+_080E13F8: .4byte gUnknown_03004280
+_080E13FC: .4byte gSprites
+_080E1400:
+ ldr r1, _080E1410 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E1406:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1432
+ .align 2, 0
+_080E1410: .4byte gUnknown_03004DC0
+_080E1414:
+ adds r0, r2, 0
+ bl move_anim_task_del
+ ldr r2, _080E1438 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080E1432:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1438: .4byte gSprites
+ thumb_func_end sub_80E1284
+
+ thumb_func_start sub_80E143C
+sub_80E143C: @ 80E143C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E147C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r3]
+ movs r4, 0
+ strh r4, [r1, 0x24]
+ strh r4, [r1, 0x26]
+ ldr r0, _080E1480 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E1488
+ ldr r0, _080E1484 @ =gUnknown_030041B4
+ b _080E148A
+ .align 2, 0
+_080E147C: .4byte gSprites
+_080E1480: .4byte gUnknown_0202F7C8
+_080E1484: .4byte gUnknown_030041B4
+_080E1488:
+ ldr r0, _080E1498 @ =gUnknown_03004280
+_080E148A:
+ strh r4, [r0]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1498: .4byte gUnknown_03004280
+ thumb_func_end sub_80E143C
+
+ thumb_func_start sub_80E149C
+sub_80E149C: @ 80E149C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14BC @ =gTasks
+ adds r1, r0, r1
+ ldr r0, _080E14C0 @ =gUnknown_03004B00
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bne _080E14C8
+ ldr r0, _080E14C4 @ =sub_80E14DC
+ b _080E14CA
+ .align 2, 0
+_080E14BC: .4byte gTasks
+_080E14C0: .4byte gUnknown_03004B00
+_080E14C4: .4byte sub_80E14DC
+_080E14C8:
+ ldr r0, _080E14D8 @ =sub_80E1560
+_080E14CA:
+ str r0, [r1]
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E14D8: .4byte sub_80E1560
+ thumb_func_end sub_80E149C
+
+ thumb_func_start sub_80E14DC
+sub_80E14DC: @ 80E14DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E14FC @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080E1500
+ cmp r5, 0x1
+ beq _080E1554
+ b _080E155A
+ .align 2, 0
+_080E14FC: .4byte gTasks
+_080E1500:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r3, _080E1550 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r5, [r0, 0x24]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x22]
+ movs r0, 0xA0
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E155A
+ .align 2, 0
+_080E1550: .4byte gSprites
+_080E1554:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E155A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E14DC
+
+ thumb_func_start sub_80E1560
+sub_80E1560: @ 80E1560
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1584 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _080E1662
+ lsls r0, 2
+ ldr r1, _080E1588 @ =_080E158C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E1584: .4byte gTasks
+_080E1588: .4byte _080E158C
+ .align 2, 0
+_080E158C:
+ .4byte _080E15A0
+ .4byte _080E15F4
+ .4byte _080E1602
+ .4byte _080E161C
+ .4byte _080E165C
+_080E15A0:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1C]
+ ldr r0, _080E15C4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ cmp r0, 0x1
+ bne _080E15CC
+ ldr r0, _080E15C8 @ =gUnknown_030042C0
+ b _080E15CE
+ .align 2, 0
+_080E15C4: .4byte gUnknown_0202F7C8
+_080E15C8: .4byte gUnknown_030042C0
+_080E15CC:
+ ldr r0, _080E15EC @ =gUnknown_03004288
+_080E15CE:
+ ldrh r0, [r0]
+ strh r0, [r4, 0x20]
+ ldr r0, _080E15F0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ subs r1, 0x20
+ strh r1, [r4, 0x24]
+ adds r0, 0x20
+ strh r0, [r4, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E15EC: .4byte gUnknown_03004288
+_080E15F0: .4byte gUnknown_0202F7C8
+_080E15F4:
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x26
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ bl sub_80E1668
+ b _080E164A
+_080E1602:
+ ldr r2, _080E1618 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x60
+ strh r1, [r0, 0x26]
+ b _080E164A
+ .align 2, 0
+_080E1618: .4byte gSprites
+_080E161C:
+ ldr r2, _080E1654 @ =gSprites
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x8
+ strh r1, [r0, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E1662
+ ldr r1, _080E1658 @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_080E164A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1662
+ .align 2, 0
+_080E1654: .4byte gSprites
+_080E1658: .4byte gUnknown_03004DC0
+_080E165C:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1560
+
+ thumb_func_start sub_80E1668
+sub_80E1668: @ 80E1668
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ cmp r0, 0x1
+ bne _080E168C
+ ldr r0, _080E1684 @ =gUnknown_030042C0
+ ldrh r3, [r0]
+ ldr r0, _080E1688 @ =REG_BG1HOFS
+ b _080E1692
+ .align 2, 0
+_080E1684: .4byte gUnknown_030042C0
+_080E1688: .4byte REG_BG1HOFS
+_080E168C:
+ ldr r0, _080E1718 @ =gUnknown_03004288
+ ldrh r3, [r0]
+ ldr r0, _080E171C @ =REG_BG2HOFS
+_080E1692:
+ str r0, [sp]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080E169C
+ movs r1, 0
+_080E169C:
+ lsls r2, r1, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ cmp r2, r0
+ bge _080E16C8
+ ldr r5, _080E1720 @ =gUnknown_03004DE0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_080E16AE:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r5
+ strh r3, [r0]
+ adds r1, r6
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r2, r1, 16
+ asrs r0, r2, 16
+ cmp r0, r4
+ blt _080E16AE
+_080E16C8:
+ lsls r1, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ bgt _080E16F6
+ ldr r4, _080E1720 @ =gUnknown_03004DE0
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_080E16E0:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r1, r2, 16
+ asrs r0, r1, 16
+ cmp r0, 0x9F
+ ble _080E16E0
+_080E16F6:
+ ldr r0, _080E1724 @ =0xa2600001
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1718: .4byte gUnknown_03004288
+_080E171C: .4byte REG_BG2HOFS
+_080E1720: .4byte gUnknown_03004DE0
+_080E1724: .4byte 0xa2600001
+ thumb_func_end sub_80E1668
+
+ thumb_func_start sub_80E1728
+sub_80E1728: @ 80E1728
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _080E173C @ =gUnknown_03004B00
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080E1744
+ ldr r0, _080E1740 @ =gUnknown_0202F7C8
+ b _080E1746
+ .align 2, 0
+_080E173C: .4byte gUnknown_03004B00
+_080E1740: .4byte gUnknown_0202F7C8
+_080E1744:
+ ldr r0, _080E17A8 @ =gUnknown_0202F7C9
+_080E1746:
+ ldrb r4, [r0]
+ movs r6, 0x18
+ adds r1, r7, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _080E1762
+ negs r0, r6
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_080E1762:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ adds r0, r4, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x1E
+ strh r0, [r5, 0x22]
+ ldrh r1, [r7, 0xA]
+ strh r1, [r5, 0x2E]
+ ldrh r1, [r7, 0x4]
+ ldrh r2, [r5, 0x20]
+ adds r1, r2
+ strh r1, [r5, 0x32]
+ ldrh r1, [r7, 0x6]
+ adds r0, r1
+ strh r0, [r5, 0x36]
+ ldrh r0, [r7, 0x8]
+ strh r0, [r5, 0x38]
+ adds r0, r5, 0
+ bl sub_80786EC
+ ldr r0, _080E17AC @ =sub_80E17B0
+ str r0, [r5, 0x1C]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E17A8: .4byte gUnknown_0202F7C9
+_080E17AC: .4byte sub_80E17B0
+ thumb_func_end sub_80E1728
+
+ thumb_func_start sub_80E17B0
+sub_80E17B0: @ 80E17B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E17C4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E17C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E17B0
+
+ thumb_func_start sub_80E17CC
+sub_80E17CC: @ 80E17CC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _080E17E0 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E17E8
+ ldr r0, _080E17E4 @ =gUnknown_0202F7C8
+ b _080E17EA
+ .align 2, 0
+_080E17E0: .4byte gUnknown_03004B00
+_080E17E4: .4byte gUnknown_0202F7C8
+_080E17E8:
+ ldr r0, _080E1848 @ =gUnknown_0202F7C9
+_080E17EA:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E184C @ =0x0000fff0
+ adds r0, r2
+ ldr r4, _080E1850 @ =gUnknown_03004B00
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ lsls r1, 5
+ adds r0, r1
+ strh r0, [r6, 0x20]
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r6, 0x22]
+ ldrh r2, [r6, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ lsls r0, 3
+ adds r1, r0
+ ldr r3, _080E1854 @ =0x000003ff
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _080E1858 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+ ldr r1, _080E185C @ =move_anim_8072740
+ adds r0, r6, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x2E]
+ ldr r0, _080E1860 @ =sub_80782D8
+ str r0, [r6, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1848: .4byte gUnknown_0202F7C9
+_080E184C: .4byte 0x0000fff0
+_080E1850: .4byte gUnknown_03004B00
+_080E1854: .4byte 0x000003ff
+_080E1858: .4byte 0xfffffc00
+_080E185C: .4byte move_anim_8072740
+_080E1860: .4byte sub_80782D8
+ thumb_func_end sub_80E17CC
+
+ thumb_func_start sub_80E1864
+sub_80E1864: @ 80E1864
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E1888 @ =gTasks
+ adds r4, r0, r1
+ ldr r0, _080E188C @ =gUnknown_03004B00
+ ldrh r2, [r0, 0x2]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080E1890
+ adds r0, r2, 0x3
+ b _080E189C
+ .align 2, 0
+_080E1888: .4byte gTasks
+_080E188C: .4byte gUnknown_03004B00
+_080E1890:
+ ldr r0, _080E18BC @ =gUnknown_0202F7BC
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ adds r0, 0x3
+_080E189C:
+ strh r0, [r4, 0x26]
+ strh r0, [r4, 0x24]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xE]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x4
+ beq _080E18C8
+ cmp r0, 0x5
+ bne _080E1908
+ ldr r0, _080E18C0 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x22]
+ ldr r0, _080E18C4 @ =sub_80E1934
+ b _080E1926
+ .align 2, 0
+_080E18BC: .4byte gUnknown_0202F7BC
+_080E18C0: .4byte gUnknown_030041B0
+_080E18C4: .4byte sub_80E1934
+_080E18C8:
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ movs r5, 0
+_080E18CE:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E18F8
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ adds r0, 0x9
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r1, r0
+ ldr r0, _080E1904 @ =gUnknown_02024BE0
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_080E18F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E18CE
+ b _080E1924
+ .align 2, 0
+_080E1904: .4byte gUnknown_02024BE0
+_080E1908:
+ ldrb r0, [r6]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1A]
+ cmp r0, 0xFF
+ bne _080E1920
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E1928
+_080E1920:
+ movs r0, 0x1
+ strh r0, [r4, 0x22]
+_080E1924:
+ ldr r0, _080E1930 @ =sub_80E1A2C
+_080E1926:
+ str r0, [r4]
+_080E1928:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1930: .4byte sub_80E1A2C
+ thumb_func_end sub_80E1864
+
+ thumb_func_start sub_80E1934
+sub_80E1934: @ 80E1934
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E1958 @ =gTasks
+ adds r3, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _080E19B8
+ cmp r1, 0x1
+ bgt _080E195C
+ cmp r1, 0
+ beq _080E1962
+ b _080E1A24
+ .align 2, 0
+_080E1958: .4byte gTasks
+_080E195C:
+ cmp r1, 0x2
+ beq _080E1A18
+ b _080E1A24
+_080E1962:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ strh r1, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E198C
+ ldr r1, _080E1988 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E1996
+ .align 2, 0
+_080E1988: .4byte gUnknown_030041B0
+_080E198C:
+ ldr r0, _080E19B4 @ =gUnknown_030041B0
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x26]
+ subs r1, r2
+ strh r1, [r0]
+_080E1996:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ b _080E1A0C
+ .align 2, 0
+_080E19B4: .4byte gUnknown_030041B0
+_080E19B8:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ ands r1, r0
+ cmp r1, 0
+ bne _080E19E4
+ ldr r1, _080E19E0 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x24]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r1]
+ b _080E19EE
+ .align 2, 0
+_080E19E0: .4byte gUnknown_030041B0
+_080E19E4:
+ ldr r0, _080E1A14 @ =gUnknown_030041B0
+ ldrh r1, [r3, 0x22]
+ ldrh r2, [r3, 0x24]
+ subs r1, r2
+ strh r1, [r0]
+_080E19EE:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1A24
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x24]
+ subs r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1A24
+_080E1A0C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E1A24
+ .align 2, 0
+_080E1A14: .4byte gUnknown_030041B0
+_080E1A18:
+ ldr r1, _080E1A28 @ =gUnknown_030041B0
+ ldrh r0, [r3, 0x22]
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E1A24:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1A28: .4byte gUnknown_030041B0
+ thumb_func_end sub_80E1934
+
+ thumb_func_start sub_80E1A2C
+sub_80E1A2C: @ 80E1A2C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1A50 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080E1A8C
+ cmp r5, 0x1
+ bgt _080E1A54
+ cmp r5, 0
+ beq _080E1A5A
+ b _080E1B06
+ .align 2, 0
+_080E1A50: .4byte gTasks
+_080E1A54:
+ cmp r5, 0x2
+ beq _080E1AC8
+ b _080E1B06
+_080E1A5A:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E1AC0
+_080E1A8C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E1B06
+ strh r5, [r4, 0xA]
+ adds r0, r4, 0
+ bl sub_80E1B10
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E1B06
+ strh r5, [r4, 0xC]
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E1B06
+_080E1AC0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E1B06
+_080E1AC8:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r4, r7]
+ cmp r2, r0
+ bge _080E1B00
+ ldr r0, _080E1B0C @ =gSprites
+ mov r12, r0
+ adds r5, r4, 0
+ adds r5, 0x8
+ movs r6, 0
+_080E1ADC:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ strh r6, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ blt _080E1ADC
+_080E1B00:
+ adds r0, r3, 0
+ bl move_anim_task_del
+_080E1B06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B0C: .4byte gSprites
+ thumb_func_end sub_80E1A2C
+
+ thumb_func_start sub_80E1B10
+sub_80E1B10: @ 80E1B10
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xC]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1B38
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ ldrh r2, [r3, 0x24]
+ adds r0, r4, 0
+ ands r0, r2
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ b _080E1B48
+_080E1B38:
+ movs r1, 0x24
+ ldrsh r0, [r3, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E1B48:
+ movs r2, 0
+ movs r7, 0x22
+ ldrsh r0, [r3, r7]
+ cmp r2, r0
+ bge _080E1B7C
+ ldr r6, _080E1B84 @ =gSprites
+ adds r5, r3, 0
+ adds r5, 0x8
+_080E1B58:
+ adds r0, r2, 0
+ adds r0, 0x9
+ lsls r0, 1
+ adds r0, r5, r0
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r4, [r0, 0x24]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ cmp r2, r0
+ blt _080E1B58
+_080E1B7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1B84: .4byte gSprites
+ thumb_func_end sub_80E1B10
+
+ thumb_func_start sub_80E1B88
+sub_80E1B88: @ 80E1B88
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, _080E1BA8 @ =gUnknown_03004B00
+ movs r2, 0
+ ldr r0, _080E1BAC @ =gUnknown_0202F7BC
+ ldrh r0, [r0]
+ cmp r0, 0x63
+ bls _080E1B9C
+ movs r2, 0x1
+_080E1B9C:
+ strh r2, [r3, 0x1E]
+ adds r0, r1, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1BA8: .4byte gUnknown_03004B00
+_080E1BAC: .4byte gUnknown_0202F7BC
+ thumb_func_end sub_80E1B88
+
+ thumb_func_start sub_80E1BB0
+sub_80E1BB0: @ 80E1BB0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080E1BC8 @ =gUnknown_03004B00
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ beq _080E1BD0
+ ldr r0, _080E1BCC @ =gUnknown_0202F7C9
+ b _080E1BD2
+ .align 2, 0
+_080E1BC8: .4byte gUnknown_03004B00
+_080E1BCC: .4byte gUnknown_0202F7C9
+_080E1BD0:
+ ldr r0, _080E1C40 @ =gUnknown_0202F7C8
+_080E1BD2:
+ ldrb r0, [r0]
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ ble _080E1BE2
+ movs r0, 0x2
+ eors r5, r0
+_080E1BE2:
+ ldr r0, _080E1C44 @ =sub_80E1C58
+ ldrb r1, [r6, 0x2]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _080E1C48 @ =gTasks
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x20
+ subs r1, r0
+ ldr r2, _080E1C4C @ =0x000001ff
+ adds r0, r2, 0
+ ands r1, r0
+ strh r1, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x40
+ subs r1, r0
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0xC]
+ ldr r2, _080E1C50 @ =gUnknown_030041B0
+ ldrh r0, [r4, 0xA]
+ strh r0, [r2]
+ ldr r0, _080E1C54 @ =gUnknown_030041B8
+ strh r1, [r0]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0xE]
+ adds r0, r7, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1C40: .4byte gUnknown_0202F7C8
+_080E1C44: .4byte sub_80E1C58
+_080E1C48: .4byte gTasks
+_080E1C4C: .4byte 0x000001ff
+_080E1C50: .4byte gUnknown_030041B0
+_080E1C54: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1BB0
+
+ thumb_func_start sub_80E1C58
+sub_80E1C58: @ 80E1C58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080E1C88 @ =gTasks
+ adds r2, r0, r1
+ ldr r0, _080E1C8C @ =gUnknown_03004B00
+ movs r4, 0xE
+ ldrsh r1, [r0, r4]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bne _080E1C98
+ ldr r0, _080E1C90 @ =gUnknown_030041B0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E1C94 @ =gUnknown_030041B8
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080E1CA4
+ .align 2, 0
+_080E1C88: .4byte gTasks
+_080E1C8C: .4byte gUnknown_03004B00
+_080E1C90: .4byte gUnknown_030041B0
+_080E1C94: .4byte gUnknown_030041B8
+_080E1C98:
+ ldr r1, _080E1CAC @ =gUnknown_030041B0
+ ldrh r0, [r2, 0xA]
+ strh r0, [r1]
+ ldr r1, _080E1CB0 @ =gUnknown_030041B8
+ ldrh r0, [r2, 0xC]
+ strh r0, [r1]
+_080E1CA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1CAC: .4byte gUnknown_030041B0
+_080E1CB0: .4byte gUnknown_030041B8
+ thumb_func_end sub_80E1C58
+
+ thumb_func_start sub_80E1CB4
+sub_80E1CB4: @ 80E1CB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E1CEC @ =gUnknown_03004B00
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080E1CF0 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E1CF4
+ ldrh r0, [r5, 0x6]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ b _080E1D02
+ .align 2, 0
+_080E1CEC: .4byte gUnknown_03004B00
+_080E1CF0: .4byte gUnknown_0202F7C8
+_080E1CF4:
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080E1D02:
+ ldr r0, _080E1D18 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x34]
+ ldr r1, _080E1D1C @ =sub_80E1D20
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1D18: .4byte gUnknown_03004B00
+_080E1D1C: .4byte sub_80E1D20
+ thumb_func_end sub_80E1CB4
+
+ thumb_func_start sub_80E1D20
+sub_80E1D20: @ 80E1D20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1E
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ movs r1, 0xA
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0x7F
+ bhi _080E1D52
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ b _080E1D5A
+_080E1D52:
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_080E1D5A:
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080E1D7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1D7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1D20
+
+ thumb_func_start sub_80E1D84
+sub_80E1D84: @ 80E1D84
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _080E1DBC @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginNormalPaletteFade
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1DC0 @ =sub_80E1E0C
+ str r0, [r5, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1DBC: .4byte gUnknown_03004B00
+_080E1DC0: .4byte sub_80E1E0C
+ thumb_func_end sub_80E1D84
+
+ thumb_func_start sub_80E1DC4
+sub_80E1DC4: @ 80E1DC4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x1
+ mov r8, r0
+ mov r1, r8
+ ands r1, r4
+ mov r8, r1
+ lsls r0, 16
+ asrs r1, r0, 17
+ ands r1, r4
+ asrs r2, r0, 18
+ ands r2, r4
+ asrs r3, r0, 19
+ ands r3, r4
+ asrs r6, r0, 20
+ ands r6, r4
+ asrs r5, r0, 21
+ ands r5, r4
+ asrs r0, 22
+ ands r0, r4
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ bl sub_80791A8
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E1DC4
+
+ thumb_func_start sub_80E1E0C
+sub_80E1E0C: @ 80E1E0C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E1E28 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1E22
+ adds r0, r2, 0
+ bl move_anim_8072740
+_080E1E22:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E28: .4byte gPaletteFade
+ thumb_func_end sub_80E1E0C
+
+ thumb_func_start sub_80E1E2C
+sub_80E1E2C: @ 80E1E2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E1E78 @ =gUnknown_03004B00
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r5, 0x34]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r4, 0xA]
+ strh r0, [r5, 0x38]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r5, 0x3A]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ bl sub_80E1DC4
+ ldrb r1, [r4, 0x8]
+ ldrh r2, [r4, 0x6]
+ bl BlendPalettes
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080E1E7C @ =sub_80E1E80
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1E78: .4byte gUnknown_03004B00
+_080E1E7C: .4byte sub_80E1E80
+ thumb_func_end sub_80E1E2C
+
+ thumb_func_start sub_80E1E80
+sub_80E1E80: @ 80E1E80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E1E94
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E1F04
+_080E1E94:
+ ldr r0, _080E1EB0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F04
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E1EB8
+ ldr r0, _080E1EB4 @ =sub_80E1F0C
+ str r0, [r4, 0x1C]
+ b _080E1F04
+ .align 2, 0
+_080E1EB0: .4byte gPaletteFade
+_080E1EB4: .4byte sub_80E1F0C
+_080E1EB8:
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ bl sub_80E1DC4
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E1EDE
+ ldrh r1, [r4, 0x36]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x34]
+ adds r0, r3, 0
+ bl BlendPalettes
+ b _080E1EEC
+_080E1EDE:
+ ldrh r1, [r4, 0x3A]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x38]
+ adds r0, r3, 0
+ bl BlendPalettes
+_080E1EEC:
+ ldrh r0, [r4, 0x30]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ eors r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x32]
+ subs r0, 0x1
+ strh r0, [r4, 0x32]
+_080E1F04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E1E80
+
+ thumb_func_start sub_80E1F0C
+sub_80E1F0C: @ 80E1F0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E1F38 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E1F32
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0
+ movs r2, 0
+ bl BlendPalettes
+ adds r0, r4, 0
+ bl move_anim_8072740
+_080E1F32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F38: .4byte gPaletteFade
+ thumb_func_end sub_80E1F0C
+
+ thumb_func_start sub_80E1F3C
+sub_80E1F3C: @ 80E1F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080E1F80 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r2, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x30]
+ movs r0, 0x8
+ strh r0, [r4, 0x32]
+ movs r0, 0x28
+ strh r0, [r4, 0x34]
+ movs r0, 0x70
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ ldr r1, _080E1F84 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _080E1F88 @ =sub_8078174
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1F80: .4byte gUnknown_03004B00
+_080E1F84: .4byte move_anim_8074EE0
+_080E1F88: .4byte sub_8078174
+ thumb_func_end sub_80E1F3C
+
+ thumb_func_start sub_80E1F8C
+sub_80E1F8C: @ 80E1F8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E1FD0 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E1FD4 @ =gUnknown_03004B00
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E1FDC
+ ldr r0, _080E1FD8 @ =sub_80E202C
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E1FD0: .4byte gTasks
+_080E1FD4: .4byte gUnknown_03004B00
+_080E1FD8: .4byte sub_80E202C
+ thumb_func_end sub_80E1F8C
+
+ thumb_func_start sub_80E1FDC
+sub_80E1FDC: @ 80E1FDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E2028 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r2, [r4, 0x12]
+ str r2, [sp]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2028: .4byte gTasks
+ thumb_func_end sub_80E1FDC
+
+ thumb_func_start sub_80E202C
+sub_80E202C: @ 80E202C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E208E
+ ldr r1, _080E2068 @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E2088
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E206C
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2070
+ .align 2, 0
+_080E2064: .4byte gPaletteFade
+_080E2068: .4byte gTasks
+_080E206C:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2070:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2080
+ movs r2, 0
+_080E2080:
+ adds r0, r4, 0
+ bl sub_80E1FDC
+ b _080E208E
+_080E2088:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E208E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E202C
+
+ thumb_func_start sub_80E2094
+sub_80E2094: @ 80E2094
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E20D8 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r3, _080E20DC @ =gUnknown_03004B00
+ ldrh r1, [r3]
+ movs r5, 0
+ strh r1, [r4, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r4, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r4, 0xE]
+ ldrh r2, [r3, 0x8]
+ strh r2, [r4, 0x10]
+ ldrh r1, [r3, 0xA]
+ strh r1, [r4, 0x12]
+ strh r5, [r4, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0
+ bl sub_80E20E4
+ ldr r0, _080E20E0 @ =sub_80E2140
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E20D8: .4byte gTasks
+_080E20DC: .4byte gUnknown_03004B00
+_080E20E0: .4byte sub_80E2140
+ thumb_func_end sub_80E2094
+
+ thumb_func_start sub_80E20E4
+sub_80E20E4: @ 80E20E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, _080E213C @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r0, [r4, 0x8]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ movs r1, 0xA
+ ldrsb r1, [r4, r1]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x18]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E213C: .4byte gTasks
+ thumb_func_end sub_80E20E4
+
+ thumb_func_start sub_80E2140
+sub_80E2140: @ 80E2140
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ ldr r0, _080E2178 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E21A2
+ ldr r1, _080E217C @ =gTasks
+ lsls r2, r3, 2
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ adds r6, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0
+ ble _080E219C
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E2180
+ ldrb r1, [r3, 0xE]
+ ldrb r2, [r3, 0x10]
+ b _080E2184
+ .align 2, 0
+_080E2178: .4byte gPaletteFade
+_080E217C: .4byte gTasks
+_080E2180:
+ ldrb r1, [r3, 0x10]
+ ldrb r2, [r3, 0xE]
+_080E2184:
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _080E2194
+ movs r2, 0
+_080E2194:
+ adds r0, r4, 0
+ bl sub_80E20E4
+ b _080E21A2
+_080E219C:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E21A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2140
+
+ thumb_func_start sub_80E21A8
+sub_80E21A8: @ 80E21A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E2208 @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldr r5, _080E220C @ =gUnknown_03004B00
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x16]
+ ldrh r0, [r5]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r3, [r5, 0x8]
+ ldrh r0, [r5, 0x6]
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080E2210 @ =sub_80E2214
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2208: .4byte gTasks
+_080E220C: .4byte gUnknown_03004B00
+_080E2210: .4byte sub_80E2214
+ thumb_func_end sub_80E21A8
+
+ thumb_func_start sub_80E2214
+sub_80E2214: @ 80E2214
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2238 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080E223C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x8]
+ b _080E22C0
+ .align 2, 0
+_080E2238: .4byte gTasks
+_080E223C:
+ ldr r0, _080E2258 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E22C0
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080E2260
+ ldr r0, _080E225C @ =sub_80E22CC
+ str r0, [r4]
+ b _080E22C0
+ .align 2, 0
+_080E2258: .4byte gPaletteFade
+_080E225C: .4byte sub_80E22CC
+_080E2260:
+ ldrh r0, [r4, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r2, 0x1
+ lsls r2, r0
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E228E
+ ldrb r3, [r4, 0x10]
+ ldrh r0, [r4, 0xE]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+ b _080E229E
+_080E228E:
+ ldrb r3, [r4, 0x14]
+ ldrh r0, [r4, 0x12]
+ str r0, [sp]
+ adds r0, r2, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl BeginNormalPaletteFade
+_080E229E:
+ ldr r0, _080E22C8 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ eors r0, r2
+ strh r0, [r1, 0xA]
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+_080E22C0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E22C8: .4byte gTasks
+ thumb_func_end sub_80E2214
+
+ thumb_func_start sub_80E22CC
+sub_80E22CC: @ 80E22CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E231C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080E2312
+ ldr r1, _080E2320 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x16]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ str r5, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r4, 0
+ bl move_anim_task_del
+_080E2312:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E231C: .4byte gPaletteFade
+_080E2320: .4byte gTasks
+ thumb_func_end sub_80E22CC
+
+ thumb_func_start sub_80E2324
+sub_80E2324: @ 80E2324
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080E239C @ =gUnknown_0202F7C8
+ ldrb r6, [r0]
+ ldr r0, _080E23A0 @ =gUnknown_0202F7C9
+ ldrb r7, [r0]
+ ldr r4, _080E23A4 @ =gUnknown_03004B00
+ ldrh r1, [r4]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E235E
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+_080E235E:
+ ldrh r1, [r4, 0x2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2370
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r6
+ orrs r2, r0
+_080E2370:
+ ldrh r1, [r4, 0x4]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2382
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r7
+ orrs r2, r0
+_080E2382:
+ adds r0, r2, 0
+ bl InvertPlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E239C: .4byte gUnknown_0202F7C8
+_080E23A0: .4byte gUnknown_0202F7C9
+_080E23A4: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2324
+
+ thumb_func_start unref_sub_80E23A8
+unref_sub_80E23A8: @ 80E23A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r1, _080E249C @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E23EA
+ ldr r1, _080E24A0 @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xA]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x12]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r1, 0xC]
+ strh r0, [r4, 0x16]
+_080E23EA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _080E24A4 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r0, _080E24A8 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ mov r10, r0
+ ldrh r1, [r4, 0xC]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E240C
+ ldr r5, _080E24AC @ =0x0000ffff
+_080E240C:
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E243C
+ ldr r2, _080E24B0 @ =gSprites
+ ldr r0, _080E24B4 @ =gUnknown_03004340
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ lsls r1, r0
+ lsls r1, 16
+ orrs r5, r1
+_080E243C:
+ ldrh r1, [r4, 0xE]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2450
+ adds r0, r6, 0
+ mov r2, r9
+ lsls r0, r2
+ lsls r0, 16
+ orrs r5, r0
+_080E2450:
+ ldrh r1, [r4, 0x10]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080E2464
+ adds r0, r6, 0
+ mov r1, r10
+ lsls r0, r1
+ lsls r0, 16
+ orrs r5, r0
+_080E2464:
+ movs r1, 0x12
+ ldrsb r1, [r4, r1]
+ movs r2, 0x14
+ ldrsb r2, [r4, r2]
+ movs r3, 0x16
+ ldrsb r3, [r4, r3]
+ adds r0, r5, 0
+ bl TintPlttBuffer
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E248E
+ adds r0, r5, 0
+ bl UnfadePlttBuffer
+ mov r0, r8
+ bl move_anim_task_del
+_080E248E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E249C: .4byte gTasks
+_080E24A0: .4byte gUnknown_03004B00
+_080E24A4: .4byte gUnknown_0202F7C8
+_080E24A8: .4byte gUnknown_0202F7C9
+_080E24AC: .4byte 0x0000ffff
+_080E24B0: .4byte gSprites
+_080E24B4: .4byte gUnknown_03004340
+ thumb_func_end unref_sub_80E23A8
+
+ thumb_func_start sub_80E24B8
+sub_80E24B8: @ 80E24B8
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080E24EC @ =gUnknown_03004B00
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x34]
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080E2500
+ cmp r0, 0x1
+ bgt _080E24F0
+ cmp r0, 0
+ beq _080E24F6
+ b _080E2518
+ .align 2, 0
+_080E24EC: .4byte gUnknown_03004B00
+_080E24F0:
+ cmp r0, 0x2
+ beq _080E2508
+ b _080E2518
+_080E24F6:
+ ldr r1, _080E24FC @ =gUnknown_030041B0
+ b _080E250A
+ .align 2, 0
+_080E24FC: .4byte gUnknown_030041B0
+_080E2500:
+ ldr r1, _080E2504 @ =gUnknown_030041B8
+ b _080E250A
+ .align 2, 0
+_080E2504: .4byte gUnknown_030041B8
+_080E2508:
+ ldr r1, _080E2514 @ =gSpriteCoordOffsetX
+_080E250A:
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ b _080E2520
+ .align 2, 0
+_080E2514: .4byte gSpriteCoordOffsetX
+_080E2518:
+ ldr r1, _080E2550 @ =gSpriteCoordOffsetY
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_080E2520:
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ lsls r0, 16
+ orrs r1, r0
+ ldr r0, [r1]
+ strh r0, [r4, 0x36]
+ ldr r0, _080E2554 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E2544
+ bl sub_80E260C
+_080E2544:
+ ldr r0, _080E2558 @ =sub_80E255C
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2550: .4byte gSpriteCoordOffsetY
+_080E2554: .4byte gUnknown_03004B00
+_080E2558: .4byte sub_80E255C
+ thumb_func_end sub_80E24B8
+
+ thumb_func_start sub_80E255C
+sub_80E255C: @ 80E255C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E25A0
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x34]
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080E257E
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _080E25FA
+_080E257E:
+ ldrh r0, [r3, 0x32]
+ strh r0, [r3, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r3, 0x2E]
+ negs r0, r0
+ strh r0, [r3, 0x2E]
+ b _080E25FA
+_080E25A0:
+ movs r2, 0x3A
+ ldrsh r1, [r3, r2]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ lsls r0, 16
+ orrs r1, r0
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ str r0, [r1]
+ ldrh r0, [r3, 0x38]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080E25F4
+ movs r4, 0
+ ldr r5, _080E2600 @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcs _080E25F4
+ ldr r2, _080E2604 @ =gSprites
+ mov r12, r2
+ ldr r6, _080E2608 @ =gUnknown_02024BE0
+ movs r7, 0x3
+ negs r7, r7
+_080E25D2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5]
+ cmp r4, r0
+ bcc _080E25D2
+_080E25F4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E25FA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2600: .4byte gUnknown_02024A68
+_080E2604: .4byte gSprites
+_080E2608: .4byte gUnknown_02024BE0
+ thumb_func_end sub_80E255C
+
+ thumb_func_start sub_80E260C
+sub_80E260C: @ 80E260C
+ push {r4-r6,lr}
+ ldr r6, _080E2680 @ =gSprites
+ ldr r4, _080E2684 @ =gUnknown_02024BE0
+ ldr r5, _080E2688 @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x3
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r3, _080E268C @ =gUnknown_0202F7C9
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ ldr r0, _080E2690 @ =gUnknown_03004B00
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _080E2694
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ b _080E26B0
+ .align 2, 0
+_080E2680: .4byte gSprites
+_080E2684: .4byte gUnknown_02024BE0
+_080E2688: .4byte gUnknown_0202F7C8
+_080E268C: .4byte gUnknown_0202F7C9
+_080E2690: .4byte gUnknown_03004B00
+_080E2694:
+ cmp r0, 0
+ bne _080E269C
+ ldrb r0, [r5]
+ b _080E269E
+_080E269C:
+ ldrb r0, [r3]
+_080E269E:
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+_080E26B0:
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E260C
+
+ thumb_func_start sub_80E26BC
+sub_80E26BC: @ 80E26BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E26FC @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ ldr r3, _080E2700 @ =gUnknown_03004B00
+ ldrh r1, [r3]
+ strh r1, [r2, 0x8]
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xA]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x18]
+ ldr r4, _080E2704 @ =gUnknown_030041B0
+ ldrh r1, [r3]
+ strh r1, [r4]
+ ldr r4, _080E2708 @ =gUnknown_030041B8
+ ldrh r1, [r3, 0x2]
+ strh r1, [r4]
+ ldr r1, _080E270C @ =sub_80E2710
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E26FC: .4byte gTasks
+_080E2700: .4byte gUnknown_03004B00
+_080E2704: .4byte gUnknown_030041B0
+_080E2708: .4byte gUnknown_030041B8
+_080E270C: .4byte sub_80E2710
+ thumb_func_end sub_80E26BC
+
+ thumb_func_start sub_80E2710
+sub_80E2710: @ 80E2710
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E2740 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ mov r12, r1
+ cmp r0, 0
+ bne _080E2796
+ ldr r0, _080E2744 @ =gUnknown_030041B0
+ ldrh r2, [r0]
+ movs r7, 0x8
+ ldrsh r1, [r3, r7]
+ adds r6, r0, 0
+ cmp r2, r1
+ bne _080E2748
+ ldrh r0, [r3, 0x8]
+ negs r0, r0
+ b _080E274A
+ .align 2, 0
+_080E2740: .4byte gTasks
+_080E2744: .4byte gUnknown_030041B0
+_080E2748:
+ ldrh r0, [r3, 0x8]
+_080E274A:
+ strh r0, [r6]
+ ldr r2, _080E2768 @ =gUnknown_030041B8
+ ldrh r3, [r2]
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r7, r12
+ adds r4, r0, r7
+ movs r7, 0xA
+ ldrsh r0, [r4, r7]
+ cmn r3, r0
+ bne _080E276C
+ movs r0, 0
+ b _080E2770
+ .align 2, 0
+_080E2768: .4byte gUnknown_030041B8
+_080E276C:
+ ldrh r0, [r4, 0xA]
+ negs r0, r0
+_080E2770:
+ strh r0, [r2]
+ adds r0, r1, r5
+ lsls r0, 3
+ add r0, r12
+ ldrh r1, [r0, 0x18]
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0xC]
+ subs r1, 0x1
+ strh r1, [r0, 0xC]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _080E279A
+ strh r1, [r6]
+ strh r1, [r2]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _080E279A
+_080E2796:
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_080E279A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2710
+
+ thumb_func_start sub_80E27A0
+sub_80E27A0: @ 80E27A0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E27C0 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E27C4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E27CC
+ .align 2, 0
+_080E27C0: .4byte gUnknown_03004B00
+_080E27C4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E27CC:
+ ldr r0, _080E27E0 @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ ldr r1, _080E27E4 @ =move_anim_8072740
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E27E0: .4byte sub_80785E4
+_080E27E4: .4byte move_anim_8072740
+ thumb_func_end sub_80E27A0
+
+ thumb_func_start sub_80E27E8
+sub_80E27E8: @ 80E27E8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E2808 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E280C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E2814
+ .align 2, 0
+_080E2808: .4byte gUnknown_03004B00
+_080E280C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E2814:
+ ldr r0, _080E282C @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x8]
+ strh r0, [r5, 0x2E]
+ ldr r0, _080E2830 @ =sub_80785E4
+ str r0, [r5, 0x1C]
+ ldr r1, _080E2834 @ =sub_80DA48C
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E282C: .4byte gUnknown_03004B00
+_080E2830: .4byte sub_80785E4
+_080E2834: .4byte sub_80DA48C
+ thumb_func_end sub_80E27E8
+
+ thumb_func_start sub_80E2838
+sub_80E2838: @ 80E2838
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2868 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E285C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E285C
+ ldr r1, _080E286C @ =gUnknown_03004B00
+ ldrh r0, [r1, 0x2]
+ negs r0, r0
+ strh r0, [r1, 0x2]
+_080E285C:
+ adds r0, r4, 0
+ bl sub_80E27A0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2868: .4byte gUnknown_0202F7C8
+_080E286C: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2838
+
+ thumb_func_start sub_80E2870
+sub_80E2870: @ 80E2870
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E28A8 @ =gUnknown_03004B00
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _080E288C
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ strh r1, [r5, 0x2]
+_080E288C:
+ ldrb r1, [r5, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _080E28AC
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ b _080E28B4
+ .align 2, 0
+_080E28A8: .4byte gUnknown_03004B00
+_080E28AC:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+_080E28B4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x30
+ bl __umodsi3
+ ldr r1, _080E28F8 @ =0x0000ffe8
+ adds r0, r1
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ ldr r1, _080E28FC @ =0x0000fff4
+ adds r0, r1
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldr r1, _080E2900 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2904 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E28F8: .4byte 0x0000ffe8
+_080E28FC: .4byte 0x0000fff4
+_080E2900: .4byte move_anim_8074EE0
+_080E2904: .4byte sub_80785E4
+ thumb_func_end sub_80E2870
+
+ thumb_func_start sub_80E2908
+sub_80E2908: @ 80E2908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080E2968 @ =gUnknown_03004B00
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2E]
+ ldr r2, _080E296C @ =gSprites
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x26]
+ ldrb r1, [r5, 0x6]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ ldr r1, _080E2970 @ =move_anim_8074EE0
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E2974 @ =sub_80785E4
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2968: .4byte gUnknown_03004B00
+_080E296C: .4byte gSprites
+_080E2970: .4byte move_anim_8074EE0
+_080E2974: .4byte sub_80785E4
+ thumb_func_end sub_80E2908
+
+ thumb_func_start sub_80E2978
+sub_80E2978: @ 80E2978
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080E2990 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E2994
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E299C
+ .align 2, 0
+_080E2990: .4byte gUnknown_03004B00
+_080E2994:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E299C:
+ ldr r0, _080E29B4 @ =gUnknown_03004B00
+ ldrh r0, [r0, 0x6]
+ strh r0, [r4, 0x2E]
+ ldr r1, _080E29B8 @ =move_anim_8072740
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _080E29BC @ =sub_80782D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29B4: .4byte gUnknown_03004B00
+_080E29B8: .4byte move_anim_8072740
+_080E29BC: .4byte sub_80782D8
+ thumb_func_end sub_80E2978
+
+ thumb_func_start sub_80E29C0
+sub_80E29C0: @ 80E29C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080E29E0 @ =gUnknown_03004B00
+ ldrb r1, [r4, 0x6]
+ bl StartSpriteAffineAnim
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E29E4
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ b _080E29EC
+ .align 2, 0
+_080E29E0: .4byte gUnknown_03004B00
+_080E29E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+_080E29EC:
+ ldr r0, _080E29F8 @ =sub_80E29FC
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E29F8: .4byte sub_80E29FC
+ thumb_func_end sub_80E29C0
+
+ thumb_func_start sub_80E29FC
+sub_80E29FC: @ 80E29FC
+ push {lr}
+ adds r3, r0, 0
+ 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]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080E2A32
+ adds r0, r3, 0
+ bl move_anim_8072740
+_080E2A32:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E29FC
+
+ thumb_func_start sub_80E2A38
+sub_80E2A38: @ 80E2A38
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2A78 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_80E1DC4
+ adds r6, r0, 0
+ ldrh r3, [r4]
+ lsls r3, 16
+ asrs r0, r3, 23
+ movs r4, 0x1
+ ands r0, r4
+ asrs r1, r3, 24
+ ands r1, r4
+ asrs r2, r3, 25
+ ands r2, r4
+ asrs r3, 26
+ ands r3, r4
+ bl sub_80792C0
+ orrs r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2A78: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2A38
+
+ thumb_func_start sub_80E2A7C
+sub_80E2A7C: @ 80E2A7C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ bl sub_80E1DC4
+ adds r5, r0, 0
+ ldr r0, _080E2AA8 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _080E2B26
+ lsls r0, 2
+ ldr r1, _080E2AAC @ =_080E2AB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2AA8: .4byte gUnknown_03004B00
+_080E2AAC: .4byte _080E2AB0
+ .align 2, 0
+_080E2AB0:
+ .4byte _080E2AD2
+ .4byte _080E2ADE
+ .4byte _080E2AD0
+ .4byte _080E2ADC
+ .4byte _080E2AEC
+ .4byte _080E2B04
+ .4byte _080E2B0C
+ .4byte _080E2B18
+_080E2AD0:
+ movs r5, 0
+_080E2AD2:
+ mov r0, sp
+ ldr r1, _080E2AD8 @ =gUnknown_0202F7C8
+ b _080E2AE2
+ .align 2, 0
+_080E2AD8: .4byte gUnknown_0202F7C8
+_080E2ADC:
+ movs r5, 0
+_080E2ADE:
+ mov r0, sp
+ ldr r1, _080E2AE8 @ =gUnknown_0202F7C9
+_080E2AE2:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080E2B26
+ .align 2, 0
+_080E2AE8: .4byte gUnknown_0202F7C9
+_080E2AEC:
+ mov r1, sp
+ ldr r0, _080E2AFC @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080E2B00 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ b _080E2B26
+ .align 2, 0
+_080E2AFC: .4byte gUnknown_0202F7C8
+_080E2B00: .4byte gUnknown_0202F7C9
+_080E2B04:
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080E2B26
+_080E2B0C:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B14 @ =gUnknown_0202F7C8
+ b _080E2B1E
+ .align 2, 0
+_080E2B14: .4byte gUnknown_0202F7C8
+_080E2B18:
+ movs r5, 0
+ mov r2, sp
+ ldr r0, _080E2B70 @ =gUnknown_0202F7C9
+_080E2B1E:
+ ldrb r0, [r0]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r2]
+_080E2B26:
+ movs r4, 0
+ mov r6, sp
+_080E2B2A:
+ ldrb r0, [r6]
+ cmp r4, r0
+ beq _080E2B54
+ ldrb r0, [r6, 0x1]
+ cmp r4, r0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E2B54
+ adds r0, r4, 0
+ bl sub_80793A8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ orrs r5, r1
+_080E2B54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080E2B2A
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80E2C8C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2B70: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E2A7C
+
+ thumb_func_start sub_80E2B74
+sub_80E2B74: @ 80E2B74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E2B98 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_80E1DC4
+ adds r2, r0, 0
+ ldr r0, _080E2B9C @ =gUnknown_0300428C
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bhi _080E2C4A
+ lsls r0, 2
+ ldr r1, _080E2BA0 @ =_080E2BA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E2B98: .4byte gUnknown_03004B00
+_080E2B9C: .4byte gUnknown_0300428C
+_080E2BA0: .4byte _080E2BA4
+ .align 2, 0
+_080E2BA4:
+ .4byte _080E2BCC
+ .4byte _080E2BDC
+ .4byte _080E2BE8
+ .4byte _080E2BF8
+ .4byte _080E2C04
+ .4byte _080E2C14
+ .4byte _080E2C24
+ .4byte _080E2C34
+ .4byte _080E2C44
+ .4byte _080E2C44
+_080E2BCC:
+ ldr r1, _080E2BD4 @ =gUnknown_03004B00
+ ldr r0, _080E2BD8 @ =0x00000b0c
+ b _080E2C48
+ .align 2, 0
+_080E2BD4: .4byte gUnknown_03004B00
+_080E2BD8: .4byte 0x00000b0c
+_080E2BDC:
+ ldr r1, _080E2BE4 @ =gUnknown_03004B00
+ movs r0, 0x9E
+ lsls r0, 4
+ b _080E2C48
+ .align 2, 0
+_080E2BE4: .4byte gUnknown_03004B00
+_080E2BE8:
+ ldr r1, _080E2BF0 @ =gUnknown_03004B00
+ ldr r0, _080E2BF4 @ =0x00002f1e
+ b _080E2C48
+ .align 2, 0
+_080E2BF0: .4byte gUnknown_03004B00
+_080E2BF4: .4byte 0x00002f1e
+_080E2BF8:
+ ldr r1, _080E2C00 @ =gUnknown_03004B00
+ movs r0, 0x90
+ lsls r0, 7
+ b _080E2C48
+ .align 2, 0
+_080E2C00: .4byte gUnknown_03004B00
+_080E2C04:
+ ldr r1, _080E2C0C @ =gUnknown_03004B00
+ ldr r0, _080E2C10 @ =0x00007ecb
+ b _080E2C48
+ .align 2, 0
+_080E2C0C: .4byte gUnknown_03004B00
+_080E2C10: .4byte 0x00007ecb
+_080E2C14:
+ ldr r1, _080E2C1C @ =gUnknown_03004B00
+ ldr r0, _080E2C20 @ =0x00007ecb
+ b _080E2C48
+ .align 2, 0
+_080E2C1C: .4byte gUnknown_03004B00
+_080E2C20: .4byte 0x00007ecb
+_080E2C24:
+ ldr r1, _080E2C2C @ =gUnknown_03004B00
+ ldr r0, _080E2C30 @ =0x00002a16
+ b _080E2C48
+ .align 2, 0
+_080E2C2C: .4byte gUnknown_03004B00
+_080E2C30: .4byte 0x00002a16
+_080E2C34:
+ ldr r1, _080E2C3C @ =gUnknown_03004B00
+ ldr r0, _080E2C40 @ =0x00000d2e
+ b _080E2C48
+ .align 2, 0
+_080E2C3C: .4byte gUnknown_03004B00
+_080E2C40: .4byte 0x00000d2e
+_080E2C44:
+ ldr r1, _080E2C58 @ =gUnknown_03004B00
+ ldr r0, _080E2C5C @ =0x00007fff
+_080E2C48:
+ strh r0, [r1, 0x8]
+_080E2C4A:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C58: .4byte gUnknown_03004B00
+_080E2C5C: .4byte 0x00007fff
+ thumb_func_end sub_80E2B74
+
+ thumb_func_start sub_80E2C60
+sub_80E2C60: @ 80E2C60
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E2C88 @ =gUnknown_03004B00
+ ldrh r0, [r0]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ adds r0, r4, 0
+ bl sub_80E2C8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2C88: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E2C60
+
+ thumb_func_start sub_80E2C8C
+sub_80E2C8C: @ 80E2C8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080E2CC4 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ strh r1, [r2, 0x8]
+ lsrs r1, 16
+ strh r1, [r2, 0xA]
+ ldr r3, _080E2CC8 @ =gUnknown_03004B00
+ ldrh r1, [r3, 0x2]
+ strh r1, [r2, 0xC]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0xE]
+ ldrh r1, [r3, 0x6]
+ strh r1, [r2, 0x10]
+ ldrh r1, [r3, 0x8]
+ strh r1, [r2, 0x12]
+ ldrh r1, [r3, 0x4]
+ strh r1, [r2, 0x1C]
+ ldr r1, _080E2CCC @ =sub_80E2CD0
+ str r1, [r2]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2CC4: .4byte gTasks
+_080E2CC8: .4byte gUnknown_03004B00
+_080E2CCC: .4byte sub_80E2CD0
+ thumb_func_end sub_80E2C8C
+
+ thumb_func_start sub_80E2CD0
+sub_80E2CD0: @ 80E2CD0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ ldr r2, _080E2D50 @ =gTasks
+ lsls r5, r7, 2
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x1A]
+ mov r8, r0
+ movs r4, 0x1A
+ ldrsh r1, [r3, r4]
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ mov r9, r2
+ cmp r1, r0
+ bne _080E2D66
+ strh r6, [r3, 0x1A]
+ movs r0, 0x8
+ ldrsh r4, [r3, r0]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ orrs r4, r0
+ mov r8, r5
+ cmp r4, 0
+ beq _080E2D32
+ adds r5, r3, 0
+_080E2D10:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080E2D24
+ ldrb r2, [r5, 0x1C]
+ ldrh r3, [r5, 0x12]
+ adds r0, r6, 0
+ movs r1, 0x10
+ bl BlendPalette
+_080E2D24:
+ adds r0, r6, 0
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r4, 1
+ cmp r4, 0
+ bne _080E2D10
+_080E2D32:
+ mov r4, r8
+ adds r0, r4, r7
+ lsls r0, 3
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x1C]
+ movs r4, 0x1C
+ ldrsh r3, [r2, r4]
+ movs r4, 0x10
+ ldrsh r1, [r2, r4]
+ cmp r3, r1
+ bge _080E2D54
+ adds r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+ .align 2, 0
+_080E2D50: .4byte gTasks
+_080E2D54:
+ cmp r3, r1
+ ble _080E2D5E
+ subs r0, 0x1
+ strh r0, [r2, 0x1C]
+ b _080E2D6C
+_080E2D5E:
+ adds r0, r7, 0
+ bl move_anim_task_del
+ b _080E2D6C
+_080E2D66:
+ mov r0, r8
+ adds r0, 0x1
+ strh r0, [r3, 0x1A]
+_080E2D6C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2CD0
+
+ thumb_func_start sub_80E2D78
+sub_80E2D78: @ 80E2D78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080E2DAC @ =gUnknown_03004B00
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ ldrb r3, [r4, 0x6]
+ ldrb r4, [r4, 0x8]
+ str r4, [sp]
+ bl BeginHardwarePaletteFade
+ ldr r1, _080E2DB0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080E2DB4 @ =sub_80E2DB8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DAC: .4byte gUnknown_03004B00
+_080E2DB0: .4byte gTasks
+_080E2DB4: .4byte sub_80E2DB8
+ thumb_func_end sub_80E2D78
+
+ thumb_func_start sub_80E2DB8
+sub_80E2DB8: @ 80E2DB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E2DD4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080E2DD0
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2DD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2DD4: .4byte gPaletteFade
+ thumb_func_end sub_80E2DB8
+
+ thumb_func_start sub_80E2DD8
+sub_80E2DD8: @ 80E2DD8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080E2E04 @ =gTasks
+ adds r1, r0
+ ldr r2, _080E2E08 @ =gUnknown_03004B00
+ ldrh r0, [r2]
+ movs r3, 0
+ strh r0, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0x10]
+ strh r3, [r1, 0x12]
+ ldr r0, _080E2E0C @ =sub_80E2E10
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080E2E04: .4byte gTasks
+_080E2E08: .4byte gUnknown_03004B00
+_080E2E0C: .4byte sub_80E2E10
+ thumb_func_end sub_80E2DD8
+
+ thumb_func_start sub_80E2E10
+sub_80E2E10: @ 80E2E10
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080E2E3C @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E2ED4
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2E40
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2E3C: .4byte gTasks
+_080E2E40:
+ ldrb r0, [r4, 0x8]
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ blt _080E2EBE
+ ldr r6, _080E2ECC @ =gSprites
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r3, r1, r6
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x2
+ cmp r0, 0
+ beq _080E2E68
+ movs r2, 0x1
+_080E2E68:
+ lsls r2, 2
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x5]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0xE]
+ strh r1, [r0, 0x2E]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strh r5, [r0, 0x30]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080E2ED0 @ =sub_80E2EE8
+ str r1, [r0]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_080E2EBE:
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ b _080E2EE2
+ .align 2, 0
+_080E2ECC: .4byte gSprites
+_080E2ED0: .4byte sub_80E2EE8
+_080E2ED4:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E2EE2
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E2EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E2E10
+
+ thumb_func_start sub_80E2EE8
+sub_80E2EE8: @ 80E2EE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080E2EFC
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ b _080E2F20
+_080E2EFC:
+ ldr r3, _080E2F28 @ =gTasks
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_080E2F20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E2F28: .4byte gTasks
+ thumb_func_end sub_80E2EE8
+
+ thumb_func_start sub_80E2F2C
+sub_80E2F2C: @ 80E2F2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r0, _080E3038 @ =gUnknown_030042C4
+ strh r7, [r0]
+ ldr r0, _080E303C @ =gUnknown_03004240
+ strh r7, [r0]
+ ldr r1, _080E3040 @ =REG_WININ
+ ldr r2, _080E3044 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3048 @ =0x00003f3d
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E304C @ =REG_BLDCNT
+ ldr r2, _080E3050 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E3054 @ =0x00000c08
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3058 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ mov r8, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E2FAC
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E2FAC:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3028
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+ ldr r5, _080E305C @ =gUnknown_0202F7C8
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E2FDC
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3028
+_080E2FDC:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ eors r0, r6
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E3028
+ ldr r3, _080E3060 @ =gSprites
+ ldr r1, _080E3064 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r7, 0x1
+_080E3028:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E306C
+ ldr r0, _080E3068 @ =0x02019348
+ ldrh r4, [r0]
+ b _080E30B4
+ .align 2, 0
+_080E3038: .4byte gUnknown_030042C4
+_080E303C: .4byte gUnknown_03004240
+_080E3040: .4byte REG_WININ
+_080E3044: .4byte 0x00003f3f
+_080E3048: .4byte 0x00003f3d
+_080E304C: .4byte REG_BLDCNT
+_080E3050: .4byte 0x00003f42
+_080E3054: .4byte 0x00000c08
+_080E3058: .4byte REG_BG1CNT
+_080E305C: .4byte gUnknown_0202F7C8
+_080E3060: .4byte gSprites
+_080E3064: .4byte gUnknown_02024BE0
+_080E3068: .4byte 0x02019348
+_080E306C:
+ ldr r4, _080E308C @ =gUnknown_0202F7C8
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3098
+ ldr r1, _080E3090 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3094 @ =gEnemyParty
+ b _080E30A8
+ .align 2, 0
+_080E308C: .4byte gUnknown_0202F7C8
+_080E3090: .4byte gUnknown_02024A6A
+_080E3094: .4byte gEnemyParty
+_080E3098:
+ ldr r1, _080E3160 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3164 @ =gPlayerParty
+_080E30A8:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E30B4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3168 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _080E316C @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080E3170 @ =0x85000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _080E3174 @ =gUnknown_08D20A30
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3106
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3106:
+ ldr r0, _080E3178 @ =gUnknown_08D20A14
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _080E317C @ =gUnknown_083DB568
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ adds r1, 0x1
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r2, _080E3180 @ =gUnknown_030042C0
+ ldr r0, _080E3184 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r2, _080E3188 @ =gUnknown_030041B4
+ ldrh r0, [r1, 0x22]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r2]
+ ldr r1, _080E318C @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ strh r7, [r0, 0x14]
+ ldr r1, _080E3190 @ =sub_80E3194
+ str r1, [r0]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3160: .4byte gUnknown_02024A6A
+_080E3164: .4byte gPlayerParty
+_080E3168: .4byte gUnknown_0202F7C8
+_080E316C: .4byte 0x040000d4
+_080E3170: .4byte 0x85000400
+_080E3174: .4byte gUnknown_08D20A30
+_080E3178: .4byte gUnknown_08D20A14
+_080E317C: .4byte gUnknown_083DB568
+_080E3180: .4byte gUnknown_030042C0
+_080E3184: .4byte gSprites
+_080E3188: .4byte gUnknown_030041B4
+_080E318C: .4byte gTasks
+_080E3190: .4byte sub_80E3194
+ thumb_func_end sub_80E2F2C
+
+ thumb_func_start sub_80E3194
+sub_80E3194: @ 80E3194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E32AC @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x4
+ movs r5, 0
+ strh r0, [r4, 0x1C]
+ ldr r7, _080E32B0 @ =gUnknown_030041B4
+ ldrh r2, [r7]
+ subs r1, r2, 0x4
+ strh r1, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _080E329E
+ strh r5, [r4, 0x1C]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ strh r0, [r7]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080E329E
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E32B4 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E32B8 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E32BC @ =REG_WININ
+ ldr r2, _080E32C0 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3208
+ ldr r2, _080E32C4 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3208:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E32C8 @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ ldr r0, _080E32CC @ =gSprites
+ mov r8, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ bl DestroySprite
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ str r5, [sp, 0xC]
+ ldr r1, _080E32D0 @ =0x040000d4
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080E32D4 @ =0x85000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3288
+ ldr r2, _080E32D8 @ =gUnknown_02024BE0
+ ldr r0, _080E32DC @ =gUnknown_0202F7C8
+ ldrb r1, [r0]
+ movs r0, 0x2
+ eors r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3288:
+ ldr r2, _080E32C4 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ movs r0, 0
+ strh r0, [r7]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E329E:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E32AC: .4byte gTasks
+_080E32B0: .4byte gUnknown_030041B4
+_080E32B4: .4byte gUnknown_030042C4
+_080E32B8: .4byte gUnknown_03004240
+_080E32BC: .4byte REG_WININ
+_080E32C0: .4byte 0x00003f3f
+_080E32C4: .4byte REG_BG1CNT
+_080E32C8: .4byte REG_BLDCNT
+_080E32CC: .4byte gSprites
+_080E32D0: .4byte 0x040000d4
+_080E32D4: .4byte 0x85000200
+_080E32D8: .4byte gUnknown_02024BE0
+_080E32DC: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_80E3194
+
+ thumb_func_start sub_80E32E0
+sub_80E32E0: @ 80E32E0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _080E332C @ =gTasks
+ mov r12, r0
+ ldr r1, _080E3330 @ =sub_80E3338
+ mov r8, r1
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r4, r0, 3
+ mov r7, r12
+ adds r7, 0x8
+ adds r5, r1, 0
+ ldr r6, _080E3334 @ =gUnknown_03004B00
+_080E3302:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r1, r7
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _080E3302
+ adds r0, r5, r3
+ lsls r0, 3
+ add r0, r12
+ mov r1, r8
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E332C: .4byte gTasks
+_080E3330: .4byte sub_80E3338
+_080E3334: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E32E0
+
+ thumb_func_start sub_80E3338
+sub_80E3338: @ 80E3338
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ movs r1, 0
+ str r1, [sp, 0x20]
+ add r7, sp, 0xC
+ ldr r2, _080E3388 @ =gTasks
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ mov r10, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r1, r0, r1
+ adds r3, r7, 0
+ movs r4, 0
+ movs r2, 0x7
+_080E336C:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ strh r4, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080E336C
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3390
+ ldr r0, _080E338C @ =gUnknown_0202F7C8
+ b _080E3392
+ .align 2, 0
+_080E3388: .4byte gTasks
+_080E338C: .4byte gUnknown_0202F7C8
+_080E3390:
+ ldr r0, _080E34B4 @ =gUnknown_0202F7C9
+_080E3392:
+ ldrb r5, [r0]
+ movs r0, 0x2
+ mov r8, r5
+ mov r2, r8
+ eors r2, r0
+ mov r8, r2
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33BC
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E33C0
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E33C0
+_080E33BC:
+ movs r0, 0
+ strh r0, [r7, 0x6]
+_080E33C0:
+ ldr r0, _080E34B8 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E34BC @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080E34C0 @ =REG_WININ
+ ldr r2, _080E34C4 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080E34C8 @ =0x00003f3d
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E34CC @ =REG_BLDCNT
+ ldr r2, _080E34D0 @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E34D4 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r6, 0x4
+ negs r6, r6
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3432
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3432:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34A4
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E34A4
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E345E
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E34A4
+_080E345E:
+ mov r0, r8
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E34A4
+ ldr r1, _080E34D8 @ =gSprites
+ ldr r0, _080E34DC @ =gUnknown_02024BE0
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ subs r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldrb r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_080E34A4:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E34E4
+ ldr r0, _080E34E0 @ =0x02019348
+ ldrh r4, [r0]
+ b _080E3522
+ .align 2, 0
+_080E34B4: .4byte gUnknown_0202F7C9
+_080E34B8: .4byte gUnknown_030042C4
+_080E34BC: .4byte gUnknown_03004240
+_080E34C0: .4byte REG_WININ
+_080E34C4: .4byte 0x00003f3f
+_080E34C8: .4byte 0x00003f3d
+_080E34CC: .4byte REG_BLDCNT
+_080E34D0: .4byte 0x00003f42
+_080E34D4: .4byte REG_BG1CNT
+_080E34D8: .4byte gSprites
+_080E34DC: .4byte gUnknown_02024BE0
+_080E34E0: .4byte 0x02019348
+_080E34E4:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3508
+ ldr r1, _080E3500 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3504 @ =gEnemyParty
+ b _080E3516
+ .align 2, 0
+_080E3500: .4byte gUnknown_02024A6A
+_080E3504: .4byte gEnemyParty
+_080E3508:
+ ldr r1, _080E3568 @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E356C @ =gPlayerParty
+_080E3516:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3522:
+ ldr r6, _080E3570 @ =gUnknown_02024BE0
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _080E3550
+ mov r1, r8
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+_080E3550:
+ mov r0, sp
+ bl sub_8078914
+ movs r2, 0
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E3578
+ ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+ b _080E3580
+ .align 2, 0
+_080E3568: .4byte gUnknown_02024A6A
+_080E356C: .4byte gPlayerParty
+_080E3570: .4byte gUnknown_02024BE0
+_080E3574: .4byte gBattleStatMask1_Tilemap
+_080E3578:
+ ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap
+ ldr r1, [sp, 0x4]
+ bl LZDecompressVram
+_080E3580:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3598
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3598:
+ ldr r0, _080E35B4 @ =gBattleStatMask_Gfx
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldrh r0, [r7, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080E35BC
+ ldr r0, _080E35B8 @ =gBattleStatMask2_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35B0: .4byte gBattleStatMask2_Tilemap
+_080E35B4: .4byte gBattleStatMask_Gfx
+_080E35B8: .4byte gBattleStatMask2_Pal
+_080E35BC:
+ cmp r0, 0x1
+ bne _080E35C8
+ ldr r0, _080E35C4 @ =gBattleStatMask1_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35C4: .4byte gBattleStatMask1_Pal
+_080E35C8:
+ cmp r0, 0x2
+ bne _080E35D4
+ ldr r0, _080E35D0 @ =gBattleStatMask3_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35D0: .4byte gBattleStatMask3_Pal
+_080E35D4:
+ cmp r0, 0x3
+ bne _080E35E0
+ ldr r0, _080E35DC @ =gBattleStatMask4_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35DC: .4byte gBattleStatMask4_Pal
+_080E35E0:
+ cmp r0, 0x4
+ bne _080E35EC
+ ldr r0, _080E35E8 @ =gBattleStatMask6_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35E8: .4byte gBattleStatMask6_Pal
+_080E35EC:
+ cmp r0, 0x5
+ bne _080E35F8
+ ldr r0, _080E35F4 @ =gBattleStatMask7_Pal
+ b _080E35FE
+ .align 2, 0
+_080E35F4: .4byte gBattleStatMask7_Pal
+_080E35F8:
+ cmp r0, 0x6
+ bne _080E3610
+ ldr r0, _080E360C @ =gBattleStatMask8_Pal
+_080E35FE:
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _080E361E
+ .align 2, 0
+_080E360C: .4byte gBattleStatMask8_Pal
+_080E3610:
+ ldr r0, _080E3644 @ =gBattleStatMask5_Pal
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_080E361E:
+ ldr r2, _080E3648 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r2]
+ ldr r0, _080E364C @ =gUnknown_030041B4
+ strh r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x1
+ bne _080E3658
+ movs r0, 0x40
+ strh r0, [r2]
+ ldr r2, _080E3650 @ =gTasks
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080E3654 @ =0x0000fffd
+ strh r1, [r0, 0xA]
+ b _080E3668
+ .align 2, 0
+_080E3644: .4byte gBattleStatMask5_Pal
+_080E3648: .4byte gUnknown_030042C0
+_080E364C: .4byte gUnknown_030041B4
+_080E3650: .4byte gTasks
+_080E3654: .4byte 0x0000fffd
+_080E3658:
+ ldr r0, _080E3680 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x3
+ strh r2, [r1, 0xA]
+ adds r2, r0, 0
+_080E3668:
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E3684
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ strh r1, [r0, 0x10]
+ movs r1, 0x14
+ b _080E3692
+ .align 2, 0
+_080E3680: .4byte gTasks
+_080E3684:
+ mov r0, r10
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xD
+ strh r1, [r0, 0x10]
+ movs r1, 0x1E
+_080E3692:
+ strh r1, [r0, 0x12]
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ ldrh r0, [r7, 0x6]
+ strh r0, [r1, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r1, 0xE]
+ mov r3, sp
+ ldrh r3, [r3, 0x20]
+ strh r3, [r1, 0x14]
+ ldr r0, _080E36D8 @ =gUnknown_02024BE0
+ add r0, r8
+ ldrb r0, [r0]
+ strh r0, [r1, 0x16]
+ ldr r0, _080E36DC @ =sub_80E3704
+ str r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _080E36E0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xEF
+ bl PlaySE12WithPanning
+ b _080E36F4
+ .align 2, 0
+_080E36D8: .4byte gUnknown_02024BE0
+_080E36DC: .4byte sub_80E3704
+_080E36E0:
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8077094
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xF5
+ bl PlaySE12WithPanning
+_080E36F4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E3338
+
+ thumb_func_start sub_80E3704
+sub_80E3704: @ 80E3704
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080E3730 @ =gUnknown_030041B4
+ ldr r1, _080E3734 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ movs r3, 0x26
+ ldrsh r2, [r4, r3]
+ cmp r2, 0x1
+ beq _080E3774
+ cmp r2, 0x1
+ bgt _080E3738
+ cmp r2, 0
+ beq _080E373E
+ b _080E3866
+ .align 2, 0
+_080E3730: .4byte gUnknown_030041B4
+_080E3734: .4byte gTasks
+_080E3738:
+ cmp r2, 0x2
+ beq _080E378E
+ b _080E3866
+_080E373E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080E374C
+ b _080E3866
+_080E374C:
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3770 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3866
+ b _080E3786
+ .align 2, 0
+_080E3770: .4byte REG_BLDALPHA
+_080E3774:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3866
+_080E3786:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3866
+_080E378E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E3866
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E386C @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3866
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3870 @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E3874 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E3878 @ =REG_WININ
+ ldr r2, _080E387C @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E37E8
+ ldr r2, _080E3880 @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E37E8:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E3884 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E3888 @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3828
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3828:
+ movs r3, 0x14
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _080E3854
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r2, 0x5]
+ lsls r1, r3, 28
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x3
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+_080E3854:
+ ldr r2, _080E3880 @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3866:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E386C: .4byte REG_BLDALPHA
+_080E3870: .4byte gUnknown_030042C4
+_080E3874: .4byte gUnknown_03004240
+_080E3878: .4byte REG_WININ
+_080E387C: .4byte 0x00003f3f
+_080E3880: .4byte REG_BG1CNT
+_080E3884: .4byte REG_BLDCNT
+_080E3888: .4byte gSprites
+ thumb_func_end sub_80E3704
+
+ thumb_func_start sub_80E388C
+sub_80E388C: @ 80E388C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_80792C0
+ adds r6, r0, 0
+ movs r1, 0
+ bl sub_80E39BC
+ ldr r0, _080E38EC @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ lsrs r0, r6, 16
+ movs r5, 0
+ strh r0, [r4, 0x24]
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r6, r0, 0
+ ldr r1, _080E38F0 @ =0x0000ffff
+ ands r6, r1
+ adds r0, r6, 0
+ bl sub_80E39BC
+ strh r6, [r4, 0x26]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r0, _080E38F4 @ =sub_80E38F8
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E38EC: .4byte gTasks
+_080E38F0: .4byte 0x0000ffff
+_080E38F4: .4byte sub_80E38F8
+ thumb_func_end sub_80E388C
+
+ thumb_func_start sub_80E38F8
+sub_80E38F8: @ 80E38F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080E391C @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _080E393C
+ cmp r1, 0x1
+ bgt _080E3920
+ cmp r1, 0
+ beq _080E3926
+ b _080E39B6
+ .align 2, 0
+_080E391C: .4byte gTasks
+_080E3920:
+ cmp r1, 0x2
+ beq _080E39B0
+ b _080E39B6
+_080E3926:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080E39B6
+ strh r1, [r4, 0xA]
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ b _080E39A4
+_080E393C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080E39B6
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r5, 0
+ movs r6, 0x1
+_080E3958:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3972
+ lsls r0, r5, 20
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ ldr r3, _080E39AC @ =0x0000ffff
+ bl BlendPalette
+_080E3972:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ asrs r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _080E3992
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldrb r2, [r4, 0xC]
+ movs r1, 0x10
+ movs r3, 0
+ bl BlendPalette
+_080E3992:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xF
+ bls _080E3958
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080E39B6
+_080E39A4:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E39B6
+ .align 2, 0
+_080E39AC: .4byte 0x0000ffff
+_080E39B0:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_080E39B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E38F8
+
+ thumb_func_start sub_80E39BC
+sub_80E39BC: @ 80E39BC
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r2, 0
+_080E39C6:
+ movs r0, 0x1
+ ands r0, r3
+ lsrs r4, r3, 1
+ adds r5, r2, 0x1
+ cmp r0, 0
+ beq _080E39F2
+ lsls r0, r2, 20
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x10
+ cmp r2, r0
+ bge _080E39F2
+ ldr r1, _080E3A04 @ =gPlttBufferFaded
+ adds r3, r0, 0
+_080E39E2:
+ lsls r0, r2, 1
+ adds r0, r1
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ blt _080E39E2
+_080E39F2:
+ adds r3, r4, 0
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1F
+ bls _080E39C6
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A04: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E39BC
+
+ thumb_func_start sub_80E3A08
+sub_80E3A08: @ 80E3A08
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r2, 0
+ ldr r0, _080E3A50 @ =gUnknown_0202F7C8
+ ldrb r3, [r0]
+ movs r5, 0x1
+_080E3A18:
+ cmp r3, r2
+ beq _080E3A26
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r0, r5, 0
+ lsls r0, r1
+ orrs r4, r0
+_080E3A26:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080E3A18
+ movs r2, 0x5
+ ldr r0, _080E3A54 @ =gUnknown_03004B00
+ adds r1, r0, 0
+ adds r1, 0x8
+_080E3A34:
+ ldrh r0, [r1]
+ strh r0, [r1, 0x2]
+ subs r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E3A34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80E2C8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3A50: .4byte gUnknown_0202F7C8
+_080E3A54: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3A08
+
+ thumb_func_start sub_80E3A58
+sub_80E3A58: @ 80E3A58
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl sub_80789D4
+ ldr r0, _080E3AC0 @ =sub_80E3AD0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080E3AC4 @ =gUnknown_03004B00
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3A94
+ ldr r0, _080E3AC8 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3A94
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ negs r0, r0
+ strh r0, [r4, 0x2]
+_080E3A94:
+ ldr r0, _080E3ACC @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080E3AC4 @ =gUnknown_03004B00
+ ldrh r0, [r2]
+ strh r0, [r1, 0xA]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0xC]
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ adds r0, r6, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3AC0: .4byte sub_80E3AD0
+_080E3AC4: .4byte gUnknown_03004B00
+_080E3AC8: .4byte gUnknown_0202F7C8
+_080E3ACC: .4byte gTasks
+ thumb_func_end sub_80E3A58
+
+ thumb_func_start sub_80E3AD0
+sub_80E3AD0: @ 80E3AD0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E3B3C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0xA]
+ ldrh r0, [r1, 0x1C]
+ adds r3, r0
+ movs r4, 0
+ mov r12, r4
+ strh r3, [r1, 0x1C]
+ ldrh r2, [r1, 0xC]
+ ldrh r7, [r1, 0x1E]
+ adds r2, r7
+ strh r2, [r1, 0x1E]
+ ldr r6, _080E3B40 @ =gUnknown_030041B0
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r4, [r6]
+ adds r0, r4
+ strh r0, [r6]
+ ldr r4, _080E3B44 @ =gUnknown_030041B8
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r7, [r4]
+ adds r0, r7
+ strh r0, [r4]
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1, 0x1C]
+ ands r2, r0
+ strh r2, [r1, 0x1E]
+ ldr r0, _080E3B48 @ =gUnknown_03004B00
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ movs r7, 0xE
+ ldrsh r0, [r1, r7]
+ cmp r2, r0
+ bne _080E3B36
+ mov r0, r12
+ strh r0, [r6]
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_80789D4
+ adds r0, r5, 0
+ bl DestroyTask
+_080E3B36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B3C: .4byte gTasks
+_080E3B40: .4byte gUnknown_030041B0
+_080E3B44: .4byte gUnknown_030041B8
+_080E3B48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3AD0
+
+ thumb_func_start sub_80E3B4C
+sub_80E3B4C: @ 80E3B4C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B70 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3B74 @ =gUnknown_03004B00
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B70: .4byte gUnknown_0202F7C8
+_080E3B74: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B4C
+
+ thumb_func_start sub_80E3B78
+sub_80E3B78: @ 80E3B78
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080E3B9C @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ ldr r1, _080E3BA0 @ =gUnknown_03004B00
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3B9C: .4byte gUnknown_0202F7C9
+_080E3BA0: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3B78
+
+ thumb_func_start sub_80E3BA4
+sub_80E3BA4: @ 80E3BA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r5, _080E3BD0 @ =gUnknown_03004B00
+ movs r4, 0
+ ldr r0, _080E3BD4 @ =gUnknown_0202F7C8
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ldr r1, _080E3BD8 @ =gUnknown_0202F7C9
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080E3BC0
+ movs r4, 0x1
+_080E3BC0:
+ strh r4, [r5, 0xE]
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3BD0: .4byte gUnknown_03004B00
+_080E3BD4: .4byte gUnknown_0202F7C8
+_080E3BD8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_80E3BA4
+
+ thumb_func_start sub_80E3BDC
+sub_80E3BDC: @ 80E3BDC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r6, _080E3C3C @ =gSprites
+_080E3BE6:
+ ldr r0, _080E3C40 @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080E3C24
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3C24
+ ldr r0, _080E3C44 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldr r1, _080E3C48 @ =gUnknown_03004B00
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r3, [r1]
+ ands r3, r0
+ lsls r3, 2
+ ldrb r0, [r2]
+ movs r7, 0x5
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E3C24:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080E3BE6
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3C3C: .4byte gSprites
+_080E3C40: .4byte gUnknown_0202F7C8
+_080E3C44: .4byte gUnknown_02024BE0
+_080E3C48: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E3BDC
+
+ thumb_func_start sub_80E3C4C
+sub_80E3C4C: @ 80E3C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r1, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x14]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r0, 0x2
+ adds r6, r7, 0
+ eors r6, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CAE
+ mov r1, r8
+ cmp r1, 0
+ beq _080E3CB2
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3CB2
+_080E3CAE:
+ movs r2, 0
+ mov r8, r2
+_080E3CB2:
+ ldr r0, _080E3D34 @ =gUnknown_030042C4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3D38 @ =gUnknown_03004240
+ strh r1, [r0]
+ ldr r1, _080E3D3C @ =REG_WININ
+ ldr r3, _080E3D40 @ =0x00003f3f
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E3D44 @ =0x00003f3d
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080E3D48 @ =REG_BLDCNT
+ ldr r2, _080E3D4C @ =0x00003f42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r4, _080E3D50 @ =REG_BG1CNT
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3D22
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_080E3D22:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D58
+ ldr r0, _080E3D54 @ =0x02019348
+ ldrh r4, [r0]
+ b _080E3D96
+ .align 2, 0
+_080E3D34: .4byte gUnknown_030042C4
+_080E3D38: .4byte gUnknown_03004240
+_080E3D3C: .4byte REG_WININ
+_080E3D40: .4byte 0x00003f3f
+_080E3D44: .4byte 0x00003f3d
+_080E3D48: .4byte REG_BLDCNT
+_080E3D4C: .4byte 0x00003f42
+_080E3D50: .4byte REG_BG1CNT
+_080E3D54: .4byte 0x02019348
+_080E3D58:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3D7C
+ ldr r1, _080E3D74 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3D78 @ =gEnemyParty
+ b _080E3D8A
+ .align 2, 0
+_080E3D74: .4byte gUnknown_02024A6A
+_080E3D78: .4byte gEnemyParty
+_080E3D7C:
+ ldr r1, _080E3E48 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080E3E4C @ =gPlayerParty
+_080E3D8A:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080E3D96:
+ ldr r5, _080E3E50 @ =gUnknown_02024BE0
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r8
+ cmp r0, 0
+ beq _080E3DC0
+ adds r0, r6, r5
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_807A4A0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+_080E3DC0:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ ldr r0, [sp, 0x50]
+ bl LZDecompressVram
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E3DE6
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+_080E3DE6:
+ ldr r1, [sp]
+ ldr r0, [sp, 0x4C]
+ bl LZDecompressVram
+ mov r0, sp
+ ldrb r1, [r0, 0x8]
+ lsls r1, 4
+ ldr r0, [sp, 0x54]
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r0, _080E3E54 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E3E58 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r1, _080E3E5C @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r3, sp
+ ldrh r3, [r3, 0xC]
+ strh r3, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x10]
+ mov r2, r10
+ strh r2, [r0, 0x12]
+ mov r3, sp
+ ldrh r3, [r3, 0x14]
+ strh r3, [r0, 0x14]
+ strh r7, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xE]
+ ldr r1, _080E3E60 @ =sub_80E3E64
+ str r1, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3E48: .4byte gUnknown_02024A6A
+_080E3E4C: .4byte gPlayerParty
+_080E3E50: .4byte gUnknown_02024BE0
+_080E3E54: .4byte gUnknown_030042C0
+_080E3E58: .4byte gUnknown_030041B4
+_080E3E5C: .4byte gTasks
+_080E3E60: .4byte sub_80E3E64
+ thumb_func_end sub_80E3C4C
+
+ thumb_func_start sub_80E3E64
+sub_80E3E64: @ 80E3E64
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E3E9C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r0, 0xA
+ ldrsh r2, [r3, r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _080E3E80
+ negs r2, r2
+_080E3E80:
+ ldrh r0, [r3, 0x22]
+ adds r4, r0, r2
+ strh r4, [r3, 0x22]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080E3EA4
+ ldr r2, _080E3EA0 @ =gUnknown_030041B4
+ lsls r1, r4, 16
+ asrs r1, 24
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ b _080E3EB0
+ .align 2, 0
+_080E3E9C: .4byte gTasks
+_080E3EA0: .4byte gUnknown_030041B4
+_080E3EA4:
+ ldr r1, _080E3ED4 @ =gUnknown_030041B4
+ lsls r0, r4, 16
+ asrs r0, 24
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+_080E3EB0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r5
+ ldrh r1, [r4, 0x22]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x22]
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ beq _080E3F18
+ cmp r0, 0x1
+ bgt _080E3ED8
+ cmp r0, 0
+ beq _080E3EDE
+ b _080E3FE2
+ .align 2, 0
+_080E3ED4: .4byte gUnknown_030041B4
+_080E3ED8:
+ cmp r0, 0x2
+ beq _080E3F32
+ b _080E3FE2
+_080E3EDE:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _080E3F14 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080E3FE2
+ b _080E3F2A
+ .align 2, 0
+_080E3F14: .4byte REG_BLDALPHA
+_080E3F18:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _080E3FE2
+_080E3F2A:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _080E3FE2
+_080E3F32:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x14
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ blt _080E3FE2
+ strh r2, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r7, _080E3FE8 @ =REG_BLDALPHA
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r7]
+ movs r0, 0x20
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _080E3FE2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _080E3FEC @ =gUnknown_030042C4
+ strh r5, [r0]
+ ldr r0, _080E3FF0 @ =gUnknown_03004240
+ strh r5, [r0]
+ ldr r0, _080E3FF4 @ =REG_WININ
+ ldr r2, _080E3FF8 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E3F90
+ ldr r2, _080E3FFC @ =REG_BG1CNT
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080E3F90:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ ldr r0, _080E4000 @ =REG_BLDCNT
+ strh r5, [r0]
+ strh r5, [r7]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _080E4004 @ =gSprites
+ adds r0, r5
+ bl DestroySprite
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080E3FD0
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_080E3FD0:
+ ldr r2, _080E3FFC @ =REG_BG1CNT
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_080E3FE2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E3FE8: .4byte REG_BLDALPHA
+_080E3FEC: .4byte gUnknown_030042C4
+_080E3FF0: .4byte gUnknown_03004240
+_080E3FF4: .4byte REG_WININ
+_080E3FF8: .4byte 0x00003f3f
+_080E3FFC: .4byte REG_BG1CNT
+_080E4000: .4byte REG_BLDCNT
+_080E4004: .4byte gSprites
+ thumb_func_end sub_80E3E64
+
+ thumb_func_start sub_80E4008
+sub_80E4008: @ 80E4008
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4020 @ =gUnknown_03004B00
+ ldr r1, _080E4024 @ =gUnknown_0300428C
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4020: .4byte gUnknown_03004B00
+_080E4024: .4byte gUnknown_0300428C
+ thumb_func_end sub_80E4008
+
+ thumb_func_start sub_80E4028
+sub_80E4028: @ 80E4028
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4068 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E406C
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E4084
+ movs r2, 0x1
+_080E405A:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E405A
+ b _080E4084
+ .align 2, 0
+_080E4068: .4byte gUnknown_03004B00
+_080E406C:
+ cmp r0, 0x1
+ bne _080E4078
+ ldr r0, _080E4074 @ =gUnknown_0202F7C8
+ b _080E407E
+ .align 2, 0
+_080E4074: .4byte gUnknown_0202F7C8
+_080E4078:
+ cmp r0, 0x2
+ bne _080E4084
+ ldr r0, _080E409C @ =gUnknown_0202F7C9
+_080E407E:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E4084:
+ ldr r0, _080E40A0 @ =gUnknown_03004B00
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r5, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E40A8
+ ldr r0, _080E40A4 @ =0x02014800
+ b _080E40AA
+ .align 2, 0
+_080E409C: .4byte gUnknown_0202F7C9
+_080E40A0: .4byte gUnknown_03004B00
+_080E40A4: .4byte 0x02014800
+_080E40A8:
+ ldr r0, _080E40C8 @ =0x02018000
+_080E40AA:
+ adds r2, r5, r0
+ lsls r1, r4, 5
+ ldr r0, _080E40CC @ =gPlttBufferUnfaded
+ adds r1, r0
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E40C8: .4byte 0x02018000
+_080E40CC: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_80E4028
+
+ thumb_func_start sub_80E40D0
+sub_80E40D0: @ 80E40D0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _080E4110 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E4114
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E412C
+ movs r2, 0x1
+_080E4102:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E4102
+ b _080E412C
+ .align 2, 0
+_080E4110: .4byte gUnknown_03004B00
+_080E4114:
+ cmp r0, 0x1
+ bne _080E4120
+ ldr r0, _080E411C @ =gUnknown_0202F7C8
+ b _080E4126
+ .align 2, 0
+_080E411C: .4byte gUnknown_0202F7C8
+_080E4120:
+ cmp r0, 0x2
+ bne _080E412C
+ ldr r0, _080E4148 @ =gUnknown_0202F7C9
+_080E4126:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E412C:
+ lsls r1, r4, 5
+ ldr r0, _080E414C @ =gPlttBufferUnfaded
+ adds r5, r1, r0
+ ldr r0, _080E4150 @ =gUnknown_03004B00
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 5
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4158
+ ldr r0, _080E4154 @ =0x02014800
+ b _080E415A
+ .align 2, 0
+_080E4148: .4byte gUnknown_0202F7C9
+_080E414C: .4byte gPlttBufferUnfaded
+_080E4150: .4byte gUnknown_03004B00
+_080E4154: .4byte 0x02014800
+_080E4158:
+ ldr r0, _080E4174 @ =0x02018000
+_080E415A:
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r6, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4174: .4byte 0x02018000
+ thumb_func_end sub_80E40D0
+
+ thumb_func_start sub_80E4178
+sub_80E4178: @ 80E4178
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080E41B8 @ =gUnknown_03004B00
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080E41BC
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080E41D4
+ movs r2, 0x1
+_080E41AA:
+ lsrs r1, 1
+ adds r4, 0x1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080E41AA
+ b _080E41D4
+ .align 2, 0
+_080E41B8: .4byte gUnknown_03004B00
+_080E41BC:
+ cmp r0, 0x1
+ bne _080E41C8
+ ldr r0, _080E41C4 @ =gUnknown_0202F7C8
+ b _080E41CE
+ .align 2, 0
+_080E41C4: .4byte gUnknown_0202F7C8
+_080E41C8:
+ cmp r0, 0x2
+ bne _080E41D4
+ ldr r0, _080E41F4 @ =gUnknown_0202F7C9
+_080E41CE:
+ ldrb r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+_080E41D4:
+ lsls r1, r4, 5
+ ldr r0, _080E41F8 @ =gPlttBufferUnfaded
+ adds r0, r1, r0
+ ldr r2, _080E41FC @ =gPlttBufferFaded
+ adds r1, r2
+ movs r2, 0x20
+ bl memcpy
+ adds r0, r5, 0
+ bl move_anim_task_del
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E41F4: .4byte gUnknown_0202F7C9
+_080E41F8: .4byte gPlttBufferUnfaded
+_080E41FC: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E4178
+
+ thumb_func_start sub_80E4200
+sub_80E4200: @ 80E4200
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E4220
+ ldr r1, _080E421C @ =gUnknown_03004B00
+ movs r0, 0x1
+ strh r0, [r1, 0xE]
+ b _080E4224
+ .align 2, 0
+_080E421C: .4byte gUnknown_03004B00
+_080E4220:
+ ldr r0, _080E4230 @ =gUnknown_03004B00
+ strh r1, [r0, 0xE]
+_080E4224:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4230: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4200
+
+ thumb_func_start sub_80E4234
+sub_80E4234: @ 80E4234
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4254 @ =gUnknown_0202F7C8
+ ldr r1, _080E4258 @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E425C @ =gUnknown_0202F7C9
+ ldr r1, _080E4260 @ =gUnknown_02024C0A
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4254: .4byte gUnknown_0202F7C8
+_080E4258: .4byte gUnknown_02024C08
+_080E425C: .4byte gUnknown_0202F7C9
+_080E4260: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E4234
+
+ thumb_func_start sub_80E4264
+sub_80E4264: @ 80E4264
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E428C @ =gUnknown_0202F7C8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r0, _080E4290 @ =gUnknown_0202F7C9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080E4298
+ ldr r1, _080E4294 @ =gUnknown_03004B00
+ movs r0, 0x1
+ b _080E429C
+ .align 2, 0
+_080E428C: .4byte gUnknown_0202F7C8
+_080E4290: .4byte gUnknown_0202F7C9
+_080E4294: .4byte gUnknown_03004B00
+_080E4298:
+ ldr r1, _080E42AC @ =gUnknown_03004B00
+ movs r0, 0
+_080E429C:
+ strh r0, [r1, 0xE]
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42AC: .4byte gUnknown_03004B00
+ thumb_func_end sub_80E4264
+
+ thumb_func_start sub_80E42B0
+sub_80E42B0: @ 80E42B0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42C8 @ =gUnknown_0202F7C9
+ ldr r1, _080E42CC @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42C8: .4byte gUnknown_0202F7C9
+_080E42CC: .4byte gUnknown_02024C08
+ thumb_func_end sub_80E42B0
+
+ thumb_func_start sub_80E42D0
+sub_80E42D0: @ 80E42D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E42F0 @ =gUnknown_0202F7C8
+ ldr r1, _080E42F4 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r2]
+ ldr r2, _080E42F8 @ =gUnknown_0202F7C9
+ ldr r1, _080E42FC @ =gUnknown_02024C0A
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E42F0: .4byte gUnknown_0202F7C8
+_080E42F4: .4byte gUnknown_02024C07
+_080E42F8: .4byte gUnknown_0202F7C9
+_080E42FC: .4byte gUnknown_02024C0A
+ thumb_func_end sub_80E42D0
+
+ thumb_func_start sub_80E4300
+sub_80E4300: @ 80E4300
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E4318
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _080E434E
+_080E4318:
+ ldr r0, _080E4354 @ =gTasks
+ lsls r3, r4, 2
+ adds r3, r4
+ lsls r3, 3
+ adds r3, r0
+ ldr r1, _080E4358 @ =gUnknown_0202F7C8
+ ldrb r0, [r1]
+ lsls r0, 2
+ ldr r2, _080E435C @ =0x02017800
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ strh r0, [r3, 0x8]
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _080E4360 @ =sub_80E4368
+ str r0, [r3]
+ ldr r1, _080E4364 @ =gUnknown_0202F7B2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_080E434E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4354: .4byte gTasks
+_080E4358: .4byte gUnknown_0202F7C8
+_080E435C: .4byte 0x02017800
+_080E4360: .4byte sub_80E4368
+_080E4364: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_80E4300
+
+ thumb_func_start sub_80E4368
+sub_80E4368: @ 80E4368
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43B0 @ =gUnknown_03004B00
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080E43A8
+ ldr r0, _080E43B4 @ =gUnknown_0202F7C8
+ ldrb r3, [r0]
+ lsls r3, 2
+ ldr r0, _080E43B8 @ =0x02017800
+ adds r3, r0
+ ldr r1, _080E43BC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0
+ bl DestroyTask
+_080E43A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E43B0: .4byte gUnknown_03004B00
+_080E43B4: .4byte gUnknown_0202F7C8
+_080E43B8: .4byte 0x02017800
+_080E43BC: .4byte gTasks
+ thumb_func_end sub_80E4368
+
+ thumb_func_start sub_80E43C0
+sub_80E43C0: @ 80E43C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E43D8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E43E0
+ ldr r0, _080E43DC @ =sub_80E4C34
+ b _080E4408
+ .align 2, 0
+_080E43D8: .4byte gUnknown_020239F8
+_080E43DC: .4byte sub_80E4C34
+_080E43E0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4400
+ ldr r0, _080E43F8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080E4400
+ movs r4, 0x3
+ ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8
+ b _080E4408
+ .align 2, 0
+_080E43F8: .4byte gGameVersion
+_080E43FC: .4byte task00_battle_intro_80BC6C8
+_080E4400:
+ ldr r1, _080E4434 @ =gUnknown_083DB56C
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+_080E4408:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080E4438 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4434: .4byte gUnknown_083DB56C
+_080E4438: .4byte gTasks
+ thumb_func_end sub_80E43C0
+
+ thumb_func_start sub_80E443C
+sub_80E443C: @ 80E443C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _080E4474 @ =gUnknown_030042C0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080E4478 @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _080E447C @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _080E4480 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _080E4484 @ =REG_BLDCNT
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ ldr r2, _080E4488 @ =0x00003f3f
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4474: .4byte gUnknown_030042C0
+_080E4478: .4byte gUnknown_030041B4
+_080E447C: .4byte gUnknown_03004288
+_080E4480: .4byte gUnknown_03004280
+_080E4484: .4byte REG_BLDCNT
+_080E4488: .4byte 0x00003f3f
+ thumb_func_end sub_80E443C
+
+ thumb_func_start task_battle_intro_80BC47C
+task_battle_intro_80BC47C: @ 80E448C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E44C4 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+ strh r0, [r1]
+ ldr r1, _080E44C8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x4
+ bls _080E44B8
+ b _080E46BE
+_080E44B8:
+ lsls r0, 2
+ ldr r1, _080E44CC @ =_080E44D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E44C4: .4byte gUnknown_030042C0
+_080E44C8: .4byte gTasks
+_080E44CC: .4byte _080E44D0
+ .align 2, 0
+_080E44D0:
+ .4byte _080E44E4
+ .4byte _080E4514
+ .4byte _080E4540
+ .4byte _080E4588
+ .4byte _080E46B8
+_080E44E4:
+ ldr r0, _080E44FC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4500
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x10
+ b _080E450A
+ .align 2, 0
+_080E44FC: .4byte gUnknown_020239F8
+_080E4500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x1
+_080E450A:
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E46BE
+_080E4514:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r3, r8
+ adds r1, r0, r3
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E452C
+ b _080E46BE
+_080E452C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E453C @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E453C: .4byte REG_WININ
+_080E4540:
+ ldr r1, _080E457C @ =gUnknown_03004240
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4558
+ b _080E46BE
+_080E4558:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4580 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4584 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E46BE
+ .align 2, 0
+_080E457C: .4byte gUnknown_03004240
+_080E4580: .4byte gUnknown_02024DE8
+_080E4584: .4byte 0x0000fffe
+_080E4588:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ mov r5, r8
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r5, 0xE
+ ldrsh r1, [r2, r5]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E45A4
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E45D2
+_080E45A4:
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080E45C4
+ ldr r2, _080E45BC @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E45C0 @ =0x0000ffb0
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x2
+ b _080E45D0
+ .align 2, 0
+_080E45BC: .4byte gUnknown_030041B4
+_080E45C0: .4byte 0x0000ffb0
+_080E45C4:
+ ldr r2, _080E4690 @ =gUnknown_030041B4
+ ldrh r1, [r2]
+ ldr r0, _080E4694 @ =0x0000ffc8
+ cmp r1, r0
+ beq _080E45D2
+ subs r0, r1, 0x1
+_080E45D0:
+ strh r0, [r2]
+_080E45D2:
+ ldr r2, _080E4698 @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E45E6
+ ldr r3, _080E469C @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E45E6:
+ mov r5, r12
+ adds r0, r5, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E45FE
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E45FE:
+ movs r3, 0
+ ldr r5, _080E46A0 @ =gUnknown_03004DC0
+ mov r9, r5
+ ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ mov r6, r9
+ adds r5, r1, 0
+_080E460A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E460A
+ cmp r3, 0x9F
+ bgt _080E464E
+ ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ ldr r6, _080E46A0 @ =gUnknown_03004DC0
+ ldr r1, _080E46A8 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4634:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4634
+_080E464E:
+ mov r3, r12
+ adds r0, r3, r4
+ lsls r0, 3
+ mov r5, r8
+ adds r1, r0, r5
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ bne _080E46BE
+ movs r0, 0x3
+ mov r3, r9
+ strb r0, [r3, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E46AC @ =0x0600e000
+ ldr r2, _080E46B0 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E46B4 @ =REG_BG1CNT
+ movs r5, 0x9C
+ lsls r5, 8
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E46BE
+ .align 2, 0
+_080E4690: .4byte gUnknown_030041B4
+_080E4694: .4byte 0x0000ffc8
+_080E4698: .4byte gUnknown_03004240
+_080E469C: .4byte 0xfffffc04
+_080E46A0: .4byte gUnknown_03004DC0
+_080E46A4: .4byte gUnknown_03004DE0
+_080E46A8: .4byte gTasks
+_080E46AC: .4byte 0x0600e000
+_080E46B0: .4byte 0x05000200
+_080E46B4: .4byte REG_BG1CNT
+_080E46B8:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E46BE:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end task_battle_intro_80BC47C
+
+ thumb_func_start task00_battle_intro_80BC6C8
+task00_battle_intro_80BC6C8: @ 80E46CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080E46F8 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x3
+ beq _080E470C
+ cmp r0, 0x3
+ bgt _080E46FC
+ cmp r0, 0x2
+ beq _080E4700
+ b _080E4714
+ .align 2, 0
+_080E46F8: .4byte gTasks
+_080E46FC:
+ cmp r0, 0x4
+ bne _080E4714
+_080E4700:
+ ldr r1, _080E4708 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x8
+ b _080E4712
+ .align 2, 0
+_080E4708: .4byte gUnknown_030042C0
+_080E470C:
+ ldr r1, _080E4750 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x6
+_080E4712:
+ strh r0, [r1]
+_080E4714:
+ lsls r0, r5, 2
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ adds r6, r0, 0
+ cmp r1, 0x4
+ bne _080E4778
+ ldr r7, _080E4754 @ =gUnknown_030041B4
+ ldrh r0, [r4, 0x14]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080E473A
+ ldr r1, _080E4758 @ =0x000001ff
+ adds r0, r1
+_080E473A:
+ asrs r0, 9
+ subs r0, 0x8
+ strh r0, [r7]
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xB3
+ bgt _080E475C
+ adds r0, r1, 0x4
+ b _080E475E
+ .align 2, 0
+_080E4750: .4byte gUnknown_030042C0
+_080E4754: .4byte gUnknown_030041B4
+_080E4758: .4byte 0x000001ff
+_080E475C:
+ adds r0, r1, 0x6
+_080E475E:
+ strh r0, [r4, 0x14]
+ ldr r2, _080E4794 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r4, 0x14
+ ldrsh r1, [r3, r4]
+ movs r0, 0xB4
+ lsls r0, 1
+ cmp r1, r0
+ bne _080E4778
+ movs r0, 0
+ strh r0, [r3, 0x14]
+_080E4778:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _080E4788
+ b _080E4996
+_080E4788:
+ lsls r0, 2
+ ldr r1, _080E4798 @ =_080E479C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4794: .4byte gTasks
+_080E4798: .4byte _080E479C
+ .align 2, 0
+_080E479C:
+ .4byte _080E47B0
+ .4byte _080E47E0
+ .4byte _080E480C
+ .4byte _080E485C
+ .4byte _080E4990
+_080E47B0:
+ ldr r1, _080E47CC @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x10
+ strh r3, [r2, 0x10]
+ ldr r0, _080E47D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E47D4
+ strh r3, [r2, 0xC]
+ b _080E47D8
+ .align 2, 0
+_080E47CC: .4byte gTasks
+_080E47D0: .4byte gUnknown_020239F8
+_080E47D4:
+ movs r0, 0x1
+ strh r0, [r2, 0xC]
+_080E47D8:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080E4996
+_080E47E0:
+ ldr r0, _080E4804 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E47F6
+ b _080E4996
+_080E47F6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4808 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4804: .4byte gTasks
+_080E4808: .4byte REG_WININ
+_080E480C:
+ ldr r1, _080E484C @ =gUnknown_03004240
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4824
+ b _080E4996
+_080E4824:
+ ldr r0, _080E4850 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4854 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4858 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4996
+ .align 2, 0
+_080E484C: .4byte gUnknown_03004240
+_080E4850: .4byte gTasks
+_080E4854: .4byte gUnknown_02024DE8
+_080E4858: .4byte 0x0000fffe
+_080E485C:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r3, [r1, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _080E4898
+ subs r0, r3, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bne _080E48B8
+ ldr r1, _080E488C @ =REG_BLDCNT
+ ldr r4, _080E4890 @ =0x00001842
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r0, _080E4894 @ =REG_BLDY
+ strh r3, [r0]
+ b _080E48B8
+ .align 2, 0
+_080E488C: .4byte REG_BLDCNT
+_080E4890: .4byte 0x00001842
+_080E4894: .4byte REG_BLDY
+_080E4898:
+ ldrh r3, [r1, 0x10]
+ movs r0, 0x1F
+ ands r0, r3
+ cmp r0, 0
+ beq _080E48B8
+ ldrh r0, [r1, 0x12]
+ subs r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E48B8
+ adds r0, r3, 0
+ adds r0, 0xFF
+ strh r0, [r1, 0x10]
+ movs r0, 0x4
+ strh r0, [r1, 0x12]
+_080E48B8:
+ ldr r3, _080E4970 @ =gUnknown_03004240
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E48CC
+ ldr r4, _080E4974 @ =0xfffffc04
+ adds r0, r1, r4
+ strh r0, [r3]
+_080E48CC:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E48E0
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E48E0:
+ movs r3, 0
+ ldr r4, _080E4978 @ =gUnknown_03004DC0
+ mov r8, r4
+ ldr r0, _080E497C @ =gUnknown_03004DE0
+ mov r12, r0
+ mov r7, r8
+ adds r4, r1, 0
+_080E48EE:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E48EE
+ cmp r3, 0x9F
+ bgt _080E4932
+ ldr r1, _080E497C @ =gUnknown_03004DE0
+ mov r12, r1
+ ldr r7, _080E4978 @ =gUnknown_03004DC0
+ ldr r1, _080E4980 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4918:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4918
+_080E4932:
+ ldr r1, _080E4980 @ =gTasks
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4996
+ movs r0, 0x3
+ mov r4, r8
+ strb r0, [r4, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4984 @ =0x0600e000
+ ldr r2, _080E4988 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E498C @ =REG_BG1CNT
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4996
+ .align 2, 0
+_080E4970: .4byte gUnknown_03004240
+_080E4974: .4byte 0xfffffc04
+_080E4978: .4byte gUnknown_03004DC0
+_080E497C: .4byte gUnknown_03004DE0
+_080E4980: .4byte gTasks
+_080E4984: .4byte 0x0600e000
+_080E4988: .4byte 0x05000200
+_080E498C: .4byte REG_BG1CNT
+_080E4990:
+ adds r0, r5, 0
+ bl sub_80E443C
+_080E4996:
+ ldr r0, _080E49B8 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r4, 0x8
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x4
+ beq _080E49AC
+ ldr r1, _080E49BC @ =REG_BLDALPHA
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E49AC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E49B8: .4byte gTasks
+_080E49BC: .4byte REG_BLDALPHA
+ thumb_func_end task00_battle_intro_80BC6C8
+
+ thumb_func_start task_battle_intro_anim
+task_battle_intro_anim: @ 80E49C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080E49F4 @ =gUnknown_030042C0
+ ldrh r0, [r1]
+ adds r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080E49F8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bls _080E49EA
+ b _080E4C06
+_080E49EA:
+ lsls r0, 2
+ ldr r1, _080E49FC @ =_080E4A00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E49F4: .4byte gUnknown_030042C0
+_080E49F8: .4byte gTasks
+_080E49FC: .4byte _080E4A00
+ .align 2, 0
+_080E4A00:
+ .4byte _080E4A14
+ .4byte _080E4A6C
+ .4byte _080E4A9C
+ .4byte _080E4AEC
+ .4byte _080E4C00
+_080E4A14:
+ ldr r1, _080E4A48 @ =REG_BLDCNT
+ ldr r3, _080E4A4C @ =0x00001842
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080E4A50 @ =REG_BLDALPHA
+ ldr r6, _080E4A54 @ =0x00000808
+ adds r2, r6, 0
+ strh r2, [r0]
+ adds r1, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080E4A58 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ strh r2, [r3, 0x10]
+ ldr r0, _080E4A5C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4A60
+ movs r0, 0x10
+ b _080E4A62
+ .align 2, 0
+_080E4A48: .4byte REG_BLDCNT
+_080E4A4C: .4byte 0x00001842
+_080E4A50: .4byte REG_BLDALPHA
+_080E4A54: .4byte 0x00000808
+_080E4A58: .4byte gTasks
+_080E4A5C: .4byte gUnknown_020239F8
+_080E4A60:
+ movs r0, 0x1
+_080E4A62:
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080E4C06
+_080E4A6C:
+ ldr r0, _080E4A94 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4A84
+ b _080E4C06
+_080E4A84:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4A98 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4A94: .4byte gTasks
+_080E4A98: .4byte REG_WININ
+_080E4A9C:
+ ldr r1, _080E4ADC @ =gUnknown_03004240
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4AB4
+ b _080E4C06
+_080E4AB4:
+ ldr r0, _080E4AE0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ ldr r2, _080E4AE4 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4AE8 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4C06
+ .align 2, 0
+_080E4ADC: .4byte gUnknown_03004240
+_080E4AE0: .4byte gTasks
+_080E4AE4: .4byte gUnknown_02024DE8
+_080E4AE8: .4byte 0x0000fffe
+_080E4AEC:
+ lsls r0, r4, 2
+ adds r1, r0, r4
+ lsls r1, 3
+ adds r2, r1, r5
+ ldrh r3, [r2, 0xE]
+ movs r6, 0xE
+ ldrsh r1, [r2, r6]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E4B06
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ b _080E4B26
+_080E4B06:
+ ldrh r1, [r2, 0x10]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B26
+ ldrh r0, [r2, 0x12]
+ subs r0, 0x1
+ strh r0, [r2, 0x12]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080E4B26
+ adds r0, r1, 0
+ adds r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r0, 0x6
+ strh r0, [r2, 0x12]
+_080E4B26:
+ ldr r2, _080E4BE0 @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4B3A
+ ldr r3, _080E4BE4 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4B3A:
+ mov r6, r12
+ adds r0, r6, r4
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4B50
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4B50:
+ movs r3, 0
+ ldr r6, _080E4BE8 @ =gUnknown_03004DC0
+ mov r8, r6
+ ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ adds r5, r1, 0
+_080E4B5A:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4B5A
+ cmp r3, 0x9F
+ bgt _080E4B9E
+ ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ ldr r6, _080E4BE8 @ =gUnknown_03004DC0
+ ldr r1, _080E4BF0 @ =gTasks
+ mov r2, r12
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r1
+_080E4B84:
+ lsls r2, r3, 1
+ ldrb r1, [r6, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r5, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4B84
+_080E4B9E:
+ ldr r1, _080E4BF0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _080E4C06
+ movs r0, 0x3
+ mov r6, r8
+ strb r0, [r6, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r2, [sp]
+ ldr r1, _080E4BF4 @ =0x0600e000
+ ldr r2, _080E4BF8 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r1, _080E4BFC @ =REG_BG1CNT
+ movs r2, 0x9C
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xBC
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _080E4C06
+ .align 2, 0
+_080E4BE0: .4byte gUnknown_03004240
+_080E4BE4: .4byte 0xfffffc04
+_080E4BE8: .4byte gUnknown_03004DC0
+_080E4BEC: .4byte gUnknown_03004DE0
+_080E4BF0: .4byte gTasks
+_080E4BF4: .4byte 0x0600e000
+_080E4BF8: .4byte 0x05000200
+_080E4BFC: .4byte REG_BG1CNT
+_080E4C00:
+ adds r0, r4, 0
+ bl sub_80E443C
+_080E4C06:
+ ldr r0, _080E4C2C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ cmp r0, 0x4
+ beq _080E4C1E
+ ldr r1, _080E4C30 @ =REG_BLDALPHA
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+_080E4C1E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4C2C: .4byte gTasks
+_080E4C30: .4byte REG_BLDALPHA
+ thumb_func_end task_battle_intro_anim
+
+ thumb_func_start sub_80E4C34
+sub_80E4C34: @ 80E4C34
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080E4C80 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ ble _080E4CAA
+ movs r2, 0x10
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bne _080E4CAA
+ ldr r2, _080E4C84 @ =gUnknown_030042C0
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080E4C72
+ cmp r1, 0x4F
+ bhi _080E4C8C
+_080E4C72:
+ adds r0, r1, 0x3
+ strh r0, [r2]
+ ldr r1, _080E4C88 @ =gUnknown_03004288
+ ldrh r0, [r1]
+ subs r0, 0x3
+ strh r0, [r1]
+ b _080E4CAA
+ .align 2, 0
+_080E4C80: .4byte gTasks
+_080E4C84: .4byte gUnknown_030042C0
+_080E4C88: .4byte gUnknown_03004288
+_080E4C8C:
+ str r5, [sp]
+ ldr r1, _080E4CCC @ =0x0600e000
+ ldr r4, _080E4CD0 @ =0x05000200
+ mov r0, sp
+ adds r2, r4, 0
+ bl CpuSet
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldr r1, _080E4CD4 @ =0x0600f000
+ adds r2, r4, 0
+ bl CpuSet
+ movs r0, 0x1
+ strh r0, [r7, 0x10]
+_080E4CAA:
+ ldr r0, _080E4CD8 @ =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ mov r12, r0
+ adds r5, r2, 0
+ cmp r1, 0x4
+ bls _080E4CC2
+ b _080E4EBA
+_080E4CC2:
+ lsls r0, r1, 2
+ ldr r1, _080E4CDC @ =_080E4CE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E4CCC: .4byte 0x0600e000
+_080E4CD0: .4byte 0x05000200
+_080E4CD4: .4byte 0x0600f000
+_080E4CD8: .4byte gTasks
+_080E4CDC: .4byte _080E4CE0
+ .align 2, 0
+_080E4CE0:
+ .4byte _080E4CF4
+ .4byte _080E4D06
+ .4byte _080E4DA8
+ .4byte _080E4DEC
+ .4byte _080E4EB4
+_080E4CF4:
+ adds r0, r5, r6
+ lsls r0, 3
+ add r0, r12
+ movs r1, 0x10
+ strh r1, [r0, 0xC]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080E4EBA
+_080E4D06:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080E4D1C
+ b _080E4EBA
+_080E4D1C:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r5, _080E4D8C @ =gSprites
+ ldr r4, _080E4D90 @ =0x02000000
+ ldr r3, _080E4D94 @ =0x0001608a
+ adds r6, r4, r3
+ ldrb r0, [r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x8
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r6
+ ldr r3, _080E4D98 @ =sub_800FE20
+ str r3, [r0]
+ ldr r0, _080E4D9C @ =0x0001608b
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r2, r1
+ mov r1, r8
+ orrs r2, r1
+ strb r2, [r0, 0x1]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r3, [r0]
+ ldr r1, _080E4DA0 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E4DA4 @ =0x00003f06
+ b _080E4E94
+ .align 2, 0
+_080E4D8C: .4byte gSprites
+_080E4D90: .4byte 0x02000000
+_080E4D94: .4byte 0x0001608a
+_080E4D98: .4byte sub_800FE20
+_080E4D9C: .4byte 0x0001608b
+_080E4DA0: .4byte REG_WININ
+_080E4DA4: .4byte 0x00003f06
+_080E4DA8:
+ ldr r1, _080E4DE0 @ =gUnknown_03004240
+ ldrh r0, [r1]
+ subs r0, 0xFF
+ strh r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 6
+ cmp r0, r1
+ beq _080E4DC0
+ b _080E4EBA
+_080E4DC0:
+ adds r1, r5, r6
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xF0
+ strh r0, [r1, 0xC]
+ movs r0, 0x20
+ strh r0, [r1, 0xE]
+ ldr r2, _080E4DE4 @ =gUnknown_02024DE8
+ ldrh r1, [r2]
+ ldr r0, _080E4DE8 @ =0x0000fffe
+ ands r0, r1
+ strh r0, [r2]
+ b _080E4EBA
+ .align 2, 0
+_080E4DE0: .4byte gUnknown_03004240
+_080E4DE4: .4byte gUnknown_02024DE8
+_080E4DE8: .4byte 0x0000fffe
+_080E4DEC:
+ ldr r2, _080E4E9C @ =gUnknown_03004240
+ ldrh r1, [r2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E4E00
+ ldr r3, _080E4EA0 @ =0xfffffc04
+ adds r0, r1, r3
+ strh r0, [r2]
+_080E4E00:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080E4E16
+ subs r0, r2, 0x2
+ strh r0, [r1, 0xC]
+_080E4E16:
+ movs r3, 0
+ ldr r0, _080E4EA4 @ =gUnknown_03004DC0
+ mov r9, r0
+ ldr r2, _080E4EA8 @ =gUnknown_03004DE0
+ mov r8, r2
+ mov r7, r9
+ adds r4, r1, 0
+_080E4E24:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x4F
+ ble _080E4E24
+ cmp r3, 0x9F
+ bgt _080E4E68
+ ldr r0, _080E4EA8 @ =gUnknown_03004DE0
+ mov r8, r0
+ ldr r7, _080E4EA4 @ =gUnknown_03004DC0
+ ldr r1, _080E4EAC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r4, r0, r1
+_080E4E4E:
+ lsls r2, r3, 1
+ ldrb r1, [r7, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ add r2, r8
+ ldrh r0, [r4, 0xC]
+ negs r0, r0
+ strh r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x9F
+ ble _080E4E4E
+_080E4E68:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r2, r12
+ adds r1, r0, r2
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080E4EBA
+ movs r0, 0x3
+ mov r2, r9
+ strb r0, [r2, 0x15]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _080E4EB0 @ =REG_BG1CNT
+ movs r3, 0x9C
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xBC
+ lsls r2, 7
+_080E4E94:
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E4EBA
+ .align 2, 0
+_080E4E9C: .4byte gUnknown_03004240
+_080E4EA0: .4byte 0xfffffc04
+_080E4EA4: .4byte gUnknown_03004DC0
+_080E4EA8: .4byte gUnknown_03004DE0
+_080E4EAC: .4byte gTasks
+_080E4EB0: .4byte REG_BG1CNT
+_080E4EB4:
+ adds r0, r6, 0
+ bl sub_80E443C
+_080E4EBA:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E4C34
+
+ thumb_func_start unref_sub_80E4EC8
+unref_sub_80E4EC8: @ 80E4EC8
+ push {r4,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r4, 0x80
+ lsls r4, 7
+ str r4, [sp]
+ movs r4, 0x1E
+ str r4, [sp, 0x4]
+ movs r4, 0x1
+ str r4, [sp, 0x8]
+ bl sub_80E4EF8
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80E4EC8
+
+ thumb_func_start sub_80E4EF8
+sub_80E4EF8: @ 80E4EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r1
+ adds r4, r2, 0
+ ldr r1, [sp, 0x24]
+ mov r8, r1
+ ldr r1, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r7, r9
+ lsls r7, 24
+ adds r0, r7, 0
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ mov r3, r8
+ lsls r3, 16
+ mov r8, r3
+ lsrs r6, r3, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E4FCC @ =0x040000d4
+ ldr r1, _080E4FD0 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, _080E4FD4 @ =gUnknown_02024E84
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 11
+ ldr r0, [r4]
+ adds r0, r1
+ str r0, [r2]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r2, 0x4]
+ ldr r0, _080E4FD8 @ =0x80000400
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ mov r0, r8
+ lsrs r0, 21
+ lsls r5, 9
+ subs r5, r0, r5
+ mov r0, r9
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E4FBC
+ mov r9, r1
+ mov r1, r10
+ lsls r1, 1
+ mov r8, r1
+ lsls r7, 11
+ mov r12, r7
+_080E4F86:
+ mov r2, r10
+ adds r4, r2, 0
+ adds r4, 0x8
+ adds r1, r0, 0x1
+ cmp r2, r4
+ bge _080E4FB6
+ ldr r3, [sp]
+ lsls r6, r3, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ add r0, r12
+ mov r7, r8
+ adds r3, r7, r0
+ subs r2, r4, r2
+_080E4FA6:
+ adds r0, r5, 0
+ orrs r0, r6
+ strh r0, [r3]
+ adds r5, 0x1
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E4FA6
+_080E4FB6:
+ adds r0, r1, 0
+ cmp r0, r9
+ blt _080E4F86
+_080E4FBC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E4FCC: .4byte 0x040000d4
+_080E4FD0: .4byte gUnknown_081FAF4C
+_080E4FD4: .4byte gUnknown_02024E84
+_080E4FD8: .4byte 0x80000400
+ thumb_func_end sub_80E4EF8
+
+ thumb_func_start unref_sub_80E4FDC
+unref_sub_80E4FDC: @ 80E4FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ mov r8, r5
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsls r2, 24
+ lsls r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ mov r7, r8
+ lsls r7, 16
+ lsrs r6, r7, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r9
+ lsls r0, 24
+ mov r9, r0
+ ldr r4, _080E509C @ =0x040000d4
+ ldr r0, _080E50A0 @ =gUnknown_081FAF4C
+ lsrs r2, 22
+ adds r2, r0
+ lsrs r3, 13
+ ldr r0, [r2]
+ adds r0, r3
+ str r0, [r4]
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r6, r0
+ str r6, [r4, 0x4]
+ ldr r0, _080E50A4 @ =0x80000400
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r2, r7, 0
+ lsrs r2, 21
+ mov r6, r9
+ lsrs r6, 15
+ subs r4, r2, r6
+ lsrs r0, r1, 24
+ adds r1, r0, 0
+ adds r1, 0x8
+ cmp r0, r1
+ bge _080E508C
+ mov r9, r1
+ mov r7, r12
+ lsls r7, 1
+ mov r8, r7
+ lsls r5, 11
+ str r5, [sp]
+_080E5054:
+ mov r2, r12
+ adds r3, r2, 0
+ adds r3, 0x8
+ adds r5, r0, 0x1
+ cmp r2, r3
+ bge _080E5086
+ mov r1, r10
+ lsls r6, r1, 12
+ lsls r0, 6
+ movs r7, 0xC0
+ lsls r7, 19
+ adds r0, r7
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r7, r8
+ adds r1, r7, r0
+ subs r2, r3, r2
+_080E5076:
+ adds r0, r4, 0
+ orrs r0, r6
+ strh r0, [r1]
+ adds r4, 0x1
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _080E5076
+_080E5086:
+ adds r0, r5, 0
+ cmp r0, r9
+ blt _080E5054
+_080E508C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E509C: .4byte 0x040000d4
+_080E50A0: .4byte gUnknown_081FAF4C
+_080E50A4: .4byte 0x80000400
+ thumb_func_end unref_sub_80E4FDC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/big_shroomish_barboach.s b/asm/big_shroomish_barboach.s
new file mode 100644
index 000000000..c5fe1bf07
--- /dev/null
+++ b/asm/big_shroomish_barboach.s
@@ -0,0 +1,522 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C58C0
+sub_80C58C0: @ 80C58C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ movs r1, 0
+ bl GetMonData
+ lsls r0, 16
+ str r0, [sp, 0x4]
+ lsrs r0, 16
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x27
+ bl GetMonData
+ adds r7, r0, 0
+ movs r6, 0xF
+ ands r7, r6
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ ands r1, r6
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r9, r0
+ mov r3, r9
+ ands r3, r6
+ mov r9, r3
+ adds r0, r5, 0
+ movs r1, 0x2A
+ bl GetMonData
+ mov r10, r0
+ ands r0, r6
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0x2B
+ bl GetMonData
+ adds r4, r0, 0
+ ands r4, r6
+ adds r0, r5, 0
+ movs r1, 0x2C
+ bl GetMonData
+ adds r2, r0, 0
+ ands r2, r6
+ mov r1, r8
+ mov r3, r9
+ eors r1, r3
+ mov r8, r1
+ mov r0, r8
+ muls r0, r7
+ movs r1, 0xFF
+ ldr r3, [sp]
+ ands r3, r1
+ eors r0, r3
+ eors r4, r2
+ mov r1, r10
+ muls r1, r4
+ ldr r3, [sp, 0x4]
+ lsrs r2, r3, 24
+ eors r1, r2
+ lsls r0, 8
+ adds r0, r1
+ 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_80C58C0
+
+ thumb_func_start sub_80C5964
+sub_80C5964: @ 80C5964
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0x1
+ ldr r3, _080C5980 @ =gUnknown_083D180C
+_080C596E:
+ lsls r0, r1, 3
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _080C5984
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C5990
+ .align 2, 0
+_080C5980: .4byte gUnknown_083D180C
+_080C5984:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080C596E
+ adds r0, r1, 0
+_080C5990:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5964
+
+ thumb_func_start sub_80C5994
+sub_80C5994: @ 80C5994
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, 16
+ lsrs r6, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D54
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ bl sub_80C5964
+ lsls r0, 24
+ ldr r1, _080C5A04 @ =gUnknown_083D180C
+ lsrs r0, 21
+ adds r0, r1
+ ldrh r1, [r0]
+ str r1, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldrb r2, [r0, 0x2]
+ movs r3, 0
+ ldrh r4, [r0, 0x4]
+ movs r5, 0
+ adds r0, r6, 0
+ movs r1, 0
+ subs r0, r4
+ sbcs r1, r5
+ bl __udivdi3
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ adds r2, r0
+ adcs r3, r1
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ bl __muldi3
+ movs r2, 0xA
+ movs r3, 0
+ bl __udivdi3
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5A04: .4byte gUnknown_083D180C
+ thumb_func_end sub_80C5994
+
+ thumb_func_start sub_80C5A08
+sub_80C5A08: @ 80C5A08
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r1, _080C5A78 @ =gUnknown_083D188C
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 1
+ adds r0, r4, 0
+ bl __floatsidf
+ cmp r4, 0
+ bge _080C5A32
+ ldr r2, _080C5A7C @ =0x41f00000
+ ldr r3, _080C5A80 @ =0x00000000
+ bl __adddf3
+_080C5A32:
+ ldr r2, _080C5A84 @ =0x40396666
+ ldr r3, _080C5A88 @ =0x66666666
+ bl __divdf3
+ bl __fixunsdfsi
+ adds r5, r0, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl ConvertIntToDecimalStringN
+ adds r6, r0, 0
+ mov r1, sp
+ bl StringAppend
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r1, r0, 0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5A78: .4byte gUnknown_083D188C
+_080C5A7C: .4byte 0x41f00000
+_080C5A80: .4byte 0x00000000
+_080C5A84: .4byte 0x40396666
+_080C5A88: .4byte 0x66666666
+ thumb_func_end sub_80C5A08
+
+ thumb_func_start sub_80C5A8C
+sub_80C5A8C: @ 80C5A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080C5AA4 @ =gScriptResult
+ ldrh r0, [r1]
+ cmp r0, 0xFF
+ bne _080C5AA8
+ movs r0, 0
+ b _080C5B12
+ .align 2, 0
+_080C5AA4: .4byte gScriptResult
+_080C5AA8:
+ ldrh r1, [r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C5AD0 @ =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080C5ACA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, r6
+ beq _080C5AD4
+_080C5ACA:
+ movs r0, 0x1
+ b _080C5B12
+ .align 2, 0
+_080C5AD0: .4byte gPlayerParty
+_080C5AD4:
+ mov r4, sp
+ adds r0, r5, 0
+ bl sub_80C58C0
+ strh r0, [r4]
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r5, r0, 0
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ bl sub_80C5994
+ adds r4, r0, 0
+ ldr r0, _080C5B0C @ =gStringVar2
+ adds r1, r5, 0
+ bl sub_80C5A08
+ cmp r5, r4
+ bls _080C5B10
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r7]
+ movs r0, 0x3
+ b _080C5B12
+ .align 2, 0
+_080C5B0C: .4byte gStringVar2
+_080C5B10:
+ movs r0, 0x2
+_080C5B12:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5A8C
+
+ thumb_func_start sub_80C5B1C
+sub_80C5B1C: @ 80C5B1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C5994
+ adds r1, r0, 0
+ ldr r0, _080C5B58 @ =gStringVar3
+ bl sub_80C5A08
+ ldr r0, _080C5B5C @ =gStringVar1
+ movs r1, 0xB
+ muls r1, r4
+ ldr r2, _080C5B60 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrh r1, [r5]
+ movs r0, 0x81
+ lsls r0, 8
+ cmp r1, r0
+ bne _080C5B6C
+ ldr r0, _080C5B64 @ =gStringVar2
+ ldr r1, _080C5B68 @ =gOtherText_Marco
+ bl StringCopy
+ b _080C5B74
+ .align 2, 0
+_080C5B58: .4byte gStringVar3
+_080C5B5C: .4byte gStringVar1
+_080C5B60: .4byte gSpeciesNames
+_080C5B64: .4byte gStringVar2
+_080C5B68: .4byte gOtherText_Marco
+_080C5B6C:
+ ldr r0, _080C5B7C @ =gStringVar2
+ ldr r1, _080C5B80 @ =gSaveBlock2
+ bl StringCopy
+_080C5B74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B7C: .4byte gStringVar2
+_080C5B80: .4byte gSaveBlock2
+ thumb_func_end sub_80C5B1C
+
+ thumb_func_start sub_80C5B84
+sub_80C5B84: @ 80C5B84
+ push {lr}
+ ldr r0, _080C5B94 @ =0x00004047
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5B94: .4byte 0x00004047
+ thumb_func_end sub_80C5B84
+
+ thumb_func_start sub_80C5B98
+sub_80C5B98: @ 80C5B98
+ push {lr}
+ ldr r0, _080C5BB0 @ =0x00004047
+ bl GetVarPointer
+ adds r1, r0, 0
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BB0: .4byte 0x00004047
+ thumb_func_end sub_80C5B98
+
+ thumb_func_start sub_80C5BB4
+sub_80C5BB4: @ 80C5BB4
+ push {r4,lr}
+ ldr r0, _080C5BD4 @ =0x00004047
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5BD8 @ =gScriptResult
+ movs r0, 0x99
+ lsls r0, 1
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BD4: .4byte 0x00004047
+_080C5BD8: .4byte gScriptResult
+ thumb_func_end sub_80C5BB4
+
+ thumb_func_start sub_80C5BDC
+sub_80C5BDC: @ 80C5BDC
+ push {lr}
+ ldr r0, _080C5BEC @ =0x0000404f
+ movs r1, 0x81
+ lsls r1, 8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5BEC: .4byte 0x0000404f
+ thumb_func_end sub_80C5BDC
+
+ thumb_func_start sub_80C5BF0
+sub_80C5BF0: @ 80C5BF0
+ push {lr}
+ ldr r0, _080C5C04 @ =0x0000404f
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r0, _080C5C08 @ =0x00000143
+ bl sub_80C5B1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C04: .4byte 0x0000404f
+_080C5C08: .4byte 0x00000143
+ thumb_func_end sub_80C5BF0
+
+ thumb_func_start sub_80C5C0C
+sub_80C5C0C: @ 80C5C0C
+ push {r4,lr}
+ ldr r0, _080C5C2C @ =0x0000404f
+ bl GetVarPointer
+ adds r1, r0, 0
+ ldr r4, _080C5C30 @ =gScriptResult
+ ldr r0, _080C5C34 @ =0x00000143
+ bl sub_80C5A8C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5C2C: .4byte 0x0000404f
+_080C5C30: .4byte gScriptResult
+_080C5C34: .4byte 0x00000143
+ thumb_func_end sub_80C5C0C
+
+ thumb_func_start sub_80C5C38
+sub_80C5C38: @ 80C5C38
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r7, 0
+ add r4, sp, 0x8
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080C5CC0 @ =gUnknown_083D188E
+ mov r0, sp
+ movs r2, 0x7
+ bl memcpy
+ mov r8, r4
+ cmp r6, 0xA
+ bhi _080C5CB2
+ cmp r5, 0x40
+ bhi _080C5CB2
+ ldr r0, _080C5CC4 @ =gSaveBlock1
+ ldr r1, _080C5CC8 @ =0x00003110
+ adds r0, r1
+ adds r0, r6, r0
+ strb r5, [r0]
+ movs r5, 0
+_080C5C70:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C5CCC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C5CA2
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5CA2
+ mov r1, sp
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r8
+ bl SetMonData
+ movs r7, 0x1
+_080C5CA2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C5C70
+ cmp r7, 0
+ beq _080C5CB2
+ ldr r0, _080C5CD0 @ =0x0000083b
+ bl FlagSet
+_080C5CB2:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5CC0: .4byte gUnknown_083D188E
+_080C5CC4: .4byte gSaveBlock1
+_080C5CC8: .4byte 0x00003110
+_080C5CCC: .4byte gPlayerParty
+_080C5CD0: .4byte 0x0000083b
+ thumb_func_end sub_80C5C38
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bike.s b/asm/bike.s
new file mode 100644
index 000000000..4b324c111
--- /dev/null
+++ b/asm/bike.s
@@ -0,0 +1,2211 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start MovePlayerOnBike
+MovePlayerOnBike: @ 80E50A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _080E50CC @ =gPlayerAvatar
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E50D0
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnMachBike
+ b _080E50D8
+ .align 2, 0
+_080E50CC: .4byte gPlayerAvatar
+_080E50D0:
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl MovePlayerOnAcroBike
+_080E50D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end MovePlayerOnBike
+
+ thumb_func_start MovePlayerOnMachBike
+MovePlayerOnMachBike: @ 80E50E0
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ strb r0, [r1]
+ ldr r4, _080E510C @ =gUnknown_083DB594
+ mov r0, sp
+ bl CheckMovementInputMachBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E510C: .4byte gUnknown_083DB594
+ thumb_func_end MovePlayerOnMachBike
+
+ thumb_func_start CheckMovementInputMachBike
+CheckMovementInputMachBike: @ 80E5110
+ push {r4,lr}
+ adds r4, r0, 0
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5138
+ strb r0, [r4]
+ ldr r2, _080E5134 @ =gPlayerAvatar
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E514C
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E5160
+ .align 2, 0
+_080E5134: .4byte gPlayerAvatar
+_080E5138:
+ ldr r2, _080E5154 @ =gPlayerAvatar
+ cmp r1, r3
+ beq _080E515C
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x2
+ beq _080E515C
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _080E5158
+ strb r3, [r4]
+_080E514C:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ movs r0, 0x3
+ b _080E5160
+ .align 2, 0
+_080E5154: .4byte gPlayerAvatar
+_080E5158:
+ movs r0, 0x1
+ b _080E515E
+_080E515C:
+ movs r0, 0x2
+_080E515E:
+ strb r0, [r2, 0x2]
+_080E5160:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputMachBike
+
+ thumb_func_start sub_80E5168
+sub_80E5168: @ 80E5168
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ bl sub_80E6024
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5168
+
+ thumb_func_start sub_80E517C
+sub_80E517C: @ 80E517C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080E51AC @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51B0 @ =gMapObjects
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E51B4
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ bl sub_80E6024
+ b _080E51BE
+ .align 2, 0
+_080E51AC: .4byte gPlayerAvatar
+_080E51B0: .4byte gMapObjects
+_080E51B4:
+ ldrb r0, [r4, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ bl sub_80E5168
+_080E51BE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E517C
+
+ thumb_func_start sub_80E51C4
+sub_80E51C4: @ 80E51C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ ldr r6, _080E51F8 @ =gPlayerAvatar
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E51FC @ =gMapObjects
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E520A
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5200
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5270
+ b _080E5266
+ .align 2, 0
+_080E51F8: .4byte gPlayerAvatar
+_080E51FC: .4byte gMapObjects
+_080E5200:
+ ldrb r0, [r4, 0x18]
+ lsrs r0, 4
+ bl sub_80E5168
+ b _080E5266
+_080E520A:
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5242
+ cmp r4, 0x6
+ bne _080E522C
+ adds r0, r5, 0
+ bl PlayerJumpLedge
+ b _080E5266
+_080E522C:
+ bl sub_80E6024
+ subs r0, r4, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5266
+ adds r0, r5, 0
+ bl PlayerOnBikeCollide
+ b _080E5266
+_080E5242:
+ ldr r1, _080E526C @ =gUnknown_083DB5A4
+ ldrb r0, [r6, 0xA]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl _call_via_r1
+ ldrb r2, [r6, 0xA]
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ lsrs r0, 25
+ adds r0, r2, r0
+ strb r0, [r6, 0xB]
+ cmp r1, 0x1
+ bhi _080E5266
+ adds r0, r2, 0x1
+ strb r0, [r6, 0xA]
+_080E5266:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E526C: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E51C4
+
+ thumb_func_start sub_80E5270
+sub_80E5270: @ 80E5270
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ ldr r6, _080E52A8 @ =gPlayerAvatar
+ ldrb r0, [r6, 0xB]
+ cmp r0, 0
+ beq _080E5286
+ subs r0, 0x1
+ strb r0, [r6, 0xB]
+ strb r0, [r6, 0xA]
+_080E5286:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E52C2
+ cmp r5, 0x6
+ bne _080E52AC
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E52D2
+ .align 2, 0
+_080E52A8: .4byte gPlayerAvatar
+_080E52AC:
+ bl sub_80E6024
+ subs r0, r5, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E52D2
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E52D2
+_080E52C2:
+ ldr r0, _080E52D8 @ =gUnknown_083DB5A4
+ ldrb r1, [r6, 0xA]
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r7, 0
+ bl _call_via_r1
+_080E52D2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E52D8: .4byte gUnknown_083DB5A4
+ thumb_func_end sub_80E5270
+
+ thumb_func_start MovePlayerOnAcroBike
+MovePlayerOnAcroBike: @ 80E52DC
+ push {r4,lr}
+ sub sp, 0x4
+ mov r3, sp
+ strb r0, [r3]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5310 @ =gUnknown_083DB5B0
+ mov r0, sp
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ mov r1, sp
+ ldrb r1, [r1]
+ ldr r2, [r0]
+ adds r0, r1, 0
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5310: .4byte gUnknown_083DB5B0
+ thumb_func_end MovePlayerOnAcroBike
+
+ thumb_func_start CheckMovementInputAcroBike
+CheckMovementInputAcroBike: @ 80E5314
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E5338 @ =gUnknown_083DB5E4
+ ldr r3, _080E533C @ =gPlayerAvatar
+ ldrb r3, [r3, 0x8]
+ lsls r3, 2
+ adds r3, r4
+ ldr r3, [r3]
+ bl _call_via_r3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5338: .4byte gUnknown_083DB5E4
+_080E533C: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBike
+
+ thumb_func_start CheckMovementInputAcroBikeNormal
+CheckMovementInputAcroBikeNormal: @ 80E5340
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080E5374 @ =gPlayerAvatar
+ movs r0, 0
+ strb r0, [r2, 0xA]
+ ldrb r1, [r4]
+ cmp r1, 0
+ bne _080E5380
+ movs r0, 0x2
+ ands r0, r6
+ cmp r0, 0
+ beq _080E5378
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0x2
+ strb r0, [r2, 0x8]
+ movs r0, 0x3
+ b _080E53D4
+ .align 2, 0
+_080E5374: .4byte gPlayerAvatar
+_080E5378:
+ strb r3, [r4]
+ strb r1, [r2, 0x2]
+ movs r0, 0
+ b _080E53D4
+_080E5380:
+ cmp r1, r3
+ bne _080E53A6
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080E539E
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _080E539E
+ adds r0, 0x1
+ strb r0, [r2, 0xB]
+ movs r0, 0x4
+ strb r0, [r2, 0x8]
+ movs r0, 0xB
+ b _080E53D4
+_080E539E:
+ ldrb r0, [r4]
+ ldr r2, _080E53CC @ =gPlayerAvatar
+ cmp r0, r3
+ beq _080E53D0
+_080E53A6:
+ ldr r0, _080E53CC @ =gPlayerAvatar
+ ldrb r1, [r0, 0x2]
+ adds r2, r0, 0
+ cmp r1, 0x2
+ beq _080E53D0
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ ldrb r0, [r4]
+ strb r0, [r2, 0x9]
+ strb r1, [r2, 0x2]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E53D4
+ .align 2, 0
+_080E53CC: .4byte gPlayerAvatar
+_080E53D0:
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+_080E53D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeNormal
+
+ thumb_func_start CheckMovementInputAcroBikeChangingDirection
+CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _080E5404 @ =gPlayerAvatar
+ ldrb r0, [r4, 0x9]
+ strb r0, [r5]
+ ldrb r0, [r4, 0xA]
+ adds r0, 0x1
+ strb r0, [r4, 0xA]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _080E5408
+ movs r0, 0x1
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ strb r0, [r4, 0x8]
+ bl sub_80E6024
+ movs r0, 0x1
+ b _080E544E
+ .align 2, 0
+_080E5404: .4byte gPlayerAvatar
+_080E5408:
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_80E5C2C
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E544A
+ bl sub_80E6024
+ movs r0, 0x1
+ strb r0, [r4, 0xB]
+ adds r0, r6, 0
+ bl GetOppositeDirection
+ ldrb r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _080E543E
+ movs r0, 0x6
+ strb r0, [r4, 0x8]
+ movs r0, 0x9
+ b _080E544E
+_080E543E:
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ strb r0, [r4, 0x8]
+ movs r0, 0x8
+ b _080E544E
+_080E544A:
+ strb r6, [r5]
+ movs r0, 0
+_080E544E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeChangingDirection
+
+ thumb_func_start CheckMovementInputAcroBikeStandingWheelie
+CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r4, r2, 16
+ lsrs r4, 16
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _080E54A0 @ =gPlayerAvatar
+ ldrb r1, [r5, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E54A4 @ =gMapObjects
+ adds r1, r0, r1
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ movs r0, 0x2
+ ands r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0
+ bne _080E54A8
+ strb r4, [r5, 0xA]
+ ldrb r0, [r1, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080E54AE
+ strb r6, [r7]
+ strb r0, [r5, 0x8]
+ bl sub_80E6024
+ movs r0, 0x4
+ b _080E54EC
+ .align 2, 0
+_080E54A0: .4byte gPlayerAvatar
+_080E54A4: .4byte gMapObjects
+_080E54A8:
+ ldrb r0, [r5, 0xA]
+ adds r0, 0x1
+ strb r0, [r5, 0xA]
+_080E54AE:
+ ldr r1, _080E54C4 @ =gPlayerAvatar
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0x27
+ bls _080E54C8
+ strb r6, [r7]
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0x6
+ b _080E54EC
+ .align 2, 0
+_080E54C4: .4byte gPlayerAvatar
+_080E54C8:
+ ldrb r0, [r7]
+ cmp r0, r6
+ bne _080E54DE
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ bl sub_80E6024
+ movs r0, 0xA
+ b _080E54EC
+_080E54DE:
+ cmp r0, 0
+ beq _080E54E8
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ b _080E54EA
+_080E54E8:
+ strb r6, [r7]
+_080E54EA:
+ movs r0, 0x5
+_080E54EC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckMovementInputAcroBikeStandingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeBunnyHop
+CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E5554 @ =gPlayerAvatar
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5558 @ =gMapObjects
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5566
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080E555C
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E558A
+ .align 2, 0
+_080E5554: .4byte gPlayerAvatar
+_080E5558: .4byte gMapObjects
+_080E555C:
+ strb r5, [r6]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x8]
+ movs r0, 0x4
+ b _080E558A
+_080E5566:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5570
+ strb r5, [r6]
+ b _080E557C
+_080E5570:
+ cmp r0, r2
+ beq _080E5582
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5582
+ movs r0, 0x1
+_080E557C:
+ strb r0, [r4, 0x2]
+ movs r0, 0x6
+ b _080E558A
+_080E5582:
+ ldr r1, _080E5598 @ =gPlayerAvatar
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x7
+_080E558A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5598: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeBunnyHop
+
+ thumb_func_start CheckMovementInputAcroBikeMovingWheelie
+CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r4, _080E55F8 @ =gPlayerAvatar
+ ldrb r1, [r4, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E55FC @ =gMapObjects
+ adds r7, r0, r1
+ movs r0, 0x2
+ mov r9, r0
+ movs r0, 0x2
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5634
+ bl sub_80E6024
+ ldrb r0, [r7, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080E5620
+ strb r1, [r4, 0x8]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E5600
+ strb r5, [r6]
+ b _080E560A
+ .align 2, 0
+_080E55F8: .4byte gPlayerAvatar
+_080E55FC: .4byte gMapObjects
+_080E5600:
+ cmp r0, r5
+ beq _080E5610
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E5610
+_080E560A:
+ strb r1, [r4, 0x2]
+ movs r0, 0x4
+ b _080E5664
+_080E5610:
+ ldr r1, _080E561C @ =gPlayerAvatar
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xC
+ b _080E5664
+ .align 2, 0
+_080E561C: .4byte gPlayerAvatar
+_080E5620:
+ mov r0, r9
+ strb r0, [r4, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ b _080E5664
+_080E5634:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080E564A
+ strb r5, [r6]
+ mov r1, r9
+ strb r1, [r4, 0x8]
+ strb r0, [r4, 0x2]
+ bl sub_80E6024
+ movs r0, 0x5
+ b _080E5664
+_080E564A:
+ cmp r2, r0
+ beq _080E565C
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ beq _080E565C
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ movs r0, 0x5
+ b _080E5664
+_080E565C:
+ ldr r1, _080E5674 @ =gPlayerAvatar
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xA
+_080E5664:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5674: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeMovingWheelie
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode5
+CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r6, _080E56CC @ =gPlayerAvatar
+ ldrb r1, [r6, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E56D0 @ =gMapObjects
+ adds r0, r1
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x1]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 28
+ lsrs r1, 28
+ bl FieldObjectSetDirection
+ movs r0, 0
+ strb r0, [r6, 0x8]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56CC: .4byte gPlayerAvatar
+_080E56D0: .4byte gMapObjects
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode5
+
+ thumb_func_start CheckMovementInputAcroBikeUnknownMode6
+CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080E56F4 @ =gPlayerAvatar
+ movs r3, 0
+ strb r3, [r4, 0x8]
+ bl CheckMovementInputAcroBike
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E56F4: .4byte gPlayerAvatar
+ thumb_func_end CheckMovementInputAcroBikeUnknownMode6
+
+ thumb_func_start sub_80E56F8
+sub_80E56F8: @ 80E56F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl PlayerFaceDirection
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E56F8
+
+ thumb_func_start sub_80E5708
+sub_80E5708: @ 80E5708
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E573C @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5740 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E572E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E572E:
+ adds r0, r4, 0
+ bl PlayerFaceDirection
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E573C: .4byte gPlayerAvatar
+_080E5740: .4byte gMapObjects
+ thumb_func_end sub_80E5708
+
+ thumb_func_start sub_80E5744
+sub_80E5744: @ 80E5744
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5774 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5778 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E577C
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E56F8
+ b _080E57B6
+ .align 2, 0
+_080E5774: .4byte gPlayerAvatar
+_080E5778: .4byte gMapObjects
+_080E577C:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E57B0
+ cmp r1, 0x6
+ bne _080E579E
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E57B6
+_080E579E:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E57B6
+ adds r0, r4, 0
+ bl PlayerOnBikeCollide
+ b _080E57B6
+_080E57B0:
+ adds r0, r6, 0
+ bl npc_use_some_d2s
+_080E57B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5744
+
+ thumb_func_start sub_80E57BC
+sub_80E57BC: @ 80E57BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E57F0 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E57F4 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E57E2
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E57E2:
+ adds r0, r4, 0
+ bl sub_805951C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E57F0: .4byte gPlayerAvatar
+_080E57F4: .4byte gMapObjects
+ thumb_func_end sub_80E57BC
+
+ thumb_func_start sub_80E57F8
+sub_80E57F8: @ 80E57F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E582C @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5830 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E581E
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E581E:
+ adds r0, r4, 0
+ bl sub_8059534
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E582C: .4byte gPlayerAvatar
+_080E5830: .4byte gMapObjects
+ thumb_func_end sub_80E57F8
+
+ thumb_func_start sub_80E5834
+sub_80E5834: @ 80E5834
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E5868 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E586C @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E585A
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E585A:
+ adds r0, r4, 0
+ bl sub_8059504
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5868: .4byte gPlayerAvatar
+_080E586C: .4byte gMapObjects
+ thumb_func_end sub_80E5834
+
+ thumb_func_start sub_80E5870
+sub_80E5870: @ 80E5870
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58A4 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58A8 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5896
+ ldrb r0, [r5, 0x18]
+ lsrs r4, r0, 4
+_080E5896:
+ adds r0, r4, 0
+ bl sub_805954C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E58A4: .4byte gPlayerAvatar
+_080E58A8: .4byte gMapObjects
+ thumb_func_end sub_80E5870
+
+ thumb_func_start sub_80E58AC
+sub_80E58AC: @ 80E58AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E58D8 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E58DC @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E58E0
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_80E5870
+ b _080E591A
+ .align 2, 0
+_080E58D8: .4byte gPlayerAvatar
+_080E58DC: .4byte gMapObjects
+_080E58E0:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _080E5914
+ cmp r1, 0x9
+ beq _080E5914
+ cmp r1, 0x6
+ bne _080E58FE
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E591A
+_080E58FE:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E591A
+ cmp r1, 0xB
+ bhi _080E5914
+ adds r0, r4, 0
+ bl sub_80E5870
+ b _080E591A
+_080E5914:
+ adds r0, r4, 0
+ bl sub_8059570
+_080E591A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E58AC
+
+ thumb_func_start sub_80E5920
+sub_80E5920: @ 80E5920
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _080E5954
+ cmp r0, 0x7
+ beq _080E5980
+ cmp r0, 0x9
+ bls _080E594C
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl sub_80E5EC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5954
+_080E594C:
+ adds r0, r5, 0
+ bl sub_80E5708
+ b _080E5980
+_080E5954:
+ ldr r0, _080E5988 @ =gPlayerAvatar
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E598C @ =gMapObjects
+ adds r4, r0
+ movs r0, 0x22
+ bl PlaySE
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ bl sub_80608A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl player_npc_set_state_and_x22_etc
+_080E5980:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5988: .4byte gPlayerAvatar
+_080E598C: .4byte gMapObjects
+ thumb_func_end sub_80E5920
+
+ thumb_func_start sub_80E5990
+sub_80E5990: @ 80E5990
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80595B8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5990
+
+ thumb_func_start sub_80E59A0
+sub_80E59A0: @ 80E59A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E59D0 @ =gPlayerAvatar
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E59D4 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E59D8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059504
+ b _080E5A28
+ .align 2, 0
+_080E59D0: .4byte gPlayerAvatar
+_080E59D4: .4byte gMapObjects
+_080E59D8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5A1E
+ cmp r1, 0x6
+ bne _080E59FA
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5A28
+_080E59FA:
+ cmp r1, 0x9
+ beq _080E5A0E
+ cmp r1, 0x4
+ bhi _080E5A28
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5A16
+_080E5A0E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5A28
+_080E5A16:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5A28
+_080E5A1E:
+ adds r0, r6, 0
+ bl sub_8059618
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5A28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E59A0
+
+ thumb_func_start sub_80E5A30
+sub_80E5A30: @ 80E5A30
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r7, _080E5A60 @ =gPlayerAvatar
+ ldrb r1, [r7, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5A64 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5A68
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_805951C
+ b _080E5AB8
+ .align 2, 0
+_080E5A60: .4byte gPlayerAvatar
+_080E5A64: .4byte gMapObjects
+_080E5A68:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5AAE
+ cmp r1, 0x6
+ bne _080E5A8A
+ adds r0, r4, 0
+ bl sub_8059594
+ b _080E5AB8
+_080E5A8A:
+ cmp r1, 0x9
+ beq _080E5A9E
+ cmp r1, 0x4
+ bhi _080E5AB8
+ ldrb r0, [r5, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5AA6
+_080E5A9E:
+ adds r0, r4, 0
+ bl sub_8059504
+ b _080E5AB8
+_080E5AA6:
+ adds r0, r4, 0
+ bl sub_80595DC
+ b _080E5AB8
+_080E5AAE:
+ adds r0, r6, 0
+ bl sub_8059600
+ movs r0, 0x2
+ strb r0, [r7, 0x2]
+_080E5AB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5A30
+
+ thumb_func_start sub_80E5AC0
+sub_80E5AC0: @ 80E5AC0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r0, _080E5AF0 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E5AF4 @ =gMapObjects
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x1E]
+ adds r0, r4, 0
+ bl sub_80E5E70
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5AF8
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ bl sub_8059534
+ b _080E5B32
+ .align 2, 0
+_080E5AF0: .4byte gPlayerAvatar
+_080E5AF4: .4byte gMapObjects
+_080E5AF8:
+ adds r0, r4, 0
+ bl sub_80E5D34
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0xA
+ bhi _080E5B2C
+ cmp r1, 0x6
+ bne _080E5B1A
+ adds r0, r4, 0
+ bl PlayerJumpLedge
+ b _080E5B32
+_080E5B1A:
+ subs r0, r1, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080E5B32
+ adds r0, r4, 0
+ bl sub_8059534
+ b _080E5B32
+_080E5B2C:
+ adds r0, r6, 0
+ bl sub_8059630
+_080E5B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5AC0
+
+ thumb_func_start sub_80E5B38
+sub_80E5B38: @ 80E5B38
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r0, _080E5B5C @ =gPlayerAvatar
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5B56
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_80E5B60
+_080E5B56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5B5C: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5B38
+
+ thumb_func_start sub_80E5B60
+sub_80E5B60: @ 80E5B60
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r5, 0
+ bl sub_80E5CF4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r4, _080E5B88 @ =gPlayerAvatar
+ ldr r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5B8C
+ ldrb r0, [r4, 0x14]
+ cmp r0, 0xFE
+ bhi _080E5B96
+ adds r0, 0x1
+ strb r0, [r4, 0x14]
+ b _080E5B96
+ .align 2, 0
+_080E5B88: .4byte gPlayerAvatar
+_080E5B8C:
+ adds r0, r2, 0
+ bl sub_80E5C7C
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5B96:
+ movs r0, 0xF
+ adds r2, r5, 0
+ ands r2, r0
+ ldr r4, _080E5BB4 @ =gPlayerAvatar
+ ldr r0, [r4, 0x10]
+ movs r1, 0xF
+ ands r0, r1
+ cmp r2, r0
+ bne _080E5BB8
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0xFE
+ bhi _080E5BC2
+ adds r0, 0x1
+ strb r0, [r4, 0x1C]
+ b _080E5BC2
+ .align 2, 0
+_080E5BB4: .4byte gPlayerAvatar
+_080E5BB8:
+ adds r0, r2, 0
+ bl sub_80E5CB8
+ movs r0, 0
+ strb r0, [r4, 0xB]
+_080E5BC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E5B60
+
+ thumb_func_start sub_80E5BC8
+sub_80E5BC8: @ 80E5BC8
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r2, 0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080E5BF2
+ ldr r5, _080E5C0C @ =gUnknown_0202E86C
+_080E5BD8:
+ adds r0, r2, r5
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _080E5C08
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BD8
+_080E5BF2:
+ movs r2, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080E5C22
+ ldr r3, _080E5C10 @ =gUnknown_0202E874
+_080E5BFC:
+ adds r0, r2, r3
+ adds r1, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080E5C14
+_080E5C08:
+ movs r0, 0
+ b _080E5C24
+ .align 2, 0
+_080E5C0C: .4byte gUnknown_0202E86C
+_080E5C10: .4byte gUnknown_0202E874
+_080E5C14:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E5BFC
+_080E5C22:
+ movs r0, 0x1
+_080E5C24:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5BC8
+
+ thumb_func_start sub_80E5C2C
+sub_80E5C2C: @ 80E5C2C
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_080E5C32:
+ ldr r0, _080E5C64 @ =gUnknown_083DB608
+ adds r4, r5, r0
+ ldr r0, _080E5C68 @ =gPlayerAvatar
+ ldr r1, [r0, 0xC]
+ ldr r2, [r0, 0x10]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ ldr r0, [r4, 0xC]
+ ands r2, r0
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x4]
+ cmp r2, r0
+ bne _080E5C6C
+ ldr r0, [r4, 0x10]
+ ldr r1, [r4, 0x14]
+ bl sub_80E5BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5C6C
+ ldrb r0, [r4, 0x18]
+ b _080E5C76
+ .align 2, 0
+_080E5C64: .4byte gUnknown_083DB608
+_080E5C68: .4byte gPlayerAvatar
+_080E5C6C:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ bls _080E5C32
+ movs r0, 0
+_080E5C76:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5C2C
+
+ thumb_func_start sub_80E5C7C
+sub_80E5C7C: @ 80E5C7C
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CB4 @ =gPlayerAvatar
+ ldr r2, [r3, 0xC]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0xC]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x14
+_080E5C98:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5C98
+ movs r0, 0x1
+ strb r0, [r4, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CB4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5C7C
+
+ thumb_func_start sub_80E5CB8
+sub_80E5CB8: @ 80E5CB8
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, _080E5CF0 @ =gPlayerAvatar
+ ldr r2, [r3, 0x10]
+ lsls r2, 4
+ movs r1, 0xF0
+ lsls r1, 20
+ ands r1, r0
+ lsrs r1, 24
+ orrs r2, r1
+ str r2, [r3, 0x10]
+ movs r1, 0x7
+ adds r4, r3, 0
+ adds r3, 0x1C
+_080E5CD4:
+ adds r2, r1, r3
+ subs r1, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ bne _080E5CD4
+ movs r0, 0x1
+ strb r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5CF0: .4byte gPlayerAvatar
+ thumb_func_end sub_80E5CB8
+
+ thumb_func_start sub_80E5CF4
+sub_80E5CF4: @ 80E5CF4
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D08
+ movs r0, 0x2
+ b _080E5D2E
+_080E5D08:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D14
+ movs r0, 0x1
+ b _080E5D2E
+_080E5D14:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5D20
+ movs r0, 0x3
+ b _080E5D2E
+_080E5D20:
+ movs r0, 0x10
+ ands r2, r0
+ cmp r2, 0
+ bne _080E5D2C
+ movs r0, 0
+ b _080E5D2E
+_080E5D2C:
+ movs r0, 0x4
+_080E5D2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5CF4
+
+ thumb_func_start sub_80E5D34
+sub_80E5D34: @ 80E5D34
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _080E5D98 @ =gPlayerAvatar
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080E5D9C @ =gMapObjects
+ adds r4, r0
+ ldrh r1, [r4, 0x10]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldrh r0, [r4, 0x12]
+ mov r5, sp
+ adds r5, 0x6
+ strh r0, [r5]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ bl MoveCoords
+ add r0, sp, 0x4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ add r1, sp, 0x4
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_80E5DA0
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E5D98: .4byte gPlayerAvatar
+_080E5D9C: .4byte gMapObjects
+ thumb_func_end sub_80E5D34
+
+ thumb_func_start sub_80E5DA0
+sub_80E5DA0: @ 80E5DA0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ str r5, [sp]
+ bl CheckForFieldObjectCollision
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _080E5DE0
+ cmp r4, 0
+ bne _080E5DDC
+ adds r0, r5, 0
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5DD8
+ movs r4, 0x2
+_080E5DD8:
+ cmp r4, 0
+ beq _080E5DE0
+_080E5DDC:
+ bl sub_80E5E4C
+_080E5DE0:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DA0
+
+ thumb_func_start sub_80E5DEC
+sub_80E5DEC: @ 80E5DEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E04
+ ldr r0, _080E5E08 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x8
+ bne _080E5E0C
+_080E5E04:
+ movs r0, 0x1
+ b _080E5E0E
+ .align 2, 0
+_080E5E08: .4byte gMapHeader
+_080E5E0C:
+ movs r0, 0
+_080E5E0E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5DEC
+
+ thumb_func_start IsRunningDisallowedByMetatile
+IsRunningDisallowedByMetatile: @ 80E5E14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsRunningDisallowed
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5E3E
+ adds r0, r4, 0
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5E42
+ bl PlayerGetZCoord
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080E5E42
+_080E5E3E:
+ movs r0, 0x1
+ b _080E5E44
+_080E5E42:
+ movs r0, 0
+_080E5E44:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end IsRunningDisallowedByMetatile
+
+ thumb_func_start sub_80E5E4C
+sub_80E5E4C: @ 80E5E4C
+ push {lr}
+ ldr r0, _080E5E68 @ =gUnknown_02039250
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E5E62
+ ldr r1, _080E5E6C @ =gUnknown_02039251
+ ldrb r0, [r1]
+ cmp r0, 0x63
+ bhi _080E5E62
+ adds r0, 0x1
+ strb r0, [r1]
+_080E5E62:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5E68: .4byte gUnknown_02039250
+_080E5E6C: .4byte gUnknown_02039251
+ thumb_func_end sub_80E5E4C
+
+ thumb_func_start sub_80E5E70
+sub_80E5E70: @ 80E5E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ movs r1, 0xFD
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080E5E9A
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ b _080E5EAC
+_080E5E9A:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5EB2
+ adds r0, r5, 0
+ bl MetatileBehavior_IsHorizontalRail
+_080E5EAC:
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5EB6
+_080E5EB2:
+ movs r0, 0
+ b _080E5EB8
+_080E5EB6:
+ movs r0, 0x1
+_080E5EB8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5E70
+
+ thumb_func_start sub_80E5EC0
+sub_80E5EC0: @ 80E5EC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 24
+ movs r3, 0xFF
+ lsls r3, 24
+ adds r1, r3
+ lsrs r1, 24
+ cmp r1, 0x1
+ bhi _080E5EE0
+ cmp r0, 0xA
+ beq _080E5EE8
+ cmp r0, 0xC
+ bne _080E5EEC
+ b _080E5EE8
+_080E5EE0:
+ cmp r2, 0xB
+ beq _080E5EE8
+ cmp r2, 0xD
+ bne _080E5EEC
+_080E5EE8:
+ movs r0, 0
+ b _080E5EEE
+_080E5EEC:
+ movs r0, 0x1
+_080E5EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EC0
+
+ thumb_func_start sub_80E5EF4
+sub_80E5EF4: @ 80E5EF4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080E5F30 @ =gPlayerAvatar
+ ldrb r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _080E5F34
+ 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 r0, 24
+ bl IsRunningDisallowedByMetatile
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E5F34
+ movs r0, 0
+ b _080E5F36
+ .align 2, 0
+_080E5F30: .4byte gPlayerAvatar
+_080E5F34:
+ movs r0, 0x1
+_080E5F36:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E5EF4
+
+ thumb_func_start player_should_look_direction_be_enforced_upon_movement
+player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ ldr r2, _080E5F6C @ =gMapObjects
+ ldr r0, _080E5F70 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1E]
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E5F74
+ movs r0, 0
+ b _080E5F76
+ .align 2, 0
+_080E5F6C: .4byte gMapObjects
+_080E5F70: .4byte gPlayerAvatar
+_080E5F74:
+ movs r0, 0x1
+_080E5F76:
+ pop {r1}
+ bx r1
+ thumb_func_end player_should_look_direction_be_enforced_upon_movement
+
+ thumb_func_start GetOnOffBike
+GetOnOffBike: @ 80E5F7C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080E5FA4 @ =gUnknown_0202E854
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080E5FA8 @ =gPlayerAvatar
+ ldrb r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _080E5FAC
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ bl sav1_reset_battle_music_maybe
+ bl sub_8053E90
+ b _080E5FC0
+ .align 2, 0
+_080E5FA4: .4byte gUnknown_0202E854
+_080E5FA8: .4byte gPlayerAvatar
+_080E5FAC:
+ adds r0, r2, 0
+ bl SetPlayerAvatarTransitionFlags
+ ldr r4, _080E5FC8 @ =0x00000193
+ adds r0, r4, 0
+ bl sav1_set_battle_music_maybe
+ adds r0, r4, 0
+ bl sub_8053FB0
+_080E5FC0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E5FC8: .4byte 0x00000193
+ thumb_func_end GetOnOffBike
+
+ thumb_func_start sub_80E5FCC
+sub_80E5FCC: @ 80E5FCC
+ push {lr}
+ ldr r2, _080E6008 @ =gPlayerAvatar
+ movs r3, 0
+ strb r3, [r2, 0x8]
+ strb r3, [r2, 0x9]
+ strb r3, [r2, 0xA]
+ strb r3, [r2, 0xB]
+ str r0, [r2, 0xC]
+ str r1, [r2, 0x10]
+ movs r1, 0
+ adds r2, 0x14
+_080E5FE2:
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FE2
+ movs r1, 0
+ ldr r3, _080E600C @ =gUnknown_0202E874
+ movs r2, 0
+_080E5FF6:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _080E5FF6
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6008: .4byte gPlayerAvatar
+_080E600C: .4byte gUnknown_0202E874
+ thumb_func_end sub_80E5FCC
+
+ thumb_func_start sub_80E6010
+sub_80E6010: @ 80E6010
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E6020 @ =gPlayerAvatar
+ strb r0, [r2, 0xA]
+ lsrs r1, r0, 1
+ adds r0, r1
+ strb r0, [r2, 0xB]
+ bx lr
+ .align 2, 0
+_080E6020: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6010
+
+ thumb_func_start sub_80E6024
+sub_80E6024: @ 80E6024
+ ldr r1, _080E6030 @ =gPlayerAvatar
+ movs r0, 0
+ strb r0, [r1, 0xA]
+ strb r0, [r1, 0xB]
+ bx lr
+ .align 2, 0
+_080E6030: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6024
+
+ thumb_func_start sub_80E6034
+sub_80E6034: @ 80E6034
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080E605C @ =gUnknown_083DB600
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r2, _080E6060 @ =gPlayerAvatar
+ ldrb r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6064
+ ldrb r0, [r2, 0xA]
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ b _080E607E
+ .align 2, 0
+_080E605C: .4byte gUnknown_083DB600
+_080E6060: .4byte gPlayerAvatar
+_080E6064:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6070
+ movs r0, 0x3
+ b _080E607E
+_080E6070:
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _080E607C
+ movs r0, 0x1
+ b _080E607E
+_080E607C:
+ movs r0, 0x2
+_080E607E:
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E6034
+
+ thumb_func_start sub_80E6084
+sub_80E6084: @ 80E6084
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080E60D4 @ =gPlayerAvatar
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E60CC
+ 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 r0, 24
+ bl MetatileBehavior_IsBumpySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E60CC
+ movs r0, 0x2
+ strb r0, [r5, 0x8]
+ bl player_get_direction_upper_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059C94
+_080E60CC:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E60D4: .4byte gPlayerAvatar
+ thumb_func_end sub_80E6084
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
new file mode 100644
index 000000000..028b56c0e
--- /dev/null
+++ b/asm/contest_effect.s
@@ -0,0 +1,2942 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start AreMovesContestCombo
+AreMovesContestCombo: @ 80B7D24
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsls r1, 16
+ ldr r2, _080B7D78 @ =gContestMoves
+ lsrs r0, 13
+ adds r0, r2
+ ldrb r4, [r0, 0x2]
+ mov r3, sp
+ lsrs r1, 13
+ adds r1, r2
+ ldrb r0, [r1, 0x3]
+ strb r0, [r3]
+ mov r2, sp
+ ldrb r0, [r1, 0x4]
+ strb r0, [r2, 0x1]
+ ldrb r0, [r1, 0x5]
+ strb r0, [r2, 0x2]
+ mov r0, sp
+ ldrb r1, [r1, 0x6]
+ strb r1, [r0, 0x3]
+ cmp r4, 0
+ beq _080B7D80
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ beq _080B7D6E
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r4, r0
+ beq _080B7D6E
+ cmp r4, r1
+ bne _080B7D80
+_080B7D6E:
+ ldr r0, _080B7D7C @ =gComboStarterLookupTable
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ b _080B7D82
+ .align 2, 0
+_080B7D78: .4byte gContestMoves
+_080B7D7C: .4byte gComboStarterLookupTable
+_080B7D80:
+ movs r0, 0
+_080B7D82:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end AreMovesContestCombo
+
+ thumb_func_start ContestEffect_00
+ContestEffect_00: @ 80B7D8C
+ bx lr
+ thumb_func_end ContestEffect_00
+
+ thumb_func_start ContestEffect_01
+ContestEffect_01: @ 80B7D90
+ push {lr}
+ ldr r3, _080B7DB8 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_01
+
+ thumb_func_start ContestEffect_02
+ContestEffect_02: @ 80B7DBC
+ push {lr}
+ ldr r3, _080B7DE4 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x1
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7DE4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_02
+
+ thumb_func_start ContestEffect_03
+ContestEffect_03: @ 80B7DE8
+ push {r4,lr}
+ ldr r3, _080B7E30 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x15]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x15]
+ ldrb r0, [r3, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x71
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E30: .4byte 0x020192d0
+ thumb_func_end ContestEffect_03
+
+ thumb_func_start ContestEffect_04
+ContestEffect_04: @ 80B7E34
+ push {lr}
+ ldr r2, _080B7E58 @ =0x020192d0
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0, 0x12]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x2
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E58: .4byte 0x020192d0
+ thumb_func_end ContestEffect_04
+
+ thumb_func_start ContestEffect_05
+ContestEffect_05: @ 80B7E5C
+ push {lr}
+ ldr r3, _080B7E84 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x3
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7E84: .4byte 0x020192d0
+ thumb_func_end ContestEffect_05
+
+ thumb_func_start ContestEffect_06
+ContestEffect_06: @ 80B7E88
+ push {lr}
+ ldr r2, _080B7EAC @ =0x020192d0
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0x14
+ strb r1, [r0, 0xF]
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x4
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7EAC: .4byte 0x020192d0
+ thumb_func_end ContestEffect_06
+
+ thumb_func_start ContestEffect_07
+ContestEffect_07: @ 80B7EB0
+ push {lr}
+ ldr r3, _080B7ED8 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r3, 0x11]
+ movs r1, 0x5
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7ED8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_07
+
+ thumb_func_start ContestEffect_08
+ContestEffect_08: @ 80B7EDC
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080B7F38 @ =0x020192d0
+ ldrb r0, [r3, 0x11]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080B7F1A
+ subs r0, 0x1
+ ldrb r4, [r3]
+ cmp r0, r4
+ beq _080B7F0A
+ adds r4, r3, 0
+ adds r3, r1, 0
+_080B7EF8:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080B7F0A
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B7EF8
+_080B7F0A:
+ ldr r1, _080B7F38 @ =0x020192d0
+ strb r2, [r1, 0x8]
+ movs r0, 0xFF
+ strb r0, [r1, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F1A:
+ cmp r2, 0
+ bne _080B7F28
+ ldr r0, _080B7F38 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F28:
+ ldr r0, _080B7F38 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F38: .4byte 0x020192d0
+ thumb_func_end ContestEffect_08
+
+ thumb_func_start ContestEffect_09
+ContestEffect_09: @ 80B7F3C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r1, _080B7F9C @ =0x020192d0
+ ldrb r0, [r1, 0x11]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080B7F7C
+ movs r3, 0
+ adds r5, r1, 0
+ adds r6, r5, 0
+ adds r6, 0x8
+_080B7F54:
+ adds r1, r2, r5
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B7F64
+ adds r0, r3, r6
+ strb r2, [r0]
+ adds r3, 0x1
+_080B7F64:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B7F54
+ ldr r0, _080B7F9C @ =0x020192d0
+ adds r0, 0x8
+ adds r0, r3, r0
+ movs r1, 0xFF
+ strb r1, [r0]
+ bl sub_80B9120
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080B7F7C:
+ cmp r2, 0
+ bne _080B7F8A
+ ldr r0, _080B7F9C @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B7F8A:
+ ldr r0, _080B7F9C @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7F9C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_09
+
+ thumb_func_start ContestEffect_14
+ContestEffect_14: @ 80B7FA0
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x14
+ cmp r0, 0x1
+ bls _080B7FC2
+ movs r1, 0x3C
+ cmp r0, 0x7
+ bhi _080B7FC2
+ movs r1, 0x28
+_080B7FC2:
+ ldr r0, _080B7FD0 @ =0x020192d0
+ strh r1, [r0, 0x4]
+ bl ContestEffect_08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B7FD0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_14
+
+ thumb_func_start ContestEffect_15
+ContestEffect_15: @ 80B7FD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _080B806C @ =0x020192d0
+ ldrb r6, [r0, 0x11]
+ adds r1, r6, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B804A
+ movs r5, 0
+ mov r4, r8
+_080B7FEE:
+ adds r0, r6, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8044
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r0, 0
+ beq _080B8032
+ movs r1, 0xA
+ cmp r0, 0x2
+ bls _080B8032
+ movs r1, 0x14
+ cmp r0, 0x4
+ bls _080B8032
+ movs r1, 0x1E
+ cmp r0, 0x6
+ bls _080B8032
+ movs r1, 0x3C
+ cmp r0, 0x8
+ bhi _080B8032
+ movs r1, 0x28
+_080B8032:
+ strh r1, [r4, 0x4]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8044
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8044:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B7FEE
+_080B804A:
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B8062
+ mov r1, r8
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8062:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B806C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_15
+
+ thumb_func_start ContestEffect_16
+ContestEffect_16: @ 80B8070
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8108 @ =0x020192d0
+ ldrb r7, [r0, 0x11]
+ adds r1, r7, r0
+ ldrb r1, [r1]
+ mov r10, r0
+ cmp r1, 0
+ beq _080B80E0
+ movs r6, 0
+ mov r8, r10
+ mov r5, r10
+ subs r5, 0x5B
+_080B8094:
+ mov r1, r8
+ adds r0, r7, r1
+ adds r1, r6, r1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B80D8
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B80D8
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B80D8
+ ldrb r0, [r5]
+ movs r2, 0x11
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_80B13EC
+ movs r0, 0x1
+ mov r9, r0
+_080B80D8:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8094
+_080B80E0:
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x7
+ bl sub_80B13EC
+ mov r2, r9
+ cmp r2, 0
+ bne _080B80FA
+ mov r1, r10
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B80FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8108: .4byte 0x020192d0
+ thumb_func_end ContestEffect_16
+
+ thumb_func_start ContestEffect_17
+ContestEffect_17: @ 80B810C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _080B8150 @ =0x020192d0
+ ldrb r1, [r0, 0x11]
+ mov r8, r1
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080B817C
+ movs r5, 0
+ adds r4, r6, 0
+ movs r7, 0
+_080B812E:
+ mov r2, r8
+ adds r0, r2, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8172
+ adds r0, r6, 0
+ subs r0, 0x70
+ adds r0, r7, r0
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8154
+ movs r0, 0x32
+ b _080B8156
+ .align 2, 0
+_080B8150: .4byte 0x020192d0
+_080B8154:
+ movs r0, 0xA
+_080B8156:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8172
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B8172:
+ adds r7, 0x1C
+ adds r5, 0x1
+ ldr r6, _080B81A0 @ =0x020192d0
+ cmp r5, 0x3
+ ble _080B812E
+_080B817C:
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ mov r0, r9
+ cmp r0, 0
+ bne _080B8192
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8192:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81A0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_17
+
+ thumb_func_start ContestEffect_18
+ContestEffect_18: @ 80B81A4
+ push {r4,lr}
+ ldr r4, _080B81D0 @ =0x020192d0
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ bl ContestEffect_09
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B81D0: .4byte 0x020192d0
+ thumb_func_end ContestEffect_18
+
+ thumb_func_start ContestEffect_19
+ContestEffect_19: @ 80B81D4
+ push {r4,lr}
+ ldr r4, _080B8208 @ =0x020192d0
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ ldr r1, _080B820C @ =gContestMoves
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ bl sub_80B9038
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8208: .4byte 0x020192d0
+_080B820C: .4byte gContestMoves
+ thumb_func_end ContestEffect_19
+
+ thumb_func_start ContestEffect_20
+ContestEffect_20: @ 80B8210
+ push {lr}
+ movs r0, 0
+ bl sub_80B9038
+ ldr r0, _080B8228 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8228: .4byte 0x020192d0
+ thumb_func_end ContestEffect_20
+
+ thumb_func_start ContestEffect_21
+ContestEffect_21: @ 80B822C
+ push {lr}
+ movs r0, 0x1
+ bl sub_80B9038
+ ldr r0, _080B8244 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8244: .4byte 0x020192d0
+ thumb_func_end ContestEffect_21
+
+ thumb_func_start ContestEffect_22
+ContestEffect_22: @ 80B8248
+ push {lr}
+ movs r0, 0x2
+ bl sub_80B9038
+ ldr r0, _080B8260 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8260: .4byte 0x020192d0
+ thumb_func_end ContestEffect_22
+
+ thumb_func_start ContestEffect_23
+ContestEffect_23: @ 80B8264
+ push {lr}
+ movs r0, 0x3
+ bl sub_80B9038
+ ldr r0, _080B827C @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B827C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_23
+
+ thumb_func_start ContestEffect_24
+ContestEffect_24: @ 80B8280
+ push {lr}
+ movs r0, 0x4
+ bl sub_80B9038
+ ldr r0, _080B8298 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8298: .4byte 0x020192d0
+ thumb_func_end ContestEffect_24
+
+ thumb_func_start ContestEffect_25
+ContestEffect_25: @ 80B829C
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080B82E0 @ =0x020192d0
+ ldrb r1, [r0, 0x11]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x3
+ beq _080B82F4
+ movs r5, 0
+ adds r6, r7, 0
+_080B82B2:
+ ldrb r0, [r6, 0x11]
+ adds r0, r6
+ ldrb r0, [r0]
+ adds r0, 0x1
+ adds r1, r5, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B82EE
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B82E4
+ adds r0, r4, 0
+ bl sub_80B157C
+ adds r0, r4, 0
+ movs r1, 0xA
+ b _080B82E8
+ .align 2, 0
+_080B82E0: .4byte 0x020192d0
+_080B82E4:
+ adds r0, r4, 0
+ movs r1, 0x3C
+_080B82E8:
+ bl sub_80B13EC
+ movs r4, 0x1
+_080B82EE:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B82B2
+_080B82F4:
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x9
+ bl sub_80B13EC
+ cmp r4, 0
+ bne _080B8308
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8308:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_25
+
+ thumb_func_start ContestEffect_26
+ContestEffect_26: @ 80B8310
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0
+ str r1, [sp, 0x18]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x5
+ bl memset
+ movs r6, 0
+ movs r4, 0
+ add r2, sp, 0x10
+ mov r8, r2
+ add r3, sp, 0x8
+ mov r10, r3
+ ldr r5, _080B8384 @ =0x020192d0
+ adds r7, r5, 0
+ subs r7, 0x70
+_080B8340:
+ ldrb r0, [r5, 0x11]
+ adds r0, r5
+ adds r1, r6, r5
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080B836E
+ ldrb r1, [r7, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080B836E
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B836E
+ mov r1, sp
+ adds r0, r1, r4
+ strb r6, [r0]
+ adds r4, 0x1
+_080B836E:
+ adds r7, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B8340
+ cmp r4, 0x1
+ bne _080B8388
+ movs r0, 0x3C
+ mov r2, r8
+ strh r0, [r2]
+ b _080B83B6
+ .align 2, 0
+_080B8384: .4byte 0x020192d0
+_080B8388:
+ cmp r4, 0x2
+ bne _080B8396
+ movs r0, 0x1E
+ mov r3, r8
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ b _080B83B6
+_080B8396:
+ cmp r4, 0x3
+ bne _080B83A6
+ movs r0, 0x14
+ mov r7, r8
+ strh r0, [r7]
+ strh r0, [r7, 0x2]
+ strh r0, [r7, 0x4]
+ b _080B83B6
+_080B83A6:
+ mov r1, r8
+ movs r2, 0
+ mov r0, r8
+ adds r0, 0x6
+_080B83AE:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _080B83AE
+_080B83B6:
+ movs r6, 0
+ movs r7, 0
+ mov r4, r10
+_080B83BC:
+ ldr r0, _080B83F0 @ =0x02019260
+ adds r5, r7, r0
+ ldrb r1, [r5, 0x15]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080B83FC
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B83FC
+ ldr r1, _080B83F4 @ =gContestMoves
+ ldrh r0, [r5, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r1, _080B83F8 @ =gComboStarterLookupTable
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ b _080B83FE
+ .align 2, 0
+_080B83F0: .4byte 0x02019260
+_080B83F4: .4byte gContestMoves
+_080B83F8: .4byte gComboStarterLookupTable
+_080B83FC:
+ movs r0, 0
+_080B83FE:
+ strh r0, [r4]
+ ldr r5, _080B8494 @ =0x02019260
+ adds r0, r7, r5
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4]
+ subs r0, r1
+ strh r0, [r4]
+ adds r7, 0x1C
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B83BC
+ mov r2, r8
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080B84CA
+ movs r6, 0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080B84CA
+ adds r5, 0x7D
+ mov r4, sp
+_080B8442:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r6, 1
+ add r1, r8
+ movs r7, 0
+ ldrsh r2, [r1, r7]
+ ldrb r3, [r4]
+ lsls r1, r3, 1
+ add r1, r10
+ movs r7, 0
+ ldrsh r1, [r1, r7]
+ adds r2, r1
+ cmp r0, r2
+ bge _080B8498
+ adds r0, r3, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B84A2
+ ldrb r0, [r4]
+ bl sub_80B157C
+ ldrb r0, [r4]
+ movs r1, 0xA
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _080B849C
+ .align 2, 0
+_080B8494: .4byte 0x02019260
+_080B8498:
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+_080B849C:
+ ldr r1, [sp, 0x18]
+ cmp r1, 0
+ beq _080B84B8
+_080B84A2:
+ movs r2, 0
+ str r2, [sp, 0x18]
+ ldrb r0, [r4]
+ movs r1, 0x3C
+ bl sub_80B13EC
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080B84B8:
+ ldrb r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r4, 0x1
+ adds r6, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080B8442
+_080B84CA:
+ ldr r4, _080B84F4 @ =0x020192d0
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xB
+ bl sub_80B13EC
+ mov r3, r9
+ cmp r3, 0
+ bne _080B84E2
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B84E2:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B84F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_26
+
+ thumb_func_start ContestEffect_27
+ContestEffect_27: @ 80B84F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ ldr r7, _080B8580 @ =0x020192d0
+ adds r5, r7, 0
+ subs r5, 0x63
+_080B850A:
+ ldrb r0, [r7, 0x11]
+ adds r0, r7
+ adds r1, r6, r7
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8556
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ ble _080B8556
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B90C0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8556
+ movs r0, 0
+ strb r0, [r5]
+ ldrb r1, [r5, 0x3]
+ movs r2, 0x31
+ negs r2, r2
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl sub_80B13EC
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_080B8556:
+ adds r5, 0x1C
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080B850A
+ ldr r4, _080B8580 @ =0x020192d0
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xC
+ bl sub_80B13EC
+ mov r0, r8
+ cmp r0, 0
+ bne _080B8576
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B8576:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8580: .4byte 0x020192d0
+ thumb_func_end ContestEffect_27
+
+ thumb_func_start ContestEffect_28
+ContestEffect_28: @ 80B8584
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B85B0 @ =0x020192d0
+ movs r6, 0
+_080B858E:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B85CE
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080B85B4
+ movs r0, 0x28
+ b _080B85B6
+ .align 2, 0
+_080B85B0: .4byte 0x020192d0
+_080B85B4:
+ movs r0, 0xA
+_080B85B6:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B85CE
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B85CE:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B858E
+ ldr r4, _080B85F4 @ =0x020192d0
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xE
+ bl sub_80B13EC
+ cmp r7, 0
+ bne _080B85EC
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x39
+ bl sub_80B1404
+_080B85EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B85F4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_28
+
+ thumb_func_start ContestEffect_29
+ContestEffect_29: @ 80B85F8
+ push {r4,lr}
+ ldr r0, _080B863C @ =gUnknown_02038696
+ ldr r4, _080B8640 @ =0x020192d0
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B8636
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8644 @ =gContestEffects
+ ldr r2, _080B8648 @ =gContestMoves
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0xF
+ bl sub_80B13EC
+_080B8636:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B863C: .4byte gUnknown_02038696
+_080B8640: .4byte 0x020192d0
+_080B8644: .4byte gContestEffects
+_080B8648: .4byte gContestMoves
+ thumb_func_end ContestEffect_29
+
+ thumb_func_start ContestEffect_30
+ContestEffect_30: @ 80B864C
+ push {r4,lr}
+ ldr r0, _080B8690 @ =gUnknown_02038696
+ ldr r4, _080B8694 @ =0x020192d0
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _080B868A
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ ldr r3, _080B8698 @ =gContestEffects
+ ldr r2, _080B869C @ =gContestMoves
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x10
+ bl sub_80B13EC
+_080B868A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8690: .4byte gUnknown_02038696
+_080B8694: .4byte 0x020192d0
+_080B8698: .4byte gContestEffects
+_080B869C: .4byte gContestMoves
+ thumb_func_end ContestEffect_30
+
+ thumb_func_start ContestEffect_31
+ContestEffect_31: @ 80B86A0
+ push {r4-r7,lr}
+ movs r1, 0
+ movs r3, 0
+ ldr r4, _080B86EC @ =0x020192d0
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ ldrb r5, [r0]
+ movs r2, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+_080B86B4:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080B86C4
+ adds r0, r2, r6
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ adds r3, r0
+_080B86C4:
+ adds r2, 0x1C
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _080B86B4
+ cmp r3, 0
+ bge _080B86D2
+ movs r3, 0
+_080B86D2:
+ ldr r4, _080B86EC @ =0x020192d0
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B86E2
+ cmp r3, 0
+ bne _080B86F0
+_080B86E2:
+ adds r0, r2, 0
+ movs r1, 0x12
+ bl sub_80B13EC
+ b _080B8710
+ .align 2, 0
+_080B86EC: .4byte 0x020192d0
+_080B86F0:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ lsrs r0, r3, 31
+ adds r0, r3, r0
+ asrs r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x11
+ bl sub_80B13EC
+_080B8710:
+ ldr r4, _080B873C @ =0x020192d0
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r0, r5
+ movs r7, 0x2
+ ldrsh r0, [r0, r7]
+ bl sub_80B9224
+ ldrb r2, [r4, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B873C: .4byte 0x020192d0
+ thumb_func_end ContestEffect_31
+
+ thumb_func_start ContestEffect_32
+ContestEffect_32: @ 80B8740
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r0, _080B8794 @ =0x020192d0
+ ldrb r1, [r0, 0x11]
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080B8788
+ movs r2, 0
+ adds r7, r4, 0
+ adds r0, r1, 0
+ subs r1, r0, 0x1
+ movs r3, 0
+ adds r5, r4, 0
+ subs r5, 0x70
+_080B8760:
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080B876C
+ adds r0, r3, r5
+ ldrh r6, [r0, 0x2]
+_080B876C:
+ adds r3, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080B8760
+ adds r0, r4, 0
+ ldrb r2, [r0, 0x11]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8788
+ lsls r0, r6, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bgt _080B8798
+_080B8788:
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x14
+ bl sub_80B13EC
+ b _080B87B2
+ .align 2, 0
+_080B8794: .4byte 0x020192d0
+_080B8798:
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, r3, r0
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x13
+ bl sub_80B13EC
+_080B87B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_32
+
+ thumb_func_start ContestEffect_33
+ContestEffect_33: @ 80B87B8
+ push {lr}
+ ldr r0, _080B87D8 @ =0x020192d0
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r3, [r1]
+ mov r12, r0
+ cmp r3, 0
+ bne _080B87DC
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ movs r1, 0xA
+ b _080B87EE
+ .align 2, 0
+_080B87D8: .4byte 0x020192d0
+_080B87DC:
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r12
+ subs r1, 0x70
+ adds r0, r1
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+_080B87EE:
+ strh r1, [r0, 0x2]
+ cmp r3, 0
+ bne _080B8800
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x15
+ bl sub_80B13EC
+ b _080B882A
+_080B8800:
+ cmp r3, 0x1
+ bne _080B8810
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x16
+ bl sub_80B13EC
+ b _080B882A
+_080B8810:
+ cmp r3, 0x2
+ bne _080B8820
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x17
+ bl sub_80B13EC
+ b _080B882A
+_080B8820:
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x18
+ bl sub_80B13EC
+_080B882A:
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_33
+
+ thumb_func_start ContestEffect_34
+ContestEffect_34: @ 80B8830
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ bhi _080B885C
+ movs r4, 0xA
+ ldr r0, _080B8858 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8858: .4byte 0x020192d0
+_080B885C:
+ cmp r0, 0x5
+ bhi _080B8874
+ movs r4, 0x14
+ ldr r0, _080B8870 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8870: .4byte 0x020192d0
+_080B8874:
+ cmp r0, 0x7
+ bhi _080B888C
+ movs r4, 0x28
+ ldr r0, _080B8888 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B8888: .4byte 0x020192d0
+_080B888C:
+ cmp r1, 0x8
+ bhi _080B88A4
+ movs r4, 0x3C
+ ldr r0, _080B88A0 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B88B0
+ .align 2, 0
+_080B88A0: .4byte 0x020192d0
+_080B88A4:
+ movs r4, 0x50
+ ldr r0, _080B88C8 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B88B0:
+ ldr r0, _080B88C8 @ =0x020192d0
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B88C8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_34
+
+ thumb_func_start ContestEffect_35
+ContestEffect_35: @ 80B88CC
+ push {r4-r7,lr}
+ ldr r1, _080B8940 @ =0x020192d0
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r12, r1
+ cmp r2, 0
+ beq _080B8994
+ ldrb r5, [r1]
+ mov r6, r12
+ subs r6, 0x70
+_080B88EA:
+ movs r2, 0
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ adds r4, r0, 0
+ cmp r5, r1
+ beq _080B8910
+ ldr r3, _080B8940 @ =0x020192d0
+_080B88F8:
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080B8910
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080B88F8
+_080B8910:
+ lsls r2, 24
+ asrs r1, r2, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ ldrb r1, [r3, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ adds r7, r2, 0
+ cmp r0, 0
+ bne _080B8932
+ ldrb r1, [r3, 0xC]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080B8944
+_080B8932:
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r4, r1
+ lsrs r4, r0, 24
+ cmp r0, 0
+ blt _080B8994
+ b _080B88EA
+ .align 2, 0
+_080B8940: .4byte 0x020192d0
+_080B8944:
+ mov r2, r12
+ ldrb r1, [r2, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r3, r12
+ subs r3, 0x70
+ adds r5, r0, r3
+ ldrh r0, [r5, 0x6]
+ ldr r4, _080B899C @ =gContestMoves
+ lsls r0, 3
+ adds r6, r0, r4
+ ldrb r2, [r6, 0x1]
+ lsls r2, 29
+ asrs r1, r7, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r2, r0
+ bne _080B8994
+ ldr r1, _080B89A0 @ =gContestEffects
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r1, [r5, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x2]
+ mov r2, r12
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x1F
+ bl sub_80B13EC
+_080B8994:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B899C: .4byte gContestMoves
+_080B89A0: .4byte gContestEffects
+ thumb_func_end ContestEffect_35
+
+ thumb_func_start ContestEffect_36
+ContestEffect_36: @ 80B89A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080B8A28 @ =0x020192d0
+ ldrb r2, [r0, 0x11]
+ adds r1, r2, r0
+ ldrb r1, [r1]
+ mov r8, r0
+ cmp r1, 0
+ beq _080B8A3C
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ mov r1, r8
+ subs r1, 0x70
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ mov r9, r0
+ movs r4, 0
+ mov r6, r8
+ ldr r0, _080B8A2C @ =gContestMoves
+ mov r12, r0
+ movs r7, 0
+_080B89D4:
+ ldrb r2, [r6, 0x11]
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8A34
+ mov r1, r9
+ lsls r0, r1, 3
+ mov r1, r12
+ adds r3, r0, r1
+ ldrb r1, [r3, 0x1]
+ lsls r1, 29
+ mov r5, r8
+ subs r5, 0x70
+ adds r0, r7, r5
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r12
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r1, r0
+ beq _080B8A34
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldr r2, _080B8A30 @ =gContestEffects
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ lsls r0, 1
+ ldrh r2, [r1, 0x2]
+ adds r0, r2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r6, 0x11]
+ movs r1, 0x20
+ bl sub_80B13EC
+ b _080B8A3C
+ .align 2, 0
+_080B8A28: .4byte 0x020192d0
+_080B8A2C: .4byte gContestMoves
+_080B8A30: .4byte gContestEffects
+_080B8A34:
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080B89D4
+_080B8A3C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_36
+
+ thumb_func_start ContestEffect_37
+ContestEffect_37: @ 80B8A48
+ push {r4-r7,lr}
+ ldr r1, _080B8A94 @ =0x020192d0
+ ldrb r0, [r1, 0x11]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B8AB0
+ movs r5, 0
+ adds r4, r1, 0
+ adds r6, r4, 0
+ subs r6, 0x70
+ adds r7, r6, 0
+_080B8A60:
+ ldrb r2, [r4, 0x11]
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080B8AA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r2, r0, r7
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r3, 0x2
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _080B8A98
+ adds r0, r1, 0
+ lsls r0, 1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x21
+ bl sub_80B13EC
+ b _080B8AA8
+ .align 2, 0
+_080B8A94: .4byte 0x020192d0
+_080B8A98:
+ cmp r1, r0
+ bge _080B8AA8
+ movs r0, 0
+ strh r0, [r2, 0x2]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x22
+ bl sub_80B13EC
+_080B8AA8:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8A60
+_080B8AB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_37
+
+ thumb_func_start ContestEffect_38
+ContestEffect_38: @ 80B8AB8
+ push {r4,r5,lr}
+ ldr r4, _080B8AFC @ =0x020192d0
+ ldrb r2, [r4, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r5, r4, 0
+ subs r5, 0x70
+ adds r1, r0, r5
+ ldrb r3, [r1, 0xD]
+ movs r0, 0xD
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1D
+ bgt _080B8B00
+ adds r0, r3, 0
+ adds r0, 0xA
+ strb r0, [r1, 0xD]
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r2, [r0, 0x10]
+ movs r1, 0x31
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x10
+ orrs r1, r2
+ strb r1, [r0, 0x10]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x23
+ bl sub_80B13EC
+ b _080B8B08
+ .align 2, 0
+_080B8AFC: .4byte 0x020192d0
+_080B8B00:
+ adds r0, r2, 0
+ movs r1, 0x3A
+ bl sub_80B13EC
+_080B8B08:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_38
+
+ thumb_func_start ContestEffect_39
+ContestEffect_39: @ 80B8B10
+ push {r4,lr}
+ ldr r3, _080B8B48 @ =0x020192d0
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r4, r3, 0
+ subs r4, 0x70
+ adds r0, r4
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r3, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080B8B4C
+ adds r0, r1, 0
+ movs r1, 0x24
+ bl sub_80B13EC
+ b _080B8B54
+ .align 2, 0
+_080B8B48: .4byte 0x020192d0
+_080B8B4C:
+ adds r0, r1, 0
+ movs r1, 0x3B
+ bl sub_80B13EC
+_080B8B54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_39
+
+ thumb_func_start ContestEffect_40
+ContestEffect_40: @ 80B8B5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _080B8BE4 @ =0x02019204
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8B6E
+ b _080B8C76
+_080B8B6E:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8B78:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8B78
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+_080B8BAE:
+ movs r5, 0
+_080B8BB0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r0, r12
+ ldrb r0, [r0, 0x11]
+ cmp r2, r0
+ beq _080B8BE8
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r1, sp
+ adds r4, r1, r2
+ ldrb r0, [r4]
+ cmp r3, r0
+ bne _080B8BE8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8BE8
+ adds r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8BF8
+ .align 2, 0
+_080B8BE4: .4byte 0x02019204
+_080B8BE8:
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BB0
+_080B8BF8:
+ cmp r5, 0x4
+ beq _080B8C0C
+ lsls r0, r6, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8BAE
+_080B8C0C:
+ ldrb r0, [r7, 0x11]
+ mov r4, sp
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8C32:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8C32
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x25
+ bl sub_80B13EC
+_080B8C76:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_40
+
+ thumb_func_start ContestEffect_41
+ContestEffect_41: @ 80B8C84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _080B8D14 @ =0x02019204
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ bne _080B8C98
+ b _080B8DA6
+_080B8C98:
+ movs r6, 0
+ adds r7, r1, 0
+ adds r7, 0xCC
+ adds r3, r1, 0
+ adds r3, 0x5C
+_080B8CA2:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8CA2
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r6, 0x3
+ mov r12, r7
+ movs r4, 0x70
+ negs r4, r4
+ adds r4, r7
+ mov r8, r4
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+_080B8CDE:
+ movs r5, 0
+_080B8CE0:
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ mov r1, r12
+ ldrb r1, [r1, 0x11]
+ cmp r2, r1
+ beq _080B8D18
+ lsls r0, r6, 24
+ asrs r3, r0, 24
+ mov r0, sp
+ adds r4, r0, r2
+ ldrb r1, [r4]
+ cmp r3, r1
+ bne _080B8D18
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x19]
+ cmp r0, r1
+ bne _080B8D18
+ subs r0, r3, 0x1
+ strb r0, [r4]
+ b _080B8D28
+ .align 2, 0
+_080B8D14: .4byte 0x02019204
+_080B8D18:
+ lsls r0, r5, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8CE0
+_080B8D28:
+ cmp r5, 0x4
+ beq _080B8D3C
+ lsls r0, r6, 24
+ movs r4, 0xFF
+ lsls r4, 24
+ adds r0, r4
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, r9
+ bgt _080B8CDE
+_080B8D3C:
+ ldrb r0, [r7, 0x11]
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r7, 0
+ subs r3, 0x70
+ adds r1, r3
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x3F
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r1, 0x10]
+ movs r6, 0
+_080B8D62:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r4, sp
+ adds r2, r4, r1
+ ldrb r2, [r2]
+ strb r2, [r0, 0x19]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8D62
+ ldrb r0, [r7, 0x11]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r7, 0
+ subs r0, 0x70
+ adds r1, r0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x11]
+ ldrb r0, [r7, 0x11]
+ movs r1, 0x26
+ bl sub_80B13EC
+_080B8DA6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ContestEffect_41
+
+ thumb_func_start ContestEffect_42
+ContestEffect_42: @ 80B8DB4
+ bx lr
+ thumb_func_end ContestEffect_42
+
+ thumb_func_start ContestEffect_43
+ContestEffect_43: @ 80B8DB8
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _080B8E30 @ =0x02019204
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _080B8EAE
+ movs r6, 0
+ add r3, sp, 0x4
+ adds r5, r1, 0
+ adds r5, 0x5C
+ adds r4, r3, 0
+_080B8DCE:
+ lsls r1, r6, 24
+ asrs r1, 24
+ mov r0, sp
+ adds r2, r0, r1
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x19]
+ strb r0, [r2]
+ adds r0, r4, r1
+ strb r6, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r6, r1, 24
+ asrs r1, 24
+ cmp r1, 0x3
+ ble _080B8DCE
+ movs r6, 0
+ adds r7, r3, 0
+_080B8DF6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r6, 24
+ asrs r2, 24
+ movs r1, 0x4
+ subs r1, r2
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0
+_080B8E10:
+ lsls r0, r1, 24
+ asrs r2, r0, 24
+ adds r3, r7, r2
+ ldrb r1, [r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080B8E3A
+ cmp r4, 0
+ bne _080B8E34
+ mov r1, sp
+ adds r0, r1, r2
+ strb r6, [r0]
+ movs r0, 0xFF
+ strb r0, [r3]
+ b _080B8E48
+ .align 2, 0
+_080B8E30: .4byte 0x02019204
+_080B8E34:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080B8E3A:
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r5, r3
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8E10
+_080B8E48:
+ lsls r0, r6, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080B8DF6
+ movs r6, 0
+ ldr r4, _080B8EB8 @ =0x020192d0
+ adds r7, r4, 0
+ subs r7, 0x70
+ movs r3, 0x3F
+ mov r12, r3
+ movs r5, 0x80
+_080B8E66:
+ lsls r2, r6, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ mov r3, sp
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x19]
+ ldrb r3, [r1, 0x10]
+ mov r0, r12
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x10]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ asrs r2, 24
+ cmp r2, 0x3
+ ble _080B8E66
+ ldrb r1, [r4, 0x11]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x70
+ adds r0, r1
+ ldrb r1, [r0, 0x11]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r4, 0x11]
+ movs r1, 0x27
+ bl sub_80B13EC
+_080B8EAE:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EB8: .4byte 0x020192d0
+ thumb_func_end ContestEffect_43
+
+ thumb_func_start ContestEffect_44
+ContestEffect_44: @ 80B8EBC
+ push {lr}
+ ldr r3, _080B8EF0 @ =gContestMoves
+ ldr r1, _080B8EF4 @ =0x020192d0
+ ldrb r2, [r1, 0x11]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x6]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ ldr r1, _080B8EF8 @ =gUnknown_0203869C
+ lsrs r0, 29
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _080B8EEA
+ ldrb r0, [r2, 0x11]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+_080B8EEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8EF0: .4byte gContestMoves
+_080B8EF4: .4byte 0x020192d0
+_080B8EF8: .4byte gUnknown_0203869C
+ thumb_func_end ContestEffect_44
+
+ thumb_func_start ContestEffect_45
+ContestEffect_45: @ 80B8EFC
+ push {r4-r7,lr}
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B8F34 @ =0x020192d0
+ movs r6, 0
+_080B8F06:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B8F52
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r1, r6, r0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ ble _080B8F38
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_80B9268
+ b _080B8F3A
+ .align 2, 0
+_080B8F34: .4byte 0x020192d0
+_080B8F38:
+ movs r0, 0xA
+_080B8F3A:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B8F52
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080B8F52:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B8F06
+ cmp r7, 0
+ bne _080B8F68
+ ldr r0, _080B8F78 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B8F68:
+ ldr r0, _080B8F78 @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x30
+ bl sub_80B13EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8F78: .4byte 0x020192d0
+ thumb_func_end ContestEffect_45
+
+ thumb_func_start ContestEffect_46
+ContestEffect_46: @ 80B8F7C
+ push {r4,lr}
+ ldr r0, _080B8F98 @ =0x02019204
+ movs r1, 0x13
+ ldrsb r1, [r0, r1]
+ cmp r1, 0
+ bne _080B8F9C
+ movs r4, 0xA
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1A
+ bl sub_80B13EC
+ b _080B8FDE
+ .align 2, 0
+_080B8F98: .4byte 0x02019204
+_080B8F9C:
+ cmp r1, 0x1
+ bne _080B8FAE
+ movs r4, 0x14
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1B
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FAE:
+ cmp r1, 0x2
+ bne _080B8FC0
+ movs r4, 0x1E
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1C
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FC0:
+ cmp r1, 0x3
+ bne _080B8FD2
+ movs r4, 0x32
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1D
+ bl sub_80B13EC
+ b _080B8FDE
+_080B8FD2:
+ movs r4, 0x3C
+ adds r0, 0xCC
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x1E
+ bl sub_80B13EC
+_080B8FDE:
+ ldr r0, _080B8FF4 @ =0x020192d0
+ ldrb r2, [r0, 0x11]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ subs r0, 0x70
+ adds r1, r0
+ strh r4, [r1, 0x2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B8FF4: .4byte 0x020192d0
+ thumb_func_end ContestEffect_46
+
+ thumb_func_start ContestEffect_47
+ContestEffect_47: @ 80B8FF8
+ push {lr}
+ ldr r3, _080B9034 @ =0x02019328
+ ldrb r2, [r3, 0x1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080B902E
+ movs r0, 0x1
+ orrs r2, r0
+ movs r0, 0x58
+ negs r0, r0
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0, 0x11]
+ movs r0, 0x7
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0xF
+ negs r1, r1
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r3, 0x1]
+ mov r1, r12
+ ldrb r0, [r1, 0x11]
+ movs r1, 0x3D
+ bl sub_80B13EC
+_080B902E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9034: .4byte 0x02019328
+ thumb_func_end ContestEffect_47
+
+ thumb_func_start sub_80B9038
+sub_80B9038: @ 80B9038
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+ ldr r4, _080B907C @ =0x020192d0
+ ldr r0, _080B9080 @ =gContestMoves
+ mov r9, r0
+ movs r6, 0
+_080B9052:
+ ldrb r0, [r4, 0x11]
+ adds r0, r4
+ adds r1, r5, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _080B909A
+ adds r0, r4, 0
+ subs r0, 0x70
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x6]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 29
+ cmp r8, r0
+ bne _080B9084
+ movs r0, 0x28
+ b _080B9086
+ .align 2, 0
+_080B907C: .4byte 0x020192d0
+_080B9080: .4byte gContestMoves
+_080B9084:
+ movs r0, 0xA
+_080B9086:
+ strh r0, [r4, 0x4]
+ strb r5, [r4, 0x8]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ bl sub_80B9120
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B909A
+ adds r7, 0x1
+_080B909A:
+ adds r6, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080B9052
+ cmp r7, 0
+ bne _080B90B0
+ ldr r0, _080B90BC @ =0x020192d0
+ ldrb r0, [r0, 0x11]
+ movs r1, 0x36
+ bl sub_80B1404
+_080B90B0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B90BC: .4byte 0x020192d0
+ thumb_func_end sub_80B9038
+
+ thumb_func_start sub_80B90C0
+sub_80B90C0: @ 80B90C0
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080B90EC @ =0x020192d0
+ adds r0, r2, 0
+ adds r0, 0xD
+ adds r0, r3, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ subs r2, 0x70
+ adds r2, r0, r2
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080B90F0
+ adds r0, r3, 0
+ movs r1, 0x2D
+ b _080B9116
+ .align 2, 0
+_080B90EC: .4byte 0x020192d0
+_080B90F0:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ bne _080B910E
+ ldrb r1, [r2, 0xB]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ bne _080B911A
+ movs r0, 0x1
+ b _080B911C
+_080B910E:
+ subs r0, 0x1
+ strb r0, [r2, 0x12]
+ adds r0, r3, 0
+ movs r1, 0x2C
+_080B9116:
+ bl sub_80B13EC
+_080B911A:
+ movs r0, 0
+_080B911C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B90C0
+
+ thumb_func_start sub_80B9120
+sub_80B9120: @ 80B9120
+ push {r4-r7,lr}
+ sub sp, 0xC
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r7, 0
+ ldr r1, _080B918C @ =0x020192d0
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0xFF
+ beq _080B91D8
+ adds r5, r1, 0
+_080B913A:
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r4, [r0]
+ adds r6, r4, 0
+ adds r0, r4, 0
+ str r1, [sp, 0x8]
+ bl sub_80B90C0
+ lsls r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r0, 0
+ beq _080B91C8
+ ldrh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r1, 0x70
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080B9174
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ strh r0, [r5, 0x6]
+_080B9174:
+ ldrb r0, [r2, 0x10]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _080B9190
+ movs r0, 0xA
+ strh r0, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl sub_80B13EC
+ b _080B91C8
+ .align 2, 0
+_080B918C: .4byte 0x020192d0
+_080B9190:
+ ldrb r1, [r2, 0xF]
+ ldrh r0, [r5, 0x6]
+ subs r0, r1
+ adds r1, r0, 0
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080B91AC
+ strh r3, [r5, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl sub_80B13EC
+ b _080B91C8
+_080B91AC:
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_80B9200
+ ldrb r1, [r5, 0x6]
+ adds r0, r6, 0
+ bl sub_80B141C
+ lsls r0, r6, 1
+ mov r2, sp
+ adds r1, r2, r0
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+_080B91C8:
+ adds r7, 0x1
+ ldr r1, _080B91E8 @ =0x020192d0
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080B913A
+_080B91D8:
+ movs r7, 0
+ mov r1, sp
+_080B91DC:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080B91EC
+ movs r0, 0x1
+ b _080B91F6
+ .align 2, 0
+_080B91E8: .4byte 0x020192d0
+_080B91EC:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080B91DC
+ movs r0, 0
+_080B91F6:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9120
+
+ thumb_func_start sub_80B9200
+sub_80B9200: @ 80B9200
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ ldr r0, _080B9220 @ =0x02019260
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ ldrb r0, [r2, 0xE]
+ adds r1, r0
+ strb r1, [r2, 0xE]
+ bx lr
+ .align 2, 0
+_080B9220: .4byte 0x02019260
+ thumb_func_end sub_80B9200
+
+ thumb_func_start sub_80B9224
+sub_80B9224: @ 80B9224
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9234
+ negs r0, r4
+_080B9234:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, 0
+ bge _080B9252
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B925C
+ adds r0, r4, 0
+ subs r0, 0xA
+ adds r0, r1, r0
+ b _080B9258
+_080B9252:
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r4, r0
+_080B9258:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B925C:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9224
+
+ thumb_func_start sub_80B9268
+sub_80B9268: @ 80B9268
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080B9278
+ negs r0, r4
+_080B9278:
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ beq _080B9290
+ adds r0, r4, 0
+ adds r0, 0xA
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080B9290:
+ lsls r0, r5, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9268
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
new file mode 100644
index 000000000..390902a18
--- /dev/null
+++ b/asm/contest_link_80C2020.s
@@ -0,0 +1,5580 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C2020
+sub_80C2020: @ 80C2020
+ push {r4,r5,lr}
+ movs r5, 0x80
+ lsls r5, 19
+ movs r0, 0x40
+ strh r0, [r5]
+ ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080C20F4 @ =gMenuWindow
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _080C20F8 @ =REG_BG0CNT
+ movs r2, 0xF8
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C20FC @ =0x00001803
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080C2100 @ =0x00001c03
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C2104 @ =0x00003a03
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2108 @ =REG_MOSAIC
+ movs r2, 0
+ strh r2, [r0]
+ adds r1, 0x3A
+ ldr r3, _080C210C @ =0x00003f3f
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r3, 0x11
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2110 @ =REG_WIN0H
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, 0xA
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0x44
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldrh r0, [r5]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r5]
+ ldr r0, _080C2114 @ =gUnknown_030042A4
+ strh r2, [r0]
+ ldr r0, _080C2118 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r0, _080C211C @ =gUnknown_030042C0
+ strh r2, [r0]
+ ldr r0, _080C2120 @ =gUnknown_030041B4
+ strh r2, [r0]
+ ldr r0, _080C2124 @ =gUnknown_03004288
+ strh r2, [r0]
+ ldr r0, _080C2128 @ =gUnknown_03004280
+ strh r2, [r0]
+ ldr r0, _080C212C @ =gUnknown_030041B0
+ strh r2, [r0]
+ ldr r0, _080C2130 @ =gUnknown_030041B8
+ strh r2, [r0]
+ ldr r0, _080C2134 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080C2138 @ =gUnknown_03004240
+ strh r2, [r0]
+ ldr r0, _080C213C @ =gUnknown_03004200
+ strh r2, [r0]
+ ldr r0, _080C2140 @ =gUnknown_03004244
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C20F0: .4byte gWindowConfig_81E6FA0
+_080C20F4: .4byte gMenuWindow
+_080C20F8: .4byte REG_BG0CNT
+_080C20FC: .4byte 0x00001803
+_080C2100: .4byte 0x00001c03
+_080C2104: .4byte 0x00003a03
+_080C2108: .4byte REG_MOSAIC
+_080C210C: .4byte 0x00003f3f
+_080C2110: .4byte REG_WIN0H
+_080C2114: .4byte gUnknown_030042A4
+_080C2118: .4byte gUnknown_030042A0
+_080C211C: .4byte gUnknown_030042C0
+_080C2120: .4byte gUnknown_030041B4
+_080C2124: .4byte gUnknown_03004288
+_080C2128: .4byte gUnknown_03004280
+_080C212C: .4byte gUnknown_030041B0
+_080C2130: .4byte gUnknown_030041B8
+_080C2134: .4byte gUnknown_030042C4
+_080C2138: .4byte gUnknown_03004240
+_080C213C: .4byte gUnknown_03004200
+_080C2140: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2020
+
+ thumb_func_start sub_80C2144
+sub_80C2144: @ 80C2144
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ ldr r0, _080C220C @ =gUnknown_08D1977C
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C2210 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080C2214 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_080C2162:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080C2162
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r12
+ bl LZDecompressVram
+ ldr r0, _080C2218 @ =gUnknown_08D1A490
+ ldr r1, _080C221C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _080C2220 @ =gUnknown_08D1A364
+ ldr r1, _080C2224 @ =0x0600e000
+ bl LZDecompressVram
+ ldr r0, _080C2228 @ =gUnknown_08D1A250
+ ldr r1, _080C222C @ =0x0600f000
+ bl LZDecompressVram
+ bl sub_80C37E4
+ ldr r0, _080C2230 @ =gUnknown_08D1A618
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, _080C2234 @ =gWindowConfig_81E6FA0
+ bl LoadFontDefaultPalette
+ movs r6, 0
+_080C21C0:
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ movs r5, 0
+ lsls r1, r6, 1
+ adds r2, r6, 0x1
+ mov r12, r2
+ lsls r4, 24
+ asrs r7, r4, 24
+ adds r1, r6
+ lsls r1, 6
+ lsls r4, r0, 24
+_080C21EC:
+ ldr r6, _080C2238 @ =0x000060b2
+ cmp r5, r7
+ bge _080C21F4
+ adds r6, 0x2
+_080C21F4:
+ asrs r2, r4, 24
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _080C21FE
+ negs r0, r2
+_080C21FE:
+ cmp r5, r0
+ bge _080C2240
+ ldr r3, _080C223C @ =0x000060a4
+ cmp r2, 0
+ bge _080C2242
+ adds r3, 0x2
+ b _080C2242
+ .align 2, 0
+_080C220C: .4byte gUnknown_08D1977C
+_080C2210: .4byte 0x040000d4
+_080C2214: .4byte 0x85000400
+_080C2218: .4byte gUnknown_08D1A490
+_080C221C: .4byte 0x0600d000
+_080C2220: .4byte gUnknown_08D1A364
+_080C2224: .4byte 0x0600e000
+_080C2228: .4byte gUnknown_08D1A250
+_080C222C: .4byte 0x0600f000
+_080C2230: .4byte gUnknown_08D1A618
+_080C2234: .4byte gWindowConfig_81E6FA0
+_080C2238: .4byte 0x000060b2
+_080C223C: .4byte 0x000060a4
+_080C2240:
+ ldr r3, _080C2264 @ =0x000060a2
+_080C2242:
+ ldr r2, _080C2268 @ =0x0600c166
+ adds r0, r1, r2
+ strh r6, [r0]
+ adds r2, 0x40
+ adds r0, r1, r2
+ strh r3, [r0]
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, 0x9
+ ble _080C21EC
+ mov r6, r12
+ cmp r6, 0x3
+ ble _080C21C0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2264: .4byte 0x000060a2
+_080C2268: .4byte 0x0600c166
+ thumb_func_end sub_80C2144
+
+ thumb_func_start sub_80C226C
+sub_80C226C: @ 80C226C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C2288 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _080C2294
+ ldr r0, _080C228C @ =gUnknown_020238CC
+ ldr r1, _080C2290 @ =gUnknown_083D17DC
+ bl StringCopy
+ adds r2, r0, 0
+ b _080C2296
+ .align 2, 0
+_080C2288: .4byte gUnknown_02038695
+_080C228C: .4byte gUnknown_020238CC
+_080C2290: .4byte gUnknown_083D17DC
+_080C2294:
+ ldr r2, _080C22E8 @ =gUnknown_020238CC
+_080C2296:
+ movs r4, 0xFC
+ strb r4, [r2]
+ movs r0, 0x6
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r6, r5, 6
+ ldr r7, _080C22EC @ =gUnknown_02038572
+ adds r1, r6, r7
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r4, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x32
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r1, _080C22F0 @ =gUnknown_083D17E0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080C22F4 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C22FC
+ lsls r4, r5, 3
+ subs r1, r4, r5
+ lsls r1, 2
+ ldr r0, _080C22F8 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ b _080C230A
+ .align 2, 0
+_080C22E8: .4byte gUnknown_020238CC
+_080C22EC: .4byte gUnknown_02038572
+_080C22F0: .4byte gUnknown_083D17E0
+_080C22F4: .4byte gUnknown_0203869A
+_080C22F8: .4byte gLinkPlayers + 0x8
+_080C22FC:
+ adds r1, r7, 0
+ adds r1, 0xB
+ adds r1, r6, r1
+ adds r0, r2, 0
+ bl StringCopy
+ lsls r4, r5, 3
+_080C230A:
+ ldr r0, _080C2334 @ =gMenuWindow
+ ldr r1, _080C2338 @ =gUnknown_020238CC
+ adds r2, r4, r5
+ lsls r2, 18
+ ldr r3, _080C233C @ =0x03020000
+ adds r2, r3
+ lsrs r2, 16
+ lsls r3, r5, 1
+ adds r3, r5
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x7
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2334: .4byte gMenuWindow
+_080C2338: .4byte gUnknown_020238CC
+_080C233C: .4byte 0x03020000
+ thumb_func_end sub_80C226C
+
+ thumb_func_start sub_80C2340
+sub_80C2340: @ 80C2340
+ push {r4,lr}
+ movs r4, 0
+_080C2344:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80C226C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2344
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2340
+
+ thumb_func_start sub_80C2358
+sub_80C2358: @ 80C2358
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080C240C @ =gPaletteFade
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80C2020
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80C2144
+ bl sub_80C310C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80C30D4
+ bl sub_80C2340
+ ldr r4, _080C2410 @ =0x02018000
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x18
+ movs r1, 0
+ movs r2, 0x50
+ bl memset
+ bl sub_80C33DC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrb r1, [r5, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ ldr r0, _080C2414 @ =sub_80C24F4
+ movs r1, 0x5
+ bl CreateTask
+ strb r0, [r4, 0x2]
+ ldr r0, _080C2418 @ =sub_80C2430
+ bl SetMainCallback2
+ ldr r1, _080C241C @ =gUnknown_03004200
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2420 @ =gUnknown_03004244
+ ldr r2, _080C2424 @ =0x000080a0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080C2428 @ =sub_80C2F28
+ movs r1, 0x14
+ bl CreateTask
+ bl sub_80C3F00
+ movs r0, 0xDF
+ lsls r0, 1
+ bl PlayBGM
+ ldr r0, _080C242C @ =sub_80C2448
+ bl SetVBlankCallback
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C240C: .4byte gPaletteFade
+_080C2410: .4byte 0x02018000
+_080C2414: .4byte sub_80C24F4
+_080C2418: .4byte sub_80C2430
+_080C241C: .4byte gUnknown_03004200
+_080C2420: .4byte gUnknown_03004244
+_080C2424: .4byte 0x000080a0
+_080C2428: .4byte sub_80C2F28
+_080C242C: .4byte sub_80C2448
+ thumb_func_end sub_80C2358
+
+ thumb_func_start sub_80C2430
+sub_80C2430: @ 80C2430
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2430
+
+ thumb_func_start sub_80C2448
+sub_80C2448: @ 80C2448
+ push {lr}
+ ldr r1, _080C24C0 @ =REG_BG0HOFS
+ ldr r0, _080C24C4 @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24C8 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24CC @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D0 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D4 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D8 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24DC @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24E0 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080C24E4 @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24E8 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080C24EC @ =gUnknown_03004200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24F0 @ =gUnknown_03004244
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C24C0: .4byte REG_BG0HOFS
+_080C24C4: .4byte gUnknown_030042A4
+_080C24C8: .4byte gUnknown_030042A0
+_080C24CC: .4byte gUnknown_030042C0
+_080C24D0: .4byte gUnknown_030041B4
+_080C24D4: .4byte gUnknown_03004288
+_080C24D8: .4byte gUnknown_03004280
+_080C24DC: .4byte gUnknown_030041B0
+_080C24E0: .4byte gUnknown_030041B8
+_080C24E4: .4byte gUnknown_030042C4
+_080C24E8: .4byte gUnknown_03004240
+_080C24EC: .4byte gUnknown_03004200
+_080C24F0: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2448
+
+ thumb_func_start sub_80C24F4
+sub_80C24F4: @ 80C24F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ ldr r0, _080C252C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C254E
+ ldr r0, _080C2530 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2540
+ ldr r0, _080C2534 @ =gOtherText_LinkStandby
+ bl sub_80C3698
+ ldr r1, _080C2538 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C253C @ =sub_80C255C
+ str r1, [r0]
+ b _080C254E
+ .align 2, 0
+_080C252C: .4byte gPaletteFade
+_080C2530: .4byte gUnknown_0203869A
+_080C2534: .4byte gOtherText_LinkStandby
+_080C2538: .4byte gTasks
+_080C253C: .4byte sub_80C255C
+_080C2540:
+ ldr r0, _080C2554 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2558 @ =sub_80C2600
+ str r0, [r1]
+_080C254E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2554: .4byte gTasks
+_080C2558: .4byte sub_80C2600
+ thumb_func_end sub_80C24F4
+
+ thumb_func_start sub_80C255C
+sub_80C255C: @ 80C255C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C258C
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C258C
+ ldr r0, _080C2598 @ =sub_80C25A4
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080C259C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C25A0 @ =TaskDummy
+ str r1, [r0]
+_080C258C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2594: .4byte gReceivedRemoteLinkPlayers
+_080C2598: .4byte sub_80C25A4
+_080C259C: .4byte gTasks
+_080C25A0: .4byte TaskDummy
+ thumb_func_end sub_80C255C
+
+ thumb_func_start sub_80C25A4
+sub_80C25A4: @ 80C25A4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C25B8 @ =sub_80C89DC
+ ldr r2, _080C25BC @ =sub_80C25C0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25B8: .4byte sub_80C89DC
+_080C25BC: .4byte sub_80C25C0
+ thumb_func_end sub_80C25A4
+
+ thumb_func_start sub_80C25C0
+sub_80C25C0: @ 80C25C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C25EC
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r2, _080C25F4 @ =gTasks
+ ldr r0, _080C25F8 @ =0x02018000
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080C25FC @ =sub_80C2600
+ str r1, [r0]
+ bl sub_80C3764
+_080C25EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25F4: .4byte gTasks
+_080C25F8: .4byte 0x02018000
+_080C25FC: .4byte sub_80C2600
+ thumb_func_end sub_80C25C0
+
+ thumb_func_start sub_80C2600
+sub_80C2600: @ 80C2600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2644 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrh r1, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080C2654
+ ldr r0, _080C2648 @ =sub_80C2F64
+ movs r1, 0x14
+ bl CreateTask
+ ldr r4, _080C264C @ =gContestText_AnnounceResults
+ ldr r0, _080C2650 @ =0x02018000
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ movs r2, 0x78
+ b _080C26A6
+ .align 2, 0
+_080C2644: .4byte gTasks
+_080C2648: .4byte sub_80C2F64
+_080C264C: .4byte gContestText_AnnounceResults
+_080C2650: .4byte 0x02018000
+_080C2654:
+ cmp r0, 0x1
+ bne _080C2668
+ ldr r0, _080C2664 @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080C26D4
+ b _080C267C
+ .align 2, 0
+_080C2664: .4byte 0x02018000
+_080C2668:
+ cmp r0, 0x2
+ bne _080C2684
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C26D4
+ movs r0, 0
+_080C267C:
+ strh r0, [r5, 0xA]
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+_080C2684:
+ cmp r0, 0x3
+ bne _080C26C0
+ ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
+ ldr r0, _080C26B8 @ =0x02018000
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C26BC @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+_080C26A6:
+ bl sub_80C34CC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+ .align 2, 0
+_080C26B4: .4byte gContestText_PreliminaryResults
+_080C26B8: .4byte 0x02018000
+_080C26BC: .4byte 0x0000ffff
+_080C26C0:
+ cmp r0, 0x4
+ bne _080C26D4
+ ldr r0, _080C26DC @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x2
+ bne _080C26D4
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080C26E0 @ =sub_80C26E4
+ str r0, [r5]
+_080C26D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C26DC: .4byte 0x02018000
+_080C26E0: .4byte sub_80C26E4
+ thumb_func_end sub_80C2600
+
+ thumb_func_start sub_80C26E4
+sub_80C26E4: @ 80C26E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2708 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C2744
+ cmp r0, 0x1
+ bgt _080C270C
+ cmp r0, 0
+ beq _080C2712
+ b _080C2766
+ .align 2, 0
+_080C2708: .4byte gTasks
+_080C270C:
+ cmp r0, 0x2
+ beq _080C2754
+ b _080C2766
+_080C2712:
+ ldr r5, _080C2738 @ =0x02018000
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C2766
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C273C
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2738: .4byte 0x02018000
+_080C273C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2766
+_080C2744:
+ ldr r0, _080C2750 @ =0x02018000
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C2766
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2750: .4byte 0x02018000
+_080C2754:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xC]
+ ldr r0, _080C276C @ =sub_80C2770
+ str r0, [r4]
+_080C2766:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C276C: .4byte sub_80C2770
+ thumb_func_end sub_80C26E4
+
+ thumb_func_start sub_80C2770
+sub_80C2770: @ 80C2770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r5, _080C27BC @ =0x02018000
+ ldrb r3, [r5, 0x4]
+ cmp r3, 0
+ bne _080C27CC
+ ldr r1, _080C27C0 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C27DE
+ strh r3, [r1, 0xA]
+ ldr r4, _080C27C4 @ =gContestText_Round2Results
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C27C8 @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+ b _080C27DE
+ .align 2, 0
+_080C27BC: .4byte 0x02018000
+_080C27C0: .4byte gTasks
+_080C27C4: .4byte gContestText_Round2Results
+_080C27C8: .4byte 0x0000ffff
+_080C27CC:
+ cmp r3, 0x2
+ bne _080C27DE
+ ldr r0, _080C27E4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C27E8 @ =sub_80C27EC
+ str r0, [r1]
+_080C27DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C27E4: .4byte gTasks
+_080C27E8: .4byte sub_80C27EC
+ thumb_func_end sub_80C2770
+
+ thumb_func_start sub_80C27EC
+sub_80C27EC: @ 80C27EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2810 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C284C
+ cmp r0, 0x1
+ bgt _080C2814
+ cmp r0, 0
+ beq _080C281A
+ b _080C286C
+ .align 2, 0
+_080C2810: .4byte gTasks
+_080C2814:
+ cmp r0, 0x2
+ beq _080C285C
+ b _080C286C
+_080C281A:
+ ldr r5, _080C2840 @ =0x02018000
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C286C
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C2844
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2840: .4byte 0x02018000
+_080C2844:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C286C
+_080C284C:
+ ldr r0, _080C2858 @ =0x02018000
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C286C
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2858: .4byte 0x02018000
+_080C285C:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080C2874 @ =sub_80C2878
+ str r0, [r4]
+_080C286C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2874: .4byte sub_80C2878
+ thumb_func_end sub_80C27EC
+
+ thumb_func_start sub_80C2878
+sub_80C2878: @ 80C2878
+ push {r4-r7,lr}
+ sub sp, 0x64
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C28A0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _080C2896
+ b _080C2A80
+_080C2896:
+ lsls r0, 2
+ ldr r1, _080C28A4 @ =_080C28A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C28A0: .4byte gTasks
+_080C28A4: .4byte _080C28A8
+ .align 2, 0
+_080C28A8:
+ .4byte _080C28C0
+ .4byte _080C28E0
+ .4byte _080C28FE
+ .4byte _080C2938
+ .4byte _080C299C
+ .4byte _080C2A70
+_080C28C0:
+ ldr r0, _080C28DC @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080C28CA
+ b _080C2A80
+_080C28CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C28DC: .4byte 0x02018000
+_080C28E0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C28F8
+ b _080C2A80
+_080C28F8:
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _080C2A4A
+_080C28FE:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r7, _080C292C @ =gTasks
+_080C2904:
+ ldr r0, _080C2930 @ =sub_80C3A5C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _080C2934 @ =gUnknown_02038690
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2904
+ b _080C2A42
+ .align 2, 0
+_080C292C: .4byte gTasks
+_080C2930: .4byte sub_80C3A5C
+_080C2934: .4byte gUnknown_02038690
+_080C2938:
+ ldr r0, _080C2990 @ =0x02018000
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _080C2942
+ b _080C2A80
+_080C2942:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C295A
+ b _080C2A80
+_080C295A:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldr r0, _080C2994 @ =sub_80C3B30
+ movs r1, 0xA
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r4, 0
+ ldr r1, _080C2998 @ =gUnknown_02038690
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C2984
+_080C2976:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C2984
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2976
+_080C2984:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0xE
+ bl sub_80C3E60
+ b _080C2A80
+ .align 2, 0
+_080C2990: .4byte 0x02018000
+_080C2994: .4byte sub_80C3B30
+_080C2998: .4byte gUnknown_02038690
+_080C299C:
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r1, 0
+ cmp r0, 0x15
+ bne _080C2A80
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ movs r4, 0
+ ldr r2, _080C29F4 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r1, _080C29F8 @ =gUnknown_0203869A
+ ldr r3, _080C29FC @ =gStringVar1
+ cmp r0, 0
+ beq _080C29D4
+_080C29C6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C29D4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C29C6
+_080C29D4:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2A04
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r0, _080C2A00 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r4, 6
+ b _080C2A10
+ .align 2, 0
+_080C29F4: .4byte gUnknown_02038690
+_080C29F8: .4byte gUnknown_0203869A
+_080C29FC: .4byte gStringVar1
+_080C2A00: .4byte gLinkPlayers + 0x8
+_080C2A04:
+ lsls r4, 6
+ ldr r1, _080C2A54 @ =gUnknown_0203857D
+ adds r1, r4, r1
+ adds r0, r3, 0
+ bl StringCopy
+_080C2A10:
+ ldr r0, _080C2A58 @ =gStringVar2
+ ldr r1, _080C2A5C @ =gUnknown_02038572
+ adds r1, r4, r1
+ bl StringCopy
+ ldr r1, _080C2A60 @ =gContestText_PokeWon
+ mov r0, sp
+ bl StringExpandPlaceholders
+ ldr r0, _080C2A64 @ =0x02018000
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_80C3158
+ mov r0, sp
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C2A68 @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+_080C2A42:
+ ldr r0, _080C2A6C @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+_080C2A4A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C2A54: .4byte gUnknown_0203857D
+_080C2A58: .4byte gStringVar2
+_080C2A5C: .4byte gUnknown_02038572
+_080C2A60: .4byte gContestText_PokeWon
+_080C2A64: .4byte 0x02018000
+_080C2A68: .4byte 0x0000ffff
+_080C2A6C: .4byte gTasks
+_080C2A70:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2A88 @ =sub_80C2A8C
+ str r1, [r0]
+_080C2A80:
+ add sp, 0x64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2A88: .4byte sub_80C2A8C
+ thumb_func_end sub_80C2878
+
+ thumb_func_start sub_80C2A8C
+sub_80C2A8C: @ 80C2A8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C2ABC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080C2AB2
+ b _080C2D04
+_080C2AB2:
+ lsls r0, 2
+ ldr r1, _080C2AC0 @ =_080C2AC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C2ABC: .4byte gTasks
+_080C2AC0: .4byte _080C2AC4
+ .align 2, 0
+_080C2AC4:
+ .4byte _080C2ADC
+ .4byte _080C2C04
+ .4byte _080C2C54
+ .4byte _080C2C64
+ .4byte _080C2CA8
+ .4byte _080C2CE8
+_080C2ADC:
+ ldr r1, _080C2BC4 @ =gUnknown_030042C4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2BC8 @ =gUnknown_03004240
+ ldr r3, _080C2BCC @ =0x00005050
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r1, 0
+ ldr r3, _080C2BD0 @ =gUnknown_02038690
+ ldrb r0, [r3]
+ lsls r4, r7, 2
+ mov r10, r4
+ ldr r2, _080C2BD4 @ =gUnknown_02038570
+ ldr r5, _080C2BD8 @ =gMonFrontPicTable
+ mov r12, r5
+ ldr r4, _080C2BDC @ =gMonFrontPicCoords
+ mov r8, r4
+ ldr r5, _080C2BE0 @ =gUnknown_081FAF4C
+ mov r9, r5
+ cmp r0, 0
+ beq _080C2B14
+_080C2B06:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080C2B14
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2B06
+_080C2B14:
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r1, r0
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ lsls r0, r6, 3
+ add r0, r12
+ lsls r2, r6, 2
+ add r2, r8
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ mov r5, r9
+ ldr r3, [r5, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r3, _080C2BE4 @ =0x02000000
+ bl sub_800D334
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ adds r2, r4, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C2BE8 @ =gUnknown_02024E8C
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080C2BEC @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r3, r2, r5
+ strh r6, [r3, 0x30]
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ strb r1, [r3, 0x5]
+ adds r5, 0x1C
+ adds r2, r5
+ ldr r1, _080C2BF0 @ =sub_80C3C44
+ str r1, [r2]
+ ldr r2, _080C2BE4 @ =0x02000000
+ movs r3, 0xC0
+ lsls r3, 9
+ adds r1, r2, r3
+ strb r0, [r1, 0x8]
+ ldr r0, _080C2BF4 @ =gUnknown_083D17CC
+ bl LoadCompressedObjectPic
+ ldr r0, _080C2BF8 @ =gUnknown_083D17D4
+ bl LoadCompressedObjectPalette
+ ldr r0, _080C2BFC @ =sub_80C3D04
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _080C2C00 @ =gTasks
+ mov r4, r10
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2BC4: .4byte gUnknown_030042C4
+_080C2BC8: .4byte gUnknown_03004240
+_080C2BCC: .4byte 0x00005050
+_080C2BD0: .4byte gUnknown_02038690
+_080C2BD4: .4byte gUnknown_02038570
+_080C2BD8: .4byte gMonFrontPicTable
+_080C2BDC: .4byte gMonFrontPicCoords
+_080C2BE0: .4byte gUnknown_081FAF4C
+_080C2BE4: .4byte 0x02000000
+_080C2BE8: .4byte gUnknown_02024E8C
+_080C2BEC: .4byte gSprites
+_080C2BF0: .4byte sub_80C3C44
+_080C2BF4: .4byte gUnknown_083D17CC
+_080C2BF8: .4byte gUnknown_083D17D4
+_080C2BFC: .4byte sub_80C3D04
+_080C2C00: .4byte gTasks
+_080C2C04:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080C2C30
+ movs r0, 0x20
+ strh r0, [r4, 0xC]
+_080C2C30:
+ ldrb r2, [r4, 0xC]
+ ldr r3, _080C2C50 @ =gUnknown_03004240
+ movs r0, 0x50
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r2, 0
+ adds r1, 0x50
+ orrs r0, r1
+ strh r0, [r3]
+ cmp r2, 0x20
+ bne _080C2D04
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C50: .4byte gUnknown_03004240
+_080C2C54:
+ ldr r0, _080C2C60 @ =0x02018000
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _080C2D04
+ b _080C2CD0
+ .align 2, 0
+_080C2C60: .4byte 0x02018000
+_080C2C64:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x79
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldr r2, _080C2C9C @ =gSprites
+ ldr r0, _080C2CA0 @ =0x02018000
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080C2CA4 @ =sub_80C3CB8
+ str r1, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C9C: .4byte gSprites
+_080C2CA0: .4byte 0x02018000
+_080C2CA4: .4byte sub_80C3CB8
+_080C2CA8:
+ ldr r0, _080C2CE0 @ =0x02018000
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ ldr r3, _080C2CE4 @ =gUnknown_03004240
+ ldrh r0, [r3]
+ lsrs r2, r0, 8
+ adds r0, r2, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x50
+ bls _080C2CC2
+ movs r2, 0x50
+_080C2CC2:
+ lsls r1, r2, 8
+ movs r0, 0xA0
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+ cmp r2, 0x50
+ bne _080C2D04
+_080C2CD0:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2CE0: .4byte 0x02018000
+_080C2CE4: .4byte gUnknown_03004240
+_080C2CE8:
+ ldr r2, _080C2D14 @ =0x02018000
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x9]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2D18 @ =sub_80C2D1C
+ str r1, [r0]
+_080C2D04:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D14: .4byte 0x02018000
+_080C2D18: .4byte sub_80C2D1C
+ thumb_func_end sub_80C2A8C
+
+ thumb_func_start sub_80C2D1C
+sub_80C2D1C: @ 80C2D1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080C2D6C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2D66
+ ldr r0, _080C2D70 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r6, r7, 2
+ cmp r0, 0
+ bne _080C2D5A
+ ldr r5, _080C2D74 @ =gUnknown_02038570
+ movs r4, 0x3
+_080C2D42:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C2D42
+_080C2D5A:
+ ldr r0, _080C2D78 @ =gTasks
+ adds r1, r6, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2D7C @ =sub_80C2D80
+ str r0, [r1]
+_080C2D66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D6C: .4byte gMain
+_080C2D70: .4byte gUnknown_0203869A
+_080C2D74: .4byte gUnknown_02038570
+_080C2D78: .4byte gTasks
+_080C2D7C: .4byte sub_80C2D80
+ thumb_func_end sub_80C2D1C
+
+ thumb_func_start sub_80C2D80
+sub_80C2D80: @ 80C2D80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2DAC @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2DBC
+ ldr r0, _080C2DB0 @ =gOtherText_LinkStandby
+ bl sub_80C3698
+ bl sub_800832C
+ ldr r1, _080C2DB4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2DB8 @ =sub_80C2DD8
+ str r1, [r0]
+ b _080C2DCA
+ .align 2, 0
+_080C2DAC: .4byte gUnknown_0203869A
+_080C2DB0: .4byte gOtherText_LinkStandby
+_080C2DB4: .4byte gTasks
+_080C2DB8: .4byte sub_80C2DD8
+_080C2DBC:
+ ldr r0, _080C2DD0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2DD4 @ =sub_80C2E14
+ str r0, [r1]
+_080C2DCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2DD0: .4byte gTasks
+_080C2DD4: .4byte sub_80C2E14
+ thumb_func_end sub_80C2D80
+
+ thumb_func_start sub_80C2DD8
+sub_80C2DD8: @ 80C2DD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C2DFC
+ ldr r0, _080C2E08 @ =gUnknown_0203869A
+ strb r1, [r0]
+ bl sub_80C3764
+ ldr r1, _080C2E0C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E10 @ =sub_80C2E14
+ str r1, [r0]
+_080C2DFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E04: .4byte gReceivedRemoteLinkPlayers
+_080C2E08: .4byte gUnknown_0203869A
+_080C2E0C: .4byte gTasks
+_080C2E10: .4byte sub_80C2E14
+ thumb_func_end sub_80C2DD8
+
+ thumb_func_start sub_80C2E14
+sub_80C2E14: @ 80C2E14
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080C2E80 @ =gUnknown_02038690
+ ldr r0, _080C2E84 @ =gUnknown_02038695
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80BE284
+ movs r0, 0x2
+ bl sub_810FB10
+ ldr r0, _080C2E88 @ =gUnknown_0203869E
+ ldrb r0, [r0]
+ bl sub_80B2A7C
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ ldr r4, _080C2E8C @ =0x02000000
+ ldr r0, _080C2E90 @ =0x00015ddf
+ adds r1, r4, r0
+ movs r6, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C2E94 @ =0x00015dde
+ adds r4, r1
+ strb r0, [r4]
+ str r6, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _080C2E98 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E9C @ =sub_80C2EA0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E80: .4byte gUnknown_02038690
+_080C2E84: .4byte gUnknown_02038695
+_080C2E88: .4byte gUnknown_0203869E
+_080C2E8C: .4byte 0x02000000
+_080C2E90: .4byte 0x00015ddf
+_080C2E94: .4byte 0x00015dde
+_080C2E98: .4byte gTasks
+_080C2E9C: .4byte sub_80C2EA0
+ thumb_func_end sub_80C2E14
+
+ thumb_func_start sub_80C2EA0
+sub_80C2EA0: @ 80C2EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ ldr r0, _080C2ED8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080C2F18
+ ldr r1, _080C2EDC @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C2EE8
+ ldr r0, _080C2EE0 @ =0x02018000
+ ldrb r0, [r0, 0x3]
+ bl DestroyTask
+ ldr r0, _080C2EE4 @ =0x0000ffff
+ b _080C2EEE
+ .align 2, 0
+_080C2ED8: .4byte gPaletteFade
+_080C2EDC: .4byte gTasks
+_080C2EE0: .4byte 0x02018000
+_080C2EE4: .4byte 0x0000ffff
+_080C2EE8:
+ cmp r0, 0x1
+ bne _080C2F04
+ ldr r0, _080C2F00 @ =0xffff0000
+_080C2EEE:
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080C2F18
+ .align 2, 0
+_080C2F00: .4byte 0xffff0000
+_080C2F04:
+ ldr r0, _080C2F20 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x4
+ strh r3, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_080C2F18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F20: .4byte REG_BLDCNT
+_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C2EA0
+
+ thumb_func_start sub_80C2F28
+sub_80C2F28: @ 80C2F28
+ push {r4,r5,lr}
+ ldr r2, _080C2F5C @ =gUnknown_030041B0
+ ldrh r3, [r2]
+ adds r0, r3, 0x2
+ strh r0, [r2]
+ ldr r4, _080C2F60 @ =gUnknown_030041B8
+ ldrh r5, [r4]
+ adds r1, r5, 0x1
+ strh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F48
+ adds r0, r3, 0
+ subs r0, 0xFD
+ strh r0, [r2]
+_080C2F48:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F56
+ adds r0, r5, 0
+ subs r0, 0xFE
+ strh r0, [r4]
+_080C2F56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F5C: .4byte gUnknown_030041B0
+_080C2F60: .4byte gUnknown_030041B8
+ thumb_func_end sub_80C2F28
+
+ thumb_func_start sub_80C2F64
+sub_80C2F64: @ 80C2F64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C2F94 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080C2FE6
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080C2F98
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ b _080C2F9C
+ .align 2, 0
+_080C2F94: .4byte gTasks
+_080C2F98:
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+_080C2F9C:
+ strh r0, [r2, 0xA]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x10
+ bne _080C2FB2
+ movs r0, 0x1
+ b _080C2FB6
+_080C2FB2:
+ cmp r0, 0
+ bne _080C2FB8
+_080C2FB6:
+ strh r0, [r1, 0xC]
+_080C2FB8:
+ ldr r0, _080C3000 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3004 @ =0x00002ede
+ movs r0, 0x6B
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3008 @ =0x00007fff
+ movs r0, 0x68
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C300C @ =0x000077be
+ movs r0, 0x6E
+ movs r1, 0x1
+ bl BlendPalette
+_080C2FE6:
+ ldr r1, _080C3000 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r4, [r0, r3]
+ cmp r4, 0
+ bne _080C3014
+ ldr r0, _080C3010 @ =0x02018000
+ strb r4, [r0, 0xA]
+ b _080C301A
+ .align 2, 0
+_080C3000: .4byte gTasks
+_080C3004: .4byte 0x00002ede
+_080C3008: .4byte 0x00007fff
+_080C300C: .4byte 0x000077be
+_080C3010: .4byte 0x02018000
+_080C3014:
+ ldr r1, _080C3020 @ =0x02018000
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+_080C301A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3020: .4byte 0x02018000
+ thumb_func_end sub_80C2F64
+
+ thumb_func_start sub_80C3024
+sub_80C3024: @ 80C3024
+ push {r4-r6,lr}
+ ldr r6, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ cmp r3, 0
+ beq _080C30B0
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30A0 @ =0x06004000
+ adds r1, r2
+ ldr r2, _080C30A4 @ =0x040000d4
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080C30A8 @ =0x84000060
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xA
+ lsls r1, 28
+ lsls r0, r4, 20
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ orrs r0, r1
+ lsrs r1, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 21
+ movs r2, 0x83
+ lsls r2, 16
+ adds r0, r2
+ lsrs r5, r0, 16
+ movs r2, 0
+ ldr r6, _080C30AC @ =0x0600c000
+_080C307C:
+ lsls r0, r2, 5
+ adds r4, r2, 0x1
+ adds r0, r5
+ movs r3, 0x3
+ lsls r0, 1
+ adds r2, r0, r6
+_080C3088:
+ strh r1, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3088
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _080C307C
+ b _080C30CA
+ .align 2, 0
+_080C30A0: .4byte 0x06004000
+_080C30A4: .4byte 0x040000d4
+_080C30A8: .4byte 0x84000060
+_080C30AC: .4byte 0x0600c000
+_080C30B0:
+ adds r1, r6, 0
+ bl sub_809D4F4
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30D0 @ =0x06004000
+ adds r1, r2
+ movs r2, 0xC0
+ lsls r2, 1
+ bl RequestSpriteCopy
+_080C30CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C30D0: .4byte 0x06004000
+ thumb_func_end sub_80C3024
+
+ thumb_func_start sub_80C30D4
+sub_80C30D4: @ 80C30D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r5, 0
+ ldr r4, _080C3108 @ =gUnknown_02038570
+_080C30E4:
+ ldrh r0, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r2, [r4, 0x38]
+ str r2, [sp]
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_80C3024
+ adds r4, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080C30E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3108: .4byte gUnknown_02038570
+ thumb_func_end sub_80C30D4
+
+ thumb_func_start sub_80C310C
+sub_80C310C: @ 80C310C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080C314C @ =gMonIconPaletteIndices
+ movs r5, 0xA0
+ lsls r5, 16
+_080C3116:
+ ldr r1, _080C3150 @ =gUnknown_02038570
+ lsls r0, r4, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080C3154 @ =gMonIconPalettes
+ adds r0, r1
+ lsrs r1, r5, 16
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 13
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C3116
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C314C: .4byte gMonIconPaletteIndices
+_080C3150: .4byte gUnknown_02038570
+_080C3154: .4byte gMonIconPalettes
+ thumb_func_end sub_80C310C
+
+ thumb_func_start sub_80C3158
+sub_80C3158: @ 80C3158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r3, _080C32C0 @ =gSprites
+ adds r2, r3
+ mov r1, sp
+ ldrh r0, [r2, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1]
+ mov r4, sp
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x2]
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x4]
+ movs r0, 0x32
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x6]
+ ldr r1, _080C32C4 @ =gWindowConfig_81E7278
+ mov r8, r1
+ ldr r7, _080C32C8 @ =0x06010000
+ ldr r2, _080C32CC @ =0x040000d4
+ ldr r6, _080C32D0 @ =0x85000100
+ mov r1, sp
+ movs r5, 0
+ add r3, sp, 0x8
+ movs r4, 0x3
+_080C31CE:
+ ldrh r0, [r1]
+ lsls r0, 5
+ adds r0, r7
+ str r5, [sp, 0x8]
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r6, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C31CE
+ mov r0, r8
+ mov r1, r9
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080C32D4 @ =gUnknown_020238CC
+ ldr r1, _080C32D8 @ =gUnknown_083D17E2
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ mvns r0, r5
+ adds r1, r0, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3218
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ lsrs r0, r1, 1
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+_080C3218:
+ adds r6, r5, 0x7
+ movs r1, 0x8
+ negs r1, r1
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r6, 24
+ lsrs r5, r6, 24
+ adds r0, r2, 0
+ mov r1, r9
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ strb r5, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080C32DC @ =0x02018068
+ mov r10, r0
+ ldr r1, _080C32D4 @ =gUnknown_020238CC
+ bl sub_80034D4
+ mov r0, sp
+ ldrh r4, [r0]
+ lsls r4, 5
+ ldr r1, _080C32C8 @ =0x06010000
+ adds r7, r4, r1
+ ldr r0, _080C32E0 @ =gUnknown_083D1624
+ mov r9, r0
+ ldr r1, _080C32E4 @ =REG_BG0CNT
+ mov r8, r1
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ mov r5, r9
+ adds r5, 0x80
+ ldr r0, _080C32E8 @ =0x06010100
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ ldr r0, _080C32EC @ =0x06010200
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, r9
+ adds r0, 0x40
+ ldr r1, _080C32F0 @ =0x06010300
+ adds r4, r1
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ lsrs r5, r6, 27
+ movs r4, 0
+ cmp r4, r5
+ bgt _080C3382
+ mov r6, sp
+ mov r0, r10
+ adds r0, 0x20
+ str r0, [sp, 0xC]
+ mov r1, r10
+ str r1, [sp, 0x10]
+ ldr r0, _080C32F4 @ =0x0600fd20
+ str r0, [sp, 0x14]
+ ldr r1, _080C32F8 @ =0x0600fe20
+ str r1, [sp, 0x18]
+ ldr r0, _080C32FC @ =0x0600ff20
+ mov r10, r0
+ ldr r1, _080C3300 @ =0x06010020
+ mov r9, r1
+_080C32B2:
+ cmp r4, 0x6
+ bgt _080C3304
+ ldrh r0, [r6]
+ lsls r0, 5
+ mov r1, r9
+ b _080C3322
+ .align 2, 0
+_080C32C0: .4byte gSprites
+_080C32C4: .4byte gWindowConfig_81E7278
+_080C32C8: .4byte 0x06010000
+_080C32CC: .4byte 0x040000d4
+_080C32D0: .4byte 0x85000100
+_080C32D4: .4byte gUnknown_020238CC
+_080C32D8: .4byte gUnknown_083D17E2
+_080C32DC: .4byte 0x02018068
+_080C32E0: .4byte gUnknown_083D1624
+_080C32E4: .4byte REG_BG0CNT
+_080C32E8: .4byte 0x06010100
+_080C32EC: .4byte 0x06010200
+_080C32F0: .4byte 0x06010300
+_080C32F4: .4byte 0x0600fd20
+_080C32F8: .4byte 0x0600fe20
+_080C32FC: .4byte 0x0600ff20
+_080C3300: .4byte 0x06010020
+_080C3304:
+ cmp r4, 0xE
+ bgt _080C3310
+ ldrh r0, [r6, 0x2]
+ lsls r0, 5
+ mov r1, r10
+ b _080C3322
+_080C3310:
+ cmp r4, 0x16
+ bgt _080C331C
+ ldrh r0, [r6, 0x4]
+ lsls r0, 5
+ ldr r1, [sp, 0x18]
+ b _080C3322
+_080C331C:
+ ldrh r0, [r6, 0x6]
+ lsls r0, 5
+ ldr r1, [sp, 0x14]
+_080C3322:
+ adds r7, r0, r1
+ cmp r4, r5
+ beq _080C3382
+ ldr r0, _080C33D0 @ =gUnknown_083D16E4
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, _080C33D0 @ =gUnknown_083D16E4
+ adds r0, 0x20
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ ldr r0, [sp, 0x10]
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, [sp, 0xC]
+ mov r2, r8
+ bl CpuSet
+ ldr r1, [sp, 0xC]
+ adds r1, 0x40
+ str r1, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ adds r0, 0x40
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ adds r1, 0x20
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x20
+ add r10, r1
+ add r9, r1
+ adds r4, 0x1
+ cmp r4, r5
+ ble _080C32B2
+_080C3382:
+ ldr r4, _080C33D4 @ =gUnknown_083D1644
+ ldr r5, _080C33D8 @ =REG_BG0CNT
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r6, r4, 0
+ adds r6, 0x80
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r4, 0x40
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C33D0: .4byte gUnknown_083D16E4
+_080C33D4: .4byte gUnknown_083D1644
+_080C33D8: .4byte REG_BG0CNT
+ thumb_func_end sub_80C3158
+
+ thumb_func_start sub_80C33DC
+sub_80C33DC: @ 80C33DC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ mov r1, sp
+ ldr r0, _080C3498 @ =gSpriteTemplate_83D174C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ add r5, sp, 0x18
+ ldr r6, _080C349C @ =gUnknown_083D1764
+ movs r4, 0x7
+_080C33F2:
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r6, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C33F2
+ ldr r0, _080C34A0 @ =gUnknown_083D17A4
+ bl LoadSpritePalette
+ movs r4, 0
+ mov r6, sp
+_080C340A:
+ mov r0, sp
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ adds r1, r5, r4
+ strb r0, [r1]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080C340A
+ ldr r2, _080C34A4 @ =gSprites
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x1]
+ movs r3, 0
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x2]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x3]
+ strh r1, [r0, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x5]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x6]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x7]
+ strh r1, [r0, 0x32]
+ ldr r1, _080C34A8 @ =0x02018000
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r1, 0x4]
+ ldrb r0, [r5, 0x4]
+ strb r0, [r1, 0x1]
+ bl sub_80C3764
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3498: .4byte gSpriteTemplate_83D174C
+_080C349C: .4byte gUnknown_083D1764
+_080C34A0: .4byte gUnknown_083D17A4
+_080C34A4: .4byte gSprites
+_080C34A8: .4byte 0x02018000
+ thumb_func_end sub_80C33DC
+
+ thumb_func_start sub_80C34AC
+sub_80C34AC: @ 80C34AC
+ push {lr}
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 25
+ lsrs r1, 25
+ movs r0, 0x70
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C34AC
+
+ thumb_func_start sub_80C34CC
+sub_80C34CC: @ 80C34CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, _080C3514 @ =0x02018000
+ mov r8, r4
+ ldrb r5, [r4]
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r5, _080C3518 @ =gSprites
+ adds r4, r5
+ movs r6, 0
+ movs r5, 0x88
+ lsls r5, 1
+ strh r5, [r4, 0x20]
+ strh r1, [r4, 0x22]
+ strh r6, [r4, 0x24]
+ strh r6, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ strh r3, [r4, 0x3A]
+ strh r6, [r4, 0x3C]
+ ldr r0, _080C351C @ =sub_80C3588
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1, 0x4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3514: .4byte 0x02018000
+_080C3518: .4byte gSprites
+_080C351C: .4byte sub_80C3588
+ thumb_func_end sub_80C34CC
+
+ thumb_func_start sub_80C3520
+sub_80C3520: @ 80C3520
+ push {r4,r5,lr}
+ ldr r4, _080C3558 @ =0x02018000
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _080C355C @ =gSprites
+ adds r1, r2
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ movs r3, 0
+ strh r2, [r1, 0x20]
+ ldrh r2, [r1, 0x26]
+ ldrh r5, [r1, 0x22]
+ adds r2, r5
+ strh r2, [r1, 0x22]
+ strh r3, [r1, 0x26]
+ strh r3, [r1, 0x24]
+ strh r0, [r1, 0x3A]
+ strh r3, [r1, 0x3C]
+ ldr r0, _080C3560 @ =sub_80C3630
+ str r0, [r1, 0x1C]
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3558: .4byte 0x02018000
+_080C355C: .4byte gSprites
+_080C3560: .4byte sub_80C3630
+ thumb_func_end sub_80C3520
+
+ thumb_func_start sub_80C3564
+sub_80C3564: @ 80C3564
+ movs r3, 0
+ movs r2, 0
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r1, 0x90
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x26]
+ strh r2, [r0, 0x24]
+ ldr r1, _080C3580 @ =SpriteCallbackDummy
+ str r1, [r0, 0x1C]
+ ldr r0, _080C3584 @ =0x02018000
+ strb r3, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080C3580: .4byte SpriteCallbackDummy
+_080C3584: .4byte 0x02018000
+ thumb_func_end sub_80C3564
+
+ thumb_func_start sub_80C3588
+sub_80C3588: @ 80C3588
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r3, 0x36]
+ movs r4, 0x36
+ ldrsh r1, [r3, r4]
+ cmp r0, r1
+ bge _080C35B2
+ strh r2, [r3, 0x20]
+_080C35B2:
+ movs r4, 0
+ ldr r6, _080C35F4 @ =gSprites
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C35BC:
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C35BC
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ bne _080C35EC
+ ldr r0, _080C35F8 @ =sub_80C35FC
+ str r0, [r3, 0x1C]
+_080C35EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C35F4: .4byte gSprites
+_080C35F8: .4byte sub_80C35FC
+ thumb_func_end sub_80C3588
+
+ thumb_func_start sub_80C35FC
+sub_80C35FC: @ 80C35FC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080C3628 @ =0x02018000
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ ldrh r3, [r2, 0x38]
+ ldr r1, _080C362C @ =0xffff0000
+ lsrs r0, r1, 16
+ cmp r3, r0
+ beq _080C3624
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _080C3624
+ ldrh r0, [r2, 0x3A]
+ bl sub_80C3520
+_080C3624:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3628: .4byte 0x02018000
+_080C362C: .4byte 0xffff0000
+ thumb_func_end sub_80C35FC
+
+ thumb_func_start sub_80C3630
+sub_80C3630: @ 80C3630
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x3C]
+ movs r4, 0
+ ldr r6, _080C3694 @ =gSprites
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C3654:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C3654
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ movs r2, 0x24
+ ldrsh r1, [r3, r2]
+ adds r0, r1
+ movs r1, 0xE0
+ negs r1, r1
+ cmp r0, r1
+ bge _080C368C
+ adds r0, r3, 0
+ bl sub_80C3564
+_080C368C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3694: .4byte gSprites
+ thumb_func_end sub_80C3630
+
+ thumb_func_start sub_80C3698
+sub_80C3698: @ 80C3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080C374C @ =0x02018000
+ ldrb r1, [r5, 0x1]
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r5, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r3, _080C3750 @ =gSprites
+ adds r4, r1, r3
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x50
+ strh r0, [r4, 0x22]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r5]
+ movs r5, 0
+ adds r6, r3, 0
+ mov r12, r2
+ movs r3, 0x40
+_080C36DA:
+ lsls r0, r5, 1
+ adds r2, r4, 0
+ adds r2, 0x2E
+ adds r2, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r4, 0x24]
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x22]
+ strh r1, [r0, 0x22]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ adds r3, 0x40
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C36DA
+ ldr r1, _080C3754 @ =gUnknown_030042C4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r2, _080C3758 @ =gUnknown_03004240
+ ldrh r1, [r4, 0x22]
+ adds r0, r1, 0
+ subs r0, 0x10
+ lsls r0, 8
+ adds r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080C375C @ =REG_WININ
+ ldr r2, _080C3760 @ =0x00003f3e
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C374C: .4byte 0x02018000
+_080C3750: .4byte gSprites
+_080C3754: .4byte gUnknown_030042C4
+_080C3758: .4byte gUnknown_03004240
+_080C375C: .4byte REG_WININ
+_080C3760: .4byte 0x00003f3e
+ thumb_func_end sub_80C3698
+
+ thumb_func_start sub_80C3764
+sub_80C3764: @ 80C3764
+ push {r4-r7,lr}
+ ldr r0, _080C37C8 @ =0x02018000
+ ldrb r0, [r0, 0x1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r3, _080C37CC @ =gSprites
+ adds r2, r3
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r7, _080C37D0 @ =gUnknown_030042C4
+ ldr r6, _080C37D4 @ =gUnknown_03004240
+ adds r5, r3, 0
+ movs r4, 0x4
+ adds r2, 0x2E
+ movs r3, 0x2
+_080C3790:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3790
+ movs r1, 0
+ strh r1, [r7]
+ strh r1, [r6]
+ ldr r0, _080C37D8 @ =REG_WIN0H
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080C37DC @ =REG_WININ
+ ldr r2, _080C37E0 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C37C8: .4byte 0x02018000
+_080C37CC: .4byte gSprites
+_080C37D0: .4byte gUnknown_030042C4
+_080C37D4: .4byte gUnknown_03004240
+_080C37D8: .4byte REG_WIN0H
+_080C37DC: .4byte REG_WININ
+_080C37E0: .4byte 0x00003f3f
+ thumb_func_end sub_80C3764
+
+ thumb_func_start sub_80C37E4
+sub_80C37E4: @ 80C37E4
+ push {r4-r6,lr}
+ sub sp, 0x10
+ movs r5, 0x1
+ movs r4, 0
+ ldr r0, _080C3808 @ =gUnknown_0203869A
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3814
+ ldr r0, _080C380C @ =0x0600e000
+ ldr r3, _080C3810 @ =gUnknown_08E964B8
+ movs r1, 0x9
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ b _080C386A
+ .align 2, 0
+_080C3808: .4byte gUnknown_0203869A
+_080C380C: .4byte 0x0600e000
+_080C3810: .4byte gUnknown_08E964B8
+_080C3814:
+ ldr r0, _080C3830 @ =gUnknown_0203869E
+ ldrh r2, [r0]
+ cmp r2, 0
+ bne _080C383C
+ movs r4, 0x1
+ ldr r0, _080C3834 @ =0x0600e000
+ ldr r3, _080C3838 @ =gUnknown_08E964B8
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3830: .4byte gUnknown_0203869E
+_080C3834: .4byte 0x0600e000
+_080C3838: .4byte gUnknown_08E964B8
+_080C383C:
+ cmp r2, 0x1
+ bne _080C385C
+ ldr r0, _080C3854 @ =0x0600e000
+ ldr r3, _080C3858 @ =gUnknown_08E964B8
+ movs r1, 0x9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _080C3870
+ .align 2, 0
+_080C3854: .4byte 0x0600e000
+_080C3858: .4byte gUnknown_08E964B8
+_080C385C:
+ cmp r2, 0x2
+ bne _080C3884
+ ldr r0, _080C387C @ =0x0600e000
+ ldr r3, _080C3880 @ =gUnknown_08E964B8
+ movs r1, 0x11
+ str r1, [sp]
+ str r4, [sp, 0x4]
+_080C386A:
+ movs r1, 0x8
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+_080C3870:
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+ b _080C389E
+ .align 2, 0
+_080C387C: .4byte 0x0600e000
+_080C3880: .4byte gUnknown_08E964B8
+_080C3884:
+ movs r4, 0x1
+ ldr r0, _080C38C0 @ =0x0600e000
+ ldr r3, _080C38C4 @ =gUnknown_08E964B8
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_809D104
+_080C389E:
+ adds r4, 0xD
+ ldr r0, _080C38C8 @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080C38CC
+ movs r6, 0
+ ldr r0, _080C38C0 @ =0x0600e000
+ ldr r3, _080C38C4 @ =gUnknown_08E964B8
+ movs r1, 0x11
+ str r1, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C38C0: .4byte 0x0600e000
+_080C38C4: .4byte gUnknown_08E964B8
+_080C38C8: .4byte gUnknown_0203869C
+_080C38CC:
+ cmp r0, 0x1
+ bne _080C38EC
+ movs r6, 0x1
+ ldr r0, _080C38E4 @ =0x0600e000
+ ldr r3, _080C38E8 @ =gUnknown_08E964B8
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xB
+ b _080C3924
+ .align 2, 0
+_080C38E4: .4byte 0x0600e000
+_080C38E8: .4byte gUnknown_08E964B8
+_080C38EC:
+ cmp r0, 0x2
+ bne _080C3910
+ movs r6, 0x2
+ ldr r0, _080C3908 @ =0x0600e000
+ ldr r3, _080C390C @ =gUnknown_08E964B8
+ movs r1, 0xB
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r6, [sp, 0xC]
+ b _080C392A
+ .align 2, 0
+_080C3908: .4byte 0x0600e000
+_080C390C: .4byte gUnknown_08E964B8
+_080C3910:
+ cmp r0, 0x3
+ bne _080C393C
+ movs r6, 0x3
+ ldr r0, _080C3934 @ =0x0600e000
+ ldr r3, _080C3938 @ =gUnknown_08E964B8
+ movs r1, 0x15
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+_080C3924:
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+_080C392A:
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+ b _080C395A
+ .align 2, 0
+_080C3934: .4byte 0x0600e000
+_080C3938: .4byte gUnknown_08E964B8
+_080C393C:
+ movs r6, 0x4
+ ldr r0, _080C3984 @ =0x0600e000
+ ldr r3, _080C3988 @ =gUnknown_08E964B8
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_809D104
+_080C395A:
+ ldr r5, _080C398C @ =0x00000fff
+ lsls r4, r6, 12
+ ldr r2, _080C3984 @ =0x0600e000
+ movs r3, 0x7F
+_080C3962:
+ ldrh r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3962
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3984: .4byte 0x0600e000
+_080C3988: .4byte gUnknown_08E964B8
+_080C398C: .4byte 0x00000fff
+ thumb_func_end sub_80C37E4
+
+ thumb_func_start sub_80C3990
+sub_80C3990: @ 80C3990
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080C39DC @ =gUnknown_02038670
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, _080C39E0 @ =0x0000ffff
+ ands r0, r1
+ cmp r0, 0
+ beq _080C39BC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+_080C39BC:
+ lsrs r1, 16
+ cmp r1, 0
+ bne _080C39C8
+ cmp r4, 0
+ beq _080C39C8
+ movs r1, 0x1
+_080C39C8:
+ cmp r5, 0
+ beq _080C39D2
+ cmp r1, 0xA
+ bls _080C39D2
+ movs r1, 0xA
+_080C39D2:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C39DC: .4byte gUnknown_02038670
+_080C39E0: .4byte 0x0000ffff
+ thumb_func_end sub_80C3990
+
+ thumb_func_start sub_80C39E4
+sub_80C39E4: @ 80C39E4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080C3A44 @ =gUnknown_02038688
+ lsls r0, r5, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bge _080C3A00
+ negs r0, r0
+_080C3A00:
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r0, _080C3A48 @ =0x0000ffff
+ ands r0, r2
+ cmp r0, 0
+ beq _080C3A1A
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+_080C3A1A:
+ lsrs r2, 16
+ cmp r2, 0
+ bne _080C3A26
+ cmp r4, 0
+ beq _080C3A26
+ movs r2, 0x1
+_080C3A26:
+ cmp r6, 0
+ beq _080C3A30
+ cmp r2, 0xA
+ bls _080C3A30
+ movs r2, 0xA
+_080C3A30:
+ lsls r0, r5, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080C3A4C
+ negs r0, r2
+ lsls r0, 24
+ b _080C3A4E
+ .align 2, 0
+_080C3A44: .4byte gUnknown_02038688
+_080C3A48: .4byte 0x0000ffff
+_080C3A4C:
+ lsls r0, r2, 24
+_080C3A4E:
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C39E4
+
+ thumb_func_start sub_80C3A5C
+sub_80C3A5C: @ 80C3A5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _080C3A90 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x1C]
+ movs r1, 0x1C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C3A94
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ strh r0, [r3, 0x1E]
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x1C]
+ b _080C3B12
+ .align 2, 0
+_080C3A90: .4byte gTasks
+_080C3A94:
+ cmp r0, 0x1
+ bne _080C3B12
+ ldrh r0, [r3, 0x1E]
+ subs r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080C3B12
+ movs r0, 0x8
+ ldrsh r2, [r3, r0]
+ lsls r2, 17
+ ldr r1, _080C3B18 @ =0x50430000
+ adds r2, r1
+ lsrs r2, 16
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B1C @ =0x0600e142
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B20 @ =0x0600e144
+ adds r0, r1
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B24 @ =0x0600e182
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x10
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B28 @ =0x0600e184
+ adds r0, r1
+ adds r2, 0x11
+ strh r2, [r0]
+ ldr r1, _080C3B2C @ =0x02018000
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0x18
+ bl PlaySE
+_080C3B12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3B18: .4byte 0x50430000
+_080C3B1C: .4byte 0x0600e142
+_080C3B20: .4byte 0x0600e144
+_080C3B24: .4byte 0x0600e182
+_080C3B28: .4byte 0x0600e184
+_080C3B2C: .4byte 0x02018000
+ thumb_func_end sub_80C3A5C
+
+ thumb_func_start sub_80C3B30
+sub_80C3B30: @ 80C3B30
+ 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 r5, 0
+ ldr r1, _080C3BC0 @ =gUnknown_02038690
+ ldrb r0, [r1]
+ ldr r2, _080C3BC4 @ =gTasks
+ mov r10, r2
+ cmp r0, 0
+ beq _080C3B5C
+_080C3B4E:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _080C3B5C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C3B4E
+_080C3B5C:
+ movs r1, 0
+ lsls r0, r5, 1
+ mov r2, r12
+ lsls r2, 2
+ mov r9, r2
+ adds r0, r5
+ lsls r0, 5
+ mov r8, r0
+ ldr r7, _080C3BC8 @ =0x00000fff
+ movs r0, 0x90
+ lsls r0, 8
+ adds r6, r0, 0
+_080C3B74:
+ lsls r0, r1, 5
+ adds r4, r1, 0x1
+ add r0, r8
+ movs r3, 0x1D
+ lsls r0, 1
+ ldr r1, _080C3BCC @ =0x0600e100
+ adds r2, r0, r1
+_080C3B82:
+ ldrh r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3B82
+ adds r1, r4, 0
+ cmp r1, 0x2
+ ble _080C3B74
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ add r0, r10
+ strh r5, [r0, 0x1C]
+ movs r1, 0x1
+ strh r1, [r0, 0x20]
+ ldr r2, _080C3BD0 @ =sub_80C3BD8
+ str r2, [r0]
+ mov r1, r12
+ ldr r0, _080C3BD4 @ =0x02018000
+ strb r1, [r0, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3BC0: .4byte gUnknown_02038690
+_080C3BC4: .4byte gTasks
+_080C3BC8: .4byte 0x00000fff
+_080C3BCC: .4byte 0x0600e100
+_080C3BD0: .4byte sub_80C3BD8
+_080C3BD4: .4byte 0x02018000
+ thumb_func_end sub_80C3B30
+
+ thumb_func_start sub_80C3BD8
+sub_80C3BD8: @ 80C3BD8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3C24 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x1
+ bne _080C3C3C
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r2, [r4, 0x20]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080C3C28 @ =0x00006f8d
+ movs r0, 0x91
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C3C2C
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080C3C3C
+ strh r5, [r4, 0x22]
+ b _080C3C3C
+ .align 2, 0
+_080C3C24: .4byte gTasks
+_080C3C28: .4byte 0x00006f8d
+_080C3C2C:
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080C3C3C
+ strh r0, [r4, 0x22]
+_080C3C3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3BD8
+
+ thumb_func_start sub_80C3C44
+sub_80C3C44: @ 80C3C44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080C3C6C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080C3CA8
+ ldrh r0, [r4, 0x30]
+ movs r1, 0
+ bl PlayCry1
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080C3CA8
+_080C3C6C:
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ bgt _080C3C92
+ movs r0, 0x78
+ strh r0, [r4, 0x20]
+_080C3C92:
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ bne _080C3CA8
+ ldr r0, _080C3CB0 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080C3CB4 @ =0x02018000
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_080C3CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CB0: .4byte SpriteCallbackDummy
+_080C3CB4: .4byte 0x02018000
+ thumb_func_end sub_80C3C44
+
+ thumb_func_start sub_80C3CB8
+sub_80C3CB8: @ 80C3CB8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080C3CF8
+ ldr r0, _080C3CFC @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080C3D00 @ =0x02018000
+ movs r0, 0x2
+ strb r0, [r1, 0x6]
+_080C3CF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CFC: .4byte SpriteCallbackDummy
+_080C3D00: .4byte 0x02018000
+ thumb_func_end sub_80C3CB8
+
+ thumb_func_start sub_80C3D04
+sub_80C3D04: @ 80C3D04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C3DD8 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080C3DBE
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _080C3DDC @ =0x02018000
+ mov r8, r0
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x27
+ bhi _080C3DBE
+ ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r1, r0, 0
+ subs r1, 0x14
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x2C
+ movs r3, 0x5
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ ldr r1, _080C3DE4 @ =gSprites
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r1
+ lsls r0, 23
+ lsrs r0, 23
+ strh r0, [r5, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ adds r0, 0x10
+ strh r0, [r5, 0x30]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xFF
+ ands r0, r1
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ bl Random
+ ldrh r6, [r5, 0x4]
+ lsls r4, r6, 22
+ lsrs r4, 22
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r4, r0
+ ldr r1, _080C3DE8 @ =0x000003ff
+ adds r0, r1, 0
+ ands r4, r0
+ ldr r0, _080C3DEC @ =0xfffffc00
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r5, 0x4]
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+_080C3DBE:
+ ldr r0, _080C3DDC @ =0x02018000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _080C3DCC
+ adds r0, r7, 0
+ bl DestroyTask
+_080C3DCC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3DD8: .4byte gTasks
+_080C3DDC: .4byte 0x02018000
+_080C3DE0: .4byte gSpriteTemplate_83D17B4
+_080C3DE4: .4byte gSprites
+_080C3DE8: .4byte 0x000003ff
+_080C3DEC: .4byte 0xfffffc00
+ thumb_func_end sub_80C3D04
+
+ thumb_func_start sub_80C3DF0
+sub_80C3DF0: @ 80C3DF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r5, _080C3E5C @ =0x02018000
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ beq _080C3E3A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080C3E3A:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF8
+ bgt _080C3E4A
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x74
+ ble _080C3E56
+_080C3E4A:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrb r0, [r5, 0x7]
+ subs r0, 0x1
+ strb r0, [r5, 0x7]
+_080C3E56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E5C: .4byte 0x02018000
+ thumb_func_end sub_80C3DF0
+
+ thumb_func_start sub_80C3E60
+sub_80C3E60: @ 80C3E60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080C3E98 @ =sub_80C3EA4
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3E9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ ldr r0, _080C3EA0 @ =gUnknown_02038570
+ lsls r4, 6
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E98: .4byte sub_80C3EA4
+_080C3E9C: .4byte gTasks
+_080C3EA0: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3E60
+
+ thumb_func_start sub_80C3EA4
+sub_80C3EA4: @ 80C3EA4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3EF8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrb r5, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080C3EEE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xC]
+ ldrb r2, [r4, 0x1E]
+ ldr r1, _080C3EFC @ =gUnknown_02038570
+ lsls r3, r5, 6
+ adds r1, 0x38
+ adds r3, r1
+ ldr r1, [r3]
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0
+ bl sub_80C3024
+ ldrh r0, [r4, 0x1E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x1E]
+_080C3EEE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3EF8: .4byte gTasks
+_080C3EFC: .4byte gUnknown_02038570
+ thumb_func_end sub_80C3EA4
+
+ thumb_func_start sub_80C3F00
+sub_80C3F00: @ 80C3F00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _080C4098 @ =gUnknown_02038678
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ adds r3, r4, 0x2
+ movs r0, 0x2
+ mov r8, r0
+_080C3F16:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ bge _080C3F24
+ ldrh r2, [r3]
+_080C3F24:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080C3F16
+ lsls r0, r2, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080C3F62
+ ldrh r2, [r4]
+ adds r3, r4, 0x2
+ movs r4, 0x2
+ mov r8, r4
+_080C3F42:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ ble _080C3F50
+ ldrh r2, [r3]
+_080C3F50:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ lsls r1, r2, 16
+ mov r9, r1
+ mov r4, r8
+ cmp r4, 0
+ bge _080C3F42
+_080C3F62:
+ movs r5, 0
+ mov r8, r5
+ mov r10, r5
+_080C3F68:
+ ldr r0, _080C409C @ =gUnknown_02038670
+ mov r1, r8
+ lsls r7, r1, 1
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ mov r4, r9
+ asrs r6, r4, 16
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _080C3F8A
+ negs r1, r6
+_080C3F8A:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3F9C
+ adds r4, 0xA
+_080C3F9C:
+ ldr r0, _080C40A0 @ =0x02018018
+ mov r1, r10
+ adds r5, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ ldr r0, _080C40A4 @ =gUnknown_02038688
+ adds r7, r0
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ cmp r1, 0
+ bge _080C3FBA
+ negs r1, r1
+_080C3FBA:
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r6, 0
+ cmp r1, 0
+ bge _080C3FCC
+ negs r1, r1
+_080C3FCC:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3FDE
+ adds r4, 0xA
+_080C3FDE:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5, 0x4]
+ movs r4, 0
+ ldrsh r0, [r7, r4]
+ cmp r0, 0
+ bge _080C3FF4
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_080C3FF4:
+ ldr r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ movs r4, 0xFF
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C4016
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+_080C4016:
+ lsrs r0, r1, 8
+ str r0, [r5, 0x8]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C403A
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2
+_080C403A:
+ lsrs r0, r1, 8
+ str r0, [r5, 0xC]
+ mov r0, r8
+ lsls r4, r0, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ strb r0, [r5, 0x11]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080C4060
+ negs r0, r0
+_080C4060:
+ strb r0, [r5, 0x12]
+ ldr r0, _080C40A8 @ =gUnknown_02038690
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C40B4
+ ldr r4, [r5, 0x8]
+ ldrh r2, [r5, 0x8]
+ ldr r3, [r5, 0xC]
+ ldrh r1, [r5, 0xC]
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080C4080
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080C4080:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ cmp r0, 0x58
+ bne _080C40B4
+ cmp r1, 0
+ ble _080C40AC
+ subs r0, r3, 0x1
+ str r0, [r5, 0xC]
+ b _080C40B4
+ .align 2, 0
+_080C4098: .4byte gUnknown_02038678
+_080C409C: .4byte gUnknown_02038670
+_080C40A0: .4byte 0x02018018
+_080C40A4: .4byte gUnknown_02038688
+_080C40A8: .4byte gUnknown_02038690
+_080C40AC:
+ cmp r2, 0
+ ble _080C40B4
+ subs r0, r4, 0x1
+ str r0, [r5, 0x8]
+_080C40B4:
+ movs r1, 0x14
+ add r10, r1
+ movs r2, 0x1
+ add r8, r2
+ mov r4, r8
+ cmp r4, 0x3
+ bgt _080C40C4
+ b _080C3F68
+_080C40C4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3F00
+
+ thumb_func_start sub_80C40D4
+sub_80C40D4: @ 80C40D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ mov r10, r1
+ movs r2, 0
+ str r2, [sp]
+ cmp r0, 0
+ bne _080C4198
+ mov r8, r2
+ ldr r0, _080C417C @ =0x02018018
+ subs r1, 0x18
+ adds r1, r0
+ mov r9, r1
+ adds r4, r0, 0
+ adds r4, 0x8
+ movs r6, 0xA0
+_080C4102:
+ ldrb r0, [r4, 0x9]
+ cmp r7, r0
+ bcs _080C416A
+ adds r0, 0x13
+ adds r0, r6, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r2, _080C4180 @ =0x0600bffe
+ adds r0, r2
+ ldr r2, _080C4184 @ =0x000060b3
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _080C4188 @ =sub_80C42C0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r4]
+ lsls r0, 16
+ ldrb r1, [r4, 0x9]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C418C @ =0x0000ffff
+ ands r0, r3
+ ldr r1, _080C4190 @ =0x00007fff
+ cmp r0, r1
+ bls _080C4146
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_080C4146:
+ ldr r1, _080C4194 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xA]
+ mov r2, r9
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C416A:
+ adds r4, 0x14
+ adds r6, 0x60
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _080C4102
+ b _080C4292
+ .align 2, 0
+_080C417C: .4byte 0x02018018
+_080C4180: .4byte 0x0600bffe
+_080C4184: .4byte 0x000060b3
+_080C4188: .4byte sub_80C42C0
+_080C418C: .4byte 0x0000ffff
+_080C4190: .4byte 0x00007fff
+_080C4194: .4byte gTasks
+_080C4198:
+ movs r2, 0
+ mov r8, r2
+ ldr r0, _080C4220 @ =0x02018018
+ mov r12, r0
+ mov r9, r2
+ movs r1, 0xC0
+ str r1, [sp, 0x4]
+_080C41A6:
+ mov r6, r9
+ add r6, r12
+ ldrb r1, [r6, 0x12]
+ ldrb r0, [r6, 0x10]
+ ldr r2, _080C4224 @ =0x000060a3
+ cmp r0, 0
+ beq _080C41B6
+ adds r2, 0x2
+_080C41B6:
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r7, r0
+ bge _080C427E
+ adds r0, 0x13
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r1, _080C4228 @ =0x0600bffe
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _080C422C @ =sub_80C42C0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r6, 0xC]
+ lsls r0, 16
+ ldrb r1, [r6, 0x12]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C4230 @ =0x0000ffff
+ ands r0, r3
+ ldr r1, _080C4234 @ =0x00007fff
+ cmp r0, r1
+ bls _080C41FA
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2
+_080C41FA:
+ ldr r1, _080C4238 @ =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6, 0x10]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080C423C
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ b _080C4246
+ .align 2, 0
+_080C4220: .4byte 0x02018018
+_080C4224: .4byte 0x000060a3
+_080C4228: .4byte 0x0600bffe
+_080C422C: .4byte sub_80C42C0
+_080C4230: .4byte 0x0000ffff
+_080C4234: .4byte 0x00007fff
+_080C4238: .4byte gTasks
+_080C423C:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C4246:
+ ldr r0, _080C4264 @ =0x02018018
+ mov r1, r9
+ adds r4, r1, r0
+ ldrb r1, [r4, 0x10]
+ mov r12, r0
+ cmp r1, 0
+ beq _080C4268
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ subs r1, r2
+ b _080C4274
+ .align 2, 0
+_080C4264: .4byte 0x02018018
+_080C4268:
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ adds r1, r2
+_080C4274:
+ strh r1, [r0, 0xA]
+ ldr r1, _080C42BC @ =0x02018000
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+_080C427E:
+ movs r2, 0x14
+ add r9, r2
+ ldr r0, [sp, 0x4]
+ adds r0, 0x60
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x3
+ ble _080C41A6
+_080C4292:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080C429E
+ movs r0, 0x16
+ bl PlaySE
+_080C429E:
+ mov r1, r10
+ cmp r1, 0
+ beq _080C42AA
+ movs r0, 0x15
+ bl PlaySE
+_080C42AA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C42BC: .4byte 0x02018000
+ thumb_func_end sub_80C40D4
+
+ thumb_func_start sub_80C42C0
+sub_80C42C0: @ 80C42C0
+ 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
+ mov r9, r6
+ ldr r1, _080C4308 @ =gTasks
+ lsls r0, 2
+ add r0, r12
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x8]
+ ldrh r7, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ mov r8, r1
+ movs r2, 0xC
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080C4310
+ ldr r1, _080C430C @ =0x02018000
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bgt _080C4328
+ b _080C4326
+ .align 2, 0
+_080C4308: .4byte gTasks
+_080C430C: .4byte 0x02018000
+_080C4310:
+ ldr r1, _080C4350 @ =0x02018000
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0x57
+ ble _080C4328
+_080C4326:
+ movs r6, 0x1
+_080C4328:
+ mov r0, r10
+ adds r0, 0xC
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080C4340
+ movs r1, 0x1
+ mov r9, r1
+_080C4340:
+ mov r0, r9
+ cmp r0, 0
+ bne _080C4362
+ cmp r6, 0
+ beq _080C4354
+ strh r7, [r3]
+ b _080C4362
+ .align 2, 0
+_080C4350: .4byte 0x02018000
+_080C4354:
+ mov r1, r8
+ cmp r1, 0
+ beq _080C435E
+ subs r0, r2, 0x1
+ b _080C4360
+_080C435E:
+ adds r0, r2, 0x1
+_080C4360:
+ strh r0, [r3]
+_080C4362:
+ cmp r6, 0
+ bne _080C43C8
+ mov r2, r9
+ cmp r2, 0
+ bne _080C43CE
+ movs r2, 0
+ ldr r0, _080C4388 @ =0x0201800c
+ adds r6, r4, r0
+ adds r0, r4, r5
+ lsls r5, r0, 5
+_080C4376:
+ movs r0, 0
+ ldrsh r3, [r6, r0]
+ adds r0, r2, 0x1
+ lsls r1, r0, 3
+ adds r4, r0, 0
+ cmp r3, r1
+ blt _080C438C
+ movs r0, 0x8
+ b _080C43A8
+ .align 2, 0
+_080C4388: .4byte 0x0201800c
+_080C438C:
+ lsls r0, r2, 3
+ cmp r3, r0
+ blt _080C43A6
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080C439A
+ adds r0, r3, 0x7
+_080C439A:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r3, r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C43A8
+_080C43A6:
+ movs r0, 0
+_080C43A8:
+ cmp r0, 0x3
+ bhi _080C43B4
+ ldr r3, _080C43B0 @ =0x0000504c
+ b _080C43B6
+ .align 2, 0
+_080C43B0: .4byte 0x0000504c
+_080C43B4:
+ ldr r3, _080C43EC @ =0x00005057
+_080C43B6:
+ adds r1, r0, r3
+ adds r0, r5, r2
+ lsls r0, 1
+ ldr r2, _080C43F0 @ =0x0600e18e
+ adds r0, r2
+ strh r1, [r0]
+ adds r2, r4, 0
+ cmp r2, 0xA
+ ble _080C4376
+_080C43C8:
+ mov r3, r9
+ cmp r3, 0
+ beq _080C43DC
+_080C43CE:
+ mov r1, r10
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ mov r0, r12
+ bl DestroyTask
+_080C43DC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C43EC: .4byte 0x00005057
+_080C43F0: .4byte 0x0600e18e
+ thumb_func_end sub_80C42C0
+
+ thumb_func_start sub_80C43F4
+sub_80C43F4: @ 80C43F4
+ push {r4,r5,lr}
+ ldr r0, _080C442C @ =gUnknown_02038694
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080C4430 @ =gPlayerParty
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080C4422
+ ldr r4, _080C4434 @ =gUnknown_0203869C
+ ldrb r0, [r4]
+ ldr r1, _080C4438 @ =gUnknown_0203869E
+ ldrb r1, [r1]
+ bl sub_80AE398
+ ldrb r0, [r4]
+ bl sub_80AE82C
+_080C4422:
+ ldr r0, _080C443C @ =gScriptResult
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C442C: .4byte gUnknown_02038694
+_080C4430: .4byte gPlayerParty
+_080C4434: .4byte gUnknown_0203869C
+_080C4438: .4byte gUnknown_0203869E
+_080C443C: .4byte gScriptResult
+ thumb_func_end sub_80C43F4
+
+ thumb_func_start sub_80C4440
+sub_80C4440: @ 80C4440
+ push {r4,lr}
+ movs r4, 0
+ ldr r0, _080C4464 @ =gUnknown_02038694
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C4468 @ =gPlayerParty
+ adds r2, r1, r0
+ ldr r0, _080C446C @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C44B2
+ lsls r0, 2
+ ldr r1, _080C4470 @ =_080C4474
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4464: .4byte gUnknown_02038694
+_080C4468: .4byte gPlayerParty
+_080C446C: .4byte gUnknown_0203869C
+_080C4470: .4byte _080C4474
+ .align 2, 0
+_080C4474:
+ .4byte _080C4488
+ .4byte _080C448E
+ .4byte _080C4494
+ .4byte _080C449A
+ .4byte _080C44A0
+_080C4488:
+ adds r0, r2, 0
+ movs r1, 0x32
+ b _080C44A4
+_080C448E:
+ adds r0, r2, 0
+ movs r1, 0x33
+ b _080C44A4
+_080C4494:
+ adds r0, r2, 0
+ movs r1, 0x34
+ b _080C44A4
+_080C449A:
+ adds r0, r2, 0
+ movs r1, 0x35
+ b _080C44A4
+_080C44A0:
+ adds r0, r2, 0
+ movs r1, 0x36
+_080C44A4:
+ bl GetMonData
+ ldr r1, _080C44BC @ =gUnknown_0203869E
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _080C44B2
+ movs r4, 0x1
+_080C44B2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C44BC: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C4440
+
+ thumb_func_start sub_80C44C0
+sub_80C44C0: @ 80C44C0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080C44E8 @ =gUnknown_02038690
+ ldr r0, _080C44EC @ =gUnknown_02038695
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C44D4
+ b _080C465E
+_080C44D4:
+ ldr r0, _080C44F0 @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bls _080C44DE
+ b _080C465E
+_080C44DE:
+ lsls r0, 2
+ ldr r1, _080C44F4 @ =_080C44F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C44E8: .4byte gUnknown_02038690
+_080C44EC: .4byte gUnknown_02038695
+_080C44F0: .4byte gUnknown_0203869C
+_080C44F4: .4byte _080C44F8
+ .align 2, 0
+_080C44F8:
+ .4byte _080C450C
+ .4byte _080C4554
+ .4byte _080C4598
+ .4byte _080C45DC
+ .4byte _080C4624
+_080C450C:
+ ldr r6, _080C4548 @ =gUnknown_02038694
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C454C @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x32
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, _080C4550 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r1, r0
+ bls _080C4530
+ b _080C465E
+_080C4530:
+ adds r0, r1, 0
+ cmp r0, 0x3
+ bls _080C4538
+ b _080C465E
+_080C4538:
+ adds r1, r0, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x32
+ b _080C4610
+ .align 2, 0
+_080C4548: .4byte gUnknown_02038694
+_080C454C: .4byte gPlayerParty
+_080C4550: .4byte gUnknown_0203869E
+_080C4554:
+ mov r4, sp
+ ldr r7, _080C458C @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C4590 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x33
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4594 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x33
+ b _080C4610
+ .align 2, 0
+_080C458C: .4byte gUnknown_02038694
+_080C4590: .4byte gPlayerParty
+_080C4594: .4byte gUnknown_0203869E
+_080C4598:
+ mov r4, sp
+ ldr r7, _080C45D0 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C45D4 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x34
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C45D8 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x34
+ b _080C4610
+ .align 2, 0
+_080C45D0: .4byte gUnknown_02038694
+_080C45D4: .4byte gPlayerParty
+_080C45D8: .4byte gUnknown_0203869E
+_080C45DC:
+ mov r4, sp
+ ldr r7, _080C4618 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C461C @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x35
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4620 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x35
+_080C4610:
+ mov r2, sp
+ bl SetMonData
+ b _080C465E
+ .align 2, 0
+_080C4618: .4byte gUnknown_02038694
+_080C461C: .4byte gPlayerParty
+_080C4620: .4byte gUnknown_0203869E
+_080C4624:
+ mov r4, sp
+ ldr r7, _080C4668 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C466C @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x36
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4670 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x36
+ mov r2, sp
+ bl SetMonData
+_080C465E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4668: .4byte gUnknown_02038694
+_080C466C: .4byte gPlayerParty
+_080C4670: .4byte gUnknown_0203869E
+ thumb_func_end sub_80C44C0
+
+ thumb_func_start sub_80C4674
+sub_80C4674: @ 80C4674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C4690
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C4690
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C4690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4674
+
+ thumb_func_start sub_80C4698
+sub_80C4698: @ 80C4698
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r4, 6
+ ldr r0, _080C46E0 @ =gUnknown_02038572
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, _080C46E4 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C46DA
+ ldr r0, _080C46E8 @ =gLinkPlayers
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x1
+ bne _080C46DA
+ adds r0, r5, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl ConvertInternationalString
+_080C46DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C46E0: .4byte gUnknown_02038572
+_080C46E4: .4byte gUnknown_0203869A
+_080C46E8: .4byte gLinkPlayers
+ thumb_func_end sub_80C4698
+
+ thumb_func_start sub_80C46EC
+sub_80C46EC: @ 80C46EC
+ push {lr}
+ ldr r0, _080C4710 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4720
+ ldr r0, _080C4714 @ =gStringVar1
+ ldr r1, _080C4718 @ =gUnknown_0202E8D0
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080C471C @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4730
+ .align 2, 0
+_080C4710: .4byte gUnknown_0203869A
+_080C4714: .4byte gStringVar1
+_080C4718: .4byte gUnknown_0202E8D0
+_080C471C: .4byte gLinkPlayers + 0x8
+_080C4720:
+ ldr r0, _080C4734 @ =gStringVar1
+ ldr r1, _080C4738 @ =gUnknown_0202E8D0
+ ldrh r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C473C @ =gUnknown_0203857D
+ adds r1, r2
+ bl sub_80C4674
+_080C4730:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4734: .4byte gStringVar1
+_080C4738: .4byte gUnknown_0202E8D0
+_080C473C: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C46EC
+
+ thumb_func_start sub_80C4740
+sub_80C4740: @ 80C4740
+ push {lr}
+ ldr r0, _080C4750 @ =gStringVar3
+ ldr r1, _080C4754 @ =gUnknown_0202E8D0
+ ldrb r1, [r1]
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4750: .4byte gStringVar3
+_080C4754: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4740
+
+ thumb_func_start sub_80C4758
+sub_80C4758: @ 80C4758
+ push {r4-r6,lr}
+ movs r1, 0
+ movs r2, 0
+ ldr r5, _080C4794 @ =gUnknown_0202E8CC
+ ldr r4, _080C4798 @ =gUnknown_02038670
+ ldr r0, _080C479C @ =gUnknown_0202E8D0
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+_080C476E:
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r3, r0
+ bge _080C4780
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4780:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C476E
+ strh r2, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4794: .4byte gUnknown_0202E8CC
+_080C4798: .4byte gUnknown_02038670
+_080C479C: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4758
+
+ thumb_func_start sub_80C47A0
+sub_80C47A0: @ 80C47A0
+ ldr r2, _080C47B4 @ =gUnknown_0202E8CC
+ ldr r1, _080C47B8 @ =gUnknown_02038670
+ ldr r0, _080C47BC @ =gUnknown_0202E8D0
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C47B4: .4byte gUnknown_0202E8CC
+_080C47B8: .4byte gUnknown_02038670
+_080C47BC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C47A0
+
+ thumb_func_start sub_80C47C0
+sub_80C47C0: @ 80C47C0
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C47E8 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r3, _080C47EC @ =gUnknown_0202E8CE
+ cmp r0, 0
+ beq _080C47E0
+_080C47CE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C47E0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C47CE
+_080C47E0:
+ strh r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C47E8: .4byte gUnknown_02038690
+_080C47EC: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80C47C0
+
+ thumb_func_start sub_80C47F0
+sub_80C47F0: @ 80C47F0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080C4830 @ =gUnknown_02038690
+ ldrb r0, [r3]
+ ldr r1, _080C4834 @ =gUnknown_0203869A
+ ldr r4, _080C4838 @ =gStringVar3
+ cmp r0, 0
+ beq _080C4812
+_080C4800:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _080C4812
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4800
+_080C4812:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4840
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _080C483C @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+ b _080C484C
+ .align 2, 0
+_080C4830: .4byte gUnknown_02038690
+_080C4834: .4byte gUnknown_0203869A
+_080C4838: .4byte gStringVar3
+_080C483C: .4byte gLinkPlayers + 0x8
+_080C4840:
+ lsls r1, r2, 6
+ ldr r0, _080C4854 @ =gUnknown_0203857D
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+_080C484C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4854: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C47F0
+
+ thumb_func_start sub_80C4858
+sub_80C4858: @ 80C4858
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C4884 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r3, _080C4888 @ =gStringVar1
+ cmp r0, 0
+ beq _080C4878
+_080C4866:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C4878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4866
+_080C4878:
+ adds r0, r3, 0
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4884: .4byte gUnknown_02038690
+_080C4888: .4byte gStringVar1
+ thumb_func_end sub_80C4858
+
+ thumb_func_start sub_80C488C
+sub_80C488C: @ 80C488C
+ push {lr}
+ ldr r0, _080C4898 @ =sub_80AB47C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4898: .4byte sub_80AB47C
+ thumb_func_end sub_80C488C
+
+ thumb_func_start sub_80C489C
+sub_80C489C: @ 80C489C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C48C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C48BA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C48C4 @ =sub_80C488C
+ bl SetMainCallback2
+_080C48BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48C0: .4byte gPaletteFade
+_080C48C4: .4byte sub_80C488C
+ thumb_func_end sub_80C489C
+
+ thumb_func_start sub_80C48C8
+sub_80C48C8: @ 80C48C8
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C48F0 @ =sub_80C489C
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48F0: .4byte sub_80C489C
+ thumb_func_end sub_80C48C8
+
+ thumb_func_start sub_80C48F4
+sub_80C48F4: @ 80C48F4
+ ldr r2, _080C4908 @ =gUnknown_0202E8CC
+ ldr r1, _080C490C @ =gUnknown_02038570
+ ldr r0, _080C4910 @ =gUnknown_0202E8D0
+ ldrh r0, [r0]
+ lsls r0, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C4908: .4byte gUnknown_0202E8CC
+_080C490C: .4byte gUnknown_02038570
+_080C4910: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C48F4
+
+ thumb_func_start sub_80C4914
+sub_80C4914: @ 80C4914
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C4938 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C4932
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C493C @ =sub_80C2358
+ bl SetMainCallback2
+_080C4932:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4938: .4byte gPaletteFade
+_080C493C: .4byte sub_80C2358
+ thumb_func_end sub_80C4914
+
+ thumb_func_start sub_80C4940
+sub_80C4940: @ 80C4940
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C4968 @ =sub_80C4914
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4968: .4byte sub_80C4914
+ thumb_func_end sub_80C4940
+
+ thumb_func_start sub_80C496C
+sub_80C496C: @ 80C496C
+ ldr r0, _080C4978 @ =gUnknown_0202E8CC
+ ldr r1, _080C497C @ =gUnknown_02038695
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080C4978: .4byte gUnknown_0202E8CC
+_080C497C: .4byte gUnknown_02038695
+ thumb_func_end sub_80C496C
+
+ thumb_func_start sub_80C4980
+sub_80C4980: @ 80C4980
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl ScriptContext2_Enable
+ ldr r6, _080C49B8 @ =sub_80C8604
+ adds r0, r6, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080C49BC @ =sub_80C49C4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080C49C0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49B8: .4byte sub_80C8604
+_080C49BC: .4byte sub_80C49C4
+_080C49C0: .4byte gTasks
+ thumb_func_end sub_80C4980
+
+ thumb_func_start sub_80C49C4
+sub_80C49C4: @ 80C49C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C49E4 @ =gUnknown_02038694
+ ldrb r0, [r0]
+ bl sub_80AE098
+ ldr r1, _080C49E8 @ =sub_80C8734
+ ldr r2, _080C49EC @ =sub_80C49F0
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49E4: .4byte gUnknown_02038694
+_080C49E8: .4byte sub_80C8734
+_080C49EC: .4byte sub_80C49F0
+ thumb_func_end sub_80C49C4
+
+ thumb_func_start sub_80C49F0
+sub_80C49F0: @ 80C49F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A04 @ =sub_80C88AC
+ ldr r2, _080C4A08 @ =sub_80C4A0C
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A04: .4byte sub_80C88AC
+_080C4A08: .4byte sub_80C4A0C
+ thumb_func_end sub_80C49F0
+
+ thumb_func_start sub_80C4A0C
+sub_80C4A0C: @ 80C4A0C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A20 @ =sub_80C8E1C
+ ldr r2, _080C4A24 @ =sub_80C4A28
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A20: .4byte sub_80C8E1C
+_080C4A24: .4byte sub_80C4A28
+ thumb_func_end sub_80C4A0C
+
+ thumb_func_start sub_80C4A28
+sub_80C4A28: @ 80C4A28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A3C @ =sub_80C8938
+ ldr r2, _080C4A40 @ =sub_80C4A44
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A3C: .4byte sub_80C8938
+_080C4A40: .4byte sub_80C4A44
+ thumb_func_end sub_80C4A28
+
+ thumb_func_start sub_80C4A44
+sub_80C4A44: @ 80C4A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r0, _080C4AA0 @ =gUnknown_0202E8CC
+ mov r8, r0
+ add r1, sp, 0x4
+ mov r12, r1
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r4, r0, 3
+ ldr r6, _080C4AA4 @ =gTasks + 0x8
+ adds r7, r1, 0
+_080C4A64:
+ mov r0, sp
+ adds r2, r0, r3
+ adds r1, r3, 0x1
+ lsls r0, r1, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0x3
+ bls _080C4A64
+ movs r3, 0
+ mov r2, sp
+_080C4A80:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bhi _080C4A96
+ mov r0, sp
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C4A80
+_080C4A96:
+ cmp r3, 0x4
+ bne _080C4AA8
+ movs r0, 0
+ b _080C4AAA
+ .align 2, 0
+_080C4AA0: .4byte gUnknown_0202E8CC
+_080C4AA4: .4byte gTasks + 0x8
+_080C4AA8:
+ movs r0, 0x1
+_080C4AAA:
+ mov r1, r8
+ strh r0, [r1]
+ movs r3, 0
+ mov r4, r12
+ adds r0, r7, r5
+ lsls r2, r0, 3
+ ldr r6, _080C4AF8 @ =gTasks + 0x8
+_080C4AB8:
+ adds r1, r4, r3
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080C4AB8
+ mov r0, r12
+ bl sub_80C4B34
+ ldr r1, _080C4AFC @ =gUnknown_0203869B
+ strb r0, [r1]
+ ldr r0, _080C4B00 @ =gUnknown_0203869C
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ ldr r1, _080C4B04 @ =sub_80C8EBC
+ ldr r2, _080C4B08 @ =sub_80C4B0C
+ adds r0, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4AF8: .4byte gTasks + 0x8
+_080C4AFC: .4byte gUnknown_0203869B
+_080C4B00: .4byte gUnknown_0203869C
+_080C4B04: .4byte sub_80C8EBC
+_080C4B08: .4byte sub_80C4B0C
+ thumb_func_end sub_80C4A44
+
+ thumb_func_start sub_80C4B0C
+sub_80C4B0C: @ 80C4B0C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080C4B2C @ =sub_80C8F34
+ ldr r2, _080C4B30 @ =sub_80C4B5C
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4B2C: .4byte sub_80C8F34
+_080C4B30: .4byte sub_80C4B5C
+ thumb_func_end sub_80C4B0C
+
+ thumb_func_start sub_80C4B34
+sub_80C4B34: @ 80C4B34
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ movs r2, 0x1
+_080C4B3C:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080C4B4C
+ lsls r0, r2, 24
+ lsrs r4, r0, 24
+_080C4B4C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080C4B3C
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4B34
+
+ thumb_func_start sub_80C4B5C
+sub_80C4B5C: @ 80C4B5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C4B84 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _080C4B90
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C4B9E
+ ldr r0, _080C4B88 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C4B8C @ =sub_80C4BA4
+ str r0, [r1]
+ b _080C4B9E
+ .align 2, 0
+_080C4B84: .4byte gUnknown_0202E8CC
+_080C4B88: .4byte gTasks
+_080C4B8C: .4byte sub_80C4BA4
+_080C4B90:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4B9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4B5C
+
+ thumb_func_start sub_80C4BA4
+sub_80C4BA4: @ 80C4BA4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080C4BC4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C4BC8 @ =sub_80C4BCC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BC4: .4byte gTasks
+_080C4BC8: .4byte sub_80C4BCC
+ thumb_func_end sub_80C4BA4
+
+ thumb_func_start sub_80C4BCC
+sub_80C4BCC: @ 80C4BCC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4BE8
+ adds r0, r1, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4BE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BEC: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80C4BCC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
new file mode 100644
index 000000000..7a848f817
--- /dev/null
+++ b/asm/contest_link_80C857C.s
@@ -0,0 +1,1306 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C857C
+sub_80C857C: @ 80C857C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r5, _080C85A8 @ =0x0201e000
+ adds r0, r5, 0
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl memcpy
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SendBlock
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C85A8: .4byte 0x0201e000
+ thumb_func_end sub_80C857C
+
+ thumb_func_start sub_80C85AC
+sub_80C85AC: @ 80C85AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r4, r1, 24
+ bl GetBlockRecievedStatus
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C85D0
+ adds r0, r4, 0
+ bl ResetBlockReceivedFlag
+ movs r0, 0x1
+ b _080C85D2
+_080C85D0:
+ movs r0, 0
+_080C85D2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85AC
+
+ thumb_func_start sub_80C85D8
+sub_80C85D8: @ 80C85D8
+ push {r4,lr}
+ movs r4, 0
+_080C85DC:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C85F2
+ movs r0, 0
+ b _080C85FE
+_080C85F2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C85DC
+ bl ResetBlockReceivedFlags
+ movs r0, 0x1
+_080C85FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85D8
+
+ thumb_func_start sub_80C8604
+sub_80C8604: @ 80C8604
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r5, _080C8638 @ =gTasks
+ ldr r6, _080C863C @ =sub_80C8644
+ ldr r4, _080C8640 @ =gBlockRecvBuffer
+ movs r3, 0xFF
+_080C8614:
+ lsls r0, r1, 8
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C8614
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ str r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8638: .4byte gTasks
+_080C863C: .4byte sub_80C8644
+_080C8640: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8604
+
+ thumb_func_start sub_80C8644
+sub_80C8644: @ 80C8644
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C8658 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C865C @ =sub_80C8660
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C8658: .4byte gTasks
+_080C865C: .4byte sub_80C8660
+ thumb_func_end sub_80C8644
+
+ thumb_func_start sub_80C8660
+sub_80C8660: @ 80C8660
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C868E
+ bl GetMultiplayerId
+ ldr r1, _080C8698 @ =gUnknown_02038695
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C868E
+ ldr r1, _080C869C @ =gUnknown_0203869A
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C868E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8694: .4byte gReceivedRemoteLinkPlayers
+_080C8698: .4byte gUnknown_02038695
+_080C869C: .4byte gUnknown_0203869A
+ thumb_func_end sub_80C8660
+
+ thumb_func_start sub_80C86A0
+sub_80C86A0: @ 80C86A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x2
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C86B6
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C86B6
+ movs r0, 0x2
+ b _080C872C
+_080C86B6:
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080C872A
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080C872A
+_080C86CA:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x45
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ bls _080C871E
+ adds r0, r1, 0
+ adds r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080C871E
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _080C871E
+ cmp r0, 0xAD
+ beq _080C871E
+ cmp r0, 0xB8
+ beq _080C871E
+ cmp r0, 0xAB
+ beq _080C871E
+ cmp r0, 0xAC
+ beq _080C871E
+ cmp r0, 0xB5
+ beq _080C871E
+ cmp r0, 0xB6
+ beq _080C871E
+ cmp r0, 0xBA
+ beq _080C871E
+ cmp r0, 0xAE
+ beq _080C871E
+ cmp r0, 0xB0
+ beq _080C871E
+ cmp r0, 0xB1
+ beq _080C871E
+ cmp r0, 0xB2
+ beq _080C871E
+ cmp r0, 0xB3
+ beq _080C871E
+ cmp r0, 0xB1
+ bne _080C8728
+_080C871E:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080C86CA
+ b _080C872A
+_080C8728:
+ movs r5, 0x1
+_080C872A:
+ adds r0, r5, 0
+_080C872C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C86A0
+
+ thumb_func_start sub_80C8734
+sub_80C8734: @ 80C8734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080C8768 @ =gTasks
+ lsls r5, r0, 2
+ adds r0, r5, r0
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C876C
+ cmp r0, 0x1
+ beq _080C87D0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ mov r0, r9
+ bl SwitchTaskToFollowupFunc
+ b _080C8896
+ .align 2, 0
+_080C8768: .4byte gTasks
+_080C876C:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C87A8
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8782
+ b _080C8896
+_080C8782:
+ ldr r0, _080C879C @ =gBlockSendBuffer
+ ldr r1, _080C87A0 @ =gUnknown_02038695
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87A4 @ =gUnknown_02038570
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0x2
+ bl sub_8007E9C
+ b _080C87BA
+ .align 2, 0
+_080C879C: .4byte gBlockSendBuffer
+_080C87A0: .4byte gUnknown_02038695
+_080C87A4: .4byte gUnknown_02038570
+_080C87A8:
+ ldr r0, _080C87C4 @ =gBlockSendBuffer
+ ldr r1, _080C87C8 @ =gUnknown_02038695
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87CC @ =gUnknown_02038570
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+_080C87BA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8896
+ .align 2, 0
+_080C87C4: .4byte gBlockSendBuffer
+_080C87C8: .4byte gUnknown_02038695
+_080C87CC: .4byte gUnknown_02038570
+_080C87D0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8896
+ movs r7, 0
+ str r5, [sp]
+ ldr r0, _080C8818 @ =gUnknown_02038570
+ ldr r6, _080C881C @ =gLinkPlayers
+ movs r5, 0
+ mov r10, r0
+ movs r2, 0xFF
+ mov r8, r2
+_080C87EA:
+ lsls r1, r7, 8
+ ldr r0, _080C8820 @ =gBlockRecvBuffer
+ adds r1, r0
+ mov r0, r10
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, _080C8824 @ =gUnknown_02038572
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8828
+ adds r0, r4, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ b _080C883E
+ .align 2, 0
+_080C8818: .4byte gUnknown_02038570
+_080C881C: .4byte gLinkPlayers
+_080C8820: .4byte gBlockRecvBuffer
+_080C8824: .4byte gUnknown_02038572
+_080C8828:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0xFC
+ bne _080C8838
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _080C883E
+_080C8838:
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ strb r1, [r4, 0xA]
+_080C883E:
+ ldr r0, _080C886C @ =gUnknown_0203857D
+ adds r4, r5, r0
+ ldrh r0, [r6, 0x1A]
+ cmp r0, 0x1
+ bne _080C8870
+ mov r2, r8
+ strb r2, [r4, 0x7]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r4, 0x6]
+ ldrb r0, [r4, 0x3]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r4, 0x4]
+ ldrb r0, [r4, 0x1]
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ strb r0, [r4, 0x2]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ movs r0, 0xFC
+ strb r0, [r4]
+ b _080C8878
+ .align 2, 0
+_080C886C: .4byte gUnknown_0203857D
+_080C8870:
+ ldrb r0, [r4, 0x7]
+ strb r0, [r4, 0x5]
+ mov r0, r8
+ strb r0, [r4, 0x7]
+_080C8878:
+ adds r6, 0x1C
+ adds r5, 0x40
+ movs r1, 0x40
+ add r10, r1
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080C87EA
+ ldr r0, _080C88A8 @ =gTasks
+ ldr r1, [sp]
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8896:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C88A8: .4byte gTasks
+ thumb_func_end sub_80C8734
+
+ thumb_func_start sub_80C88AC
+sub_80C88AC: @ 80C88AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C88D4 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080C88D8
+ cmp r0, 0x1
+ beq _080C88FC
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8924
+ .align 2, 0
+_080C88D4: .4byte gTasks
+_080C88D8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C891E
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C88F8 @ =gRngValue
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C891E
+ .align 2, 0
+_080C88F8: .4byte gRngValue
+_080C88FC:
+ movs r0, 0
+ bl sub_80C85AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C892C @ =gRngValue
+ ldr r4, _080C8930 @ =gBlockRecvBuffer
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _080C8934 @ =gUnknown_03005D28
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+_080C891E:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080C8924:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C892C: .4byte gRngValue
+_080C8930: .4byte gBlockRecvBuffer
+_080C8934: .4byte gUnknown_03005D28
+ thumb_func_end sub_80C88AC
+
+ thumb_func_start sub_80C8938
+sub_80C8938: @ 80C8938
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8968 @ =gTasks
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C896C
+ cmp r0, 0x1
+ beq _080C8998
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C89CE
+ .align 2, 0
+_080C8968: .4byte gTasks
+_080C896C:
+ ldr r1, _080C8994 @ =gBlockSendBuffer
+ ldrh r0, [r4, 0x1A]
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C898C
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C898C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C89CE
+ .align 2, 0
+_080C8994: .4byte gBlockSendBuffer
+_080C8998:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C89CE
+ movs r3, 0
+ mov r12, r8
+ adds r1, r6, 0
+ ldr r4, _080C89D8 @ =gBlockRecvBuffer
+ mov r0, r12
+ adds r0, 0xA
+ adds r2, r7, r0
+ movs r6, 0x80
+ lsls r6, 1
+_080C89B4:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, r6
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C89B4
+ adds r1, r5
+ lsls r1, 3
+ add r1, r12
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C89CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C89D8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8938
+
+ thumb_func_start sub_80C89DC
+sub_80C89DC: @ 80C89DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8A04 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A08
+ cmp r0, 0x1
+ beq _080C8A20
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8A30
+ .align 2, 0
+_080C8A04: .4byte gTasks
+_080C8A08:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+ ldr r0, _080C8A1C @ =gUnknown_02038695
+ movs r1, 0x1
+ bl sub_80C857C
+ b _080C8A2A
+ .align 2, 0
+_080C8A1C: .4byte gUnknown_02038695
+_080C8A20:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+_080C8A2A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C89DC
+
+ thumb_func_start sub_80C8A38
+sub_80C8A38: @ 80C8A38
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r7, _080C8A60 @ =gTasks
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r7
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A64
+ cmp r0, 0x1
+ beq _080C8A94
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8AC2
+ .align 2, 0
+_080C8A60: .4byte gTasks
+_080C8A64:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r0, _080C8A8C @ =gUnknown_02038695
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080C8A90 @ =0x02019266
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_80C857C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8AC2
+ .align 2, 0
+_080C8A8C: .4byte gUnknown_02038695
+_080C8A90: .4byte 0x02019266
+_080C8A94:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r1, _080C8AC8 @ =gBlockRecvBuffer
+ ldr r3, _080C8ACC @ =0x02019266
+ movs r4, 0x80
+ lsls r4, 1
+ movs r2, 0x3
+_080C8AA8:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, r4
+ adds r3, 0x1C
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080C8AA8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8AC2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8AC8: .4byte gBlockRecvBuffer
+_080C8ACC: .4byte 0x02019266
+ thumb_func_end sub_80C8A38
+
+ thumb_func_start sub_80C8AD0
+sub_80C8AD0: @ 80C8AD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8AF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8AEC
+ b _080C8C70
+_080C8AEC:
+ lsls r0, 2
+ ldr r1, _080C8AFC @ =_080C8B00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8AF8: .4byte gTasks
+_080C8AFC: .4byte _080C8B00
+ .align 2, 0
+_080C8B00:
+ .4byte _080C8B30
+ .4byte _080C8B4C
+ .4byte _080C8B74
+ .4byte _080C8B98
+ .4byte _080C8BB0
+ .4byte _080C8B74
+ .4byte _080C8BD8
+ .4byte _080C8BF0
+ .4byte _080C8B74
+ .4byte _080C8C18
+ .4byte _080C8C30
+ .4byte _080C8B74
+_080C8B30:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B3C
+ b _080C8C7A
+_080C8B3C:
+ ldr r0, _080C8B48 @ =gUnknown_02038678
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8B48: .4byte gUnknown_02038678
+_080C8B4C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B58
+ b _080C8C7A
+_080C8B58:
+ ldr r0, _080C8B68 @ =gUnknown_02038678
+ ldr r1, _080C8B6C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8B70 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8B68: .4byte gUnknown_02038678
+_080C8B6C: .4byte gUnknown_0203869B
+_080C8B70: .4byte gBlockRecvBuffer
+_080C8B74:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bgt _080C8B8C
+ b _080C8C7A
+_080C8B8C:
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8C7A
+_080C8B98:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BAC @ =gUnknown_02038680
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BAC: .4byte gUnknown_02038680
+_080C8BB0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BCC @ =gUnknown_02038680
+ ldr r1, _080C8BD0 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8BD4 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8BCC: .4byte gUnknown_02038680
+_080C8BD0: .4byte gUnknown_0203869B
+_080C8BD4: .4byte gBlockRecvBuffer
+_080C8BD8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BEC @ =gUnknown_02038688
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BEC: .4byte gUnknown_02038688
+_080C8BF0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C0C @ =gUnknown_02038688
+ ldr r1, _080C8C10 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C14 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8C0C: .4byte gUnknown_02038688
+_080C8C10: .4byte gUnknown_0203869B
+_080C8C14: .4byte gBlockRecvBuffer
+_080C8C18:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C2C @ =gUnknown_02038690
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8C2C: .4byte gUnknown_02038690
+_080C8C30:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C60 @ =gUnknown_02038690
+ ldr r1, _080C8C64 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C68 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+_080C8C48:
+ bl memcpy
+_080C8C4C:
+ ldr r1, _080C8C6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8C7A
+ .align 2, 0
+_080C8C60: .4byte gUnknown_02038690
+_080C8C64: .4byte gUnknown_0203869B
+_080C8C68: .4byte gBlockRecvBuffer
+_080C8C6C: .4byte gTasks
+_080C8C70:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8AD0
+
+ thumb_func_start sub_80C8C80
+sub_80C8C80: @ 80C8C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8CA8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8C9C
+ b _080C8E0C
+_080C8C9C:
+ lsls r0, 2
+ ldr r1, _080C8CAC @ =_080C8CB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8CA8: .4byte gTasks
+_080C8CAC: .4byte _080C8CB0
+ .align 2, 0
+_080C8CB0:
+ .4byte _080C8CE0
+ .4byte _080C8CFC
+ .4byte _080C8D24
+ .4byte _080C8D46
+ .4byte _080C8D60
+ .4byte _080C8D24
+ .4byte _080C8D88
+ .4byte _080C8DA0
+ .4byte _080C8D24
+ .4byte _080C8DB4
+ .4byte _080C8DCC
+ .4byte _080C8D24
+_080C8CE0:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8CEC
+ b _080C8E16
+_080C8CEC:
+ ldr r0, _080C8CF8 @ =0x02019260
+ movs r1, 0x70
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8CF8: .4byte 0x02019260
+_080C8CFC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D08
+ b _080C8E16
+_080C8D08:
+ ldr r0, _080C8D18 @ =0x02019260
+ ldr r1, _080C8D1C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D20 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x70
+ b _080C8DE4
+ .align 2, 0
+_080C8D18: .4byte 0x02019260
+_080C8D1C: .4byte gUnknown_0203869B
+_080C8D20: .4byte gBlockRecvBuffer
+_080C8D24:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080C8E16
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8E16
+_080C8D46:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D5C @ =0x020192d0
+ movs r1, 0x14
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D5C: .4byte 0x020192d0
+_080C8D60:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D7C @ =0x020192d0
+ ldr r1, _080C8D80 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D84 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x14
+ b _080C8DE4
+ .align 2, 0
+_080C8D7C: .4byte 0x020192d0
+_080C8D80: .4byte gUnknown_0203869B
+_080C8D84: .4byte gBlockRecvBuffer
+_080C8D88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D9C @ =0x02019328
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D9C: .4byte 0x02019328
+_080C8DA0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DB0 @ =0x02019328
+ b _080C8DD8
+ .align 2, 0
+_080C8DB0: .4byte 0x02019328
+_080C8DB4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DC8 @ =gUnknown_02038696
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8DC8: .4byte gUnknown_02038696
+_080C8DCC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DFC @ =gUnknown_02038696
+_080C8DD8:
+ ldr r1, _080C8E00 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8E04 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+_080C8DE4:
+ bl memcpy
+_080C8DE8:
+ ldr r1, _080C8E08 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8E16
+ .align 2, 0
+_080C8DFC: .4byte gUnknown_02038696
+_080C8E00: .4byte gUnknown_0203869B
+_080C8E04: .4byte gBlockRecvBuffer
+_080C8E08: .4byte gTasks
+_080C8E0C:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8E16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8C80
+
+ thumb_func_start sub_80C8E1C
+sub_80C8E1C: @ 80C8E1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C8E4C @ =gTasks
+ mov r8, r0
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ mov r1, r8
+ adds r4, r7, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8E50
+ cmp r0, 0x1
+ beq _080C8E7C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8EAE
+ .align 2, 0
+_080C8E4C: .4byte gTasks
+_080C8E50:
+ ldr r1, _080C8E78 @ =gBlockSendBuffer
+ movs r0, 0x64
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8E70
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ movs r0, 0x2
+ bl sub_8007E9C
+_080C8E70:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8EAE
+ .align 2, 0
+_080C8E78: .4byte gBlockSendBuffer
+_080C8E7C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8EAE
+ ldr r1, _080C8EB8 @ =gBlockRecvBuffer
+ mov r0, r8
+ adds r0, 0x12
+ adds r2, r7, r0
+ movs r4, 0x80
+ lsls r4, 1
+ movs r3, 0x3
+_080C8E94:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, r4
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C8E94
+ adds r1, r6, r5
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8EAE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8EB8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8E1C
+
+ thumb_func_start sub_80C8EBC
+sub_80C8EBC: @ 80C8EBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8EE4 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8EE8
+ cmp r0, 0x1
+ beq _080C8F00
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F22
+ .align 2, 0
+_080C8EE4: .4byte gTasks
+_080C8EE8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8EFC @ =gUnknown_02038670
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8F1C
+ .align 2, 0
+_080C8EFC: .4byte gUnknown_02038670
+_080C8F00:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8F28 @ =gUnknown_02038670
+ ldr r1, _080C8F2C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8F30 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ bl memcpy
+_080C8F1C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8F28: .4byte gUnknown_02038670
+_080C8F2C: .4byte gUnknown_0203869B
+_080C8F30: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8EBC
+
+ thumb_func_start sub_80C8F34
+sub_80C8F34: @ 80C8F34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8F5C @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8F60
+ cmp r0, 0x1
+ beq _080C8F78
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F9A
+ .align 2, 0
+_080C8F5C: .4byte gTasks
+_080C8F60:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8F74 @ =gUnknown_02038696
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8F94
+ .align 2, 0
+_080C8F74: .4byte gUnknown_02038696
+_080C8F78:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8FA0 @ =gUnknown_02038696
+ ldr r1, _080C8FA4 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8FA8 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+ bl memcpy
+_080C8F94:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8FA0: .4byte gUnknown_02038696
+_080C8FA4: .4byte gUnknown_0203869B
+_080C8FA8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8F34
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
new file mode 100644
index 000000000..fe9b38a49
--- /dev/null
+++ b/asm/contest_painting.s
@@ -0,0 +1,1293 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8106630
+sub_8106630: @ 8106630
+ push {r4-r7,lr}
+ ldr r2, _0810665C @ =0x02015de0
+ subs r4, r2, 0x2
+ subs r5, r2, 0x1
+ ldr r3, _08106660 @ =gSaveBlock1
+ subs r0, 0x1
+ lsls r1, r0, 5
+ adds r1, r3
+ ldr r3, _08106664 @ =0x00002dfc
+ adds r1, r3
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r6,r7}
+ stm r2!, {r6,r7}
+ strb r0, [r4]
+ movs r0, 0
+ strb r0, [r5]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810665C: .4byte 0x02015de0
+_08106660: .4byte gSaveBlock1
+_08106664: .4byte 0x00002dfc
+ thumb_func_end sub_8106630
+
+ thumb_func_start sub_8106668
+sub_8106668: @ 8106668
+ push {lr}
+ bl sub_8106674
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106668
+
+ thumb_func_start sub_8106674
+sub_8106674: @ 8106674
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _08106694 @ =gMain
+ ldr r2, _08106698 @ =0x0000043c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bls _08106688
+ b _081067E0
+_08106688:
+ lsls r0, 2
+ ldr r1, _0810669C @ =_081066A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106694: .4byte gMain
+_08106698: .4byte 0x0000043c
+_0810669C: .4byte _081066A0
+ .align 2, 0
+_081066A0:
+ .4byte _081066B4
+ .4byte _081066D8
+ .4byte _08106734
+ .4byte _0810675C
+ .4byte _0810678C
+_081066B4:
+ bl remove_some_task
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _081066D0 @ =gUnknown_03005E8C
+ ldr r0, _081066D4 @ =0x02015de0
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_8106A10
+ bl sub_81069CC
+ b _0810676E
+ .align 2, 0
+_081066D0: .4byte gUnknown_03005E8C
+_081066D4: .4byte 0x02015de0
+_081066D8:
+ bl ResetPaletteFade
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ movs r5, 0
+ ldr r1, _08106724 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _08106728 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_081066F2:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _081066F2
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetSpriteData
+ ldr r1, _0810672C @ =gMain
+ ldr r2, _08106730 @ =0x0000043c
+ adds r1, r2
+ b _08106774
+ .align 2, 0
+_08106724: .4byte 0x040000d4
+_08106728: .4byte 0x85000400
+_0810672C: .4byte gMain
+_08106730: .4byte 0x0000043c
+_08106734:
+ ldrh r0, [r4, 0x20]
+ bl SeedRng
+ bl InitKeys
+ ldr r0, _08106750 @ =0x02000000
+ ldr r1, _08106754 @ =0x00015ddf
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81068FC
+ ldr r2, _08106758 @ =0x0000043c
+ adds r1, r4, r2
+ b _08106774
+ .align 2, 0
+_08106750: .4byte 0x02000000
+_08106754: .4byte 0x00015ddf
+_08106758: .4byte 0x0000043c
+_0810675C:
+ ldr r1, _0810677C @ =0x02000000
+ ldr r2, _08106780 @ =0x00015dde
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8107090
+_0810676E:
+ ldr r1, _08106784 @ =gMain
+ ldr r0, _08106788 @ =0x0000043c
+ adds r1, r0
+_08106774:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081067E0
+ .align 2, 0
+_0810677C: .4byte 0x02000000
+_08106780: .4byte 0x00015dde
+_08106784: .4byte gMain
+_08106788: .4byte 0x0000043c
+_0810678C:
+ ldr r1, _081067E8 @ =0x02000000
+ ldr r2, _081067EC @ =0x00015dde
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8106918
+ ldr r0, _081067F0 @ =gUnknown_083F6140
+ movs r1, 0
+ movs r2, 0x2
+ bl LoadPalette
+ movs r1, 0xA0
+ lsls r1, 19
+ movs r4, 0
+ str r4, [sp]
+ ldr r0, _081067F4 @ =0x040000d4
+ mov r2, sp
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081067F8 @ =0x85000100
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r0, 0x2
+ bl BeginFastPaletteFade
+ ldr r0, _081067FC @ =sub_8106AAC
+ bl SetVBlankCallback
+ ldr r0, _08106800 @ =gUnknown_03000750
+ strb r4, [r0]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106804 @ =sub_8106808
+ bl SetMainCallback2
+_081067E0:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081067E8: .4byte 0x02000000
+_081067EC: .4byte 0x00015dde
+_081067F0: .4byte gUnknown_083F6140
+_081067F4: .4byte 0x040000d4
+_081067F8: .4byte 0x85000100
+_081067FC: .4byte sub_8106AAC
+_08106800: .4byte gUnknown_03000750
+_08106804: .4byte sub_8106808
+ thumb_func_end sub_8106674
+
+ thumb_func_start sub_8106808
+sub_8106808: @ 8106808
+ push {lr}
+ bl sub_810682C
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106808
+
+ thumb_func_start sub_8106818
+sub_8106818: @ 8106818
+ push {lr}
+ ldr r0, _08106828 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106828: .4byte gMain
+ thumb_func_end sub_8106818
+
+ thumb_func_start sub_810682C
+sub_810682C: @ 810682C
+ push {lr}
+ sub sp, 0x4
+ ldr r3, _08106844 @ =gUnknown_03000750
+ ldrb r1, [r3]
+ cmp r1, 0x1
+ beq _08106880
+ cmp r1, 0x1
+ bgt _08106848
+ cmp r1, 0
+ beq _0810684E
+ b _081068E6
+ .align 2, 0
+_08106844: .4byte gUnknown_03000750
+_08106848:
+ cmp r1, 0x2
+ beq _081068C0
+ b _081068E6
+_0810684E:
+ ldr r0, _08106874 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810685E
+ movs r0, 0x1
+ strb r0, [r3]
+_0810685E:
+ ldr r0, _08106878 @ =gUnknown_03000756
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _0810687C @ =gUnknown_03000754
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081068E6
+ subs r0, 0x1
+ b _081068E4
+ .align 2, 0
+_08106874: .4byte gPaletteFade
+_08106878: .4byte gUnknown_03000756
+_0810687C: .4byte gUnknown_03000754
+_08106880:
+ ldr r0, _081068B4 @ =gMain
+ ldrh r2, [r0, 0x2E]
+ ands r1, r2
+ cmp r1, 0
+ bne _08106892
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _081068A4
+_08106892:
+ movs r0, 0x2
+ strb r0, [r3]
+ subs r0, 0x3
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_081068A4:
+ ldr r0, _081068B8 @ =gUnknown_03000756
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068BC @ =gUnknown_03000754
+ movs r0, 0
+ b _081068E4
+ .align 2, 0
+_081068B4: .4byte gMain
+_081068B8: .4byte gUnknown_03000756
+_081068BC: .4byte gUnknown_03000754
+_081068C0:
+ ldr r0, _081068EC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081068D2
+ ldr r0, _081068F0 @ =sub_8106818
+ bl SetMainCallback2
+_081068D2:
+ ldr r0, _081068F4 @ =gUnknown_03000756
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081068E6
+ ldr r1, _081068F8 @ =gUnknown_03000754
+ ldrh r0, [r1]
+ cmp r0, 0x1D
+ bhi _081068E6
+ adds r0, 0x1
+_081068E4:
+ strh r0, [r1]
+_081068E6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081068EC: .4byte gPaletteFade
+_081068F0: .4byte sub_8106818
+_081068F4: .4byte gUnknown_03000756
+_081068F8: .4byte gUnknown_03000754
+ thumb_func_end sub_810682C
+
+ thumb_func_start sub_81068FC
+sub_81068FC: @ 81068FC
+ push {r4,lr}
+ ldr r4, _08106914 @ =gWindowConfig_81E7160
+ adds r0, r4, 0
+ bl InitMenuWindow
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106914: .4byte gWindowConfig_81E7160
+ thumb_func_end sub_81068FC
+
+ thumb_func_start sub_8106918
+sub_8106918: @ 8106918
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081069BE
+ ldr r2, _08106974 @ =gUnknown_03005E40
+ ldr r6, _08106978 @ =gUnknown_03005E8C
+ ldr r0, [r6]
+ ldrb r0, [r0, 0xA]
+ cmp r3, 0x7
+ bhi _08106988
+ ldr r1, _0810697C @ =gUnknown_083F60AC
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _08106980 @ =gContestText_ContestWinner
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0x16
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x16
+ strb r0, [r2, 0x1]
+ adds r2, 0x2
+ ldr r1, _08106984 @ =gOtherText_Unknown1
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ movs r1, 0x6
+ b _081069AE
+ .align 2, 0
+_08106974: .4byte gUnknown_03005E40
+_08106978: .4byte gUnknown_03005E8C
+_0810697C: .4byte gUnknown_083F60AC
+_08106980: .4byte gContestText_ContestWinner
+_08106984: .4byte gOtherText_Unknown1
+_08106988:
+ ldr r4, _081069C4 @ =gUnknown_083F60C0
+ lsls r5, r0, 3
+ adds r0, r5, r4
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, [r6]
+ adds r1, 0xB
+ bl StringCopy10
+ adds r2, r0, 0
+ adds r4, 0x4
+ adds r5, r4
+ ldr r1, [r5]
+ bl StringCopy
+ movs r1, 0x3
+_081069AE:
+ movs r2, 0xE
+ ldr r0, _081069C8 @ =gUnknown_03005E40
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r2, 3
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+_081069BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081069C4: .4byte gUnknown_083F60C0
+_081069C8: .4byte gUnknown_03005E40
+ thumb_func_end sub_8106918
+
+ thumb_func_start sub_81069CC
+sub_81069CC: @ 81069CC
+ movs r0, 0x80
+ lsls r0, 19
+ movs r3, 0
+ strh r3, [r0]
+ ldr r2, _081069FC @ =0x04000200
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08106A00 @ =REG_BG0CNT
+ ldr r2, _08106A04 @ =0x00000c42
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08106A08 @ =0x00000a45
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08106A0C @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ bx lr
+ .align 2, 0
+_081069FC: .4byte 0x04000200
+_08106A00: .4byte REG_BG0CNT
+_08106A04: .4byte 0x00000c42
+_08106A08: .4byte 0x00000a45
+_08106A0C: .4byte REG_BLDCNT
+ thumb_func_end sub_81069CC
+
+ thumb_func_start sub_8106A10
+sub_8106A10: @ 8106A10
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08106A34
+ ldr r0, _08106A28 @ =gUnknown_03000756
+ strb r1, [r0]
+ ldr r0, _08106A2C @ =gUnknown_03000752
+ strh r1, [r0]
+ ldr r0, _08106A30 @ =gUnknown_03000754
+ strh r1, [r0]
+ b _08106A46
+ .align 2, 0
+_08106A28: .4byte gUnknown_03000756
+_08106A2C: .4byte gUnknown_03000752
+_08106A30: .4byte gUnknown_03000754
+_08106A34:
+ ldr r1, _08106A4C @ =gUnknown_03000756
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08106A50 @ =gUnknown_03000752
+ movs r0, 0xF
+ strh r0, [r1]
+ ldr r1, _08106A54 @ =gUnknown_03000754
+ movs r0, 0x1E
+ strh r0, [r1]
+_08106A46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A4C: .4byte gUnknown_03000756
+_08106A50: .4byte gUnknown_03000752
+_08106A54: .4byte gUnknown_03000754
+ thumb_func_end sub_8106A10
+
+ thumb_func_start sub_8106A58
+sub_8106A58: @ 8106A58
+ push {lr}
+ ldr r0, _08106A68 @ =gUnknown_03000756
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _08106A70
+ ldr r0, _08106A6C @ =REG_MOSAIC
+ strh r1, [r0]
+ b _08106A92
+ .align 2, 0
+_08106A68: .4byte gUnknown_03000756
+_08106A6C: .4byte REG_MOSAIC
+_08106A70:
+ ldr r1, _08106A98 @ =REG_BG1CNT
+ ldr r2, _08106A9C @ =0x00000a45
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _08106AA0 @ =gUnknown_03000752
+ ldr r0, _08106AA4 @ =gUnknown_03000754
+ ldrh r1, [r0]
+ lsrs r1, 1
+ strh r1, [r2]
+ ldr r3, _08106AA8 @ =REG_MOSAIC
+ lsls r0, r1, 12
+ lsls r2, r1, 8
+ orrs r0, r2
+ lsls r2, r1, 4
+ orrs r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_08106A92:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106A98: .4byte REG_BG1CNT
+_08106A9C: .4byte 0x00000a45
+_08106AA0: .4byte gUnknown_03000752
+_08106AA4: .4byte gUnknown_03000754
+_08106AA8: .4byte REG_MOSAIC
+ thumb_func_end sub_8106A58
+
+ thumb_func_start sub_8106AAC
+sub_8106AAC: @ 8106AAC
+ push {lr}
+ bl sub_8106A58
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106AAC
+
+ thumb_func_start sub_8106AC4
+sub_8106AC4: @ 8106AC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _08106B28 @ =gUnknown_03005E8C
+ ldr r0, [r7]
+ ldr r1, [r0, 0x4]
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl species_and_otid_get_pal
+ ldr r1, _08106B2C @ =gUnknown_03005E90
+ mov r8, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+ cmp r4, 0
+ bne _08106B40
+ lsls r0, r6, 3
+ ldr r1, _08106B30 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08106B34 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B38 @ =gUnknown_081FAF4C
+ ldr r5, [r4, 0x4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r0, _08106B3C @ =gUnknown_03005E10
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+ b _08106B74
+ .align 2, 0
+_08106B28: .4byte gUnknown_03005E8C
+_08106B2C: .4byte gUnknown_03005E90
+_08106B30: .4byte gMonFrontPicTable
+_08106B34: .4byte gMonFrontPicCoords
+_08106B38: .4byte gUnknown_081FAF4C
+_08106B3C: .4byte gUnknown_03005E10
+_08106B40:
+ lsls r0, r6, 3
+ ldr r1, _08106B80 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _08106B84 @ =gMonBackPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08106B88 @ =gUnknown_081FAF4C
+ ldr r5, [r4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ ldr r4, [r7]
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _08106B8C @ =gUnknown_03005E10
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl sub_8106B90
+_08106B74:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106B80: .4byte gMonBackPicTable
+_08106B84: .4byte gMonBackPicCoords
+_08106B88: .4byte gUnknown_081FAF4C
+_08106B8C: .4byte gUnknown_03005E10
+ thumb_func_end sub_8106AC4
+
+ thumb_func_start sub_8106B90
+sub_8106B90: @ 8106B90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ mov r9, r1
+ str r2, [sp]
+ movs r0, 0
+_08106BA4:
+ movs r3, 0
+ adds r1, r0, 0x1
+ str r1, [sp, 0x4]
+ lsls r0, 3
+ str r0, [sp, 0x8]
+_08106BAE:
+ movs r1, 0
+ adds r2, r3, 0x1
+ mov r8, r2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r3
+ lsls r0, 5
+ mov r12, r0
+ lsls r4, r3, 3
+_08106BBE:
+ movs r3, 0
+ lsls r0, r1, 2
+ adds r6, r1, 0x1
+ mov r2, r12
+ adds r5, r2, r0
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r1
+ lsls r0, 7
+ ldr r1, [sp]
+ adds r2, r0, r1
+_08106BD2:
+ lsrs r0, r3, 1
+ adds r0, r5, r0
+ add r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08106BE6
+ lsrs r1, 4
+ b _08106BEA
+_08106BE6:
+ movs r0, 0xF
+ ands r1, r0
+_08106BEA:
+ cmp r1, 0
+ bne _08106BFC
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ movs r7, 0x80
+ lsls r7, 8
+ adds r1, r7, 0
+ b _08106C08
+_08106BFC:
+ adds r0, r4, r3
+ lsls r0, 1
+ adds r0, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+_08106C08:
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BD2
+ lsls r0, r6, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7
+ bls _08106BBE
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x7
+ bls _08106BAE
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bls _08106BA4
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8106B90
+
+ thumb_func_start sub_8106C40
+sub_8106C40: @ 8106C40
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08106C7C @ =gPictureFramePalettes
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ cmp r4, 0x1
+ beq _08106C5E
+ b _08106DB4
+_08106C5E:
+ ldr r0, _08106C80 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106D1C
+ lsls r0, 2
+ ldr r1, _08106C84 @ =_08106C88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106C7C: .4byte gPictureFramePalettes
+_08106C80: .4byte gUnknown_03005E8C
+_08106C84: .4byte _08106C88
+ .align 2, 0
+_08106C88:
+ .4byte _08106C9C
+ .4byte _08106CB4
+ .4byte _08106CCC
+ .4byte _08106CE4
+ .4byte _08106D08
+_08106C9C:
+ ldr r0, _08106CAC @ =gPictureFrameTiles_0
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CB0 @ =gPictureFrameTilemap_0
+ b _08106CF0
+ .align 2, 0
+_08106CAC: .4byte gPictureFrameTiles_0
+_08106CB0: .4byte gPictureFrameTilemap_0
+_08106CB4:
+ ldr r0, _08106CC4 @ =gPictureFrameTiles_1
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CC8 @ =gPictureFrameTilemap_1
+ b _08106CF0
+ .align 2, 0
+_08106CC4: .4byte gPictureFrameTiles_1
+_08106CC8: .4byte gPictureFrameTilemap_1
+_08106CCC:
+ ldr r0, _08106CDC @ =gPictureFrameTiles_2
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106CE0 @ =gPictureFrameTilemap_2
+ b _08106CF0
+ .align 2, 0
+_08106CDC: .4byte gPictureFrameTiles_2
+_08106CE0: .4byte gPictureFrameTilemap_2
+_08106CE4:
+ ldr r0, _08106CFC @ =gPictureFrameTiles_3
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D00 @ =gPictureFrameTilemap_3
+_08106CF0:
+ ldr r1, _08106D04 @ =gUnknown_03005E10
+ ldr r1, [r1]
+ bl RLUnCompWram
+ b _08106D1C
+ .align 2, 0
+_08106CFC: .4byte gPictureFrameTiles_3
+_08106D00: .4byte gPictureFrameTilemap_3
+_08106D04: .4byte gUnknown_03005E10
+_08106D08:
+ ldr r0, _08106D98 @ =gPictureFrameTiles_4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106D9C @ =gPictureFrameTilemap_4
+ ldr r1, _08106DA0 @ =gUnknown_03005E10
+ ldr r1, [r1]
+ bl RLUnCompWram
+_08106D1C:
+ movs r1, 0
+ ldr r5, _08106DA4 @ =0x06006000
+ ldr r0, _08106DA8 @ =0x00001015
+ adds r4, r0, 0
+_08106D24:
+ movs r3, 0
+ lsls r2, r1, 5
+_08106D28:
+ adds r0, r2, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08106D28
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _08106D24
+ movs r1, 0
+ ldr r0, _08106DAC @ =0x0600608c
+ mov r12, r0
+ ldr r7, _08106DA0 @ =gUnknown_03005E10
+_08106D4C:
+ movs r3, 0
+ adds r6, r1, 0x1
+ lsls r5, r1, 5
+ lsls r4, r1, 6
+_08106D54:
+ adds r2, r5, r3
+ lsls r2, 1
+ add r2, r12
+ ldr r0, [r7]
+ adds r0, r4, r0
+ lsls r1, r3, 1
+ adds r0, r1
+ adds r0, 0x8C
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x11
+ bls _08106D54
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ bls _08106D4C
+ movs r3, 0
+ ldr r4, _08106DB0 @ =0x0600608e
+ ldr r2, _08106DA0 @ =gUnknown_03005E10
+_08106D80:
+ lsls r1, r3, 1
+ adds r1, r4
+ ldr r0, [r2]
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _08106D80
+ b _08106E86
+ .align 2, 0
+_08106D98: .4byte gPictureFrameTiles_4
+_08106D9C: .4byte gPictureFrameTilemap_4
+_08106DA0: .4byte gUnknown_03005E10
+_08106DA4: .4byte 0x06006000
+_08106DA8: .4byte 0x00001015
+_08106DAC: .4byte 0x0600608c
+_08106DB0: .4byte 0x0600608e
+_08106DB4:
+ cmp r5, 0x7
+ bhi _08106DD0
+ ldr r0, _08106DC8 @ =gPictureFrameTiles_5
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106DCC @ =gPictureFrameTilemap_5
+ b _08106E60
+ .align 2, 0
+_08106DC8: .4byte gPictureFrameTiles_5
+_08106DCC: .4byte gPictureFrameTilemap_5
+_08106DD0:
+ ldr r0, _08106DF0 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _08106E86
+ lsls r0, 2
+ ldr r1, _08106DF4 @ =_08106DF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106DF0: .4byte gUnknown_03005E8C
+_08106DF4: .4byte _08106DF8
+ .align 2, 0
+_08106DF8:
+ .4byte _08106E0C
+ .4byte _08106E24
+ .4byte _08106E3C
+ .4byte _08106E54
+ .4byte _08106E74
+_08106E0C:
+ ldr r0, _08106E1C @ =gPictureFrameTiles_0
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E20 @ =gPictureFrameTilemap_0
+ b _08106E60
+ .align 2, 0
+_08106E1C: .4byte gPictureFrameTiles_0
+_08106E20: .4byte gPictureFrameTilemap_0
+_08106E24:
+ ldr r0, _08106E34 @ =gPictureFrameTiles_1
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E38 @ =gPictureFrameTilemap_1
+ b _08106E60
+ .align 2, 0
+_08106E34: .4byte gPictureFrameTiles_1
+_08106E38: .4byte gPictureFrameTilemap_1
+_08106E3C:
+ ldr r0, _08106E4C @ =gPictureFrameTiles_2
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E50 @ =gPictureFrameTilemap_2
+ b _08106E60
+ .align 2, 0
+_08106E4C: .4byte gPictureFrameTiles_2
+_08106E50: .4byte gPictureFrameTilemap_2
+_08106E54:
+ ldr r0, _08106E68 @ =gPictureFrameTiles_3
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E6C @ =gPictureFrameTilemap_3
+_08106E60:
+ ldr r1, _08106E70 @ =0x06006000
+ bl RLUnCompVram
+ b _08106E86
+ .align 2, 0
+_08106E68: .4byte gPictureFrameTiles_3
+_08106E6C: .4byte gPictureFrameTilemap_3
+_08106E70: .4byte 0x06006000
+_08106E74:
+ ldr r0, _08106E8C @ =gPictureFrameTiles_4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl RLUnCompVram
+ ldr r0, _08106E90 @ =gPictureFrameTilemap_4
+ ldr r1, _08106E94 @ =0x06006000
+ bl RLUnCompVram
+_08106E86:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106E8C: .4byte gPictureFrameTiles_4
+_08106E90: .4byte gPictureFrameTilemap_4
+_08106E94: .4byte 0x06006000
+ thumb_func_end sub_8106C40
+
+ thumb_func_start sub_8106E98
+sub_8106E98: @ 8106E98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08106ED0 @ =gMain
+ ldr r1, _08106ED4 @ =gOamData_83F6138
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r4, 0x3C]
+ str r2, [r4, 0x40]
+ adds r3, r4, 0
+ adds r3, 0x40
+ ldrh r2, [r3]
+ ldr r1, _08106ED8 @ =0xfffffc00
+ ands r1, r2
+ strh r1, [r3]
+ ldrh r1, [r4, 0x3E]
+ ldr r0, _08106EDC @ =0xfffffe00
+ ands r0, r1
+ movs r1, 0x58
+ orrs r0, r1
+ strh r0, [r4, 0x3E]
+ adds r1, r4, 0
+ adds r1, 0x3C
+ movs r0, 0x18
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106ED0: .4byte gMain
+_08106ED4: .4byte gOamData_83F6138
+_08106ED8: .4byte 0xfffffc00
+_08106EDC: .4byte 0xfffffe00
+ thumb_func_end sub_8106E98
+
+ thumb_func_start sub_8106EE0
+sub_8106EE0: @ 8106EE0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bhi _08106EF8
+ ldr r0, _08106EF4 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ b _08106F08
+ .align 2, 0
+_08106EF4: .4byte gUnknown_03005E8C
+_08106EF8:
+ ldr r0, _08106F18 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xA]
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+_08106F08:
+ cmp r0, 0x4
+ bhi _08106F46
+ lsls r0, 2
+ ldr r1, _08106F1C @ =_08106F20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106F18: .4byte gUnknown_03005E8C
+_08106F1C: .4byte _08106F20
+ .align 2, 0
+_08106F20:
+ .4byte _08106F34
+ .4byte _08106F38
+ .4byte _08106F3C
+ .4byte _08106F40
+ .4byte _08106F44
+_08106F34:
+ movs r0, 0x9
+ b _08106F46
+_08106F38:
+ movs r0, 0xD
+ b _08106F46
+_08106F3C:
+ movs r0, 0x2
+ b _08106F46
+_08106F40:
+ movs r0, 0x24
+ b _08106F46
+_08106F44:
+ movs r0, 0x6
+_08106F46:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8106EE0
+
+ thumb_func_start sub_8106F4C
+sub_8106F4C: @ 8106F4C
+ ldr r0, _08106F5C @ =gUnknown_03005E90
+ ldr r1, _08106F60 @ =0x02017e00
+ str r1, [r0]
+ ldr r0, _08106F64 @ =gUnknown_03005E10
+ ldr r2, _08106F68 @ =0xffffe000
+ adds r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08106F5C: .4byte gUnknown_03005E90
+_08106F60: .4byte 0x02017e00
+_08106F64: .4byte gUnknown_03005E10
+_08106F68: .4byte 0xffffe000
+ thumb_func_end sub_8106F4C
+
+ thumb_func_start sub_8106F6C
+sub_8106F6C: @ 8106F6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08106FAC @ =gUnknown_03005E20
+ ldr r0, _08106FB0 @ =gUnknown_03005E10
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r0, _08106FB4 @ =gUnknown_03005E90
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ movs r2, 0
+ strb r2, [r1, 0x18]
+ ldr r0, _08106FB8 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1F]
+ strb r2, [r1, 0x19]
+ strb r2, [r1, 0x1A]
+ movs r0, 0x40
+ strb r0, [r1, 0x1B]
+ strb r0, [r1, 0x1C]
+ strb r0, [r1, 0x1D]
+ strb r0, [r1, 0x1E]
+ subs r0, r3, 0x2
+ adds r4, r1, 0
+ cmp r0, 0x22
+ bhi _08107050
+ lsls r0, 2
+ ldr r1, _08106FBC @ =_08106FC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08106FAC: .4byte gUnknown_03005E20
+_08106FB0: .4byte gUnknown_03005E10
+_08106FB4: .4byte gUnknown_03005E90
+_08106FB8: .4byte gUnknown_03005E8C
+_08106FBC: .4byte _08106FC0
+ .align 2, 0
+_08106FC0:
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _08107050
+ .4byte _0810704C
+_0810704C:
+ movs r0, 0x3
+ b _08107052
+_08107050:
+ movs r0, 0x1
+_08107052:
+ strh r0, [r4, 0x14]
+ movs r0, 0x2
+ strh r0, [r4, 0x16]
+ strb r3, [r4]
+ ldr r0, _08107088 @ =0x06010000
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl sub_80FC7A0
+ adds r0, r4, 0
+ bl sub_80FDA18
+ adds r0, r4, 0
+ bl sub_80FD8CC
+ ldr r0, _0810708C @ =gUnknown_03005E90
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x80
+ lsls r2, 2
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107088: .4byte 0x06010000
+_0810708C: .4byte gUnknown_03005E90
+ thumb_func_end sub_8106F6C
+
+ thumb_func_start sub_8107090
+sub_8107090: @ 8107090
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8106F4C
+ ldr r0, _081070D0 @ =gUnknown_03005E8C
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_8106AC4
+ adds r0, r4, 0
+ bl sub_8106EE0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8106F6C
+ adds r0, r4, 0
+ bl sub_8106E98
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8106C40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081070D0: .4byte gUnknown_03005E8C
+ thumb_func_end sub_8107090
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
new file mode 100644
index 000000000..0f1b217a7
--- /dev/null
+++ b/asm/cute_sketch.s
@@ -0,0 +1,3487 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FC7A0
+sub_80FC7A0: @ 80FC7A0
+ push {lr}
+ ldr r2, _080FC7E8 @ =gUnknown_03005DEC
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FC7EC @ =gUnknown_03005E00
+ ldrb r1, [r0, 0x1F]
+ strb r1, [r2]
+ ldr r2, _080FC7F0 @ =gUnknown_03005DE8
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FC7F4 @ =gUnknown_03005DFC
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FC7F8 @ =gUnknown_03005DF8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FC7FC @ =gUnknown_03005DF0
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FC800 @ =gUnknown_03005E04
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FC804 @ =gUnknown_03005DF4
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrb r0, [r0]
+ subs r0, 0x2
+ cmp r0, 0x22
+ bls _080FC7DC
+ b _080FC928
+_080FC7DC:
+ lsls r0, 2
+ ldr r1, _080FC808 @ =_080FC80C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC7E8: .4byte gUnknown_03005DEC
+_080FC7EC: .4byte gUnknown_03005E00
+_080FC7F0: .4byte gUnknown_03005DE8
+_080FC7F4: .4byte gUnknown_03005DFC
+_080FC7F8: .4byte gUnknown_03005DF8
+_080FC7FC: .4byte gUnknown_03005DF0
+_080FC800: .4byte gUnknown_03005E04
+_080FC804: .4byte gUnknown_03005DF4
+_080FC808: .4byte _080FC80C
+ .align 2, 0
+_080FC80C:
+ .4byte _080FC898
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8F8
+ .4byte _080FC928
+ .4byte _080FC89E
+ .4byte _080FC8A4
+ .4byte _080FC8B8
+ .4byte _080FC8CA
+ .4byte _080FC928
+ .4byte _080FC8E0
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8E6
+ .4byte _080FC8C4
+ .4byte _080FC8EC
+ .4byte _080FC8F2
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC904
+_080FC898:
+ bl sub_80FCAA4
+ b _080FC928
+_080FC89E:
+ bl sub_80FCB5C
+ b _080FC928
+_080FC8A4:
+ bl sub_80FCD54
+ ldr r0, _080FC8B4 @ =gUnknown_03005E00
+ ldrb r0, [r0]
+ bl sub_80FCC18
+ b _080FC928
+ .align 2, 0
+_080FC8B4: .4byte gUnknown_03005E00
+_080FC8B8:
+ bl sub_80FCD54
+ bl sub_80FCEA4
+ bl sub_80FCCBC
+_080FC8C4:
+ bl sub_80FCEA4
+ b _080FC928
+_080FC8CA:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ b _080FC928
+_080FC8E0:
+ bl sub_80FCF3C
+ b _080FC928
+_080FC8E6:
+ bl sub_80FCD54
+ b _080FC928
+_080FC8EC:
+ bl sub_80FD06C
+ b _080FC928
+_080FC8F2:
+ bl sub_80FD114
+ b _080FC928
+_080FC8F8:
+ bl sub_80FCAC4
+ movs r0, 0x3
+ bl sub_80FC92C
+ b _080FC928
+_080FC904:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ bl sub_80FCB5C
+ bl sub_80FCB5C
+ movs r0, 0x2
+ bl sub_80FC92C
+ movs r0, 0x4
+ bl sub_80FC9E4
+_080FC928:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC7A0
+
+ thumb_func_start sub_80FC92C
+sub_80FC92C: @ 80FC92C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0
+ ldr r0, _080FC9CC @ =gUnknown_03005DF0
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FC9BE
+ ldr r1, _080FC9D0 @ =gUnknown_03005DF8
+ mov r12, r1
+ ldr r3, _080FC9D4 @ =gUnknown_03005E04
+ mov r10, r3
+ ldr r0, _080FC9D8 @ =gUnknown_03005DE8
+ mov r9, r0
+_080FC952:
+ ldr r1, _080FC9DC @ =gUnknown_03005DFC
+ ldrb r0, [r1]
+ adds r0, r2
+ mov r3, r10
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FC9E0 @ =gUnknown_03005DEC
+ ldr r1, [r3]
+ adds r1, r0
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r4, 0
+ adds r5, r2, 0x1
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080FC9B2
+ movs r6, 0x80
+ lsls r6, 8
+_080FC97E:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FC9A2
+ movs r0, 0x1F
+ ands r0, r1
+ adds r0, r7
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _080FC998
+ movs r2, 0x1F
+_080FC998:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FC9A2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, 0x2
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcc _080FC97E
+_080FC9B2:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ mov r3, r8
+ ldrb r3, [r3]
+ cmp r2, r3
+ bcc _080FC952
+_080FC9BE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC9CC: .4byte gUnknown_03005DF0
+_080FC9D0: .4byte gUnknown_03005DF8
+_080FC9D4: .4byte gUnknown_03005E04
+_080FC9D8: .4byte gUnknown_03005DE8
+_080FC9DC: .4byte gUnknown_03005DFC
+_080FC9E0: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FC92C
+
+ thumb_func_start sub_80FC9E4
+sub_80FC9E4: @ 80FC9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCA8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCA7C
+ ldr r1, _080FCA90 @ =gUnknown_03005DF8
+ mov r10, r1
+_080FCA02:
+ ldr r3, _080FCA94 @ =gUnknown_03005DFC
+ ldrb r0, [r3]
+ adds r0, r2
+ ldr r3, _080FCA98 @ =gUnknown_03005E04
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FCA9C @ =gUnknown_03005DEC
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r3, _080FCAA0 @ =gUnknown_03005DE8
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r5, 0
+ adds r7, r2, 0x1
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FCA70
+ movs r1, 0x80
+ lsls r1, 8
+ mov r9, r1
+ movs r0, 0x1F
+ mov r12, r0
+ mov r1, r8
+ subs r6, r0, r1
+_080FCA38:
+ ldrh r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCA60
+ movs r4, 0x1F
+ mov r2, r12
+ ands r2, r1
+ cmp r2, r6
+ ble _080FCA56
+ mov r1, r8
+ lsrs r0, r1, 1
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FCA56:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FCA60:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, 0x2
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FCA38
+_080FCA70:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FCA8C @ =gUnknown_03005DF0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcc _080FCA02
+_080FCA7C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCA8C: .4byte gUnknown_03005DF0
+_080FCA90: .4byte gUnknown_03005DF8
+_080FCA94: .4byte gUnknown_03005DFC
+_080FCA98: .4byte gUnknown_03005E04
+_080FCA9C: .4byte gUnknown_03005DEC
+_080FCAA0: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FC9E4
+
+ thumb_func_start sub_80FCAA4
+sub_80FCAA4: @ 80FCAA4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080FCAC0 @ =0x00000c7f
+_080FCAAA:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80FD1C8
+ adds r4, 0x1
+ cmp r4, r5
+ bls _080FCAAA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAC0: .4byte 0x00000c7f
+ thumb_func_end sub_80FCAA4
+
+ thumb_func_start sub_80FCAC4
+sub_80FCAC4: @ 80FCAC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCB44 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCB36
+ ldr r0, _080FCB48 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCB4C @ =gUnknown_03005DF8
+_080FCADC:
+ ldr r0, _080FCB50 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCB54 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCB58 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCB2A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCB08:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCB1C
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD39C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCB1C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCB08
+_080FCB2A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCB44 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCADC
+_080FCB36:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCB44: .4byte gUnknown_03005DF0
+_080FCB48: .4byte gUnknown_03005DEC
+_080FCB4C: .4byte gUnknown_03005DF8
+_080FCB50: .4byte gUnknown_03005DFC
+_080FCB54: .4byte gUnknown_03005E04
+_080FCB58: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCAC4
+
+ thumb_func_start sub_80FCB5C
+sub_80FCB5C: @ 80FCB5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FCC00 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCBF2
+ ldr r0, _080FCC04 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCC08 @ =gUnknown_03005E04
+_080FCB74:
+ ldr r0, _080FCC0C @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ ldrb r0, [r3]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCC10 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, r2, 0x1
+ cmp r5, r0
+ bge _080FCBE6
+ ldr r6, _080FCC08 @ =gUnknown_03005E04
+_080FCBAA:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCBD0
+ ldrb r2, [r6]
+ lsls r2, 1
+ adds r2, r4, r2
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD68C
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r3, [sp, 0x4]
+_080FCBD0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FCBAA
+_080FCBE6:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCC00 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCB74
+_080FCBF2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCC00: .4byte gUnknown_03005DF8
+_080FCC04: .4byte gUnknown_03005DEC
+_080FCC08: .4byte gUnknown_03005E04
+_080FCC0C: .4byte gUnknown_03005DFC
+_080FCC10: .4byte gUnknown_03005DE8
+_080FCC14: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FCB5C
+
+ thumb_func_start sub_80FCC18
+sub_80FCC18: @ 80FCC18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCCA4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCC94
+ ldr r0, _080FCCA8 @ =gUnknown_03005DEC
+ mov r9, r0
+ ldr r3, _080FCCAC @ =gUnknown_03005DF8
+_080FCC38:
+ ldr r0, _080FCCB0 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCCB4 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r9
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCCB8 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCC88
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCC64:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCC7A
+ adds r0, r4, 0
+ mov r1, r8
+ str r3, [sp]
+ bl sub_80FD3D0
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCC7A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCC64
+_080FCC88:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCCA4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCC38
+_080FCC94:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCCA4: .4byte gUnknown_03005DF0
+_080FCCA8: .4byte gUnknown_03005DEC
+_080FCCAC: .4byte gUnknown_03005DF8
+_080FCCB0: .4byte gUnknown_03005DFC
+_080FCCB4: .4byte gUnknown_03005E04
+_080FCCB8: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCC18
+
+ thumb_func_start sub_80FCCBC
+sub_80FCCBC: @ 80FCCBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCD3C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCD2E
+ ldr r0, _080FCD40 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCD44 @ =gUnknown_03005DF8
+_080FCCD4:
+ ldr r0, _080FCD48 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCD4C @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCD50 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCD22
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCD00:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCD14
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD4DC
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCD14:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCD00
+_080FCD22:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCD3C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCCD4
+_080FCD2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCD3C: .4byte gUnknown_03005DF0
+_080FCD40: .4byte gUnknown_03005DEC
+_080FCD44: .4byte gUnknown_03005DF8
+_080FCD48: .4byte gUnknown_03005DFC
+_080FCD4C: .4byte gUnknown_03005E04
+_080FCD50: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCCBC
+
+ thumb_func_start sub_80FCD54
+sub_80FCD54: @ 80FCD54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080FCDE0
+ ldr r0, _080FCE90 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FCD6A:
+ ldr r0, _080FCE94 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r7
+ ldr r0, _080FCE98 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FCE9C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r5, r1, r0
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r6, 0x1
+ adds r5, r4, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, 0x1
+ cmp r6, r0
+ bge _080FCDCA
+_080FCDA2:
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080FCDA2
+_080FCDCA:
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080FCD6A
+_080FCDE0:
+ movs r6, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080FCE80
+ ldr r3, _080FCE90 @ =gUnknown_03005DEC
+ mov r9, r3
+ ldr r0, _080FCE98 @ =gUnknown_03005E04
+ mov r8, r0
+_080FCDF2:
+ ldr r0, _080FCE94 @ =gUnknown_03005DFC
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r9
+ ldr r2, [r3]
+ adds r2, r0
+ ldr r0, _080FCE9C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r6
+ lsls r0, 1
+ adds r5, r2, r0
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r7, 0x1
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, 0x1
+ cmp r7, r0
+ bge _080FCE64
+ ldr r4, _080FCE98 @ =gUnknown_03005E04
+_080FCE32:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ ldrb r1, [r4]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _080FCE32
+_080FCE64:
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080FCDF2
+_080FCE80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE8C: .4byte gUnknown_03005DF0
+_080FCE90: .4byte gUnknown_03005DEC
+_080FCE94: .4byte gUnknown_03005DFC
+_080FCE98: .4byte gUnknown_03005E04
+_080FCE9C: .4byte gUnknown_03005DE8
+_080FCEA0: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FCD54
+
+ thumb_func_start sub_80FCEA4
+sub_80FCEA4: @ 80FCEA4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCF24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCF16
+ ldr r0, _080FCF28 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCF2C @ =gUnknown_03005DF8
+_080FCEBC:
+ ldr r0, _080FCF30 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCF34 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCF38 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCF0A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCEE8:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCEFC
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD53C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCEFC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCEE8
+_080FCF0A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCF24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCEBC
+_080FCF16:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCF24: .4byte gUnknown_03005DF0
+_080FCF28: .4byte gUnknown_03005DEC
+_080FCF2C: .4byte gUnknown_03005DF8
+_080FCF30: .4byte gUnknown_03005DFC
+_080FCF34: .4byte gUnknown_03005E04
+_080FCF38: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCEA4
+
+ thumb_func_start sub_80FCF3C
+sub_80FCF3C: @ 80FCF3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080FD068 @ =gUnknown_03005DEC
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ adds r5, r0, 0
+_080FCF54:
+ movs r7, 0
+_080FCF56:
+ ldrh r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ bne _080FCF66
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FCF66:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FCF56
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FCF54
+ movs r7, 0
+ ldr r1, _080FD068 @ =gUnknown_03005DEC
+ mov r10, r1
+ mov r3, sp
+ movs r2, 0x80
+ lsls r2, 8
+ mov r9, r2
+_080FCF8A:
+ lsls r0, r7, 1
+ mov r2, r10
+ ldr r1, [r2]
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ strh r1, [r3]
+ mov r1, r9
+ strh r1, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ adds r5, r0, 0
+_080FCFA0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r0, r2
+ cmp r0, 0
+ bne _080FCFC0
+ adds r2, r4, 0
+ adds r2, 0x80
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FCFC0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x80
+ cmp r6, 0x3E
+ bls _080FCFA0
+ mov r0, r9
+ strh r0, [r4]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0, r5
+ ldrh r0, [r4]
+ strh r0, [r3]
+ mov r2, r9
+ strh r2, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FCFE8:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ adds r5, r4, 0
+ adds r5, 0x80
+ cmp r0, 0
+ bne _080FD008
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FD008:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r5, 0
+ cmp r6, 0x3E
+ bls _080FCFE8
+ mov r2, r9
+ strh r2, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3F
+ bls _080FCF8A
+ ldr r0, _080FD068 @ =gUnknown_03005DEC
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FD02E:
+ movs r7, 0
+ adds r5, r6, 0x1
+_080FD032:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD044
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FD044:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FD032
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FD02E
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD068: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FCF3C
+
+ thumb_func_start sub_80FD06C
+sub_80FD06C: @ 80FD06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FD0FC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD0EE
+ ldr r0, _080FD100 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FD082:
+ ldr r0, _080FD104 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FD108 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD10C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ adds r4, 0x2
+ ldr r0, _080FD110 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD0E2
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FD0BA:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FD0D0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+_080FD0D0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FD110 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD0BA
+_080FD0E2:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD0FC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD082
+_080FD0EE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD0FC: .4byte gUnknown_03005DF0
+_080FD100: .4byte gUnknown_03005DEC
+_080FD104: .4byte gUnknown_03005DFC
+_080FD108: .4byte gUnknown_03005E04
+_080FD10C: .4byte gUnknown_03005DE8
+_080FD110: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FD06C
+
+ thumb_func_start sub_80FD114
+sub_80FD114: @ 80FD114
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FD1B0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD1A2
+ ldr r0, _080FD1B4 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r7, _080FD1B8 @ =gUnknown_03005E04
+_080FD12C:
+ ldr r0, _080FD1BC @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD1C0 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD196
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FD166:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080FD180
+ mov r0, sp
+ adds r1, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r2, [sp, 0x4]
+_080FD180:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD166
+_080FD196:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD1B0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD12C
+_080FD1A2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD1B0: .4byte gUnknown_03005DF8
+_080FD1B4: .4byte gUnknown_03005DEC
+_080FD1B8: .4byte gUnknown_03005E04
+_080FD1BC: .4byte gUnknown_03005DFC
+_080FD1C0: .4byte gUnknown_03005DE8
+_080FD1C4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FD114
+
+ thumb_func_start sub_80FD1C8
+sub_80FD1C8: @ 80FD1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r2, sp
+ ldr r3, _080FD234 @ =gUnknown_083E7A50
+ lsls r1, r0, 1
+ add r1, r10
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ mov r5, sp
+ adds r0, r3, 0x2
+ adds r1, r0
+ ldrb r4, [r1]
+ lsls r2, r4, 24
+ lsrs r1, r2, 27
+ movs r0, 0x7
+ ands r1, r0
+ strh r1, [r5, 0x2]
+ lsrs r2, 25
+ mov r9, r2
+ movs r0, 0x3
+ ands r2, r0
+ mov r9, r2
+ movs r5, 0x1
+ ands r5, r4
+ movs r4, 0x1
+ mov r8, r4
+ cmp r8, r1
+ bcs _080FD27A
+ mov r3, sp
+_080FD21A:
+ cmp r5, 0
+ bne _080FD238
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ mov r4, r8
+ subs r0, r4
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ add r0, r8
+ b _080FD24A
+ .align 2, 0
+_080FD234: .4byte gUnknown_083E7A50
+_080FD238:
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+_080FD24A:
+ strb r0, [r1, 0x1]
+ add r2, sp
+ ldrb r0, [r2]
+ cmp r0, 0x3F
+ bhi _080FD25A
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3F
+ bls _080FD262
+_080FD25A:
+ mov r0, r8
+ subs r0, 0x1
+ strh r0, [r3, 0x2]
+ b _080FD27A
+_080FD262:
+ ldrh r0, [r3, 0x2]
+ mov r1, r8
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r3, 0x2]
+ cmp r8, r0
+ bcc _080FD21A
+_080FD27A:
+ movs r2, 0
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcc _080FD288
+ b _080FD38A
+_080FD288:
+ movs r3, 0x1F
+_080FD28A:
+ ldr r1, _080FD2E8 @ =gUnknown_03005DEC
+ mov r4, r8
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r6, r2, r0
+ ldrb r0, [r6, 0x1]
+ lsls r0, 7
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD376
+ movs r7, 0x1F
+ ands r7, r1
+ lsls r0, r1, 16
+ lsrs r5, r0, 21
+ ands r5, r3
+ lsrs r4, r0, 26
+ ands r4, r3
+ mov r0, r9
+ cmp r0, 0
+ blt _080FD36C
+ cmp r0, 0x1
+ ble _080FD2EC
+ cmp r0, 0x3
+ bgt _080FD36C
+ ldrh r0, [r6, 0x2]
+ adds r1, r7, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r1, r5, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r7, 0x1F
+ bls _080FD360
+ movs r7, 0x1F
+ b _080FD360
+ .align 2, 0
+_080FD2E8: .4byte gUnknown_03005DEC
+_080FD2EC:
+ mov r1, r10
+ lsls r0, r1, 1
+ add r0, r10
+ ldr r1, _080FD320 @ =gUnknown_083E7A50
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r0, 3
+ movs r1, 0x7
+ ands r0, r1
+ movs r1, 0x3
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _080FD33C
+ cmp r0, 0x1
+ bgt _080FD324
+ cmp r0, 0
+ beq _080FD32A
+ b _080FD36C
+ .align 2, 0
+_080FD320: .4byte gUnknown_083E7A50
+_080FD324:
+ cmp r0, 0x2
+ beq _080FD34E
+ b _080FD36C
+_080FD32A:
+ ldrh r0, [r6, 0x2]
+ cmp r7, r0
+ bcc _080FD338
+ subs r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FD36C
+_080FD338:
+ movs r7, 0
+ b _080FD36C
+_080FD33C:
+ ldrh r0, [r6, 0x2]
+ cmp r5, r0
+ bcc _080FD34A
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080FD36C
+_080FD34A:
+ movs r5, 0
+ b _080FD36C
+_080FD34E:
+ ldrh r0, [r6, 0x2]
+ cmp r4, r0
+ bcc _080FD35C
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080FD36C
+_080FD35C:
+ movs r4, 0
+ b _080FD36C
+_080FD360:
+ cmp r5, 0x1F
+ bls _080FD366
+ movs r5, 0x1F
+_080FD366:
+ cmp r4, 0x1F
+ bls _080FD36C
+ movs r4, 0x1F
+_080FD36C:
+ lsls r0, r4, 10
+ lsls r1, r5, 5
+ orrs r0, r1
+ orrs r7, r0
+ strh r7, [r2]
+_080FD376:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcs _080FD38A
+ b _080FD28A
+_080FD38A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD1C8
+
+ thumb_func_start sub_80FD39C
+sub_80FD39C: @ 80FD39C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 10
+ lsls r2, r1, 5
+ orrs r0, r2
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD39C
+
+ thumb_func_start sub_80FD3D0
+sub_80FD3D0: @ 80FD3D0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD400
+ cmp r3, 0x10
+ bhi _080FD400
+ cmp r0, 0x10
+ bhi _080FD400
+ adds r0, r4, 0
+ bl sub_80FD40C
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD402
+_080FD400:
+ ldr r0, _080FD408 @ =0x00007fff
+_080FD402:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD408: .4byte 0x00007fff
+ thumb_func_end sub_80FD3D0
+
+ thumb_func_start sub_80FD40C
+sub_80FD40C: @ 80FD40C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FD4C4
+ lsls r0, 2
+ ldr r1, _080FD450 @ =_080FD454
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FD450: .4byte _080FD454
+ .align 2, 0
+_080FD454:
+ .4byte _080FD46C
+ .4byte _080FD47C
+ .4byte _080FD48C
+ .4byte _080FD49A
+ .4byte _080FD4A8
+ .4byte _080FD4B6
+_080FD46C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r6, 0
+ movs r1, 0
+ mov r8, r1
+ b _080FD4C4
+_080FD47C:
+ movs r7, 0
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r6, r8
+ b _080FD4C4
+_080FD48C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r7
+ b _080FD4C4
+_080FD49A:
+ movs r7, 0
+ movs r6, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD4C2
+_080FD4A8:
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r6
+ b _080FD4C4
+_080FD4B6:
+ movs r7, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+_080FD4C2:
+ mov r8, r0
+_080FD4C4:
+ lsls r0, r7, 10
+ lsls r1, r6, 5
+ orrs r0, r1
+ mov r1, r8
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD40C
+
+ thumb_func_start sub_80FD4DC
+sub_80FD4DC: @ 80FD4DC
+ push {lr}
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD500
+ cmp r3, 0x10
+ bhi _080FD500
+ cmp r0, 0x10
+ bhi _080FD500
+ movs r0, 0
+ b _080FD502
+_080FD500:
+ ldr r0, _080FD508 @ =0x00007fff
+_080FD502:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD508: .4byte 0x00007fff
+ thumb_func_end sub_80FD4DC
+
+ thumb_func_start sub_80FD50C
+sub_80FD50C: @ 80FD50C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r3, [r4]
+ cmp r3, 0
+ beq _080FD534
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD526
+ adds r0, r2, 0
+ b _080FD536
+_080FD526:
+ ldrh r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD534
+ ldrh r0, [r4]
+ b _080FD536
+_080FD534:
+ movs r0, 0
+_080FD536:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD50C
+
+ thumb_func_start sub_80FD53C
+sub_80FD53C: @ 80FD53C
+ push {r4,lr}
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ movs r3, 0x1F
+ ands r3, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ lsrs r1, 26
+ subs r3, r0, r3
+ adds r4, r0, 0
+ bics r4, r2
+ adds r2, r4, 0
+ bics r0, r1
+ lsls r0, 10
+ lsls r2, 5
+ orrs r0, r2
+ orrs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD53C
+
+ thumb_func_start sub_80FD568
+sub_80FD568: @ 80FD568
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r1, 0
+ ldrh r4, [r0]
+ ldrh r5, [r7]
+ lsls r6, r4, 16
+ lsls r0, r5, 16
+ mov r12, r0
+ cmp r4, r5
+ beq _080FD5DA
+ mov r2, sp
+ movs r3, 0x1F
+ movs r1, 0x1F
+ adds r0, r1, 0
+ ands r0, r4
+ strh r0, [r2]
+ lsrs r0, r6, 21
+ ands r0, r3
+ strh r0, [r2, 0x2]
+ lsrs r0, r6, 26
+ ands r0, r3
+ strh r0, [r2, 0x4]
+ mov r0, sp
+ ands r1, r5
+ strh r1, [r0, 0x6]
+ mov r1, sp
+ mov r2, r12
+ lsrs r0, r2, 21
+ ands r0, r3
+ strh r0, [r1, 0x8]
+ lsrs r0, r2, 26
+ ands r0, r3
+ strh r0, [r1, 0xA]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x19
+ bhi _080FD5DA
+_080FD5C2:
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x19
+ bls _080FD5DE
+_080FD5DA:
+ ldrh r0, [r7]
+ b _080FD684
+_080FD5DE:
+ movs r4, 0
+ add r6, sp, 0xC
+ mov r7, sp
+ adds r7, 0x6
+ adds r5, r6, 0
+_080FD5E8:
+ lsls r2, r4, 1
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r7, r2
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ cmp r3, r0
+ bls _080FD5FE
+ adds r1, r5, r2
+ subs r0, r3, r0
+ b _080FD602
+_080FD5FE:
+ adds r1, r5, r2
+ subs r0, r3
+_080FD602:
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080FD5E8
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r1]
+ cmp r3, r0
+ bcc _080FD628
+ ldrh r2, [r1, 0x4]
+ cmp r3, r2
+ bcc _080FD622
+ adds r2, r3, 0
+ b _080FD63C
+_080FD622:
+ cmp r0, r2
+ bcs _080FD62E
+ b _080FD636
+_080FD628:
+ ldrh r2, [r1, 0x4]
+ cmp r0, r2
+ bcc _080FD632
+_080FD62E:
+ ldrh r2, [r1, 0x2]
+ b _080FD63C
+_080FD632:
+ cmp r2, r3
+ bcc _080FD63A
+_080FD636:
+ ldrh r2, [r1, 0x4]
+ b _080FD63C
+_080FD63A:
+ ldrh r2, [r6]
+_080FD63C:
+ mov r0, sp
+ ldrh r1, [r0, 0x6]
+ lsrs r0, r2, 1
+ movs r6, 0x1F
+ subs r6, r0
+ adds r0, r1, 0
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ lsls r4, 5
+ orrs r0, r4
+ orrs r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+_080FD684:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD568
+
+ thumb_func_start sub_80FD68C
+sub_80FD68C: @ 80FD68C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD6B4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD6B4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD79C
+_080FD6B4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD736
+ cmp r1, r6
+ bne _080FD736
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD79C
+_080FD736:
+ cmp r7, r6
+ bls _080FD73E
+ subs r0, r7, r6
+ b _080FD740
+_080FD73E:
+ subs r0, r6, r7
+_080FD740:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD74C
+ subs r0, r1, r6
+ b _080FD74E
+_080FD74C:
+ subs r0, r6, r1
+_080FD74E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD758
+ adds r0, r2, 0
+_080FD758:
+ lsrs r0, 1
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD79C:
+ 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_80FD68C
+
+ thumb_func_start sub_80FD7AC
+sub_80FD7AC: @ 80FD7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD7D4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD7D4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD8BA
+_080FD7D4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD856
+ cmp r1, r6
+ bne _080FD856
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD8BA
+_080FD856:
+ cmp r7, r6
+ bls _080FD85E
+ subs r0, r7, r6
+ b _080FD860
+_080FD85E:
+ subs r0, r6, r7
+_080FD860:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD86C
+ subs r0, r1, r6
+ b _080FD86E
+_080FD86C:
+ subs r0, r6, r1
+_080FD86E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD878
+ adds r0, r2, 0
+_080FD878:
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD8BA:
+ 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_80FD7AC
+
+ thumb_func_start sub_80FD8CC
+sub_80FD8CC: @ 80FD8CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldrb r1, [r0, 0x1D]
+ lsrs r5, r1, 3
+ ldrb r1, [r0, 0x1E]
+ lsrs r1, 3
+ str r1, [sp, 0x8]
+ ldr r1, [r0, 0x4]
+ str r1, [sp]
+ ldr r2, [r0, 0x10]
+ str r2, [sp, 0x4]
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0x2
+ bne _080FD97C
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcc _080FD8FA
+ b _080FDA08
+_080FD8FA:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD96E
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD90E:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 6
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD91E:
+ lsls r0, r4, 3
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r0, [r2, 0x2]
+ lsls r0, 8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x6]
+ lsls r0, 8
+ ldrh r1, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r2, 0xE]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD91E
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD90E
+_080FD96E:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD8FA
+ b _080FDA08
+_080FD97C:
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcs _080FDA08
+_080FD984:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD9FC
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD998:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 5
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD9A8:
+ lsls r0, r4, 2
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r1, [r2, 0x2]
+ lsls r1, 4
+ ldrh r0, [r2]
+ orrs r1, r0
+ ldrh r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0x6]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3]
+ ldrh r1, [r2, 0xA]
+ lsls r1, 4
+ ldrh r0, [r2, 0x8]
+ orrs r1, r0
+ ldrh r0, [r2, 0xC]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0xE]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD9A8
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD998
+_080FD9FC:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD984
+_080FDA08:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD8CC
+
+ thumb_func_start sub_80FDA18
+sub_80FDA18: @ 80FDA18
+ push {lr}
+ ldr r2, _080FDA68 @ =gUnknown_03005E0C
+ ldrb r1, [r0, 0x18]
+ lsls r1, 4
+ strh r1, [r2]
+ ldr r3, _080FDA6C @ =gUnknown_03005E08
+ ldrh r2, [r2]
+ lsls r2, 1
+ ldr r1, [r0, 0x8]
+ adds r1, r2
+ str r1, [r3]
+ ldr r2, _080FDA70 @ =gUnknown_03005DEC
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FDA74 @ =gUnknown_03005DE8
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FDA78 @ =gUnknown_03005DFC
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FDA7C @ =gUnknown_03005DF8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FDA80 @ =gUnknown_03005DF0
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FDA84 @ =gUnknown_03005E04
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FDA88 @ =gUnknown_03005DF4
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrh r0, [r0, 0x14]
+ cmp r0, 0x5
+ bhi _080FDADE
+ lsls r0, 2
+ ldr r1, _080FDA8C @ =_080FDA90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDA68: .4byte gUnknown_03005E0C
+_080FDA6C: .4byte gUnknown_03005E08
+_080FDA70: .4byte gUnknown_03005DEC
+_080FDA74: .4byte gUnknown_03005DE8
+_080FDA78: .4byte gUnknown_03005DFC
+_080FDA7C: .4byte gUnknown_03005DF8
+_080FDA80: .4byte gUnknown_03005DF0
+_080FDA84: .4byte gUnknown_03005E04
+_080FDA88: .4byte gUnknown_03005DF4
+_080FDA8C: .4byte _080FDA90
+ .align 2, 0
+_080FDA90:
+ .4byte _080FDAA8
+ .4byte _080FDAB0
+ .4byte _080FDAB8
+ .4byte _080FDAC2
+ .4byte _080FDACC
+ .4byte _080FDAD6
+_080FDAA8:
+ movs r0, 0
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB0:
+ movs r0, 0x1
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB8:
+ bl sub_80FDAE4
+ bl sub_80FDF88
+ b _080FDADE
+_080FDAC2:
+ bl sub_80FDBE4
+ bl sub_80FDED8
+ b _080FDADE
+_080FDACC:
+ bl sub_80FDBA8
+ bl sub_80FDE28
+ b _080FDADE
+_080FDAD6:
+ bl sub_80FDB8C
+ bl sub_80FDD70
+_080FDADE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDA18
+
+ thumb_func_start sub_80FDAE4
+sub_80FDAE4: @ 80FDAE4
+ ldr r2, _080FDB4C @ =gUnknown_03005E08
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldr r2, _080FDB50 @ =0x000018c6
+ adds r1, r2, 0
+ strh r1, [r0, 0x2]
+ ldr r2, _080FDB54 @ =0x000077bd
+ adds r1, r2, 0
+ strh r1, [r0, 0x4]
+ ldr r2, _080FDB58 @ =0x00002d6b
+ adds r1, r2, 0
+ strh r1, [r0, 0x6]
+ ldr r2, _080FDB5C @ =0x000018dd
+ adds r1, r2, 0
+ strh r1, [r0, 0x8]
+ ldr r2, _080FDB60 @ =0x00001ba6
+ adds r1, r2, 0
+ strh r1, [r0, 0xA]
+ ldr r2, _080FDB64 @ =0x000074c6
+ adds r1, r2, 0
+ strh r1, [r0, 0xC]
+ ldr r2, _080FDB68 @ =0x00001bbd
+ adds r1, r2, 0
+ strh r1, [r0, 0xE]
+ ldr r2, _080FDB6C @ =0x000074dd
+ adds r1, r2, 0
+ strh r1, [r0, 0x10]
+ ldr r2, _080FDB70 @ =0x000077a6
+ adds r1, r2, 0
+ strh r1, [r0, 0x12]
+ ldr r2, _080FDB74 @ =0x0000197d
+ adds r1, r2, 0
+ strh r1, [r0, 0x14]
+ ldr r2, _080FDB78 @ =0x00001bab
+ adds r1, r2, 0
+ strh r1, [r0, 0x16]
+ ldr r2, _080FDB7C @ =0x00007566
+ adds r1, r2, 0
+ strh r1, [r0, 0x18]
+ ldr r2, _080FDB80 @ =0x00002cdd
+ adds r1, r2, 0
+ strh r1, [r0, 0x1A]
+ ldr r2, _080FDB84 @ =0x00002fa6
+ adds r1, r2, 0
+ strh r1, [r0, 0x1C]
+ ldr r2, _080FDB88 @ =0x000074cb
+ adds r1, r2, 0
+ strh r1, [r0, 0x1E]
+ bx lr
+ .align 2, 0
+_080FDB4C: .4byte gUnknown_03005E08
+_080FDB50: .4byte 0x000018c6
+_080FDB54: .4byte 0x000077bd
+_080FDB58: .4byte 0x00002d6b
+_080FDB5C: .4byte 0x000018dd
+_080FDB60: .4byte 0x00001ba6
+_080FDB64: .4byte 0x000074c6
+_080FDB68: .4byte 0x00001bbd
+_080FDB6C: .4byte 0x000074dd
+_080FDB70: .4byte 0x000077a6
+_080FDB74: .4byte 0x0000197d
+_080FDB78: .4byte 0x00001bab
+_080FDB7C: .4byte 0x00007566
+_080FDB80: .4byte 0x00002cdd
+_080FDB84: .4byte 0x00002fa6
+_080FDB88: .4byte 0x000074cb
+ thumb_func_end sub_80FDAE4
+
+ thumb_func_start sub_80FDB8C
+sub_80FDB8C: @ 80FDB8C
+ ldr r2, _080FDBA0 @ =gUnknown_03005E08
+ ldr r0, [r2]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, [r2]
+ strh r1, [r2, 0x2]
+ ldr r1, _080FDBA4 @ =0x00007fff
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080FDBA0: .4byte gUnknown_03005E08
+_080FDBA4: .4byte 0x00007fff
+ thumb_func_end sub_80FDB8C
+
+ thumb_func_start sub_80FDBA8
+sub_80FDBA8: @ 80FDBA8
+ push {r4,r5,lr}
+ ldr r1, _080FDBE0 @ =gUnknown_03005E08
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, [r1]
+ strh r2, [r0, 0x2]
+ movs r4, 0
+ adds r5, r1, 0
+_080FDBBA:
+ ldr r0, [r5]
+ lsls r2, r4, 1
+ adds r2, r0
+ adds r0, r4, 0x2
+ lsls r3, r0, 1
+ lsls r1, r0, 11
+ lsls r0, 6
+ orrs r1, r0
+ orrs r1, r3
+ strh r1, [r2, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080FDBBA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDBE0: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBA8
+
+ thumb_func_start sub_80FDBE4
+sub_80FDBE4: @ 80FDBE4
+ push {r4,lr}
+ ldr r2, _080FDC14 @ =gUnknown_03005E08
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0
+ adds r4, r2, 0
+_080FDBF2:
+ ldr r0, [r4]
+ lsls r2, r3, 1
+ adds r2, r0
+ lsls r0, r3, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r3
+ strh r0, [r2, 0x2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _080FDBF2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDC14: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBE4
+
+ thumb_func_start sub_80FDC18
+sub_80FDC18: @ 80FDC18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ movs r1, 0xDF
+ mov r9, r1
+ cmp r0, 0
+ bne _080FDC30
+ movs r2, 0xFF
+ mov r9, r2
+_080FDC30:
+ movs r6, 0
+ ldr r3, _080FDCB4 @ =gUnknown_03005E08
+ mov r12, r3
+ mov r0, r9
+ lsls r4, r0, 1
+ ldr r5, _080FDCB8 @ =gUnknown_03005DF0
+ cmp r6, r9
+ bcs _080FDC54
+ movs r2, 0
+_080FDC42:
+ ldr r0, [r3]
+ lsls r1, r6, 1
+ adds r1, r0
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r9
+ bcc _080FDC42
+_080FDC54:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldr r2, _080FDCBC @ =0x00003def
+ adds r1, r2, 0
+ strh r1, [r0]
+ movs r3, 0
+ ldrb r5, [r5]
+ cmp r3, r5
+ bcs _080FDD58
+_080FDC68:
+ ldr r2, _080FDCC0 @ =gUnknown_03005DEC
+ ldr r0, _080FDCC4 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r3
+ ldr r0, _080FDCC8 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FDCCC @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDCD0 @ =gUnknown_03005DF8
+ adds r2, r0, 0
+ adds r3, 0x1
+ mov r10, r3
+ ldrb r3, [r2]
+ cmp r6, r3
+ bcs _080FDD4A
+ ldr r0, _080FDCD4 @ =gUnknown_03005E0C
+ mov r8, r0
+_080FDC98:
+ ldrh r0, [r4]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDCD8
+ mov r1, r8
+ ldrh r0, [r1]
+ strh r0, [r4]
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ b _080FDD3E
+ .align 2, 0
+_080FDCB4: .4byte gUnknown_03005E08
+_080FDCB8: .4byte gUnknown_03005DF0
+_080FDCBC: .4byte 0x00003def
+_080FDCC0: .4byte gUnknown_03005DEC
+_080FDCC4: .4byte gUnknown_03005DFC
+_080FDCC8: .4byte gUnknown_03005E04
+_080FDCCC: .4byte gUnknown_03005DE8
+_080FDCD0: .4byte gUnknown_03005DF8
+_080FDCD4: .4byte gUnknown_03005E0C
+_080FDCD8:
+ adds r0, r4, 0
+ bl sub_80FE038
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0x1
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ cmp r3, r9
+ bcs _080FDD34
+ ldr r0, _080FDD04 @ =gUnknown_03005E08
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ mov r12, r0
+ cmp r1, 0
+ bne _080FDD08
+ strh r5, [r2, 0x2]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080FDD32
+ .align 2, 0
+_080FDD04: .4byte gUnknown_03005E08
+_080FDD08:
+ mov r2, r12
+ ldr r1, [r2]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080FDD2C
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r9
+ bcs _080FDD34
+ lsls r0, r3, 1
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080FDD08
+ strh r5, [r1]
+_080FDD2C:
+ mov r1, r8
+ ldrh r0, [r1]
+ adds r0, r3
+_080FDD32:
+ strh r0, [r4]
+_080FDD34:
+ ldr r2, _080FDD68 @ =gUnknown_03005DF8
+ cmp r3, r9
+ bne _080FDD3E
+ mov r3, r9
+ strh r3, [r4]
+_080FDD3E:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ adds r4, r7, 0
+ ldrb r0, [r2]
+ cmp r6, r0
+ bcc _080FDC98
+_080FDD4A:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ ldr r0, _080FDD6C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _080FDC68
+_080FDD58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDD68: .4byte gUnknown_03005DF8
+_080FDD6C: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDC18
+
+ thumb_func_start sub_80FDD70
+sub_80FDD70: @ 80FDD70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r2, 0
+ ldr r0, _080FDDC4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDE14
+ ldr r0, _080FDDC8 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDD84:
+ ldr r0, _080FDDCC @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDDD0 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDDD4 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDDD8 @ =gUnknown_03005DF8
+ adds r3, r0, 0
+ adds r7, r2, 0x1
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcs _080FDE08
+ ldr r5, _080FDDDC @ =gUnknown_03005E0C
+_080FDDB0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDDE0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ b _080FDDFA
+ .align 2, 0
+_080FDDC4: .4byte gUnknown_03005DF0
+_080FDDC8: .4byte gUnknown_03005DEC
+_080FDDCC: .4byte gUnknown_03005DFC
+_080FDDD0: .4byte gUnknown_03005E04
+_080FDDD4: .4byte gUnknown_03005DE8
+_080FDDD8: .4byte gUnknown_03005DF8
+_080FDDDC: .4byte gUnknown_03005E0C
+_080FDDE0:
+ adds r0, r4, 0
+ bl sub_80FD4DC
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FDDF2
+ ldrh r0, [r5]
+ adds r0, 0x1
+ b _080FDDF6
+_080FDDF2:
+ ldrh r0, [r5]
+ adds r0, 0x2
+_080FDDF6:
+ strh r0, [r4]
+ ldr r3, _080FDE20 @ =gUnknown_03005DF8
+_080FDDFA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcc _080FDDB0
+_080FDE08:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDE24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDD84
+_080FDE14:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDE20: .4byte gUnknown_03005DF8
+_080FDE24: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDD70
+
+ thumb_func_start sub_80FDE28
+sub_80FDE28: @ 80FDE28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDE7C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDEC4
+ ldr r0, _080FDE80 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDE3E:
+ ldr r0, _080FDE84 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDE88 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDE8C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDE90 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDEB8
+ ldr r6, _080FDE94 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDE6E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDE98
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDEA8
+ .align 2, 0
+_080FDE7C: .4byte gUnknown_03005DF0
+_080FDE80: .4byte gUnknown_03005DEC
+_080FDE84: .4byte gUnknown_03005DFC
+_080FDE88: .4byte gUnknown_03005E04
+_080FDE8C: .4byte gUnknown_03005DE8
+_080FDE90: .4byte gUnknown_03005DF8
+_080FDE94: .4byte gUnknown_03005E0C
+_080FDE98:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE17C
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDEA8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDED0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDE6E
+_080FDEB8:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDED4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDE3E
+_080FDEC4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDED0: .4byte gUnknown_03005DF8
+_080FDED4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDE28
+
+ thumb_func_start sub_80FDED8
+sub_80FDED8: @ 80FDED8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDF2C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDF74
+ ldr r0, _080FDF30 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDEEE:
+ ldr r0, _080FDF34 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDF38 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDF3C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDF40 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDF68
+ ldr r6, _080FDF44 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDF1E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDF48
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDF58
+ .align 2, 0
+_080FDF2C: .4byte gUnknown_03005DF0
+_080FDF30: .4byte gUnknown_03005DEC
+_080FDF34: .4byte gUnknown_03005DFC
+_080FDF38: .4byte gUnknown_03005E04
+_080FDF3C: .4byte gUnknown_03005DE8
+_080FDF40: .4byte gUnknown_03005DF8
+_080FDF44: .4byte gUnknown_03005E0C
+_080FDF48:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE1B0
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDF58:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDF80 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDF1E
+_080FDF68:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDF84 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDEEE
+_080FDF74:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDF80: .4byte gUnknown_03005DF8
+_080FDF84: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDED8
+
+ thumb_func_start sub_80FDF88
+sub_80FDF88: @ 80FDF88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDFDC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FE024
+ ldr r0, _080FDFE0 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDF9E:
+ ldr r0, _080FDFE4 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDFE8 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDFEC @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDFF0 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FE018
+ ldr r6, _080FDFF4 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDFCE:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDFF8
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FE008
+ .align 2, 0
+_080FDFDC: .4byte gUnknown_03005DF0
+_080FDFE0: .4byte gUnknown_03005DEC
+_080FDFE4: .4byte gUnknown_03005DFC
+_080FDFE8: .4byte gUnknown_03005E04
+_080FDFEC: .4byte gUnknown_03005DE8
+_080FDFF0: .4byte gUnknown_03005DF8
+_080FDFF4: .4byte gUnknown_03005E0C
+_080FDFF8:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE0AC
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FE008:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FE030 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDFCE
+_080FE018:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FE034 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDF9E
+_080FE024:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE030: .4byte gUnknown_03005DF8
+_080FE034: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDF88
+
+ thumb_func_start sub_80FE038
+sub_80FE038: @ 80FE038
+ push {r4,lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r4, 0x1F
+ ands r4, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r1
+ lsrs r2, r0, 26
+ ands r2, r1
+ movs r1, 0x3
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE05C
+ movs r0, 0x1C
+ ands r0, r4
+ adds r4, r0, 0x4
+_080FE05C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE06A
+ movs r0, 0x1C
+ ands r0, r3
+ adds r3, r0, 0x4
+_080FE06A:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE078
+ movs r0, 0x1C
+ ands r0, r2
+ adds r2, r0, 0x4
+_080FE078:
+ cmp r4, 0x5
+ bhi _080FE07E
+ movs r4, 0x6
+_080FE07E:
+ cmp r4, 0x1E
+ bls _080FE084
+ movs r4, 0x1E
+_080FE084:
+ cmp r3, 0x5
+ bhi _080FE08A
+ movs r3, 0x6
+_080FE08A:
+ cmp r3, 0x1E
+ bls _080FE090
+ movs r3, 0x1E
+_080FE090:
+ cmp r2, 0x5
+ bhi _080FE096
+ movs r2, 0x6
+_080FE096:
+ cmp r2, 0x1E
+ bls _080FE09C
+ movs r2, 0x1E
+_080FE09C:
+ lsls r0, r2, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE038
+
+ thumb_func_start sub_80FE0AC
+sub_80FE0AC: @ 80FE0AC
+ push {lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r3, 0x1F
+ ands r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ ands r2, r1
+ lsrs r0, 26
+ ands r0, r1
+ cmp r3, 0xB
+ bhi _080FE0D0
+ cmp r2, 0xA
+ bhi _080FE0D0
+ cmp r0, 0xA
+ bhi _080FE0D0
+ movs r0, 0x1
+ b _080FE176
+_080FE0D0:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0DC
+ cmp r0, 0x13
+ bhi _080FE100
+_080FE0DC:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0EA
+ cmp r0, 0xE
+ bhi _080FE100
+ b _080FE138
+_080FE0EA:
+ cmp r0, 0x13
+ bls _080FE0F4
+ cmp r2, 0xE
+ bhi _080FE100
+ b _080FE114
+_080FE0F4:
+ cmp r2, 0x13
+ bls _080FE104
+ cmp r0, 0x13
+ bls _080FE104
+ cmp r3, 0xE
+ bls _080FE15C
+_080FE100:
+ movs r0, 0x2
+ b _080FE176
+_080FE104:
+ cmp r3, 0x13
+ bls _080FE128
+ cmp r2, 0xB
+ bls _080FE11C
+ cmp r0, 0xB
+ bls _080FE118
+ cmp r2, r0
+ bcs _080FE138
+_080FE114:
+ movs r0, 0x8
+ b _080FE176
+_080FE118:
+ movs r0, 0xA
+ b _080FE176
+_080FE11C:
+ cmp r0, 0xB
+ bls _080FE124
+ movs r0, 0xD
+ b _080FE176
+_080FE124:
+ movs r0, 0x4
+ b _080FE176
+_080FE128:
+ cmp r2, 0x13
+ bls _080FE14C
+ cmp r3, 0xB
+ bls _080FE140
+ cmp r0, 0xB
+ bls _080FE13C
+ cmp r3, r0
+ bcc _080FE15C
+_080FE138:
+ movs r0, 0x7
+ b _080FE176
+_080FE13C:
+ movs r0, 0xB
+ b _080FE176
+_080FE140:
+ cmp r0, 0xB
+ bls _080FE148
+ movs r0, 0xE
+ b _080FE176
+_080FE148:
+ movs r0, 0x5
+ b _080FE176
+_080FE14C:
+ cmp r0, 0x13
+ bls _080FE174
+ cmp r3, 0xB
+ bls _080FE160
+ cmp r2, 0xB
+ bls _080FE168
+ cmp r3, r2
+ bcs _080FE114
+_080FE15C:
+ movs r0, 0x9
+ b _080FE176
+_080FE160:
+ cmp r2, 0xB
+ bls _080FE168
+ movs r0, 0xC
+ b _080FE176
+_080FE168:
+ cmp r0, 0xB
+ bls _080FE170
+ movs r0, 0xF
+ b _080FE176
+_080FE170:
+ movs r0, 0x6
+ b _080FE176
+_080FE174:
+ movs r0, 0x3
+_080FE176:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE0AC
+
+ thumb_func_start sub_80FE17C
+sub_80FE17C: @ 80FE17C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x1E
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE1A8
+ lsrs r0, 17
+ b _080FE1AA
+_080FE1A8:
+ movs r0, 0x1
+_080FE1AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE17C
+
+ thumb_func_start sub_80FE1B0
+sub_80FE1B0: @ 80FE1B0
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE1B0
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/decoration.s b/asm/decoration.s
new file mode 100644
index 000000000..6259f16e6
--- /dev/null
+++ b/asm/decoration.s
@@ -0,0 +1,7086 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FE1DC
+sub_80FE1DC: @ 80FE1DC
+ push {lr}
+ sub sp, 0x8
+ bl sub_80FE2B4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _080FE218 @ =gUnknown_083EC604
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ ldr r0, _080FE21C @ =gUnknown_020388D4
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE218: .4byte gUnknown_083EC604
+_080FE21C: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE1DC
+
+ thumb_func_start sub_80FE220
+sub_80FE220: @ 80FE220
+ push {lr}
+ ldr r1, _080FE238 @ =gUnknown_020388D4
+ movs r0, 0
+ strb r0, [r1]
+ bl ScriptContext2_Enable
+ bl sub_80FE1DC
+ bl sub_80FE394
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE238: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE220
+
+ thumb_func_start sub_80FE23C
+sub_80FE23C: @ 80FE23C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80FE220
+ ldr r1, _080FE25C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE260 @ =sub_80FE2EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE25C: .4byte gTasks
+_080FE260: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE23C
+
+ thumb_func_start sub_80FE264
+sub_80FE264: @ 80FE264
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE284 @ =0x0201f000
+ ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A
+ str r0, [r1]
+ adds r0, 0x10
+ str r0, [r1, 0x4]
+ movs r2, 0
+ movs r0, 0x10
+ strb r0, [r1, 0x8]
+ strb r2, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE284: .4byte 0x0201f000
+_080FE288: .4byte gSaveBlock1 + 0x1A1A
+ thumb_func_end sub_80FE264
+
+ thumb_func_start sub_80FE28C
+sub_80FE28C: @ 80FE28C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE23C
+ ldr r1, _080FE2AC @ =0x0201f000
+ ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688
+ str r0, [r1]
+ adds r0, 0xC
+ str r0, [r1, 0x4]
+ movs r0, 0xC
+ strb r0, [r1, 0x8]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2AC: .4byte 0x0201f000
+_080FE2B0: .4byte gSaveBlock1 + 0x2688
+ thumb_func_end sub_80FE28C
+
+ thumb_func_start sub_80FE2B4
+sub_80FE2B4: @ 80FE2B4
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _080FE2E8 @ =gUnknown_083EC654
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ add r0, sp, 0x4
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE2E8: .4byte gUnknown_083EC654
+ thumb_func_end sub_80FE2B4
+
+ thumb_func_start sub_80FE2EC
+sub_80FE2EC: @ 80FE2EC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r0, _080FE368 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r5, 0x80
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FE38C
+ ldr r4, _080FE36C @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE324
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _080FE370 @ =gUnknown_020388D4
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE324:
+ ldrh r1, [r4, 0x2E]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE342
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _080FE370 @ =gUnknown_020388D4
+ strb r0, [r1]
+ bl sub_80FE394
+_080FE342:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE378
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FE374 @ =gUnknown_083EC604
+ ldr r0, _080FE370 @ =gUnknown_020388D4
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _080FE38C
+ .align 2, 0
+_080FE368: .4byte gPaletteFade
+_080FE36C: .4byte gMain
+_080FE370: .4byte gUnknown_020388D4
+_080FE374: .4byte gUnknown_083EC604
+_080FE378:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE38C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl gpu_pal_decompress_alloc_tag_and_upload
+_080FE38C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE2EC
+
+ thumb_func_start sub_80FE394
+sub_80FE394: @ 80FE394
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _080FE3BC @ =gUnknown_083EC624
+ ldr r0, _080FE3C0 @ =gUnknown_020388D4
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE3BC: .4byte gUnknown_083EC624
+_080FE3C0: .4byte gUnknown_020388D4
+ thumb_func_end sub_80FE394
+
+ thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
+gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080FE404 @ =0x0201f000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _080FE40C
+ ldr r0, _080FE408 @ =gUnknown_0815F399
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080FE412
+ .align 2, 0
+_080FE404: .4byte 0x0201f000
+_080FE408: .4byte gUnknown_0815F399
+_080FE40C:
+ adds r0, r4, 0
+ bl sub_8139E24
+_080FE412:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
+
+ thumb_func_start sub_80FE418
+sub_80FE418: @ 80FE418
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE418
+
+ thumb_func_start sub_80FE428
+sub_80FE428: @ 80FE428
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FE464 @ =gUnknown_020388D4
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ bl sub_80FE394
+ ldr r1, _080FE468 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE46C @ =sub_80FE2EC
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE464: .4byte gUnknown_020388D4
+_080FE468: .4byte gTasks
+_080FE46C: .4byte sub_80FE2EC
+ thumb_func_end sub_80FE428
+
+ thumb_func_start sub_80FE470
+sub_80FE470: @ 80FE470
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ mov r8, r1
+ mov r9, r2
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8072CBC
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r7, _080FE51C @ =gStringVar4
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x5
+ mov r10, r0
+ strb r0, [r7, 0x1]
+ strb r5, [r7, 0x2]
+ adds r7, 0x3
+ ldr r1, _080FE520 @ =gUnknown_083EC5E4
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r0, r4, 0
+ bl sub_8134194
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ movs r2, 0x56
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ ldr r0, _080FE524 @ =gDecorationInventories
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x4]
+ adds r0, r7, 0
+ movs r2, 0x68
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xFC
+ strb r0, [r7]
+ mov r0, r10
+ strb r0, [r7, 0x1]
+ strb r6, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ ldr r0, _080FE51C @ =gStringVar4
+ mov r1, r8
+ mov r2, r9
+ bl MenuPrint
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE51C: .4byte gStringVar4
+_080FE520: .4byte gUnknown_083EC5E4
+_080FE524: .4byte gDecorationInventories
+ thumb_func_end sub_80FE470
+
+ thumb_func_start sub_80FE528
+sub_80FE528: @ 80FE528
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r5, 0
+ ldr r1, _080FE574 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+_080FE548:
+ ldr r0, _080FE578 @ =0x0201f000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FE57C
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080FE57C
+ cmp r5, 0x6
+ beq _080FE57C
+ cmp r5, 0x7
+ beq _080FE57C
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xD
+ bl sub_80FE470
+ b _080FE58E
+ .align 2, 0
+_080FE574: .4byte gTasks
+_080FE578: .4byte 0x0201f000
+_080FE57C:
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+_080FE58E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _080FE548
+ ldr r0, _080FE5A8 @ =gUnknownText_Exit
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5A8: .4byte gUnknownText_Exit
+ thumb_func_end sub_80FE528
+
+ thumb_func_start sub_80FE5AC
+sub_80FE5AC: @ 80FE5AC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE528
+ ldr r0, _080FE5F8 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x9
+ bl InitMenu
+ ldr r1, _080FE5FC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE600 @ =sub_80FE604
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE5F8: .4byte gUnknown_020388F6
+_080FE5FC: .4byte gTasks
+_080FE600: .4byte sub_80FE604
+ thumb_func_end sub_80FE5AC
+
+ thumb_func_start sub_80FE604
+sub_80FE604: @ 80FE604
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _080FE638 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE61C
+ b _080FE720
+_080FE61C:
+ ldr r2, _080FE63C @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE640
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080FE720
+ .align 2, 0
+_080FE638: .4byte gPaletteFade
+_080FE63C: .4byte gMain
+_080FE640:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE656
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080FE720
+_080FE656:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE70C
+ movs r0, 0x5
+ bl PlaySE
+ bl GetMenuCursorPos
+ ldr r4, _080FE6C0 @ =gUnknown_020388F6
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ beq _080FE704
+ ldrb r0, [r4]
+ bl sub_8134194
+ ldr r1, _080FE6C4 @ =gUnknown_020388D5
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE6DC
+ ldrb r0, [r4]
+ bl sub_8134104
+ ldr r2, _080FE6C8 @ =gUnknown_020388D0
+ ldr r1, _080FE6CC @ =gDecorationInventories
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r0, r5, 0
+ bl sub_80FEF50
+ bl sub_80F944C
+ ldr r0, _080FE6D0 @ =gUnknown_020388F7
+ movs r1, 0x8
+ bl sub_80F9480
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FE6D4 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE6D8 @ =sub_80FE868
+ str r1, [r0]
+ b _080FE720
+ .align 2, 0
+_080FE6C0: .4byte gUnknown_020388F6
+_080FE6C4: .4byte gUnknown_020388D5
+_080FE6C8: .4byte gUnknown_020388D0
+_080FE6CC: .4byte gDecorationInventories
+_080FE6D0: .4byte gUnknown_020388F7
+_080FE6D4: .4byte gTasks
+_080FE6D8: .4byte sub_80FE868
+_080FE6DC:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors
+ ldr r2, _080FE700 @ =sub_80FE418
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FE720
+ .align 2, 0
+_080FE6FC: .4byte gSecretBaseText_NoDecors
+_080FE700: .4byte sub_80FE418
+_080FE704:
+ adds r0, r5, 0
+ bl sub_80FE728
+ b _080FE720
+_080FE70C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE720
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80FE728
+_080FE720:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE604
+
+ thumb_func_start sub_80FE728
+sub_80FE728: @ 80FE728
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FE748 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3
+ beq _080FE74C
+ adds r0, r2, 0
+ bl sub_80FE758
+ b _080FE752
+ .align 2, 0
+_080FE748: .4byte gTasks
+_080FE74C:
+ adds r0, r2, 0
+ bl sub_8109DAC
+_080FE752:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE728
+
+ thumb_func_start sub_80FE758
+sub_80FE758: @ 80FE758
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080FE794 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ beq _080FE79C
+ bl sub_80FE1DC
+ bl MenuDisplayMessageBox
+ bl sub_80FE394
+ ldr r0, _080FE798 @ =sub_80FE2EC
+ str r0, [r5]
+ b _080FE7A2
+ .align 2, 0
+_080FE794: .4byte gTasks
+_080FE798: .4byte sub_80FE2EC
+_080FE79C:
+ adds r0, r4, 0
+ bl sub_80B3068
+_080FE7A2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE758
+
+ thumb_func_start sub_80FE7A8
+sub_80FE7A8: @ 80FE7A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FE7CC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ movs r2, 0x3
+ strh r2, [r1, 0x1E]
+ ldr r1, _080FE7D0 @ =gUnknown_020388F6
+ strb r3, [r1]
+ bl sub_80FE5AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7CC: .4byte gTasks
+_080FE7D0: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FE7A8
+
+ thumb_func_start sub_80FE7D4
+sub_80FE7D4: @ 80FE7D4
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080FE7E8 @ =gUnknown_083EC5E4
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE7E8: .4byte gUnknown_083EC5E4
+ thumb_func_end sub_80FE7D4
+
+ thumb_func_start sub_80FE7EC
+sub_80FE7EC: @ 80FE7EC
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FEC94
+ ldr r0, _080FE858 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ bl sub_80FECB8
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r4, _080FE85C @ =gUnknown_020388F2
+ ldr r0, _080FE860 @ =gUnknown_020388F4
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ ldr r0, _080FE864 @ =gUnknown_020388F3
+ ldrb r3, [r0]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE858: .4byte gUnknown_020388F6
+_080FE85C: .4byte gUnknown_020388F2
+_080FE860: .4byte gUnknown_020388F4
+_080FE864: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FE7EC
+
+ thumb_func_start sub_80FE868
+sub_80FE868: @ 80FE868
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80FE7EC
+ ldr r1, _080FE88C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FE890 @ =sub_80FE948
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE88C: .4byte gTasks
+_080FE890: .4byte sub_80FE948
+ thumb_func_end sub_80FE868
+
+ thumb_func_start sub_80FE894
+sub_80FE894: @ 80FE894
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0
+ mov r10, r0
+ ldr r6, _080FE920 @ =gUnknown_020388F2
+ ldrb r1, [r6]
+ ldr r4, _080FE924 @ =gUnknown_020388F4
+ ldrb r0, [r4]
+ adds r1, r0
+ ldr r2, _080FE928 @ =gUnknown_020388D5
+ mov r9, r2
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _080FE8C8
+ movs r1, 0x1
+ mov r10, r1
+_080FE8C8:
+ movs r0, 0x5
+ bl PlaySE
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FE8DC
+ bl MoveMenuCursor
+ strb r0, [r6]
+_080FE8DC:
+ cmp r7, 0
+ beq _080FE8EE
+ ldrb r0, [r4]
+ adds r0, r7
+ strb r0, [r4]
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_80FEABC
+_080FE8EE:
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r0, r1
+ mov r2, r9
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080FE92C
+ mov r0, r10
+ cmp r0, 0
+ beq _080FE90E
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080FE90E:
+ ldrb r0, [r4]
+ ldrb r6, [r6]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FECE0
+ b _080FE938
+ .align 2, 0
+_080FE920: .4byte gUnknown_020388F2
+_080FE924: .4byte gUnknown_020388F4
+_080FE928: .4byte gUnknown_020388D5
+_080FE92C:
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+_080FE938:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE894
+
+ thumb_func_start sub_80FE948
+sub_80FE948: @ 80FE948
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FE980 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE95C
+ b _080FEAAC
+_080FE95C:
+ ldr r0, _080FE984 @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080FE9A0
+ ldr r0, _080FE988 @ =gUnknown_020388F2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE98C
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9A0
+ .align 2, 0
+_080FE980: .4byte gPaletteFade
+_080FE984: .4byte gMain
+_080FE988: .4byte gUnknown_020388F2
+_080FE98C:
+ ldr r0, _080FE9C4 @ =gUnknown_020388F4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FE9A0
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FE894
+_080FE9A0:
+ ldr r0, _080FE9C8 @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _080FE9EE
+ ldr r2, _080FE9CC @ =gUnknown_020388F2
+ ldr r1, _080FE9D0 @ =gUnknown_020388F3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9D4
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_80FE894
+ b _080FE9EE
+ .align 2, 0
+_080FE9C4: .4byte gUnknown_020388F4
+_080FE9C8: .4byte gMain
+_080FE9CC: .4byte gUnknown_020388F2
+_080FE9D0: .4byte gUnknown_020388F3
+_080FE9D4:
+ ldr r0, _080FEA38 @ =gUnknown_020388F4
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ ldr r1, _080FEA3C @ =gUnknown_020388D5
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080FE9EE
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80FE894
+_080FE9EE:
+ ldr r0, _080FEA40 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEA7C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080FEA44 @ =gUnknown_020388F5
+ ldr r1, _080FEA48 @ =gUnknown_020388F2
+ ldr r0, _080FEA38 @ =gUnknown_020388F4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ adds r0, r1
+ strb r0, [r2]
+ ldr r1, _080FEA3C @ =gUnknown_020388D5
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEA54
+ ldr r1, _080FEA4C @ =gUnknown_083EC634
+ ldr r2, _080FEA50 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ b _080FEA68
+ .align 2, 0
+_080FEA38: .4byte gUnknown_020388F4
+_080FEA3C: .4byte gUnknown_020388D5
+_080FEA40: .4byte gMain
+_080FEA44: .4byte gUnknown_020388F5
+_080FEA48: .4byte gUnknown_020388F2
+_080FEA4C: .4byte gUnknown_083EC634
+_080FEA50: .4byte gTasks
+_080FEA54:
+ ldr r2, _080FEA74 @ =gUnknown_083EC634
+ ldr r1, _080FEA78 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ lsls r0, 3
+ adds r0, r2
+_080FEA68:
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080FEAAC
+ .align 2, 0
+_080FEA74: .4byte gUnknown_083EC634
+_080FEA78: .4byte gTasks
+_080FEA7C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FEAAC
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080FEAB4 @ =gUnknown_083EC634
+ ldr r2, _080FEAB8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x1E
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080FEAAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEAB4: .4byte gUnknown_083EC634
+_080FEAB8: .4byte gTasks
+ thumb_func_end sub_80FE948
+
+ thumb_func_start sub_80FEABC
+sub_80FEABC: @ 80FEABC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, _080FEB58 @ =gUnknown_020388F4
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080FEADE
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080FEAE8
+_080FEADE:
+ movs r0, 0
+ movs r1, 0x3C
+ movs r2, 0x8
+ bl sub_80F953C
+_080FEAE8:
+ ldr r5, _080FEB58 @ =gUnknown_020388F4
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldr r4, _080FEB5C @ =gUnknown_020388D5
+ ldrb r1, [r4]
+ cmp r0, r1
+ bne _080FEAFC
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_080FEAFC:
+ ldrb r0, [r5]
+ adds r0, 0x7
+ ldrb r4, [r4]
+ cmp r0, r4
+ bge _080FEB10
+ movs r0, 0x1
+ movs r1, 0x3C
+ movs r2, 0x98
+ bl sub_80F953C
+_080FEB10:
+ ldrb r4, [r5]
+ adds r0, r4, 0
+ adds r0, 0x8
+ cmp r4, r0
+ blt _080FEB1C
+ b _080FEC7E
+_080FEB1C:
+ adds r7, r5, 0
+_080FEB1E:
+ ldrb r1, [r7]
+ subs r1, r4, r1
+ lsls r0, r1, 25
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ lsrs r6, r0, 24
+ ldr r0, _080FEB60 @ =gUnknown_020388F7
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FEB3C
+ adds r0, r1, 0
+ bl sub_80F94F8
+_080FEB3C:
+ ldr r0, _080FEB5C @ =gUnknown_020388D5
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _080FEB68
+ lsls r2, r6, 3
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, _080FEB64 @ =gUnknownText_Exit
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEC7E
+ .align 2, 0
+_080FEB58: .4byte gUnknown_020388F4
+_080FEB5C: .4byte gUnknown_020388D5
+_080FEB60: .4byte gUnknown_020388F7
+_080FEB64: .4byte gUnknownText_Exit
+_080FEB68:
+ ldr r0, _080FEBC0 @ =gUnknown_020388D0
+ ldr r1, [r0]
+ adds r2, r1, r4
+ ldrb r1, [r2]
+ mov r12, r0
+ adds r5, r4, 0x1
+ cmp r1, 0
+ bne _080FEB7A
+ b _080FEC70
+_080FEB7A:
+ ldr r0, _080FEBC4 @ =0x0201f000
+ ldrb r5, [r0, 0x9]
+ cmp r5, 0x1
+ bne _080FEBDC
+ ldr r0, _080FEBC8 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FEBDC
+ cmp r0, 0x7
+ beq _080FEBDC
+ ldr r0, _080FEBCC @ =gTasks
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x1E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080FEBDC
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r0, _080FEBD0 @ =gDecorations + 0x1
+ adds r1, r0
+ ldr r0, _080FEBD4 @ =gStringVar1
+ bl StringCopy
+ lsls r2, r6, 3
+ str r5, [sp]
+ ldr r0, _080FEBD8 @ =gUnknown_083EC65A
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+ b _080FEBF8
+ .align 2, 0
+_080FEBC0: .4byte gUnknown_020388D0
+_080FEBC4: .4byte 0x0201f000
+_080FEBC8: .4byte gUnknown_020388F6
+_080FEBCC: .4byte gTasks
+_080FEBD0: .4byte gDecorations + 0x1
+_080FEBD4: .4byte gStringVar1
+_080FEBD8: .4byte gUnknown_083EC65A
+_080FEBDC:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080FEC00 @ =gDecorations + 0x1
+ adds r0, r1
+ lsls r2, r6, 3
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x8
+ movs r3, 0x68
+ bl sub_8072A18
+_080FEBF8:
+ movs r1, 0
+ adds r5, r4, 0x1
+ b _080FEC0A
+ .align 2, 0
+_080FEC00: .4byte gDecorations + 0x1
+_080FEC04:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC0A:
+ cmp r1, 0xF
+ bhi _080FEC34
+ ldr r0, _080FEC38 @ =gUnknown_020388D6
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC04
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC3C @ =gUnknown_020388F7
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r2, 0xC0
+ lsls r2, 13
+ adds r3, r2
+ asrs r3, 16
+ movs r0, 0x4
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC34:
+ movs r1, 0
+ b _080FEC46
+ .align 2, 0
+_080FEC38: .4byte gUnknown_020388D6
+_080FEC3C: .4byte gUnknown_020388F7
+_080FEC40:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080FEC46:
+ cmp r1, 0xB
+ bhi _080FEC70
+ ldr r0, _080FEC8C @ =gUnknown_020388E6
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, r4
+ bne _080FEC40
+ ldrb r3, [r7]
+ subs r3, r4, r3
+ ldr r1, _080FEC90 @ =gUnknown_020388F7
+ adds r1, r3, r1
+ lsls r3, 20
+ movs r0, 0xC0
+ lsls r0, 13
+ adds r3, r0
+ asrs r3, 16
+ movs r0, 0x5
+ movs r2, 0x6C
+ bl sub_80F94A4
+_080FEC70:
+ lsls r0, r5, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r7]
+ adds r0, 0x8
+ cmp r4, r0
+ bge _080FEC7E
+ b _080FEB1E
+_080FEC7E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEC8C: .4byte gUnknown_020388E6
+_080FEC90: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEABC
+
+ thumb_func_start sub_80FEC94
+sub_80FEC94: @ 80FEC94
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FEABC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEC94
+
+ thumb_func_start sub_80FECB8
+sub_80FECB8: @ 80FECB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80FE470
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FECB8
+
+ thumb_func_start sub_80FECE0
+sub_80FECE0: @ 80FECE0
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080FED14 @ =gDecorations
+ ldr r1, _080FED18 @ =gUnknown_020388D0
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 5
+ adds r2, 0x18
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x30
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x80
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED14: .4byte gDecorations
+_080FED18: .4byte gUnknown_020388D0
+ thumb_func_end sub_80FECE0
+
+ thumb_func_start sub_80FED1C
+sub_80FED1C: @ 80FED1C
+ push {lr}
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuZeroFillWindowRect
+ movs r0, 0xF
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FED1C
+
+ thumb_func_start sub_80FED3C
+sub_80FED3C: @ 80FED3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r1, _080FED5C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FED60 @ =sub_80FE868
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED5C: .4byte gTasks
+_080FED60: .4byte sub_80FE868
+ thumb_func_end sub_80FED3C
+
+ thumb_func_start sub_80FED64
+sub_80FED64: @ 80FED64
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _080FED7C @ =gUnknown_020388D6
+_080FED6E:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FED80
+ movs r0, 0x1
+ b _080FED8C
+ .align 2, 0
+_080FED7C: .4byte gUnknown_020388D6
+_080FED80:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080FED6E
+ movs r0, 0
+_080FED8C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FED64
+
+ thumb_func_start sub_80FED90
+sub_80FED90: @ 80FED90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r4, _080FEE30 @ =gUnknown_020388D6
+ movs r1, 0
+ ldr r2, _080FEE34 @ =gUnknown_020388E6
+_080FEDA4:
+ adds r0, r3, r4
+ strb r1, [r0]
+ cmp r3, 0xB
+ bhi _080FEDB0
+ adds r0, r3, r2
+ strb r1, [r0]
+_080FEDB0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDA4
+ movs r3, 0
+ ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
+ mov r10, r0
+ ldr r1, _080FEE3C @ =gDecorationInventories
+ mov r9, r1
+ ldr r2, _080FEE40 @ =gUnknown_020388F6
+ mov r8, r2
+_080FEDC8:
+ mov r1, r10
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FEE5A
+ movs r1, 0
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEE5A
+ ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
+ adds r0, r3
+ mov r12, r0
+ ldr r7, _080FEE30 @ =gUnknown_020388D6
+_080FEDEA:
+ ldr r0, _080FEE44 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080FEE48
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEE1E
+ ldrb r0, [r7]
+ cmp r0, r4
+ beq _080FEE1E
+ ldr r5, _080FEE30 @ =gUnknown_020388D6
+ adds r2, r4, 0
+_080FEE0C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEE1E
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEE0C
+_080FEE1E:
+ cmp r1, r6
+ bne _080FEE48
+ adds r0, r6, r7
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEE5A
+ .align 2, 0
+_080FEE30: .4byte gUnknown_020388D6
+_080FEE34: .4byte gUnknown_020388E6
+_080FEE38: .4byte gSaveBlock1 + 0x1A1A
+_080FEE3C: .4byte gDecorationInventories
+_080FEE40: .4byte gUnknown_020388F6
+_080FEE44: .4byte gUnknown_020388D0
+_080FEE48:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 3
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEDEA
+_080FEE5A:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080FEDC8
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _080FEEE4 @ =gDecorationInventories
+ mov r8, r0
+_080FEE6C:
+ ldr r0, _080FEEE8 @ =gSaveBlock1
+ ldr r1, _080FEEEC @ =0x00002688
+ adds r0, r1
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ adds r7, r3, 0x1
+ cmp r0, 0
+ beq _080FEF0E
+ movs r1, 0
+ ldr r0, _080FEEF0 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcs _080FEF0E
+ adds r5, r2, 0
+_080FEE8E:
+ ldr r0, _080FEEF4 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ ldrb r2, [r5]
+ cmp r0, r2
+ bne _080FEEFC
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80FED64
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEEFC
+ movs r1, 0
+ cmp r1, r6
+ bcs _080FEED0
+ ldr r2, _080FEEF8 @ =gUnknown_020388E6
+ ldrb r0, [r2]
+ cmp r0, r4
+ beq _080FEED0
+ adds r3, r2, 0
+ adds r2, r4, 0
+_080FEEBE:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r6
+ bcs _080FEED0
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080FEEBE
+_080FEED0:
+ cmp r1, r6
+ bne _080FEEFC
+ ldr r0, _080FEEF8 @ =gUnknown_020388E6
+ adds r0, r6, r0
+ strb r4, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080FEF0E
+ .align 2, 0
+_080FEEE4: .4byte gDecorationInventories
+_080FEEE8: .4byte gSaveBlock1
+_080FEEEC: .4byte 0x00002688
+_080FEEF0: .4byte gUnknown_020388F6
+_080FEEF4: .4byte gUnknown_020388D0
+_080FEEF8: .4byte gUnknown_020388E6
+_080FEEFC:
+ lsls r0, r4, 16
+ lsrs r1, r0, 16
+ ldr r0, _080FEF24 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldrb r0, [r0, 0x4]
+ cmp r1, r0
+ bcc _080FEE8E
+_080FEF0E:
+ lsls r0, r7, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bls _080FEE6C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF24: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FED90
+
+ thumb_func_start sub_80FEF28
+sub_80FEF28: @ 80FEF28
+ push {lr}
+ ldr r0, _080FEF38 @ =gUnknown_020388D5
+ ldrb r1, [r0]
+ cmp r1, 0x7
+ bhi _080FEF40
+ ldr r0, _080FEF3C @ =gUnknown_020388F3
+ strb r1, [r0]
+ b _080FEF46
+ .align 2, 0
+_080FEF38: .4byte gUnknown_020388D5
+_080FEF3C: .4byte gUnknown_020388F3
+_080FEF40:
+ ldr r1, _080FEF4C @ =gUnknown_020388F3
+ movs r0, 0x7
+ strb r0, [r1]
+_080FEF46:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF4C: .4byte gUnknown_020388F3
+ thumb_func_end sub_80FEF28
+
+ thumb_func_start sub_80FEF50
+sub_80FEF50: @ 80FEF50
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FED90
+ bl sub_80FEF28
+ ldr r0, _080FEF6C @ =gUnknown_020388F2
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FEF70 @ =gUnknown_020388F4
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF6C: .4byte gUnknown_020388F2
+_080FEF70: .4byte gUnknown_020388F4
+ thumb_func_end sub_80FEF50
+
+ thumb_func_start sub_80FEF74
+sub_80FEF74: @ 80FEF74
+ push {lr}
+ ldr r0, _080FEFA0 @ =gUnknown_020388F7
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEFA0: .4byte gUnknown_020388F7
+ thumb_func_end sub_80FEF74
+
+ thumb_func_start sub_80FEFA4
+sub_80FEFA4: @ 80FEFA4
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, _080FEFD0 @ =gUnknown_020388F4
+ ldrb r0, [r0]
+ ldr r1, _080FEFD4 @ =gUnknown_020388F2
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0x1
+ ldr r4, _080FEFD8 @ =gUnknown_020388D6
+ ldr r3, _080FEFDC @ =gUnknown_020388E6
+_080FEFB8:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080FEFCC
+ cmp r2, 0xB
+ bhi _080FEFE0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _080FEFE0
+_080FEFCC:
+ movs r0, 0
+ b _080FEFEC
+ .align 2, 0
+_080FEFD0: .4byte gUnknown_020388F4
+_080FEFD4: .4byte gUnknown_020388F2
+_080FEFD8: .4byte gUnknown_020388D6
+_080FEFDC: .4byte gUnknown_020388E6
+_080FEFE0:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080FEFB8
+ movs r0, 0x1
+_080FEFEC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FEFA4
+
+ thumb_func_start sub_80FEFF4
+sub_80FEFF4: @ 80FEFF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080FF028 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF00E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF020
+_080FF00E:
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldr r0, _080FF02C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080FF030 @ =sub_80FE868
+ str r0, [r1]
+_080FF020:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF028: .4byte gMain
+_080FF02C: .4byte gTasks
+_080FF030: .4byte sub_80FE868
+ thumb_func_end sub_80FEFF4
+
+ thumb_func_start sub_80FF034
+sub_80FF034: @ 80FF034
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE5AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF034
+
+ thumb_func_start sub_80FF058
+sub_80FF058: @ 80FF058
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080FF08C @ =gUnknown_020388F7
+ movs r1, 0x8
+ bl sub_80F9520
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl BuyMenuFreeMemory
+ ldr r1, _080FF090 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080FF094 @ =sub_80FF034
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF08C: .4byte gUnknown_020388F7
+_080FF090: .4byte gTasks
+_080FF094: .4byte sub_80FF034
+ thumb_func_end sub_80FF058
+
+ thumb_func_start sub_80FF098
+sub_80FF098: @ 80FF098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080FF0D4 @ =gUnknown_020388D5
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r3, _080FF0D8 @ =gUnknown_020388F4
+ ldrb r2, [r3]
+ adds r0, r2, 0x7
+ ldrb r1, [r1]
+ cmp r0, r1
+ ble _080FF0BA
+ cmp r2, 0
+ beq _080FF0BA
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080FF0BA:
+ ldr r0, _080FF0DC @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ bl sub_8134104
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl sub_80FEF28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF0D4: .4byte gUnknown_020388D5
+_080FF0D8: .4byte gUnknown_020388F4
+_080FF0DC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF098
+
+ thumb_func_start sub_80FF0E0
+sub_80FF0E0: @ 80FF0E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF10C @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r4, r2, r3
+ ldr r1, _080FF110 @ =gSaveBlock1
+ ldrh r0, [r1]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x10]
+ adds r3, 0x8
+ adds r2, r3
+ adds r1, r2, 0x2
+ adds r0, r2, 0
+ bl PlayerGetDestCoords
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF10C: .4byte gTasks
+_080FF110: .4byte gSaveBlock1
+ thumb_func_end sub_80FF0E0
+
+ thumb_func_start sub_80FF114
+sub_80FF114: @ 80FF114
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl DrawWholeMapView
+ ldr r1, _080FF158 @ =gSaveBlock1
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r3, _080FF15C @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r3
+ movs r3, 0xE
+ ldrsb r3, [r4, r3]
+ ldrb r4, [r4, 0x10]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ bl warp1_set
+ bl warp_in
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF158: .4byte gSaveBlock1
+_080FF15C: .4byte gTasks
+ thumb_func_end sub_80FF114
+
+ thumb_func_start sub_80FF160
+sub_80FF160: @ 80FF160
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FF188
+ ldr r1, _080FF180 @ =gSecretBaseText_NoDecors
+ ldr r2, _080FF184 @ =sub_80FE428
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF1A2
+ .align 2, 0
+_080FF180: .4byte gSecretBaseText_NoDecors
+_080FF184: .4byte sub_80FE428
+_080FF188:
+ ldr r1, _080FF1A8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ ldr r0, _080FF1AC @ =gUnknown_020388F6
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_080FF1A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF1A8: .4byte gTasks
+_080FF1AC: .4byte gUnknown_020388F6
+ thumb_func_end sub_80FF160
+
+ thumb_func_start sub_80FF1B0
+sub_80FF1B0: @ 80FF1B0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080FF1D0 @ =0x0000ffff
+ cmp r2, 0x22
+ beq _080FF1D8
+ cmp r2, 0x26
+ bne _080FF1E2
+ ldr r0, _080FF1D4 @ =gUnknown_083EC97C
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+ b _080FF1E2
+ .align 2, 0
+_080FF1D0: .4byte 0x0000ffff
+_080FF1D4: .4byte gUnknown_083EC97C
+_080FF1D8:
+ ldr r0, _080FF1E8 @ =gUnknown_083EC984
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 16
+_080FF1E2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF1E8: .4byte gUnknown_083EC984
+ thumb_func_end sub_80FF1B0
+
+ thumb_func_start sub_80FF1EC
+sub_80FF1EC: @ 80FF1EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r4, [sp, 0x54]
+ 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
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x10]
+ movs r2, 0
+ lsls r0, r3, 16
+ cmp r2, r3
+ bcc _080FF222
+ b _080FF384
+_080FF222:
+ ldr r1, [sp, 0x8]
+ str r1, [sp, 0x28]
+ str r0, [sp, 0x2C]
+_080FF228:
+ ldr r3, [sp, 0x4]
+ ldr r4, [sp, 0xC]
+ subs r1, r3, r4
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r0, 0x1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r10, r0
+ adds r1, r2, 0x1
+ str r1, [sp, 0x30]
+ ldr r3, [sp, 0x28]
+ cmp r10, r3
+ bcc _080FF24C
+ b _080FF374
+_080FF24C:
+ ldr r4, [sp, 0x10]
+ lsls r4, 5
+ str r4, [sp, 0x18]
+ ldr r0, _080FF2B4 @ =gDecorations + 0x1C
+ adds r0, r4, r0
+ str r0, [sp, 0x1C]
+ ldr r0, _080FF2B8 @ =gDecorations
+ adds r0, r4, r0
+ str r0, [sp, 0x24]
+ ldr r3, [sp, 0x8]
+ adds r1, r2, 0
+ muls r1, r3
+ str r1, [sp, 0x20]
+_080FF266:
+ ldr r0, [sp]
+ add r0, r10
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, [sp, 0x20]
+ add r1, r10
+ ldr r4, [sp, 0x1C]
+ ldr r0, [r4]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ lsls r4, r0, 16
+ lsls r0, r4, 8
+ lsrs r0, 24
+ bl sub_8057288
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FF2AC
+ ldr r3, [sp, 0x24]
+ ldrb r0, [r3, 0x11]
+ cmp r0, 0x1
+ beq _080FF2BC
+ lsrs r0, r4, 28
+ cmp r0, 0
+ beq _080FF2BC
+_080FF2AC:
+ movs r4, 0xC0
+ lsls r4, 4
+ mov r8, r4
+ b _080FF2C0
+ .align 2, 0
+_080FF2B4: .4byte gDecorations + 0x1C
+_080FF2B8: .4byte gDecorations
+_080FF2BC:
+ movs r0, 0
+ mov r8, r0
+_080FF2C0:
+ ldr r1, [sp, 0x24]
+ ldrb r0, [r1, 0x11]
+ lsls r7, r5, 16
+ ldr r2, [sp, 0x14]
+ lsls r2, 16
+ mov r9, r2
+ cmp r0, 0x3
+ beq _080FF2EA
+ asrs r0, r7, 16
+ asrs r1, r2, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1
+ cmp r0, 0x1
+ beq _080FF2EC
+_080FF2EA:
+ movs r6, 0
+_080FF2EC:
+ ldr r3, [sp, 0x18]
+ ldr r4, _080FF334 @ =gDecorations
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r4, [sp, 0x20]
+ add r4, r10
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_80FF1B0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080FF338 @ =0x0000ffff
+ cmp r5, r0
+ beq _080FF33C
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ orrs r3, r5
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileEntryAt
+ b _080FF362
+ .align 2, 0
+_080FF334: .4byte gDecorations
+_080FF338: .4byte 0x0000ffff
+_080FF33C:
+ asrs r0, r7, 16
+ mov r2, r9
+ asrs r1, r2, 16
+ ldr r3, [sp, 0x1C]
+ ldr r2, [r3]
+ lsls r3, r4, 1
+ adds r3, r2
+ movs r4, 0x80
+ lsls r4, 2
+ adds r2, r4, 0
+ orrs r6, r2
+ ldrh r3, [r3]
+ adds r2, r6, r3
+ mov r3, r8
+ orrs r3, r2
+ lsls r2, r3, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+_080FF362:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldr r4, [sp, 0x28]
+ cmp r10, r4
+ bcs _080FF374
+ b _080FF266
+_080FF374:
+ ldr r1, [sp, 0x30]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r3, [sp, 0x2C]
+ lsrs r0, r3, 16
+ cmp r2, r0
+ bcs _080FF384
+ b _080FF228
+_080FF384:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF1EC
+
+ thumb_func_start sub_80FF394
+sub_80FF394: @ 80FF394
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _080FF3BC @ =gDecorations
+ lsls r0, r2, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bhi _080FF46C
+ lsls r0, 2
+ ldr r1, _080FF3C0 @ =_080FF3C4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF3BC: .4byte gDecorations
+_080FF3C0: .4byte _080FF3C4
+ .align 2, 0
+_080FF3C4:
+ .4byte _080FF3EC
+ .4byte _080FF3F6
+ .4byte _080FF400
+ .4byte _080FF410
+ .4byte _080FF41A
+ .4byte _080FF424
+ .4byte _080FF434
+ .4byte _080FF43E
+ .4byte _080FF44E
+ .4byte _080FF45E
+_080FF3EC:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF408
+_080FF3F6:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF408
+_080FF400:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF408:
+ movs r3, 0x1
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF410:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x4
+ b _080FF42C
+_080FF41A:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ b _080FF42C
+_080FF424:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+_080FF42C:
+ movs r3, 0x2
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF434:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ b _080FF456
+_080FF43E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF44E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+_080FF456:
+ movs r3, 0x3
+ bl sub_80FF1EC
+ b _080FF46C
+_080FF45E:
+ str r2, [sp]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80FF1EC
+_080FF46C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF394
+
+ thumb_func_start sub_80FF474
+sub_80FF474: @ 80FF474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0
+ ldr r0, _080FF54C @ =gMapHeader
+ mov r8, r0
+ ldr r1, _080FF550 @ =gUnknown_0202E8CE
+ mov r9, r1
+ ldr r2, _080FF554 @ =gUnknown_0202E8D0
+ mov r10, r2
+ ldr r7, _080FF558 @ =gSaveBlock1
+_080FF490:
+ adds r5, r6, 0
+ adds r5, 0xAE
+ adds r4, r5, 0
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF570
+ adds r0, r4, 0
+ bl FlagReset
+ movs r2, 0
+ mov r4, r8
+ ldr r0, [r4, 0x4]
+ ldrb r6, [r0]
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r0, 0x4]
+ ldrh r0, [r0, 0x14]
+ cmp r0, r5
+ beq _080FF4E0
+ ldr r0, _080FF54C @ =gMapHeader
+ ldr r3, [r0, 0x4]
+ ldrb r6, [r3]
+ adds r4, r5, 0
+_080FF4C6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r6
+ bcs _080FF4E0
+ ldr r0, [r3, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _080FF4C6
+_080FF4E0:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r2, 1
+ adds r4, r2
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r2, _080FF55C @ =0x00003f20
+ adds r0, r2, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080FF560 @ =gUnknown_02038900
+ ldr r1, [r1]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ mov r6, r9
+ strh r0, [r6]
+ ldr r1, _080FF564 @ =gUnknown_020391A4
+ ldrh r1, [r1]
+ mov r2, r10
+ strh r1, [r2]
+ ldr r1, _080FF568 @ =gUnknown_020391A6
+ ldrh r1, [r1]
+ ldr r4, _080FF56C @ =gUnknown_0202E8D2
+ strh r1, [r4]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl show_sprite
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ mov r5, r10
+ movs r6, 0
+ ldrsh r3, [r5, r6]
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ mov r6, r9
+ ldrb r0, [r6]
+ ldrb r1, [r7, 0x5]
+ ldrb r2, [r7, 0x4]
+ bl sub_805C78C
+ b _080FF57A
+ .align 2, 0
+_080FF54C: .4byte gMapHeader
+_080FF550: .4byte gUnknown_0202E8CE
+_080FF554: .4byte gUnknown_0202E8D0
+_080FF558: .4byte gSaveBlock1
+_080FF55C: .4byte 0x00003f20
+_080FF560: .4byte gUnknown_02038900
+_080FF564: .4byte gUnknown_020391A4
+_080FF568: .4byte gUnknown_020391A6
+_080FF56C: .4byte gUnknown_0202E8D2
+_080FF570:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xD
+ bls _080FF490
+_080FF57A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF474
+
+ thumb_func_start sub_80FF58C
+sub_80FF58C: @ 80FF58C
+ push {lr}
+ movs r1, 0
+ ldr r0, _080FF5A8 @ =0x0201f000
+ ldrb r2, [r0, 0x8]
+ cmp r1, r2
+ bcs _080FF5B6
+ ldr r3, [r0]
+_080FF59A:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FF5AC
+ movs r0, 0x1
+ b _080FF5B8
+ .align 2, 0
+_080FF5A8: .4byte 0x0201f000
+_080FF5AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080FF59A
+_080FF5B6:
+ movs r0, 0
+_080FF5B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF58C
+
+ thumb_func_start sub_80FF5BC
+sub_80FF5BC: @ 80FF5BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080FF5E4 @ =0x0201f000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x1
+ bne _080FF5F0
+ ldr r0, _080FF5E8 @ =gUnknown_020388F6
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080FF5F0
+ cmp r0, 0x7
+ beq _080FF5F0
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace
+ b _080FF66E
+ .align 2, 0
+_080FF5E4: .4byte 0x0201f000
+_080FF5E8: .4byte gUnknown_020388F6
+_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
+_080FF5F0:
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF688
+ bl sub_80FF58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF62C
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _080FF624 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _080FF628 @ =sub_80FF6AC
+ str r1, [r0]
+ b _080FF69C
+ .align 2, 0
+_080FF624: .4byte gTasks
+_080FF628: .4byte sub_80FF6AC
+_080FF62C:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r0, _080FF654 @ =gStringVar1
+ ldr r4, _080FF658 @ =0x0201f000
+ ldrb r1, [r4, 0x8]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ bne _080FF664
+ ldr r0, _080FF65C @ =gStringVar4
+ ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor
+ bl StringExpandPlaceholders
+ b _080FF66C
+ .align 2, 0
+_080FF654: .4byte gStringVar1
+_080FF658: .4byte 0x0201f000
+_080FF65C: .4byte gStringVar4
+_080FF660: .4byte gSecretBaseText_NoMoreDecor
+_080FF664:
+ ldr r0, _080FF67C @ =gStringVar4
+ ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2
+ bl StringExpandPlaceholders
+_080FF66C:
+ ldr r1, _080FF67C @ =gStringVar4
+_080FF66E:
+ ldr r2, _080FF684 @ =sub_80FEFF4
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _080FF69C
+ .align 2, 0
+_080FF67C: .4byte gStringVar4
+_080FF680: .4byte gSecretBaseText_NoMoreDecor2
+_080FF684: .4byte sub_80FEFF4
+_080FF688:
+ bl sub_80FEF74
+ bl sub_80FED1C
+ ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready
+ ldr r2, _080FF6A8 @ =sub_80FEFF4
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080FF69C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF6A4: .4byte gSecretBaseText_InUseAlready
+_080FF6A8: .4byte sub_80FEFF4
+ thumb_func_end sub_80FF5BC
+
+ thumb_func_start sub_80FF6AC
+sub_80FF6AC: @ 80FF6AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080FF6D0 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r7, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ beq _080FF714
+ cmp r0, 0x1
+ bgt _080FF6D4
+ cmp r0, 0
+ beq _080FF6DA
+ b _080FF77A
+ .align 2, 0
+_080FF6D0: .4byte gTasks
+_080FF6D4:
+ cmp r0, 0x2
+ beq _080FF764
+ b _080FF77A
+_080FF6DA:
+ ldr r0, _080FF70C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF77A
+ adds r0, r6, 0
+ bl sub_80FF0E0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _080FF710 @ =gUnknown_020388F7
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF70C: .4byte gPaletteFade
+_080FF710: .4byte gUnknown_020388F7
+_080FF714:
+ ldr r4, _080FF754 @ =gPaletteFade
+ ldrb r0, [r4, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4, 0x8]
+ ldr r5, _080FF758 @ =gUnknown_02038900
+ ldr r0, _080FF75C @ =gUnknown_020388F5
+ ldrb r1, [r0]
+ ldr r0, _080FF760 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl AddDecorationIconObjectFromFieldObject
+ adds r0, r6, 0
+ bl sub_80FF960
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl SetUpPlacingDecorationPlayerAvatar
+ bl pal_fill_black
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x8]
+ movs r0, 0x2
+ strh r0, [r7, 0xC]
+ b _080FF77A
+ .align 2, 0
+_080FF754: .4byte gPaletteFade
+_080FF758: .4byte gUnknown_02038900
+_080FF75C: .4byte gUnknown_020388F5
+_080FF760: .4byte gUnknown_020388D0
+_080FF764:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FF77A
+ movs r0, 0
+ strh r0, [r7, 0x20]
+ adds r0, r6, 0
+ bl sub_810065C
+_080FF77A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FF6AC
+
+ thumb_func_start AddDecorationIconObjectFromFieldObject
+AddDecorationIconObjectFromFieldObject: @ 80FF780
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ adds r0, r5, 0
+ bl sub_81006D0
+ lsls r4, 5
+ ldr r0, _080FF810 @ =gDecorations
+ adds r4, r0
+ str r4, [r5]
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x4
+ beq _080FF834
+ adds r0, r5, 0
+ bl sub_81008BC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ bl sub_8100930
+ adds r0, r5, 0
+ bl sub_8100874
+ ldr r1, _080FF814 @ =0x00000884
+ adds r0, r5, r1
+ ldr r1, _080FF818 @ =gMapHeader
+ ldr r1, [r1]
+ ldr r2, [r1, 0x14]
+ ldr r1, [r5]
+ ldr r1, [r1, 0x1C]
+ ldrh r1, [r1]
+ ldr r2, [r2, 0xC]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1, 0xE]
+ lsrs r1, 12
+ bl sub_810070C
+ ldr r0, _080FF81C @ =gUnknown_083EC954
+ bl LoadSpritePalette
+ ldr r3, _080FF820 @ =gUnknown_020391A8
+ ldr r2, _080FF824 @ =gSprites
+ ldr r4, _080FF828 @ =gUnknown_03004880
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C
+ ldr r3, _080FF830 @ =gUnknown_083EC900
+ ldr r1, [r5]
+ ldrb r2, [r1, 0x12]
+ lsls r2, 2
+ adds r2, r3
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x3]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ b _080FF87E
+ .align 2, 0
+_080FF810: .4byte gDecorations
+_080FF814: .4byte 0x00000884
+_080FF818: .4byte gMapHeader
+_080FF81C: .4byte gUnknown_083EC954
+_080FF820: .4byte gUnknown_020391A8
+_080FF824: .4byte gSprites
+_080FF828: .4byte gUnknown_03004880
+_080FF82C: .4byte gSpriteTemplate_83EC93C
+_080FF830: .4byte gUnknown_083EC900
+_080FF834:
+ ldr r2, _080FF888 @ =gUnknown_020391A8
+ ldr r6, _080FF88C @ =gSprites
+ ldr r5, _080FF890 @ =gUnknown_03004880
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r2]
+ ldr r0, [r4, 0x1C]
+ ldrh r0, [r0]
+ ldr r1, _080FF894 @ =sub_81009A8
+ ldr r2, _080FF898 @ =gUnknown_083EC900
+ ldrb r3, [r4, 0x12]
+ lsls r3, 2
+ adds r3, r2
+ ldrb r2, [r3, 0x2]
+ ldrb r3, [r3, 0x3]
+ movs r4, 0x1
+ str r4, [sp]
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r5, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080FF87E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF888: .4byte gUnknown_020391A8
+_080FF88C: .4byte gSprites
+_080FF890: .4byte gUnknown_03004880
+_080FF894: .4byte sub_81009A8
+_080FF898: .4byte gUnknown_083EC900
+ thumb_func_end AddDecorationIconObjectFromFieldObject
+
+ thumb_func_start SetUpPlacingDecorationPlayerAvatar
+SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FF8F0 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x12]
+ ldr r3, _080FF8F4 @ =gUnknown_083EC900
+ ldr r0, [r1]
+ ldrb r4, [r0, 0x12]
+ lsls r1, r4, 2
+ adds r1, r3
+ lsls r0, r2, 4
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ subs r2, 0x1
+ lsls r2, 3
+ subs r0, r2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r4, 0x2
+ beq _080FF8D6
+ cmp r4, 0x8
+ beq _080FF8D6
+ cmp r4, 0x9
+ bne _080FF8DE
+_080FF8D6:
+ adds r0, r2, 0
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FF8DE:
+ ldr r0, _080FF8F8 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080FF900
+ ldr r1, _080FF8FC @ =SpriteCallbackDummy
+ str r0, [sp]
+ movs r0, 0xC1
+ b _080FF908
+ .align 2, 0
+_080FF8F0: .4byte gTasks
+_080FF8F4: .4byte gUnknown_083EC900
+_080FF8F8: .4byte gSaveBlock2
+_080FF8FC: .4byte SpriteCallbackDummy
+_080FF900:
+ ldr r1, _080FF94C @ =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_080FF908:
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _080FF950 @ =gUnknown_020391A9
+ strb r0, [r1]
+ ldr r3, _080FF954 @ =gSprites
+ ldr r0, _080FF950 @ =gUnknown_020391A9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r4, _080FF958 @ =gUnknown_020391A8
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ bl DestroySprite
+ ldr r0, _080FF95C @ =gUnknown_03004880
+ ldr r0, [r0, 0x4]
+ strb r0, [r4]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF94C: .4byte SpriteCallbackDummy
+_080FF950: .4byte gUnknown_020391A9
+_080FF954: .4byte gSprites
+_080FF958: .4byte gUnknown_020391A8
+_080FF95C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPlacingDecorationPlayerAvatar
+
+ thumb_func_start sub_80FF960
+sub_80FF960: @ 80FF960
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080FF98C @ =gDecorations
+ ldr r0, _080FF990 @ =gUnknown_020388F5
+ ldrb r1, [r0]
+ ldr r0, _080FF994 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x12]
+ cmp r0, 0x9
+ bls _080FF980
+ b _080FFAA6
+_080FF980:
+ lsls r0, 2
+ ldr r1, _080FF998 @ =_080FF99C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF98C: .4byte gDecorations
+_080FF990: .4byte gUnknown_020388F5
+_080FF994: .4byte gUnknown_020388D0
+_080FF998: .4byte _080FF99C
+ .align 2, 0
+_080FF99C:
+ .4byte _080FF9C4
+ .4byte _080FF9D8
+ .4byte _080FF9F0
+ .4byte _080FFA08
+ .4byte _080FFA1C
+ .4byte _080FFA30
+ .4byte _080FFA44
+ .4byte _080FFA64
+ .4byte _080FFA7C
+ .4byte _080FFA94
+_080FF9C4:
+ ldr r0, _080FF9D4 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _080FFA88
+ .align 2, 0
+_080FF9D4: .4byte gTasks
+_080FF9D8:
+ ldr r1, _080FF9EC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FF9EC: .4byte gTasks
+_080FF9F0:
+ ldr r1, _080FFA04 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x12]
+ movs r1, 0x1
+ b _080FFAA4
+ .align 2, 0
+_080FFA04: .4byte gTasks
+_080FFA08:
+ ldr r1, _080FFA18 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ b _080FFAA0
+ .align 2, 0
+_080FFA18: .4byte gTasks
+_080FFA1C:
+ ldr r0, _080FFA2C @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ b _080FFA88
+ .align 2, 0
+_080FFA2C: .4byte gTasks
+_080FFA30:
+ ldr r1, _080FFA40 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ b _080FFAA0
+ .align 2, 0
+_080FFA40: .4byte gTasks
+_080FFA44:
+ ldr r0, _080FFA60 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x12]
+ movs r0, 0x3
+ strh r0, [r1, 0x14]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ b _080FFAA6
+ .align 2, 0
+_080FFA60: .4byte gTasks
+_080FFA64:
+ ldr r1, _080FFA78 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ movs r1, 0x4
+ b _080FFAA4
+ .align 2, 0
+_080FFA78: .4byte gTasks
+_080FFA7C:
+ ldr r0, _080FFA90 @ =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+_080FFA88:
+ strh r0, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ b _080FFAA6
+ .align 2, 0
+_080FFA90: .4byte gTasks
+_080FFA94:
+ ldr r1, _080FFAAC @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+_080FFAA0:
+ strh r1, [r0, 0x12]
+ movs r1, 0x2
+_080FFAA4:
+ strh r1, [r0, 0x14]
+_080FFAA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAAC: .4byte gTasks
+ thumb_func_end sub_80FF960
+
+ thumb_func_start sub_80FFAB0
+sub_80FFAB0: @ 80FFAB0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFAF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFAFC @ =gSprites
+ ldr r0, _080FFB00 @ =gUnknown_020391A8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB04 @ =gUnknown_020391A9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8100038
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFAF8: .4byte gTasks
+_080FFAFC: .4byte gSprites
+_080FFB00: .4byte gUnknown_020391A8
+_080FFB04: .4byte gUnknown_020391A9
+ thumb_func_end sub_80FFAB0
+
+ thumb_func_start sub_80FFB08
+sub_80FFB08: @ 80FFB08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FFB54 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ ldr r3, _080FFB58 @ =gSprites
+ ldr r0, _080FFB5C @ =gUnknown_020391A8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x3C]
+ ldr r0, _080FFB60 @ =gUnknown_020391A9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x3C]
+ bl sub_810045C
+ ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating
+ ldr r2, _080FFB68 @ =sub_8100248
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFB54: .4byte gTasks
+_080FFB58: .4byte gSprites
+_080FFB5C: .4byte gUnknown_020391A8
+_080FFB60: .4byte gUnknown_020391A9
+_080FFB64: .4byte gSecretBaseText_CancelDecorating
+_080FFB68: .4byte sub_8100248
+ thumb_func_end sub_80FFB08
+
+ thumb_func_start sub_80FFB6C
+sub_80FFB6C: @ 80FFB6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080FFB86
+ cmp r4, 0
+ beq _080FFB8A
+_080FFB86:
+ movs r0, 0
+ b _080FFB8C
+_080FFB8A:
+ movs r0, 0x1
+_080FFB8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB6C
+
+ thumb_func_start sub_80FFB94
+sub_80FFB94: @ 80FFB94
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r3, _080FFBD0 @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ lsls r1, r4, 16
+ asrs r1, 16
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080FFBD4
+ cmp r5, 0
+ beq _080FFBD4
+ movs r0, 0
+ b _080FFBD6
+ .align 2, 0
+_080FFBD0: .4byte gTasks
+_080FFBD4:
+ movs r0, 0x1
+_080FFBD6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFB94
+
+ thumb_func_start sub_80FFBDC
+sub_80FFBDC: @ 80FFBDC
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057274
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC1C
+ ldrb r0, [r5]
+ cmp r0, 0x21
+ bne _080FFC0A
+ adds r0, r4, 0
+ bl sub_8057300
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FFC18
+_080FFC0A:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFC1C
+_080FFC18:
+ movs r0, 0x1
+ b _080FFC1E
+_080FFC1C:
+ movs r0, 0
+_080FFC1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFBDC
+
+ thumb_func_start sub_80FFC24
+sub_80FFC24: @ 80FFC24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, _080FFC60 @ =gTasks
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r0, 0x12]
+ str r0, [sp, 0x8]
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x11]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _080FFC56
+ b _08100024
+_080FFC56:
+ lsls r0, 2
+ ldr r1, _080FFC64 @ =_080FFC68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FFC60: .4byte gTasks
+_080FFC64: .4byte _080FFC68
+ .align 2, 0
+_080FFC68:
+ .4byte _080FFC7C
+ .4byte _080FFC7C
+ .4byte _080FFD68
+ .4byte _080FFF1C
+ .4byte _080FFFA0
+_080FFC7C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFC86
+ b _08100024
+_080FFC86:
+ mov r1, r10
+ lsls r1, 2
+ str r1, [sp, 0x1C]
+_080FFC8C:
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ ldr r3, _080FFD64 @ =gTasks
+ adds r0, r3
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _080FFD56
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0xC]
+ asrs r1, 16
+ mov r9, r1
+_080FFCB8:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r2, _080FFD64 @ =gTasks
+ adds r0, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ adds r0, r6, 0
+ mov r1, r9
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ ldr r1, [sp]
+ bl sub_80FFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD1A
+ b _080FFFF4
+_080FFD1A:
+ mov r0, r10
+ adds r1, r6, 0
+ mov r2, r9
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFD2E
+ b _080FFFF4
+_080FFD2E:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0xC]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFD4A
+ cmp r4, 0x10
+ beq _080FFD4A
+ b _080FFFF4
+_080FFD4A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFCB8
+_080FFD56:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, r2
+ bcc _080FFC8C
+ b _08100024
+ .align 2, 0
+_080FFD64: .4byte gTasks
+_080FFD68:
+ movs r6, 0
+ mov r3, r10
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x18]
+ cmp r6, r0
+ bge _080FFE54
+ adds r0, r3, 0
+ add r0, r10
+ lsls r0, 3
+ str r0, [sp, 0x10]
+_080FFD82:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ adds r6, 0x1
+ str r6, [sp, 0x14]
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFE48
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFDA0:
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ subs r0, r3, r1
+ ldr r2, [sp, 0x8]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r7
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FFB6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE0C
+ b _080FFFF4
+_080FFE0C:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFE22
+ b _080FFFF4
+_080FFE22:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _080FFE3A
+ b _080FFFF4
+_080FFE3A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _080FFF18 @ =gTasks
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFDA0
+_080FFE48:
+ ldr r1, [sp, 0x14]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ cmp r6, r3
+ blt _080FFD82
+_080FFE54:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ ldr r1, [sp, 0x4]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE74
+ b _08100024
+_080FFE74:
+ lsls r0, 16
+ str r0, [sp, 0x20]
+_080FFE78:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ ldr r1, _080FFF18 @ =gTasks
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ mov r8, r0
+ asrs r6, r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ adds r0, r6, 0
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldr r0, [r3, 0x1C]
+ lsls r1, r7, 1
+ adds r1, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetBehaviorByMetatileId
+ movs r3, 0xF0
+ lsls r3, 8
+ adds r1, r3, 0
+ adds r5, r1, 0
+ ands r5, r0
+ adds r0, r4, 0
+ bl sub_805729C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ adds r0, r4, 0
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEDA
+ b _080FFFF4
+_080FFEDA:
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r3, [sp, 0x20]
+ asrs r2, r3, 16
+ adds r3, r5, 0
+ bl sub_80FFB94
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFEF0
+ b _080FFFF4
+_080FFEF0:
+ mov r1, r8
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080FFF0A
+ cmp r4, 0x10
+ bne _080FFFF4
+_080FFF0A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFE78
+ b _08100024
+ .align 2, 0
+_080FFF18: .4byte gTasks
+_080FFF1C:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+_080FFF26:
+ mov r1, r10
+ lsls r0, r1, 2
+ add r0, r10
+ lsls r1, r0, 3
+ ldr r2, _080FFF9C @ =gTasks
+ adds r0, r1, r2
+ ldrh r0, [r0, 0xA]
+ subs r0, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r7, 0
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcs _080FFF8C
+ adds r0, r2, 0
+ adds r1, r0
+ mov r8, r1
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r5, r0, 16
+_080FFF50:
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80572B0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFF4
+ adds r0, r4, 0
+ adds r1, r5, 0x1
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ beq _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFF50
+_080FFF8C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x4]
+ cmp r6, r0
+ bcc _080FFF26
+ b _08100024
+ .align 2, 0
+_080FFF9C: .4byte gTasks
+_080FFFA0:
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0xA]
+ mov r9, r0
+ movs r7, 0
+ str r1, [sp, 0x1C]
+ ldr r0, [sp, 0x8]
+ cmp r7, r0
+ bcs _08100024
+ adds r6, r2, 0
+ mov r1, r9
+ lsls r1, 16
+ str r1, [sp, 0x20]
+_080FFFC0:
+ ldr r0, [sp, 0x1C]
+ add r0, r10
+ lsls r0, 3
+ adds r0, r6
+ ldrh r0, [r0, 0x8]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, [sp]
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0x5
+ bne _080FFFF8
+_080FFFE8:
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100004
+_080FFFF4:
+ movs r0, 0
+ b _08100026
+_080FFFF8:
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFFE8
+_08100004:
+ adds r0, r5, 0
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 16
+ movs r2, 0
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bne _080FFFF4
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r7, r3
+ bcc _080FFFC0
+_08100024:
+ movs r0, 0x1
+_08100026:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFC24
+
+ thumb_func_start sub_8100038
+sub_8100038: @ 8100038
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810006C @ =gUnknown_020388F5
+ ldrb r1, [r0]
+ ldr r0, _08100070 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 5
+ ldr r0, _08100074 @ =gDecorations
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80FFC24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100080
+ ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere
+ ldr r2, _0810007C @ =sub_81000A0
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08100092
+ .align 2, 0
+_0810006C: .4byte gUnknown_020388F5
+_08100070: .4byte gUnknown_020388D0
+_08100074: .4byte gDecorations
+_08100078: .4byte gSecretBaseText_PlaceItHere
+_0810007C: .4byte sub_81000A0
+_08100080:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere
+ ldr r2, _0810009C @ =sub_81006A8
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100092:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100098: .4byte gSecretBaseText_CantBePlacedHere
+_0810009C: .4byte sub_81006A8
+ thumb_func_end sub_8100038
+
+ thumb_func_start sub_81000A0
+sub_81000A0: @ 81000A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _081000C0 @ =gUnknown_083EC95C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081000C0: .4byte gUnknown_083EC95C
+ thumb_func_end sub_81000A0
+
+ thumb_func_start sub_81000C4
+sub_81000C4: @ 81000C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8100174
+ ldr r2, _0810010C @ =gDecorations
+ ldr r0, _08100110 @ =gUnknown_020388F5
+ ldrb r1, [r0]
+ ldr r0, _08100114 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r0, r3, 5
+ adds r0, r2
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _0810011C
+ ldr r0, _08100118 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ ldrh r1, [r1, 0xA]
+ adds r2, r3, 0
+ bl sub_80FF394
+ b _0810013C
+ .align 2, 0
+_0810010C: .4byte gDecorations
+_08100110: .4byte gUnknown_020388F5
+_08100114: .4byte gUnknown_020388D0
+_08100118: .4byte gTasks
+_0810011C:
+ ldr r2, _0810015C @ =gUnknown_020391A4
+ ldr r0, _08100160 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r2, _08100164 @ =gUnknown_020391A6
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x7
+ strh r0, [r2]
+ ldr r0, _08100168 @ =gUnknown_081A2F7B
+ bl ScriptContext1_SetupScript
+_0810013C:
+ ldr r2, _0810016C @ =gSprites
+ ldr r0, _08100170 @ =gUnknown_020391A8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ adds r1, 0x2
+ strh r1, [r0, 0x22]
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810015C: .4byte gUnknown_020391A4
+_08100160: .4byte gTasks
+_08100164: .4byte gUnknown_020391A6
+_08100168: .4byte gUnknown_081A2F7B
+_0810016C: .4byte gSprites
+_08100170: .4byte gUnknown_020391A8
+ thumb_func_end sub_81000C4
+
+ thumb_func_start sub_8100174
+sub_8100174: @ 8100174
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r3, 0
+ ldr r0, _081001B0 @ =0x0201f000
+ ldrb r1, [r0, 0x8]
+ adds r5, r0, 0
+ cmp r3, r1
+ bcs _0810019A
+ ldr r4, [r5]
+_08100188:
+ adds r2, r4, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _081001B8
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08100188
+_0810019A:
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ bne _08100204
+ movs r3, 0
+ ldr r0, _081001B4 @ =gUnknown_020388D6
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _081001F0
+ b _08100210
+ .align 2, 0
+_081001B0: .4byte 0x0201f000
+_081001B4: .4byte gUnknown_020388D6
+_081001B8:
+ ldr r0, _081001E4 @ =gUnknown_020388F5
+ ldrb r1, [r0]
+ ldr r0, _081001E8 @ =gUnknown_020388D0
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, [r5, 0x4]
+ adds r2, r3
+ ldr r0, _081001EC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ subs r0, 0x7
+ lsls r0, 4
+ ldrb r1, [r1, 0xA]
+ subs r1, 0x7
+ adds r0, r1
+ strb r0, [r2]
+ b _0810019A
+ .align 2, 0
+_081001E4: .4byte gUnknown_020388F5
+_081001E8: .4byte gUnknown_020388D0
+_081001EC: .4byte gTasks
+_081001F0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081001F0
+ b _08100236
+_08100204:
+ movs r3, 0
+ ldr r0, _0810021C @ =gUnknown_020388E6
+ ldrb r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _08100224
+_08100210:
+ ldr r0, _08100220 @ =gUnknown_020388F5
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _0810023E
+ .align 2, 0
+_0810021C: .4byte gUnknown_020388E6
+_08100220: .4byte gUnknown_020388F5
+_08100224:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xB
+ bhi _0810023E
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08100224
+_08100236:
+ ldr r0, _08100244 @ =gUnknown_020388F5
+ ldrb r0, [r0]
+ adds r0, 0x1
+ strb r0, [r1]
+_0810023E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100244: .4byte gUnknown_020388F5
+ thumb_func_end sub_8100174
+
+ thumb_func_start sub_8100248
+sub_8100248: @ 8100248
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08100268 @ =gUnknown_083EC964
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100268: .4byte gUnknown_083EC964
+ thumb_func_end sub_8100248
+
+ thumb_func_start sub_810026C
+sub_810026C: @ 810026C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_810028C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810026C
+
+ thumb_func_start sub_810028C
+sub_810028C: @ 810028C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081002B4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081002B8 @ =c1_overworld_prev_quest
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081002B4: .4byte gTasks
+_081002B8: .4byte c1_overworld_prev_quest
+ thumb_func_end sub_810028C
+
+ thumb_func_start c1_overworld_prev_quest
+c1_overworld_prev_quest: @ 81002BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _081002DC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081002E0
+ cmp r0, 0x1
+ beq _08100300
+ b _0810031C
+ .align 2, 0
+_081002DC: .4byte gTasks
+_081002E0:
+ bl ScriptContext2_Enable
+ ldr r0, _081002FC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810031C
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _0810031C
+ .align 2, 0
+_081002FC: .4byte gPaletteFade
+_08100300:
+ bl sub_81016F4
+ ldr r0, _08100324 @ =0x00000bb8
+ bl FreeSpritePaletteByTag
+ ldr r1, _08100328 @ =gUnknown_0300485C
+ ldr r0, _0810032C @ =sub_8100364
+ str r0, [r1]
+ ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0810031C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100324: .4byte 0x00000bb8
+_08100328: .4byte gUnknown_0300485C
+_0810032C: .4byte sub_8100364
+_08100330: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end c1_overworld_prev_quest
+
+ thumb_func_start sub_8100334
+sub_8100334: @ 8100334
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100354
+ ldr r0, _0810035C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08100360 @ =sub_80FE948
+ str r0, [r1]
+_08100354:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810035C: .4byte gTasks
+_08100360: .4byte sub_80FE948
+ thumb_func_end sub_8100334
+
+ thumb_func_start sub_8100364
+sub_8100364: @ 8100364
+ push {lr}
+ bl ScriptContext2_Enable
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl pal_fill_black
+ ldr r0, _08100388 @ =sub_8100334
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80FE7EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100388: .4byte sub_8100334
+ thumb_func_end sub_8100364
+
+ thumb_func_start sub_810038C
+sub_810038C: @ 810038C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _081003BC @ =gTasks + 0x8
+ adds r2, r1, r0
+ ldr r0, _081003C0 @ =gUnknown_020391AA
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081003C4
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ subs r0, r1
+ subs r0, 0x6
+ cmp r0, 0
+ bge _081003C4
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ b _081003DE
+ .align 2, 0
+_081003BC: .4byte gTasks + 0x8
+_081003C0: .4byte gUnknown_020391AA
+_081003C4:
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bne _081003E8
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ subs r1, 0x7
+ ldr r0, _081003E4 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r1, r0
+ blt _081003E8
+ ldrh r0, [r2, 0x2]
+ subs r0, 0x1
+_081003DE:
+ strh r0, [r2, 0x2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_081003E4: .4byte gMapHeader
+_081003E8:
+ ldrb r0, [r3]
+ cmp r0, 0x3
+ bne _081003FE
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, 0x7
+ cmp r0, 0
+ bge _081003FE
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _0810041E
+_081003FE:
+ ldrb r0, [r3]
+ cmp r0, 0x4
+ bne _08100428
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ adds r1, r0
+ subs r1, 0x8
+ ldr r0, _08100424 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _08100428
+ ldrh r0, [r2]
+ subs r0, 0x1
+_0810041E:
+ strh r0, [r2]
+ movs r0, 0
+ b _0810042A
+ .align 2, 0
+_08100424: .4byte gMapHeader
+_08100428:
+ movs r0, 0x1
+_0810042A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810038C
+
+ thumb_func_start sub_8100430
+sub_8100430: @ 8100430
+ push {lr}
+ ldr r0, _08100450 @ =gMain
+ ldrh r0, [r0, 0x2C]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ beq _08100454
+ cmp r1, 0x80
+ beq _08100454
+ cmp r1, 0x20
+ beq _08100454
+ cmp r1, 0x10
+ beq _08100454
+ movs r0, 0
+ b _08100456
+ .align 2, 0
+_08100450: .4byte gMain
+_08100454:
+ movs r0, 0x1
+_08100456:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100430
+
+ thumb_func_start sub_810045C
+sub_810045C: @ 810045C
+ push {r4,lr}
+ ldr r1, _08100488 @ =gUnknown_020391AA
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0810048C @ =gSprites
+ ldr r3, _08100490 @ =gUnknown_020391A8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r2, 0
+ strh r2, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100488: .4byte gUnknown_020391AA
+_0810048C: .4byte gSprites
+_08100490: .4byte gUnknown_020391A8
+ thumb_func_end sub_810045C
+
+ thumb_func_start sub_8100494
+sub_8100494: @ 8100494
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _081004D0 @ =gSprites
+ ldr r3, _081004D4 @ =gUnknown_020391A8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x36
+ ldrsh r6, [r0, r1]
+ cmp r6, 0
+ beq _081004B2
+ b _081005DE
+_081004B2:
+ ldr r1, _081004D8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _081004E0
+ ldr r0, _081004DC @ =gUnknown_083EC96C
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ b _081004EE
+ .align 2, 0
+_081004D0: .4byte gSprites
+_081004D4: .4byte gUnknown_020391A8
+_081004D8: .4byte gTasks
+_081004DC: .4byte gUnknown_083EC96C
+_081004E0:
+ cmp r0, 0x2
+ bne _08100500
+ ldr r0, _081004FC @ =gUnknown_083EC96C
+ movs r3, 0x20
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ adds r0, 0x4
+_081004EE:
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _0810063C
+ .align 2, 0
+_081004FC: .4byte gUnknown_083EC96C
+_08100500:
+ ldr r7, _08100644 @ =gMain
+ ldrh r1, [r7, 0x2C]
+ movs r0, 0xF0
+ mov r12, r0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _08100534
+ ldr r1, _08100648 @ =gUnknown_020391AA
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C @ =0x0000fffe
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+_08100534:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x80
+ bne _08100564
+ ldr r1, _08100648 @ =gUnknown_020391AA
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x34]
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+_08100564:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x20
+ bne _08100594
+ ldr r1, _08100648 @ =gUnknown_020391AA
+ movs r0, 0x3
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0810064C @ =0x0000fffe
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ subs r0, 0x1
+ strh r0, [r2, 0x8]
+_08100594:
+ ldrh r1, [r7, 0x2C]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0x10
+ bne _081005C4
+ ldr r1, _08100648 @ =gUnknown_020391AA
+ movs r0, 0x4
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x34]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_081005C4:
+ bl sub_8100430
+ lsls r0, 24
+ cmp r0, 0
+ beq _081005DA
+ adds r0, r4, 0
+ bl sub_810038C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005DE
+_081005DA:
+ bl sub_810045C
+_081005DE:
+ ldr r0, _08100648 @ =gUnknown_020391AA
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810060C
+ ldr r3, _08100650 @ =gSprites
+ ldr r2, _08100654 @ =gUnknown_020391A8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x36]
+ adds r1, 0x1
+ strh r1, [r0, 0x36]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x36]
+ movs r0, 0x7
+ ands r0, r2
+ strh r0, [r1, 0x36]
+_0810060C:
+ ldr r0, _08100658 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x1C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0810063C
+ ldr r4, _08100644 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810062E
+ strh r3, [r2, 0x1C]
+_0810062E:
+ ldrh r1, [r4, 0x2E]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810063C
+ strh r3, [r2, 0x1C]
+_0810063C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100644: .4byte gMain
+_08100648: .4byte gUnknown_020391AA
+_0810064C: .4byte 0x0000fffe
+_08100650: .4byte gSprites
+_08100654: .4byte gUnknown_020391A8
+_08100658: .4byte gTasks
+ thumb_func_end sub_8100494
+
+ thumb_func_start sub_810065C
+sub_810065C: @ 810065C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _08100698 @ =gSprites
+ ldr r0, _0810069C @ =gUnknown_020391A8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0
+ strh r2, [r0, 0x3C]
+ ldr r1, _081006A0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1C]
+ ldr r1, _081006A4 @ =sub_8100494
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100698: .4byte gSprites
+_0810069C: .4byte gUnknown_020391A8
+_081006A0: .4byte gTasks
+_081006A4: .4byte sub_8100494
+ thumb_func_end sub_810065C
+
+ thumb_func_start sub_81006A8
+sub_81006A8: @ 81006A8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081006CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081006C2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081006C8
+_081006C2:
+ adds r0, r2, 0
+ bl sub_810065C
+_081006C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081006CC: .4byte gMain
+ thumb_func_end sub_81006A8
+
+ thumb_func_start sub_81006D0
+sub_81006D0: @ 81006D0
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r1, 0
+ adds r2, r3, 0
+ adds r2, 0x84
+ movs r5, 0
+ ldr r4, _08100708 @ =0x000007ff
+_081006DE:
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bls _081006DE
+ movs r1, 0
+ adds r2, r3, 0x4
+ movs r3, 0
+_081006F2:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081006F2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100708: .4byte 0x000007ff
+ thumb_func_end sub_81006D0
+
+ thumb_func_start sub_810070C
+sub_810070C: @ 810070C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ movs r2, 0
+ ldr r0, _0810073C @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ lsrs r4, r1, 12
+ ldr r3, [r0, 0x8]
+_0810071E:
+ lsls r1, r2, 1
+ adds r1, r5
+ adds r0, r4, r2
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0810071E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810073C: .4byte gMapHeader
+ thumb_func_end sub_810070C
+
+ thumb_func_start sub_8100740
+sub_8100740: @ 8100740
+ push {r4-r7,lr}
+ sub sp, 0x20
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsrs r3, r1, 26
+ cmp r2, 0
+ beq _08100754
+ ldr r0, _08100784 @ =0x000003ff
+ ands r2, r0
+_08100754:
+ movs r5, 0
+ ldr r0, _08100788 @ =gMapHeader
+ ldr r6, [r0]
+ lsls r4, r2, 5
+_0810075C:
+ mov r0, sp
+ adds r2, r0, r5
+ ldr r0, [r6, 0x10]
+ ldr r0, [r0, 0x4]
+ adds r1, r4, r5
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810075C
+ cmp r3, 0x1
+ beq _081007AE
+ cmp r3, 0x1
+ bgt _0810078C
+ cmp r3, 0
+ beq _08100796
+ b _0810086A
+ .align 2, 0
+_08100784: .4byte 0x000003ff
+_08100788: .4byte gMapHeader
+_0810078C:
+ cmp r3, 0x2
+ beq _0810080E
+ cmp r3, 0x3
+ beq _08100846
+ b _0810086A
+_08100796:
+ movs r5, 0
+_08100798:
+ adds r1, r7, r5
+ mov r2, sp
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _08100798
+ b _0810086A
+_081007AE:
+ movs r5, 0
+ movs r6, 0xF
+_081007B2:
+ lsls r4, r5, 2
+ adds r4, r7
+ adds r5, 0x1
+ lsls r3, r5, 2
+ subs r0, r3, 0x1
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4]
+ subs r0, r3, 0x2
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x1]
+ subs r0, r3, 0x3
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x2]
+ subs r3, 0x4
+ mov r1, sp
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r4, 0x3]
+ lsls r5, 16
+ lsrs r5, 16
+ cmp r5, 0x7
+ bls _081007B2
+ b _0810086A
+_0810080E:
+ movs r5, 0
+ movs r3, 0x7
+_08100812:
+ lsls r2, r5, 2
+ adds r2, r7
+ subs r1, r3, r5
+ lsls r1, 2
+ mov r4, sp
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r1, 0x1
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ adds r0, r1, 0x2
+ add r0, sp
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ adds r1, 0x3
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _08100812
+ b _0810086A
+_08100846:
+ movs r5, 0
+ movs r4, 0x1F
+ movs r6, 0xF
+_0810084C:
+ adds r3, r7, r5
+ subs r0, r4, r5
+ add r0, sp
+ ldrb r2, [r0]
+ lsrs r1, r2, 4
+ adds r0, r6, 0
+ ands r0, r2
+ lsls r0, 4
+ adds r1, r0
+ strb r1, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1F
+ bls _0810084C
+_0810086A:
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100740
+
+ thumb_func_start sub_8100874
+sub_8100874: @ 8100874
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_0810087A:
+ lsls r0, r4, 5
+ adds r0, 0x84
+ adds r0, r5, r0
+ lsls r2, r4, 1
+ adds r1, r5, 0x4
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_8100740
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _0810087A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100874
+
+ thumb_func_start sub_810089C
+sub_810089C: @ 810089C
+ lsls r0, 16
+ ldr r1, _081008B4 @ =gMapHeader
+ ldr r1, [r1]
+ ldr r1, [r1, 0x14]
+ ldr r1, [r1, 0xC]
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _081008B8 @ =0x00000fff
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_081008B4: .4byte gMapHeader
+_081008B8: .4byte 0x00000fff
+ thumb_func_end sub_810089C
+
+ thumb_func_start sub_81008BC
+sub_81008BC: @ 81008BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ movs r6, 0
+ ldr r1, _0810092C @ =gUnknown_083EC860
+ lsls r5, r0, 4
+ adds r0, r5, r1
+ ldrb r0, [r0, 0xC]
+ cmp r6, r0
+ bcs _08100920
+ adds r7, r1, 0
+_081008D8:
+ mov r4, r8
+ ldm r4!, {r1}
+ adds r0, r7, 0x4
+ adds r0, r5, r0
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ ldr r1, [r1, 0x1C]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r5, r1
+ ldr r1, [r1]
+ adds r1, r6
+ lsls r0, 3
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_810089C
+ adds r2, r5, r7
+ ldr r1, [r2]
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r4, r1
+ strh r0, [r4]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0xC]
+ cmp r6, r2
+ bcc _081008D8
+_08100920:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810092C: .4byte gUnknown_083EC860
+ thumb_func_end sub_81008BC
+
+ thumb_func_start sub_8100930
+sub_8100930: @ 8100930
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r3, _08100998 @ =gUnknown_020391AC
+ movs r1, 0
+ strb r1, [r3]
+ ldrb r2, [r3, 0x1]
+ subs r1, 0x4
+ ands r1, r2
+ movs r4, 0xD
+ negs r4, r4
+ ands r1, r4
+ movs r2, 0x11
+ negs r2, r2
+ ands r1, r2
+ subs r2, 0x10
+ ands r1, r2
+ strb r1, [r3, 0x1]
+ ldr r1, _0810099C @ =gUnknown_083EC900
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r5, 0x3F
+ lsls r1, 6
+ strb r1, [r3, 0x1]
+ ldrh r2, [r3, 0x2]
+ ldr r1, _081009A0 @ =0xfffffe00
+ ands r1, r2
+ strh r1, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r3, 0x3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 6
+ ands r5, r1
+ orrs r5, r0
+ strb r5, [r3, 0x3]
+ ldrh r1, [r3, 0x4]
+ ldr r0, _081009A4 @ =0xfffffc00
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ ands r4, r0
+ movs r0, 0x4
+ orrs r4, r0
+ movs r0, 0xF
+ ands r4, r0
+ strb r4, [r3, 0x5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100998: .4byte gUnknown_020391AC
+_0810099C: .4byte gUnknown_083EC900
+_081009A0: .4byte 0xfffffe00
+_081009A4: .4byte 0xfffffc00
+ thumb_func_end sub_8100930
+
+ thumb_func_start sub_81009A8
+sub_81009A8: @ 81009A8
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ strh r1, [r0, 0x3A]
+ strh r1, [r0, 0x3C]
+ ldr r1, _081009BC @ =sub_81009C0
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_081009BC: .4byte sub_81009C0
+ thumb_func_end sub_81009A8
+
+ thumb_func_start sub_81009C0
+sub_81009C0: @ 81009C0
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081009FA
+ movs r1, 0x3A
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xE
+ bgt _081009E2
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _081009EC
+_081009E2:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+_081009EC:
+ strb r0, [r3]
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x3A]
+ b _08100A06
+_081009FA:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08100A06:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81009C0
+
+ thumb_func_start sub_8100A0C
+sub_8100A0C: @ 8100A0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8100D38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100A44
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08100A3C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08100A40 @ =sub_8100E70
+ str r1, [r0]
+ b _08100A50
+ .align 2, 0
+_08100A3C: .4byte gTasks
+_08100A40: .4byte sub_8100E70
+_08100A44:
+ ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse
+ ldr r2, _08100A5C @ =sub_80FE428
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100A50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100A58: .4byte gSecretBaseText_NoDecorInUse
+_08100A5C: .4byte sub_80FE428
+ thumb_func_end sub_8100A0C
+
+ thumb_func_start sub_8100A60
+sub_8100A60: @ 8100A60
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08100A78 @ =0x0201f000
+ ldr r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3, 0x4]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08100A78: .4byte 0x0201f000
+ thumb_func_end sub_8100A60
+
+ thumb_func_start sub_8100A7C
+sub_8100A7C: @ 8100A7C
+ push {r4-r6,lr}
+ ldr r6, _08100A9C @ =gUnknown_0202E8CE
+ movs r0, 0
+ strh r0, [r6]
+ ldr r2, _08100AA0 @ =gScriptResult
+ strh r0, [r2]
+ ldr r4, _08100AA4 @ =gUnknown_0202E8CC
+ ldr r1, _08100AA8 @ =gUnknown_02039234
+ ldrh r0, [r4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08100AB8
+ movs r0, 0x1
+ strh r0, [r2]
+ b _08100B0A
+ .align 2, 0
+_08100A9C: .4byte gUnknown_0202E8CE
+_08100AA0: .4byte gScriptResult
+_08100AA4: .4byte gUnknown_0202E8CC
+_08100AA8: .4byte gUnknown_02039234
+_08100AAC:
+ ldr r1, _08100AB4 @ =gUnknown_0202E8D0
+ ldrb r0, [r2]
+ strh r0, [r1]
+ b _08100B0A
+ .align 2, 0
+_08100AB4: .4byte gUnknown_0202E8D0
+_08100AB8:
+ ldr r3, _08100B10 @ =gDecorations
+ ldr r2, _08100B14 @ =0x0201f000
+ ldr r1, _08100B18 @ =gUnknown_020391B4
+ ldrh r0, [r4]
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ bne _08100B0A
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6]
+ ldrb r0, [r4]
+ bl sub_8100A60
+ movs r1, 0
+ ldr r0, _08100B1C @ =gMapHeader
+ ldr r0, [r0, 0x4]
+ ldrb r2, [r0]
+ cmp r1, r2
+ bcs _08100B0A
+ ldr r5, [r0, 0x4]
+ ldrh r4, [r6]
+ adds r3, r2, 0
+_08100AF2:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x14]
+ cmp r0, r4
+ beq _08100AAC
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bcc _08100AF2
+_08100B0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100B10: .4byte gDecorations
+_08100B14: .4byte 0x0201f000
+_08100B18: .4byte gUnknown_020391B4
+_08100B1C: .4byte gMapHeader
+ thumb_func_end sub_8100A7C
+
+ thumb_func_start sub_8100B20
+sub_8100B20: @ 8100B20
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _08100B4C @ =gMapHeader
+ ldr r0, [r0, 0x4]
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcs _08100B64
+ adds r3, r0, 0
+ ldr r5, [r3, 0x4]
+ ldr r0, _08100B50 @ =gUnknown_0202E8CC
+ ldrh r4, [r0]
+ ldr r6, _08100B54 @ =gUnknown_0202E8CE
+_08100B38:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrh r0, [r1, 0x14]
+ cmp r0, r4
+ bne _08100B58
+ ldrb r0, [r1]
+ strh r0, [r6]
+ b _08100B64
+ .align 2, 0
+_08100B4C: .4byte gMapHeader
+_08100B50: .4byte gUnknown_0202E8CC
+_08100B54: .4byte gUnknown_0202E8CE
+_08100B58:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3]
+ cmp r2, r0
+ bcc _08100B38
+_08100B64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100B20
+
+ thumb_func_start sub_8100B6C
+sub_8100B6C: @ 8100B6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r7, 0
+ b _08100C64
+_08100B7C:
+ lsls r3, r7, 3
+ ldr r0, _08100BE0 @ =gUnknown_020391B4
+ adds r4, r3, r0
+ ldrb r1, [r4]
+ ldr r2, _08100BE4 @ =0x0201f000
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 5
+ ldr r5, _08100BE8 @ =gDecorations
+ adds r0, r5
+ ldrb r2, [r0, 0x11]
+ ldr r5, _08100BE4 @ =0x0201f000
+ ldr r0, [r5, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+ mov r9, r1
+ movs r5, 0xF
+ mov r10, r5
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ adds r5, r3, 0
+ adds r3, r7, 0x1
+ str r3, [sp]
+ cmp r2, 0x4
+ beq _08100C5E
+ cmp r6, 0x29
+ bne _08100BD0
+ mov r0, r9
+ adds r0, 0x7
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _08100BD0
+ ldrb r0, [r4, 0x2]
+ adds r0, 0x1
+ strb r0, [r4, 0x2]
+_08100BD0:
+ movs r6, 0
+ ldr r1, _08100BE0 @ =gUnknown_020391B4
+ adds r2, r5, 0
+ adds r0, r5, r1
+ adds r3, r7, 0x1
+ str r3, [sp]
+ b _08100C4E
+ .align 2, 0
+_08100BE0: .4byte gUnknown_020391B4
+_08100BE4: .4byte 0x0201f000
+_08100BE8: .4byte gDecorations
+_08100BEC:
+ movs r4, 0
+ adds r0, r2, r1
+ adds r7, r6, 0x1
+ str r7, [sp, 0x4]
+ ldrb r0, [r0, 0x1]
+ cmp r4, r0
+ bcs _08100C42
+ ldr r0, _08100C7C @ =gUnknown_020391B4
+ adds r0, r5
+ mov r8, r0
+ subs r1, r6, 0x7
+ str r1, [sp, 0x8]
+_08100C04:
+ adds r0, r4, 0x7
+ add r0, r9
+ ldr r1, _08100C80 @ =gMapHeader
+ ldr r3, [r1]
+ mov r7, r10
+ subs r2, r7, r6
+ ldr r1, [r3]
+ muls r2, r1
+ mov r7, r9
+ adds r1, r7, r4
+ adds r1, r2
+ ldr r2, [r3, 0xC]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r3, 0xC0
+ lsls r3, 6
+ adds r2, r3, 0
+ orrs r2, r1
+ mov r7, r10
+ ldr r3, [sp, 0x8]
+ subs r1, r7, r3
+ bl MapGridSetMetatileEntryAt
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r7, r8
+ ldrb r7, [r7, 0x1]
+ cmp r4, r7
+ bcc _08100C04
+_08100C42:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r1, _08100C7C @ =gUnknown_020391B4
+ adds r2, r5, 0
+ adds r0, r5, r1
+_08100C4E:
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bcc _08100BEC
+ ldr r2, _08100C7C @ =gUnknown_020391B4
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ bl sub_8100A60
+_08100C5E:
+ ldr r3, [sp]
+ lsls r0, r3, 24
+ lsrs r7, r0, 24
+_08100C64:
+ ldr r0, _08100C84 @ =gUnknown_02039234
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08100B7C
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100C7C: .4byte gUnknown_020391B4
+_08100C80: .4byte gMapHeader
+_08100C84: .4byte gUnknown_02039234
+ thumb_func_end sub_8100B6C
+
+ thumb_func_start sub_8100C88
+sub_8100C88: @ 8100C88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08100CAC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08100CC4
+ cmp r0, 0x1
+ bgt _08100CB0
+ cmp r0, 0
+ beq _08100CBA
+ b _08100D24
+ .align 2, 0
+_08100CAC: .4byte gTasks
+_08100CB0:
+ cmp r0, 0x2
+ beq _08100CF4
+ cmp r0, 0x3
+ beq _08100D08
+ b _08100D24
+_08100CBA:
+ bl sub_8100B6C
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100CC4:
+ ldr r0, _08100CEC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100D24
+ bl DrawWholeMapView
+ ldr r0, _08100CF0 @ =gUnknown_081A2F8A
+ bl ScriptContext1_SetupScript
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ strh r0, [r5, 0xC]
+ b _08100D24
+ .align 2, 0
+_08100CEC: .4byte gPaletteFade
+_08100CF0: .4byte gUnknown_081A2F8A
+_08100CF4:
+ bl ScriptContext2_Enable
+ adds r0, r4, 0
+ bl sub_80FED90
+ bl pal_fill_black
+ movs r0, 0x3
+ strh r0, [r5, 0xC]
+ b _08100D24
+_08100D08:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100D24
+ ldr r0, _08100D2C @ =0x0000ffff
+ strh r0, [r5, 0x22]
+ ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned
+ ldr r2, _08100D34 @ =sub_81010F0
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08100D24:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100D2C: .4byte 0x0000ffff
+_08100D30: .4byte gSecretBaseText_DecorReturned
+_08100D34: .4byte sub_81010F0
+ thumb_func_end sub_8100C88
+
+ thumb_func_start sub_8100D38
+sub_8100D38: @ 8100D38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08100D68 @ =0x0201f000
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcs _08100D7C
+ adds r5, r4, 0
+ ldr r1, _08100D6C @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+_08100D56:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08100D70
+ strh r2, [r1, 0x22]
+ movs r0, 0x1
+ b _08100D7E
+ .align 2, 0
+_08100D68: .4byte 0x0201f000
+_08100D6C: .4byte gTasks
+_08100D70:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r4, 0x8]
+ cmp r2, r0
+ bcc _08100D56
+_08100D7C:
+ movs r0, 0
+_08100D7E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100D38
+
+ thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
+SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ bl player_get_direction_lower_nybble
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r3, _08100DD8 @ =gUnknown_020391A8
+ ldr r2, _08100DDC @ =gSprites
+ ldr r4, _08100DE0 @ =gUnknown_03004880
+ ldr r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r3]
+ bl sub_81016C8
+ ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r4, 0x4]
+ ldr r0, _08100DE8 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08100DF0
+ ldr r1, _08100DEC @ =SpriteCallbackDummy
+ str r0, [sp]
+ movs r0, 0xC1
+ b _08100DF8
+ .align 2, 0
+_08100DD8: .4byte gUnknown_020391A8
+_08100DDC: .4byte gSprites
+_08100DE0: .4byte gUnknown_03004880
+_08100DE4: .4byte gSpriteTemplate_83ECA88
+_08100DE8: .4byte gSaveBlock2
+_08100DEC: .4byte SpriteCallbackDummy
+_08100DF0:
+ ldr r1, _08100E5C @ =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC2
+_08100DF8:
+ movs r2, 0x88
+ movs r3, 0x48
+ bl AddPseudoFieldObject
+ ldr r1, _08100E60 @ =gUnknown_020391A9
+ strb r0, [r1]
+ ldr r6, _08100E64 @ =gSprites
+ ldr r0, _08100E60 @ =gUnknown_020391A9
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r5, _08100E68 @ =gUnknown_020391A8
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r0, _08100E6C @ =gUnknown_03004880
+ ldr r0, [r0, 0x4]
+ strb r0, [r5]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r0, 0x5]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100E5C: .4byte SpriteCallbackDummy
+_08100E60: .4byte gUnknown_020391A9
+_08100E64: .4byte gSprites
+_08100E68: .4byte gUnknown_020391A8
+_08100E6C: .4byte gUnknown_03004880
+ thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
+
+ thumb_func_start sub_8100E70
+sub_8100E70: @ 8100E70
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08100E94 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08100EC4
+ cmp r0, 0x1
+ bgt _08100E98
+ cmp r0, 0
+ beq _08100E9E
+ b _08100EE6
+ .align 2, 0
+_08100E94: .4byte gTasks + 0x8
+_08100E98:
+ cmp r0, 0x2
+ beq _08100ED2
+ b _08100EE6
+_08100E9E:
+ ldr r0, _08100EC0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08100EE6
+ adds r0, r5, 0
+ bl sub_80FF0E0
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xA]
+ bl sub_8072DEC
+ b _08100EE6
+ .align 2, 0
+_08100EC0: .4byte gPaletteFade
+_08100EC4:
+ bl SetUpPuttingAwayDecorationPlayerAvatar
+ bl pal_fill_black
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ b _08100EE6
+_08100ED2:
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08100EE6
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl sub_8100EEC
+_08100EE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E70
+
+ thumb_func_start sub_8100EEC
+sub_8100EEC: @ 8100EEC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r4, _08100F70 @ =gSprites
+ ldr r3, _08100F74 @ =gUnknown_020391A8
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ strh r6, [r0, 0x3C]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08100F78 @ =sub_8101698
+ str r1, [r0]
+ ldr r2, _08100F7C @ =gUnknown_020391A9
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x88
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x48
+ strh r1, [r0, 0x22]
+ ldr r1, _08100F80 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x1C]
+ ldr r1, _08100F84 @ =sub_8100494
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100F70: .4byte gSprites
+_08100F74: .4byte gUnknown_020391A8
+_08100F78: .4byte sub_8101698
+_08100F7C: .4byte gUnknown_020391A9
+_08100F80: .4byte gTasks
+_08100F84: .4byte sub_8100494
+ thumb_func_end sub_8100EEC
+
+ thumb_func_start sub_8100F88
+sub_8100F88: @ 8100F88
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08100FB0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ adds r0, r4, 0
+ bl sub_8101024
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100FB0: .4byte gTasks
+ thumb_func_end sub_8100F88
+
+ thumb_func_start sub_8100FB4
+sub_8100FB4: @ 8100FB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810100C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x1C]
+ bl sub_810045C
+ ldr r3, _08101010 @ =gSprites
+ ldr r5, _08101014 @ =gUnknown_020391A8
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _08101018 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor
+ ldr r2, _08101020 @ =sub_810156C
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810100C: .4byte gTasks
+_08101010: .4byte gSprites
+_08101014: .4byte gUnknown_020391A8
+_08101018: .4byte SpriteCallbackDummy
+_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
+_08101020: .4byte sub_810156C
+ thumb_func_end sub_8100FB4
+
+ thumb_func_start sub_8101024
+sub_8101024: @ 8101024
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8101460
+ ldr r0, _08101040 @ =gUnknown_02039234
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810104C
+ ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor
+ ldr r2, _08101048 @ =sub_8101518
+ b _081010B0
+ .align 2, 0
+_08101040: .4byte gUnknown_02039234
+_08101044: .4byte gSecretBaseText_ReturnDecor
+_08101048: .4byte sub_8101518
+_0810104C:
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ ldr r0, _081010BC @ =gTasks + 0x8
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057238
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101082
+ adds r0, r4, 0
+ bl sub_805738C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081010D4
+_08101082:
+ ldr r3, _081010C0 @ =gSprites
+ ldr r4, _081010C4 @ =gUnknown_020391A8
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, _081010C8 @ =SpriteCallbackDummy
+ str r1, [r0]
+ ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor
+ ldr r2, _081010D0 @ =sub_810156C
+_081010B0:
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _081010E0
+ .align 2, 0
+_081010BC: .4byte gTasks + 0x8
+_081010C0: .4byte gSprites
+_081010C4: .4byte gUnknown_020391A8
+_081010C8: .4byte SpriteCallbackDummy
+_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
+_081010D0: .4byte sub_810156C
+_081010D4:
+ ldr r1, _081010E8 @ =gSecretBaseText_NoDecor
+ ldr r2, _081010EC @ =sub_81010F0
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_081010E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081010E8: .4byte gSecretBaseText_NoDecor
+_081010EC: .4byte sub_81010F0
+ thumb_func_end sub_8101024
+
+ thumb_func_start sub_81010F0
+sub_81010F0: @ 81010F0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08101114 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810110A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101110
+_0810110A:
+ adds r0, r2, 0
+ bl sub_8100EEC
+_08101110:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101114: .4byte gMain
+ thumb_func_end sub_81010F0
+
+ thumb_func_start sub_8101118
+sub_8101118: @ 8101118
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ ldr r1, _08101130 @ =gDecorations
+ lsrs r0, 19
+ adds r0, r1
+ ldrb r1, [r0, 0x12]
+ cmp r1, 0
+ bne _08101134
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ b _08101192
+ .align 2, 0
+_08101130: .4byte gDecorations
+_08101134:
+ cmp r1, 0x1
+ bne _08101140
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ b _08101194
+_08101140:
+ cmp r1, 0x2
+ bne _0810114C
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ movs r0, 0x1
+ b _08101192
+_0810114C:
+ cmp r1, 0x3
+ bne _08101154
+ movs r0, 0x4
+ b _0810118E
+_08101154:
+ cmp r1, 0x4
+ bne _0810115E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ b _08101192
+_0810115E:
+ cmp r1, 0x5
+ bne _08101166
+ movs r0, 0x1
+ b _0810118E
+_08101166:
+ cmp r1, 0x6
+ bne _08101172
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r0, 0x3
+ b _08101192
+_08101172:
+ cmp r1, 0x7
+ bne _0810117E
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ b _08101192
+_0810117E:
+ cmp r1, 0x8
+ bne _08101188
+ movs r0, 0x3
+ strb r0, [r2, 0x1]
+ b _08101192
+_08101188:
+ cmp r1, 0x9
+ bne _08101194
+ movs r0, 0x3
+_0810118E:
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+_08101192:
+ strb r0, [r2, 0x2]
+_08101194:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101118
+
+ thumb_func_start sub_8101198
+sub_8101198: @ 8101198
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r5, _081011F0 @ =gSprites
+ ldr r6, _081011F4 @ =gUnknown_020391A8
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ adds r2, 0x3E
+ ldrb r3, [r2]
+ movs r4, 0x4
+ orrs r3, r4
+ strb r3, [r2]
+ ldrb r3, [r6]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r3, r5, 0
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r3, _081011F8 @ =SpriteCallbackDummy
+ str r3, [r2]
+ ldr r4, _081011FC @ =gUnknown_020391A9
+ ldrb r3, [r4]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r5
+ lsrs r0, 20
+ adds r0, 0x88
+ strh r0, [r2, 0x20]
+ ldrb r2, [r4]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ lsrs r1, 20
+ adds r1, 0x48
+ strh r1, [r0, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081011F0: .4byte gSprites
+_081011F4: .4byte gUnknown_020391A8
+_081011F8: .4byte SpriteCallbackDummy
+_081011FC: .4byte gUnknown_020391A9
+ thumb_func_end sub_8101198
+
+ thumb_func_start sub_8101200
+sub_8101200: @ 8101200
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _0810128C @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0x8]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r2, 0xA]
+ subs r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _08101290 @ =0x0201f000
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r4, r0, 4
+ movs r5, 0xF
+ ands r5, r0
+ ldr r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0810125A
+ adds r0, r4, 0x7
+ adds r1, r5, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0xA3
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810125A
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+_0810125A:
+ cmp r7, r4
+ bcc _08101294
+ ldrb r1, [r6, 0x1]
+ adds r0, r4, r1
+ cmp r7, r0
+ bge _08101294
+ ldrb r0, [r6, 0x2]
+ subs r0, r5, r0
+ cmp r8, r0
+ ble _08101294
+ cmp r8, r5
+ bhi _08101294
+ subs r0, r7, r4
+ adds r0, 0x1
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ subs r1, r5, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8101198
+ movs r0, 0x1
+ b _08101296
+ .align 2, 0
+_0810128C: .4byte gTasks
+_08101290: .4byte 0x0201f000
+_08101294:
+ movs r0, 0
+_08101296:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101200
+
+ thumb_func_start sub_81012A0
+sub_81012A0: @ 81012A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0810130C @ =0x0201f000
+ ldr r3, _08101310 @ =gUnknown_020391B4
+ ldr r0, _08101314 @ =gUnknown_02039234
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r1, [r0]
+ ldr r0, [r2, 0x4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r7, r0, 4
+ movs r6, 0xF
+ ands r6, r0
+ movs r5, 0
+ ldr r0, _08101318 @ =gSaveBlock1
+ mov r8, r0
+ mov r9, r3
+_081012CA:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ ldr r2, _0810131C @ =0x00000c24
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r7
+ bne _08101328
+ ldr r2, _08101320 @ =0x00000c26
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r6
+ bne _08101328
+ ldr r0, _08101324 @ =0x00000c34
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101328
+ ldr r0, _08101314 @ =gUnknown_02039234
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r9
+ ldrh r1, [r4]
+ strh r1, [r0, 0x4]
+ b _08101332
+ .align 2, 0
+_0810130C: .4byte 0x0201f000
+_08101310: .4byte gUnknown_020391B4
+_08101314: .4byte gUnknown_02039234
+_08101318: .4byte gSaveBlock1
+_0810131C: .4byte 0x00000c24
+_08101320: .4byte 0x00000c26
+_08101324: .4byte 0x00000c34
+_08101328:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _081012CA
+_08101332:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81012A0
+
+ thumb_func_start sub_8101340
+sub_8101340: @ 8101340
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ b _081013A2
+_0810134A:
+ ldr r0, [r0]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810139C
+ ldr r0, _08101390 @ =gDecorations
+ ldrb r2, [r1]
+ lsls r1, r2, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _0810139C
+ ldr r5, _08101394 @ =gUnknown_020391B4
+ adds r0, r2, 0
+ adds r1, r5, 0
+ bl sub_8101118
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ adds r2, r5, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _0810139C
+ strb r6, [r5]
+ bl sub_81012A0
+ ldr r0, _08101398 @ =gUnknown_02039234
+ strb r4, [r0]
+ movs r0, 0x1
+ b _081013AC
+ .align 2, 0
+_08101390: .4byte gDecorations
+_08101394: .4byte gUnknown_020391B4
+_08101398: .4byte gUnknown_02039234
+_0810139C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081013A2:
+ ldr r0, _081013B4 @ =0x0201f000
+ ldrb r1, [r0, 0x8]
+ cmp r6, r1
+ bcc _0810134A
+ movs r0, 0
+_081013AC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081013B4: .4byte 0x0201f000
+ thumb_func_end sub_8101340
+
+ thumb_func_start sub_81013B8
+sub_81013B8: @ 81013B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r4, 0
+ ldr r7, _08101450 @ =0x0201f000
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcs _0810143E
+ adds r6, r7, 0
+ ldr r5, _08101454 @ =gUnknown_02039234
+_081013EA:
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ ldr r0, [r6, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsrs r3, r0, 4
+ movs r2, 0xF
+ ands r2, r0
+ cmp r1, 0
+ beq _08101432
+ ldr r0, _08101458 @ =gDecorations
+ lsls r1, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ bne _08101432
+ ldr r0, [sp]
+ cmp r0, r3
+ bhi _08101432
+ cmp r10, r2
+ bhi _08101432
+ cmp r9, r3
+ bcc _08101432
+ cmp r8, r2
+ bcc _08101432
+ ldr r0, _0810145C @ =gUnknown_020391B4
+ ldrb r1, [r5]
+ lsls r1, 3
+ adds r1, r0
+ strb r4, [r1]
+ bl sub_81012A0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08101432:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r7, 0x8]
+ cmp r4, r0
+ bcc _081013EA
+_0810143E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101450: .4byte 0x0201f000
+_08101454: .4byte gUnknown_02039234
+_08101458: .4byte gDecorations
+_0810145C: .4byte gUnknown_020391B4
+ thumb_func_end sub_81013B8
+
+ thumb_func_start sub_8101460
+sub_8101460: @ 8101460
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _081014B8 @ =gUnknown_02039234
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r6, 0
+ bl sub_8101340
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08101504
+ movs r5, 0
+ ldr r0, _081014BC @ =0x0201f000
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcs _081014D2
+ adds r7, r4, 0
+_08101486:
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081014C4
+ ldr r4, _081014C0 @ =gUnknown_020391B4
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl sub_8101118
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8101200
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081014C4
+ strb r5, [r4]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _081014D2
+ .align 2, 0
+_081014B8: .4byte gUnknown_02039234
+_081014BC: .4byte 0x0201f000
+_081014C0: .4byte gUnknown_020391B4
+_081014C4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810150C @ =0x0201f000
+ ldrb r1, [r0, 0x8]
+ cmp r5, r1
+ bcc _08101486
+_081014D2:
+ ldr r0, _08101510 @ =gUnknown_02039234
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08101504
+ ldr r0, _0810150C @ =0x0201f000
+ ldr r2, _08101514 @ =gUnknown_020391B4
+ ldrb r1, [r2]
+ ldr r0, [r0, 0x4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ movs r3, 0xF
+ ands r3, r1
+ ldrb r1, [r2, 0x2]
+ subs r1, r3, r1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r2, 0x1]
+ adds r2, r0
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_81013B8
+_08101504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810150C: .4byte 0x0201f000
+_08101510: .4byte gUnknown_02039234
+_08101514: .4byte gUnknown_020391B4
+ thumb_func_end sub_8101460
+
+ thumb_func_start sub_8101518
+sub_8101518: @ 8101518
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101538 @ =gUnknown_083EC9CC
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101538: .4byte gUnknown_083EC9CC
+ thumb_func_end sub_8101518
+
+ thumb_func_start sub_810153C
+sub_810153C: @ 810153C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _08101564 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _08101568 @ =sub_8100C88
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101564: .4byte gTasks
+_08101568: .4byte sub_8100C88
+ thumb_func_end sub_810153C
+
+ thumb_func_start sub_810156C
+sub_810156C: @ 810156C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810158C @ =gUnknown_083EC9D4
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810158C: .4byte gUnknown_083EC9D4
+ thumb_func_end sub_810156C
+
+ thumb_func_start sub_8101590
+sub_8101590: @ 8101590
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_81015B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101590
+
+ thumb_func_start sub_81015B0
+sub_81015B0: @ 81015B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _081015D8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ ldr r1, _081015DC @ =sub_81015E0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081015D8: .4byte gTasks
+_081015DC: .4byte sub_81015E0
+ thumb_func_end sub_81015B0
+
+ thumb_func_start sub_81015E0
+sub_81015E0: @ 81015E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08101600 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08101604
+ cmp r0, 0x1
+ beq _08101620
+ b _08101636
+ .align 2, 0
+_08101600: .4byte gTasks
+_08101604:
+ ldr r0, _0810161C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101636
+ adds r0, r4, 0
+ bl sub_80FF114
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _08101636
+ .align 2, 0
+_0810161C: .4byte gPaletteFade
+_08101620:
+ bl sub_81016F4
+ ldr r0, _0810163C @ =gUnknown_0300485C
+ ldr r1, _08101640 @ =sub_8101678
+ str r1, [r0]
+ ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08101636:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810163C: .4byte gUnknown_0300485C
+_08101640: .4byte sub_8101678
+_08101644: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_81015E0
+
+ thumb_func_start sub_8101648
+sub_8101648: @ 8101648
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101668
+ ldr r0, _08101670 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08101674 @ =sub_80FE2EC
+ str r0, [r1]
+_08101668:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101670: .4byte gTasks
+_08101674: .4byte sub_80FE2EC
+ thumb_func_end sub_8101648
+
+ thumb_func_start sub_8101678
+sub_8101678: @ 8101678
+ push {lr}
+ bl pal_fill_black
+ bl MenuDisplayMessageBox
+ bl sub_80FE220
+ ldr r0, _08101694 @ =sub_8101648
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101694: .4byte sub_8101648
+ thumb_func_end sub_8101678
+
+ thumb_func_start sub_8101698
+sub_8101698: @ 8101698
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0xF
+ ble _081016B8
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081016C4
+_081016B8:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_081016C4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101698
+
+ thumb_func_start sub_81016C8
+sub_81016C8: @ 81016C8
+ push {lr}
+ ldr r0, _081016DC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _081016E4
+ ldr r0, _081016E0 @ =gUnknown_083ECA5C
+ bl LoadSpritePalette
+ b _081016EA
+ .align 2, 0
+_081016DC: .4byte gSaveBlock2
+_081016E0: .4byte gUnknown_083ECA5C
+_081016E4:
+ ldr r0, _081016F0 @ =gUnknown_083ECA64
+ bl LoadSpritePalette
+_081016EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081016F0: .4byte gUnknown_083ECA64
+ thumb_func_end sub_81016C8
+
+ thumb_func_start sub_81016F4
+sub_81016F4: @ 81016F4
+ push {lr}
+ movs r0, 0x8
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81016F4
+
+ thumb_func_start sub_8101700
+sub_8101700: @ 8101700
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101728
+ ldr r1, _08101720 @ =gSecretBaseText_NoDecors
+ ldr r2, _08101724 @ =sub_80FE428
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101742
+ .align 2, 0
+_08101720: .4byte gSecretBaseText_NoDecors
+_08101724: .4byte sub_80FE428
+_08101728:
+ ldr r1, _08101748 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810174C @ =gUnknown_020388F6
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101742:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101748: .4byte gTasks
+_0810174C: .4byte gUnknown_020388F6
+ thumb_func_end sub_8101700
+
+ thumb_func_start unref_sub_8101750
+unref_sub_8101750: @ 8101750
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81341D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101778
+ ldr r1, _08101770 @ =gSecretBaseText_NoDecors
+ ldr r2, _08101774 @ =sub_80FE428
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101792
+ .align 2, 0
+_08101770: .4byte gSecretBaseText_NoDecors
+_08101774: .4byte sub_80FE428
+_08101778:
+ ldr r1, _08101798 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+ ldr r0, _0810179C @ =gUnknown_020388F6
+ strb r2, [r0]
+ adds r0, r4, 0
+ bl sub_80FE5AC
+_08101792:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101798: .4byte gTasks
+_0810179C: .4byte gUnknown_020388F6
+ thumb_func_end unref_sub_8101750
+
+ thumb_func_start sub_81017A0
+sub_81017A0: @ 81017A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80FEF74
+ bl sub_80FED1C
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08101808
+ ldr r0, _081017EC @ =gStringVar1
+ ldr r1, _081017F0 @ =gUnknown_020388F5
+ ldrb r2, [r1]
+ ldr r1, _081017F4 @ =gUnknown_020388D0
+ ldr r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 5
+ ldr r2, _081017F8 @ =gDecorations + 0x1
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _081017FC @ =gStringVar4
+ ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _08101804 @ =sub_8101824
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08101814
+ .align 2, 0
+_081017EC: .4byte gStringVar1
+_081017F0: .4byte gUnknown_020388F5
+_081017F4: .4byte gUnknown_020388D0
+_081017F8: .4byte gDecorations + 0x1
+_081017FC: .4byte gStringVar4
+_08101800: .4byte gSecretBaseText_WillBeDiscarded
+_08101804: .4byte sub_8101824
+_08101808:
+ ldr r1, _0810181C @ =gSecretBaseText_DecorInUse
+ ldr r2, _08101820 @ =sub_80FEFF4
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_08101814:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810181C: .4byte gSecretBaseText_DecorInUse
+_08101820: .4byte sub_80FEFF4
+ thumb_func_end sub_81017A0
+
+ thumb_func_start sub_8101824
+sub_8101824: @ 8101824
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _08101844 @ =gUnknown_083ECAA0
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101844: .4byte gUnknown_083ECAA0
+ thumb_func_end sub_8101824
+
+ thumb_func_start sub_8101848
+sub_8101848: @ 8101848
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xE
+ bl MenuZeroFillWindowRect
+ ldr r6, _08101890 @ =gUnknown_020388F5
+ ldrb r1, [r6]
+ ldr r5, _08101894 @ =gUnknown_020388D0
+ ldr r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8109A30
+ ldrb r1, [r6]
+ ldr r0, [r5]
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80FF098
+ ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway
+ ldr r2, _0810189C @ =sub_80FEFF4
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101890: .4byte gUnknown_020388F5
+_08101894: .4byte gUnknown_020388D0
+_08101898: .4byte gSecretBaseText_DecorThrownAway
+_0810189C: .4byte sub_80FEFF4
+ thumb_func_end sub_8101848
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s
new file mode 100644
index 000000000..cdea62334
--- /dev/null
+++ b/asm/dewford_trend.s
@@ -0,0 +1,939 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FA17C
+sub_80FA17C: @ 80FA17C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ ldr r7, _080FA1B4 @ =gSaveBlock1
+ ldr r0, _080FA1B8 @ =0x00002dd4
+ adds r0, r7
+ mov r9, r0
+ movs r1, 0x1
+ mov r8, r1
+_080FA192:
+ movs r0, 0xA
+ bl sub_80EB72C
+ lsls r4, r6, 3
+ adds r5, r4, r7
+ ldr r2, _080FA1BC @ =0x00002dd8
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ mov r1, r8
+ ands r1, r0
+ cmp r1, 0
+ beq _080FA1C0
+ movs r0, 0xC
+ b _080FA1C2
+ .align 2, 0
+_080FA1B4: .4byte gSaveBlock1
+_080FA1B8: .4byte 0x00002dd4
+_080FA1BC: .4byte 0x00002dd8
+_080FA1C0:
+ movs r0, 0xD
+_080FA1C2:
+ bl sub_80EB72C
+ ldr r2, _080FA214 @ =0x00002dda
+ adds r1, r5, r2
+ strh r0, [r1]
+ bl Random
+ adds r3, r4, r7
+ mov r2, r8
+ ands r2, r0
+ ldr r5, _080FA218 @ =0x00002dd5
+ adds r3, r5
+ lsls r2, 6
+ ldrb r0, [r3]
+ movs r5, 0x41
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ mov r1, r9
+ adds r0, r4, r1
+ bl sub_80FA740
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA192
+ ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA214: .4byte 0x00002dda
+_080FA218: .4byte 0x00002dd5
+_080FA21C: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA17C
+
+ thumb_func_start sub_80FA220
+sub_80FA220: @ 80FA220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FA236
+ b _080FA34E
+_080FA236:
+ lsls r0, r1, 2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x7F
+ mov r9, r1
+ movs r2, 0x80
+ negs r2, r2
+ mov r8, r2
+_080FA24A:
+ ldr r2, [sp]
+ mov r4, r10
+ lsls r0, r4, 3
+ ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4
+ adds r5, r0, r1
+ ldrb r6, [r5, 0x1]
+ movs r0, 0x40
+ ands r0, r6
+ cmp r0, 0
+ bne _080FA2A0
+ ldrb r4, [r5]
+ lsls r3, r4, 25
+ lsrs r1, r3, 25
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bcc _080FA290
+ adds r0, r1, 0
+ subs r0, r2
+ mov r2, r9
+ ands r0, r2
+ mov r1, r8
+ ands r1, r4
+ orrs r1, r0
+ strb r1, [r5]
+ movs r0, 0x7F
+ ands r1, r0
+ cmp r1, 0
+ bne _080FA336
+ movs r0, 0x40
+ orrs r0, r6
+ b _080FA334
+ .align 2, 0
+_080FA28C: .4byte gSaveBlock1 + 0x2DD4
+_080FA290:
+ lsrs r0, r3, 25
+ subs r2, r0
+ mov r0, r8
+ ands r0, r4
+ strb r0, [r5]
+ movs r0, 0x40
+ orrs r0, r6
+ strb r0, [r5, 0x1]
+_080FA2A0:
+ ldrb r7, [r5]
+ lsls r0, r7, 25
+ lsrs r0, 25
+ adds r4, r0, r2
+ ldrh r0, [r5]
+ lsls r6, r0, 18
+ lsls r0, r4, 16
+ lsrs r0, 16
+ lsrs r1, r6, 25
+ cmp r0, r1
+ bls _080FA310
+ adds r0, r4, 0
+ bl __umodsi3
+ adds r3, r0, 0
+ lsrs r1, r6, 25
+ adds r0, r4, 0
+ str r3, [sp, 0x4]
+ bl __udivsi3
+ adds r4, r0, 0
+ movs r0, 0x1
+ eors r4, r0
+ ands r4, r0
+ lsls r2, r4, 6
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ movs r1, 0x40
+ ands r0, r1
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _080FA2FA
+ adds r1, r3, 0
+ mov r0, r9
+ ands r1, r0
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r1
+ strb r0, [r5]
+ b _080FA336
+_080FA2FA:
+ ldrh r0, [r5]
+ lsls r0, 18
+ lsrs r0, 25
+ subs r0, r3
+ mov r1, r9
+ ands r0, r1
+ mov r1, r8
+ ands r1, r7
+ orrs r1, r0
+ strb r1, [r5]
+ b _080FA336
+_080FA310:
+ mov r2, r9
+ ands r4, r2
+ mov r0, r8
+ ands r0, r7
+ orrs r0, r4
+ strb r0, [r5]
+ lsls r0, 25
+ ldrh r1, [r5]
+ lsls r1, 18
+ lsrs r0, 25
+ lsrs r1, 25
+ cmp r0, r1
+ bne _080FA336
+ ldrb r0, [r5, 0x1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+_080FA334:
+ strb r0, [r5, 0x1]
+_080FA336:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ cmp r0, 0x4
+ bls _080FA24A
+ ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_80FA46C
+_080FA34E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA360: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA220
+
+ thumb_func_start sub_80FA364
+sub_80FA364: @ 80FA364
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_80FA7C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA462
+ ldr r5, _080FA3B4 @ =0x00000833
+ adds r0, r5, 0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ adds r0, r5, 0
+ bl FlagSet
+ ldr r0, _080FA3B8 @ =0x00000834
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA3C8
+ ldr r1, _080FA3BC @ =gSaveBlock1
+ ldrh r2, [r4]
+ ldr r3, _080FA3C0 @ =0x00002dd8
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldrh r0, [r4, 0x2]
+ ldr r2, _080FA3C4 @ =0x00002dda
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA3B4: .4byte 0x00000833
+_080FA3B8: .4byte 0x00000834
+_080FA3BC: .4byte gSaveBlock1
+_080FA3C0: .4byte 0x00002dd8
+_080FA3C4: .4byte 0x00002dda
+_080FA3C8:
+ ldrh r1, [r4, 0x2]
+ lsls r1, 16
+ ldrh r0, [r4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0x80
+ lsls r1, 7
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80FA740
+ movs r6, 0
+_080FA3E4:
+ lsls r4, r6, 3
+ ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4
+ adds r1, r4, r5
+ mov r0, sp
+ movs r2, 0
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080FA450
+ movs r3, 0x4
+ ldr r0, _080FA448 @ =0xffffd22c
+ adds r0, r5
+ mov r12, r0
+ cmp r3, r6
+ bls _080FA428
+ mov r5, r12
+ ldr r4, _080FA44C @ =0x00002dd4
+_080FA40A:
+ lsls r2, r3, 3
+ adds r2, r5
+ adds r2, r4
+ subs r3, 0x1
+ lsls r0, r3, 3
+ adds r0, r5
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ cmp r3, r6
+ bhi _080FA40A
+_080FA428:
+ mov r3, r12
+ adds r2, r7, r3
+ ldr r0, _080FA44C @ =0x00002dd4
+ adds r2, r0
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0
+ cmp r6, 0
+ bne _080FA464
+ movs r0, 0x1
+ b _080FA464
+ .align 2, 0
+_080FA444: .4byte gSaveBlock1 + 0x2DD4
+_080FA448: .4byte 0xffffd22c
+_080FA44C: .4byte 0x00002dd4
+_080FA450:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA3E4
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ str r0, [r5, 0x20]
+ str r1, [r5, 0x24]
+_080FA462:
+ movs r0, 0
+_080FA464:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA364
+
+ thumb_func_start sub_80FA46C
+sub_80FA46C: @ 80FA46C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r2, 0
+ cmp r2, r7
+ bcs _080FA4D4
+_080FA488:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, r7
+ bcs _080FA4CA
+ lsls r0, r2, 3
+ mov r1, r9
+ adds r6, r1, r0
+_080FA49A:
+ lsls r0, r5, 3
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ mov r2, r10
+ bl atk90_changetypestoenemyattacktype
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA4C0
+ ldr r2, [r4]
+ ldr r3, [r4, 0x4]
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r6]
+ str r3, [r6, 0x4]
+_080FA4C0:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r7
+ bcc _080FA49A
+_080FA4CA:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080FA488
+_080FA4D4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA46C
+
+ thumb_func_start sub_80FA4E4
+sub_80FA4E4: @ 80FA4E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA520
+_080FA500:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080FA554 @ =0x02007800
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r5
+ adds r1, r6, r1
+ movs r2, 0x28
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA500
+_080FA520:
+ ldr r5, _080FA554 @ =0x02007800
+ movs r0, 0x80
+ lsls r0, 1
+ adds r3, r5, r0
+ movs r7, 0
+ movs r4, 0
+ cmp r4, r8
+ bcs _080FA588
+_080FA530:
+ movs r6, 0
+_080FA532:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl sub_80FA828
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp]
+ cmp r0, 0
+ bge _080FA558
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ stm r3!, {r0,r1}
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FA572
+ .align 2, 0
+_080FA554: .4byte 0x02007800
+_080FA558:
+ lsls r1, r0, 3
+ ldr r0, _080FA5B4 @ =0x02007900
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ lsls r1, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bcs _080FA572
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+_080FA572:
+ adds r5, 0x8
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x4
+ bls _080FA532
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bcc _080FA530
+_080FA588:
+ ldr r4, _080FA5B4 @ =0x02007900
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x2
+ bl sub_80FA46C
+ adds r5, r4, 0
+ ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4
+ movs r4, 0
+_080FA59A:
+ ldm r5!, {r0,r1}
+ stm r3!, {r0,r1}
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA59A
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5B4: .4byte 0x02007900
+_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
+ thumb_func_end sub_80FA4E4
+
+ thumb_func_start sub_80FA5BC
+sub_80FA5BC: @ 80FA5BC
+ push {lr}
+ ldr r0, _080FA5D8 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r1, 3
+ ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4
+ adds r1, r0
+ ldr r0, _080FA5E0 @ =gStringVar1
+ adds r1, 0x4
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA5D8: .4byte gUnknown_0202E8CC
+_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
+_080FA5E0: .4byte gStringVar1
+ thumb_func_end sub_80FA5BC
+
+ thumb_func_start sub_80FA5E4
+sub_80FA5E4: @ 80FA5E4
+ push {r4,lr}
+ movs r4, 0
+ ldr r3, _080FA630 @ =gSaveBlock1
+ ldr r1, _080FA634 @ =0x00002dd4
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ lsrs r1, 25
+ ldr r2, _080FA638 @ =0x00002ddc
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 25
+ subs r1, r0
+ cmp r1, 0x1
+ bgt _080FA626
+ ldr r1, _080FA63C @ =0x00002dd5
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FA626
+ ldr r1, _080FA640 @ =0x00002ddd
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r4, r0, 31
+_080FA626:
+ ldr r0, _080FA644 @ =gScriptResult
+ strh r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA630: .4byte gSaveBlock1
+_080FA634: .4byte 0x00002dd4
+_080FA638: .4byte 0x00002ddc
+_080FA63C: .4byte 0x00002dd5
+_080FA640: .4byte 0x00002ddd
+_080FA644: .4byte gScriptResult
+ thumb_func_end sub_80FA5E4
+
+ thumb_func_start sub_80FA648
+sub_80FA648: @ 80FA648
+ ldr r2, _080FA664 @ =gScriptResult
+ ldr r0, _080FA668 @ =gSaveBlock1
+ ldr r3, _080FA66C @ =0x00002dd8
+ adds r1, r0, r3
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080FA664: .4byte gScriptResult
+_080FA668: .4byte gSaveBlock1
+_080FA66C: .4byte 0x00002dd8
+ thumb_func_end sub_80FA648
+
+ thumb_func_start atk90_changetypestoenemyattacktype
+atk90_changetypestoenemyattacktype: @ 80FA670
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r2, 0
+ cmp r2, 0x1
+ beq _080FA6B6
+ cmp r2, 0x1
+ bgt _080FA68A
+ cmp r2, 0
+ beq _080FA690
+ b _080FA732
+_080FA68A:
+ cmp r0, 0x2
+ beq _080FA6E2
+ b _080FA732
+_080FA690:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r3, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r3, 25
+ lsrs r0, r2, 25
+ b _080FA6DA
+_080FA6B6:
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+_080FA6DA:
+ cmp r1, r0
+ bcs _080FA732
+_080FA6DE:
+ movs r0, 0
+ b _080FA73A
+_080FA6E2:
+ ldrb r0, [r3]
+ lsls r1, r0, 25
+ ldrb r0, [r5]
+ lsls r0, 25
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r0, [r3]
+ lsls r4, r0, 18
+ ldrh r0, [r5]
+ lsls r2, r0, 18
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bhi _080FA72E
+ lsrs r1, r4, 25
+ lsrs r0, r2, 25
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x2]
+ ldrh r0, [r5, 0x2]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x4]
+ ldrh r0, [r5, 0x4]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+ ldrh r1, [r3, 0x6]
+ ldrh r0, [r5, 0x6]
+ cmp r1, r0
+ bhi _080FA72E
+ cmp r1, r0
+ bcc _080FA6DE
+_080FA72E:
+ movs r0, 0x1
+ b _080FA73A
+_080FA732:
+ bl Random
+ movs r1, 0x1
+ ands r0, r1
+_080FA73A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end atk90_changetypestoenemyattacktype
+
+ thumb_func_start sub_80FA740
+sub_80FA740: @ 80FA740
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x32
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x50
+ bls _080FA782
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x62
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080FA782:
+ adds r1, r4, 0
+ adds r1, 0x1E
+ movs r0, 0x7F
+ ands r1, r0
+ lsls r1, 7
+ ldrh r2, [r5]
+ ldr r0, _080FA7C4 @ =0xffffc07f
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0x1
+ bl __modsi3
+ adds r0, 0x1E
+ movs r1, 0x7F
+ ands r0, r1
+ ldrb r2, [r5]
+ movs r1, 0x80
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5]
+ bl Random
+ strh r0, [r5, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA7C4: .4byte 0xffffc07f
+ thumb_func_end sub_80FA740
+
+ thumb_func_start sub_80FA7C8
+sub_80FA7C8: @ 80FA7C8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080FA7CE:
+ lsls r1, r4, 3
+ ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA7E8
+ movs r0, 0x1
+ b _080FA7F4
+ .align 2, 0
+_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
+_080FA7E8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080FA7CE
+ movs r0, 0
+_080FA7F4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7C8
+
+ thumb_func_start sub_80FA7FC
+sub_80FA7FC: @ 80FA7FC
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ movs r4, 0
+_080FA804:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x2
+ cmp r1, r0
+ beq _080FA814
+ movs r0, 0
+ b _080FA820
+_080FA814:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080FA804
+ movs r0, 0x1
+_080FA820:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA7FC
+
+ thumb_func_start sub_80FA828
+sub_80FA828: @ 80FA828
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r6, _080FA84C @ =0x02007900
+ movs r4, 0
+ cmp r4, r5
+ bge _080FA862
+_080FA838:
+ adds r1, r6, 0x4
+ adds r0, r7, 0x4
+ bl sub_80FA7FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FA850
+ lsls r0, r4, 16
+ asrs r0, 16
+ b _080FA866
+ .align 2, 0
+_080FA84C: .4byte 0x02007900
+_080FA850:
+ adds r6, 0x8
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _080FA838
+_080FA862:
+ movs r0, 0x1
+ negs r0, r0
+_080FA866:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA828
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
new file mode 100644
index 000000000..5a37c3185
--- /dev/null
+++ b/asm/easy_chat.s
@@ -0,0 +1,11640 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80E60D8
+sub_80E60D8: @ 80E60D8
+ push {r4-r7,lr}
+ movs r4, 0x3
+ ldr r0, _080E60F4 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xD
+ bls _080E60E8
+ b _080E6284
+_080E60E8:
+ lsls r0, r1, 2
+ ldr r1, _080E60F8 @ =_080E60FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E60F4: .4byte gUnknown_0202E8CC
+_080E60F8: .4byte _080E60FC
+ .align 2, 0
+_080E60FC:
+ .4byte _080E6134
+ .4byte _080E613C
+ .4byte _080E6144
+ .4byte _080E614C
+ .4byte _080E6154
+ .4byte _080E619C
+ .4byte _080E616C
+ .4byte _080E61BC
+ .4byte _080E61E0
+ .4byte _080E61FC
+ .4byte _080E6200
+ .4byte _080E6214
+ .4byte _080E623C
+ .4byte _080E6260
+_080E6134:
+ ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C
+ b _080E624C
+ .align 2, 0
+_080E6138: .4byte gSaveBlock1 + 0x2B1C
+_080E613C:
+ ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28
+ b _080E6276
+ .align 2, 0
+_080E6140: .4byte gSaveBlock1 + 0x2B28
+_080E6144:
+ ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34
+ b _080E624C
+ .align 2, 0
+_080E6148: .4byte gSaveBlock1 + 0x2B34
+_080E614C:
+ ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40
+ b _080E6276
+ .align 2, 0
+_080E6150: .4byte gSaveBlock1 + 0x2B40
+_080E6154:
+ ldr r0, _080E6164 @ =gUnknown_0202E8CE
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0, r1
+ b _080E624C
+ .align 2, 0
+_080E6164: .4byte gUnknown_0202E8CE
+_080E6168: .4byte gSaveBlock1 + 0x2B4C
+_080E616C:
+ ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ ldr r1, _080E6198 @ =sub_80546B8
+ mov r12, r1
+ adds r3, r0, 0
+ adds r3, 0xE
+ adds r5, r0, 0x2
+ adds r6, r3, 0
+_080E617C:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080E617C
+ adds r1, r6, 0
+ b _080E627A
+ .align 2, 0
+_080E6194: .4byte gSaveBlock1 + 0x2D94
+_080E6198: .4byte sub_80546B8
+_080E619C:
+ ldr r0, _080E61B0 @ =gUnknown_0202E8CE
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
+ adds r1, r0, r1
+ ldr r0, _080E61B8 @ =gUnknown_0202E8D0
+ ldrb r4, [r0]
+ b _080E6276
+ .align 2, 0
+_080E61B0: .4byte gUnknown_0202E8CE
+_080E61B4: .4byte gSaveBlock1 + 0x273C
+_080E61B8: .4byte gUnknown_0202E8D0
+_080E61BC:
+ ldr r0, _080E61D4 @ =gUnknown_0202E8CE
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
+ adds r1, r0
+ ldr r0, _080E61DC @ =gUnknown_0202E8D0
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ b _080E624A
+ .align 2, 0
+_080E61D4: .4byte gUnknown_0202E8CE
+_080E61D8: .4byte gSaveBlock1 + 0x2754
+_080E61DC: .4byte gUnknown_0202E8D0
+_080E61E0:
+ ldr r0, _080E61F4 @ =gUnknown_0202E8CE
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A
+ adds r1, r0, r1
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E61F4: .4byte gUnknown_0202E8CE
+_080E61F8: .4byte gSaveBlock1 + 0x273A
+_080E61FC:
+ movs r1, 0
+ b _080E624C
+_080E6200:
+ ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16
+ ldr r2, _080E6210 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E624A
+ .align 2, 0
+_080E620C: .4byte gSaveBlock1 + 0x2B16
+_080E6210: .4byte 0x0000ffff
+_080E6214:
+ ldr r0, _080E6230 @ =gUnknown_0202E8CE
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
+ adds r1, r0
+ ldr r0, _080E6238 @ =gUnknown_0202E8D0
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E6230: .4byte gUnknown_0202E8CE
+_080E6234: .4byte gSaveBlock1 + 0x273C
+_080E6238: .4byte gUnknown_0202E8D0
+_080E623C:
+ ldr r0, _080E6254 @ =gUnknown_0202E8CE
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750
+ adds r1, r0, r1
+_080E624A:
+ movs r4, 0x1
+_080E624C:
+ ldr r0, _080E625C @ =sub_80546B8
+ mov r12, r0
+ b _080E627A
+ .align 2, 0
+_080E6254: .4byte gUnknown_0202E8CE
+_080E6258: .4byte gSaveBlock1 + 0x2750
+_080E625C: .4byte sub_80546B8
+_080E6260:
+ ldr r1, _080E628C @ =0x02001000
+ ldr r0, _080E6290 @ =0x00009c7c
+ adds r2, r1, r0
+ ldr r0, _080E6294 @ =0x0000ffff
+ strh r0, [r2]
+ ldr r0, _080E6298 @ =0x00009c7e
+ adds r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ adds r1, r2, 0
+_080E6276:
+ ldr r2, _080E629C @ =sub_80546B8
+ mov r12, r2
+_080E627A:
+ ldrb r0, [r7]
+ mov r2, r12
+ adds r3, r4, 0
+ bl sub_80E62A0
+_080E6284:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E628C: .4byte 0x02001000
+_080E6290: .4byte 0x00009c7c
+_080E6294: .4byte 0x0000ffff
+_080E6298: .4byte 0x00009c7e
+_080E629C: .4byte sub_80546B8
+ thumb_func_end sub_80E60D8
+
+ thumb_func_start sub_80E62A0
+sub_80E62A0: @ 80E62A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080E62DC @ =0x02001000
+ str r2, [r4]
+ str r1, [r4, 0x4]
+ strb r0, [r4, 0x8]
+ strb r3, [r4, 0xB]
+ cmp r0, 0x9
+ bne _080E62D0
+ ldr r0, _080E62E0 @ =0x00009c7c
+ adds r2, r4, r0
+ str r2, [r4, 0x4]
+ ldr r0, _080E62E4 @ =gSaveBlock1
+ ldr r3, _080E62E8 @ =0x00002dd8
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ strh r1, [r2]
+ ldr r1, _080E62EC @ =0x00002dda
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r2, _080E62F0 @ =0x00009c7e
+ adds r0, r4, r2
+ strh r1, [r0]
+_080E62D0:
+ ldr r0, _080E62F4 @ =sub_80E62F8
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E62DC: .4byte 0x02001000
+_080E62E0: .4byte 0x00009c7c
+_080E62E4: .4byte gSaveBlock1
+_080E62E8: .4byte 0x00002dd8
+_080E62EC: .4byte 0x00002dda
+_080E62F0: .4byte 0x00009c7e
+_080E62F4: .4byte sub_80E62F8
+ thumb_func_end sub_80E62A0
+
+ thumb_func_start sub_80E62F8
+sub_80E62F8: @ 80E62F8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080E6314 @ =gMain
+ ldr r1, _080E6318 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080E6344
+ lsls r0, 2
+ ldr r1, _080E631C @ =_080E6320
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6314: .4byte gMain
+_080E6318: .4byte 0x0000043c
+_080E631C: .4byte _080E6320
+ .align 2, 0
+_080E6320:
+ .4byte _080E6344
+ .4byte _080E6380
+ .4byte _080E638C
+ .4byte _080E63A8
+ .4byte _080E63AE
+ .4byte _080E63B4
+ .4byte _080E63BE
+ .4byte _080E63D8
+ .4byte _080E63EA
+_080E6344:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl dp12_8087EA4
+ bl remove_some_task
+ bl sub_80EAD08
+ ldr r2, _080E637C @ =gUnknown_083DB698
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080E6402
+ .align 2, 0
+_080E637C: .4byte gUnknown_083DB698
+_080E6380:
+ ldr r0, _080E6388 @ =gWindowConfig_81E6DA8
+ bl SetUpWindowConfig
+ b _080E6402
+ .align 2, 0
+_080E6388: .4byte gWindowConfig_81E6DA8
+_080E638C:
+ ldr r0, _080E63A0 @ =gWindowConfig_81E6D54
+ bl InitMenuWindow
+ ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080E6402
+ .align 2, 0
+_080E63A0: .4byte gWindowConfig_81E6D54
+_080E63A4: .4byte gWindowConfig_81E6DA8
+_080E63A8:
+ bl sub_80E6424
+ b _080E6402
+_080E63AE:
+ bl sub_80E8DD8
+ b _080E6402
+_080E63B4:
+ bl sub_80E8218
+ bl sub_80E8CEC
+ b _080E6402
+_080E63BE:
+ bl sub_80E69F8
+ ldr r0, _080E63D0 @ =sub_80E6AA8
+ bl sub_80E682C
+ ldr r0, _080E63D4 @ =sub_80E6A6C
+ bl SetVBlankCallback
+ b _080E6402
+ .align 2, 0
+_080E63D0: .4byte sub_80E6AA8
+_080E63D4: .4byte sub_80E6A6C
+_080E63D8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _080E6402
+_080E63EA:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E6414 @ =sub_80E6A88
+ bl SetMainCallback2
+ ldr r0, _080E6418 @ =0x00000805
+ bl FlagSet
+_080E6402:
+ ldr r1, _080E641C @ =gMain
+ ldr r0, _080E6420 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6414: .4byte sub_80E6A88
+_080E6418: .4byte 0x00000805
+_080E641C: .4byte gMain
+_080E6420: .4byte 0x0000043c
+ thumb_func_end sub_80E62F8
+
+ thumb_func_start sub_80E6424
+sub_80E6424: @ 80E6424
+ push {lr}
+ ldr r2, _080E6444 @ =0x02001000
+ ldr r0, _080E6448 @ =gUnknown_083DB6A4
+ ldrb r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2, 0x9]
+ ldrb r0, [r2, 0x9]
+ adds r3, r2, 0
+ cmp r0, 0x5
+ bhi _080E6512
+ lsls r0, 2
+ ldr r1, _080E644C @ =_080E6450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6444: .4byte 0x02001000
+_080E6448: .4byte gUnknown_083DB6A4
+_080E644C: .4byte _080E6450
+ .align 2, 0
+_080E6450:
+ .4byte _080E64A0
+ .4byte _080E64B8
+ .4byte _080E64DA
+ .4byte _080E64F6
+ .4byte _080E6468
+ .4byte _080E6480
+_080E6468:
+ movs r2, 0x4
+ strb r2, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x5
+ b _080E64D0
+_080E6480:
+ movs r1, 0x4
+ strb r1, [r3, 0xA]
+ adds r2, r3, 0
+ adds r2, 0x83
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x84
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ b _080E6510
+_080E64A0:
+ movs r0, 0x6
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x84
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r1, 0x5
+ b _080E64CE
+_080E64B8:
+ movs r2, 0
+ movs r0, 0x9
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ strb r0, [r1]
+ adds r1, 0x4
+_080E64CE:
+ movs r0, 0x4
+_080E64D0:
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ strh r2, [r0]
+ b _080E6512
+_080E64DA:
+ movs r1, 0x1
+ strb r1, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ b _080E6510
+_080E64F6:
+ movs r0, 0x2
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3
+_080E6510:
+ strh r0, [r1]
+_080E6512:
+ adds r1, r3, 0
+ adds r1, 0x86
+ movs r0, 0
+ strb r0, [r1]
+ subs r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x2
+ strb r0, [r1]
+ subs r1, 0x61
+ strb r0, [r1]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80E6554
+ bl sub_80EAECC
+ bl sub_80EB040
+ bl sub_80E7E50
+ bl sub_80E6630
+ bl sub_80E6690
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6424
+
+ thumb_func_start sub_80E6554
+sub_80E6554: @ 80E6554
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r4, 0
+ movs r7, 0
+ ldr r0, _080E6564 @ =0x02001000
+ mov r12, r0
+ b _080E656E
+ .align 2, 0
+_080E6564: .4byte 0x02001000
+_080E6568:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080E656E:
+ movs r5, 0
+ lsls r3, r7, 1
+ mov r6, r12
+ adds r6, 0x2A
+ adds r2, r3, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ beq _080E65A6
+_080E6586:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bhi _080E65A2
+ adds r2, r5, r3
+ adds r2, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ bne _080E6586
+_080E65A2:
+ cmp r4, 0x11
+ bne _080E6568
+_080E65A6:
+ movs r0, 0x11
+ mov r1, r12
+ strh r0, [r1, 0x28]
+ cmp r4, 0x15
+ bhi _080E6612
+ mov r6, r12
+ adds r2, r6, 0
+ adds r2, 0x78
+_080E65B6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r2, [sp]
+ bl sub_80EAD7C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [sp]
+ cmp r1, 0
+ beq _080E65FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E65DC
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+_080E65DC:
+ lsls r0, r7, 1
+ adds r0, r5, r0
+ adds r1, r6, 0
+ adds r1, 0x2A
+ adds r0, r1
+ strb r4, [r0]
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrh r0, [r6, 0x28]
+ adds r0, 0x1
+ strh r0, [r6, 0x28]
+ mov r12, r6
+ b _080E6608
+_080E65FC:
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, _080E662C @ =0x02001000
+ mov r12, r0
+_080E6608:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x15
+ bls _080E65B6
+_080E6612:
+ mov r1, r12
+ ldrh r0, [r1, 0x28]
+ adds r0, 0x1
+ asrs r0, 1
+ movs r1, 0xDB
+ lsls r1, 1
+ add r1, r12
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E662C: .4byte 0x02001000
+ thumb_func_end sub_80E6554
+
+ thumb_func_start sub_80E6630
+sub_80E6630: @ 80E6630
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r0, _080E6664 @ =gUnknown_083DB6B2
+ mov r12, r0
+_080E6638:
+ lsls r0, r1, 4
+ mov r2, r12
+ adds r5, r0, r2
+ movs r3, 0
+ ldrb r0, [r5]
+ adds r7, r1, 0x1
+ cmp r0, 0xFF
+ beq _080E6680
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r4, r0, 1
+ ldr r6, _080E6668 @ =0x02001040
+_080E6650:
+ adds r0, r5, r3
+ ldrb r1, [r0]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _080E666C
+ adds r0, r3, r4
+ adds r0, r6
+ adds r1, 0x46
+ strb r1, [r0]
+ b _080E6672
+ .align 2, 0
+_080E6664: .4byte gUnknown_083DB6B2
+_080E6668: .4byte 0x02001040
+_080E666C:
+ adds r0, r3, r4
+ adds r0, r6
+ strb r2, [r0]
+_080E6672:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E6650
+_080E6680:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080E6638
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6630
+
+ thumb_func_start sub_80E6690
+sub_80E6690: @ 80E6690
+ push {r4-r6,lr}
+ sub sp, 0x10
+ mov r0, sp
+ ldr r1, _080E66E0 @ =gUnknown_083DB7DC
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldr r1, [r1]
+ str r1, [r0]
+ movs r5, 0
+ ldr r6, _080E66E4 @ =gUnknown_083DB7C0
+_080E66A4:
+ ldr r0, _080E66E8 @ =0x02001000
+ ldrb r0, [r0, 0x8]
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E66EC @ =gUnknown_083DB6F4
+ adds r4, r0, r1
+ lsls r0, r5, 3
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl StringCopy
+ adds r3, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _080E66F0
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4, 0x4]
+ bl StringCopy
+ b _080E670A
+ .align 2, 0
+_080E66E0: .4byte gUnknown_083DB7DC
+_080E66E4: .4byte gUnknown_083DB7C0
+_080E66E8: .4byte 0x02001000
+_080E66EC: .4byte gUnknown_083DB6F4
+_080E66F0:
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r1, [r4, 0x4]
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+_080E670A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E66A4
+ movs r5, 0
+ ldr r3, _080E6758 @ =0x02001000
+ ldr r0, _080E675C @ =0x00009da4
+ adds r2, r3, r0
+ movs r1, 0
+_080E671E:
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x23
+ bls _080E671E
+ ldr r1, _080E675C @ =0x00009da4
+ adds r0, r3, r1
+ adds r0, r5, r0
+ movs r4, 0x1
+ negs r4, r4
+ adds r2, r4, 0
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, _080E6760 @ =0x00009f6e
+ adds r3, r0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x11
+ strb r0, [r3, 0x1]
+ movs r0, 0xE0
+ strb r0, [r3, 0x2]
+ strb r2, [r3, 0x3]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6758: .4byte 0x02001000
+_080E675C: .4byte 0x00009da4
+_080E6760: .4byte 0x00009f6e
+ thumb_func_end sub_80E6690
+
+ thumb_func_start sub_80E6764
+sub_80E6764: @ 80E6764
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
+ ldr r2, _080E6810 @ =gUnknown_083DB7EC
+_080E676C:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080E676C
+ movs r3, 0
+ ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28
+ ldr r2, _080E6818 @ =gUnknown_083DB7F4
+_080E6786:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E6786
+ movs r3, 0
+ ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34
+ ldr r0, _080E6820 @ =0x0000ffff
+ adds r4, r0, 0
+ adds r6, r5, 0
+ adds r6, 0xC
+_080E67A6:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ orrs r0, r4
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E67A6
+ movs r3, 0
+ ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C
+ ldr r0, _080E6820 @ =0x0000ffff
+ adds r5, r0, 0
+_080E67CA:
+ movs r2, 0
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r4, r0, 2
+_080E67D2:
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x8
+ bls _080E67D2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080E67CA
+ movs r3, 0
+ ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C
+ movs r1, 0
+_080E67F8:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080E67F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E680C: .4byte gSaveBlock1 + 0x2B1C
+_080E6810: .4byte gUnknown_083DB7EC
+_080E6814: .4byte gSaveBlock1 + 0x2B28
+_080E6818: .4byte gUnknown_083DB7F4
+_080E681C: .4byte gSaveBlock1 + 0x2B34
+_080E6820: .4byte 0x0000ffff
+_080E6824: .4byte gSaveBlock1 + 0x2B4C
+_080E6828: .4byte gSaveBlock1 + 0x2D8C
+ thumb_func_end sub_80E6764
+
+ thumb_func_start sub_80E682C
+sub_80E682C: @ 80E682C
+ ldr r1, _080E6838 @ =0x02001000
+ str r0, [r1, 0x20]
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ bx lr
+ .align 2, 0
+_080E6838: .4byte 0x02001000
+ thumb_func_end sub_80E682C
+
+ thumb_func_start sub_80E683C
+sub_80E683C: @ 80E683C
+ push {r4,r5,lr}
+ ldr r1, _080E6890 @ =0x02001000
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _080E6898
+ movs r1, 0
+ movs r0, 0xDB
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ bge _080E6876
+ movs r0, 0xD5
+ lsls r0, 1
+ adds r5, r2, r0
+ movs r4, 0x2
+_080E6864:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ blt _080E6864
+_080E6876:
+ adds r0, r2, r1
+ ldr r1, _080E6894 @ =0x000001a9
+ adds r3, r0, r1
+ ldrh r0, [r2, 0x28]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r3]
+ cmp r0, 0
+ bne _080E68B8
+ movs r0, 0x2
+ strb r0, [r3]
+ b _080E68B8
+ .align 2, 0
+_080E6890: .4byte 0x02001000
+_080E6894: .4byte 0x000001a9
+_080E6898:
+ movs r3, 0xD5
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r1, _080E68E0 @ =0x000001ab
+ adds r3, r2, r1
+ movs r1, 0x6
+ strb r1, [r3]
+ movs r3, 0xD6
+ lsls r3, 1
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r1, r2, r3
+ strb r0, [r1]
+_080E68B8:
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080E68E4 @ =0x000001a9
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0xC
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r2, r3
+ strb r0, [r1]
+ bl sub_80E9A4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E68E0: .4byte 0x000001ab
+_080E68E4: .4byte 0x000001a9
+ thumb_func_end sub_80E683C
+
+ thumb_func_start sub_80E68E8
+sub_80E68E8: @ 80E68E8
+ push {r4-r6,lr}
+ bl sub_80EB0B0
+ ldr r3, _080E694C @ =0x02001000
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E695C
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E6950 @ =0x00004178
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E6954 @ =0x00009a28
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E693A
+ ldr r3, _080E6958 @ =0x000099a6
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E6928:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E6928
+_080E693A:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E6958 @ =0x000099a6
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E6950 @ =0x00004178
+ b _080E69AC
+ .align 2, 0
+_080E694C: .4byte 0x02001000
+_080E6950: .4byte 0x00004178
+_080E6954: .4byte 0x00009a28
+_080E6958: .4byte 0x000099a6
+_080E695C:
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E69E0 @ =0x00004142
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E69E4 @ =0x00009a28
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E699C
+ ldr r3, _080E69E8 @ =0x000099a6
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E698A:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E698A
+_080E699C:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E69E8 @ =0x000099a6
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E69E0 @ =0x00004142
+_080E69AC:
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0
+ bne _080E69C0
+ movs r0, 0x2
+ strb r0, [r2]
+_080E69C0:
+ ldr r1, _080E69EC @ =0x000099a4
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080E69F0 @ =0x000099a5
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r3, _080E69F4 @ =0x00009a29
+ adds r0, r5, r3
+ strb r1, [r0]
+ bl sub_80E9A4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E69E0: .4byte 0x00004142
+_080E69E4: .4byte 0x00009a28
+_080E69E8: .4byte 0x000099a6
+_080E69EC: .4byte 0x000099a4
+_080E69F0: .4byte 0x000099a5
+_080E69F4: .4byte 0x00009a29
+ thumb_func_end sub_80E68E8
+
+ thumb_func_start sub_80E69F8
+sub_80E69F8: @ 80E69F8
+ push {r4,lr}
+ ldr r0, _080E6A10 @ =0x02001000
+ ldrb r1, [r0, 0x8]
+ adds r4, r0, 0
+ cmp r1, 0xD
+ bhi _080E6A50
+ lsls r0, r1, 2
+ ldr r1, _080E6A14 @ =_080E6A18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6A10: .4byte 0x02001000
+_080E6A14: .4byte _080E6A18
+ .align 2, 0
+_080E6A18:
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+_080E6A50:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ b _080E6A66
+_080E6A58:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ bl sub_80E8BF4
+_080E6A66:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E69F8
+
+ thumb_func_start sub_80E6A6C
+sub_80E6A6C: @ 80E6A6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80EAC5C
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6A6C
+
+ thumb_func_start sub_80E6A88
+sub_80E6A88: @ 80E6A88
+ push {lr}
+ ldr r0, _080E6AA4 @ =0x02001000
+ ldr r0, [r0, 0x20]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl sub_80EAD08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AA4: .4byte 0x02001000
+ thumb_func_end sub_80E6A88
+
+ thumb_func_start sub_80E6AA8
+sub_80E6AA8: @ 80E6AA8
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6ABA
+ ldr r0, _080E6AC0 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6ABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AC0: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6AA8
+
+ thumb_func_start sub_80E6AC4
+sub_80E6AC4: @ 80E6AC4
+ push {lr}
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8398
+ movs r0, 0
+ bl sub_80E91D4
+ ldr r0, _080E6AE0 @ =sub_80E6AE4
+ bl sub_80E682C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AE0: .4byte sub_80E6AE4
+ thumb_func_end sub_80E6AC4
+
+ thumb_func_start sub_80E6AE4
+sub_80E6AE4: @ 80E6AE4
+ push {r4,r5,lr}
+ bl sub_80E75D8
+ ldr r4, _080E6B44 @ =0x02001000
+ adds r1, r4, 0
+ adds r1, 0x87
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6AFE
+ movs r0, 0x5
+ bl PlaySE
+_080E6AFE:
+ ldr r2, _080E6B48 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _080E6BA4
+ movs r0, 0x5
+ bl PlaySE
+ adds r1, r4, 0
+ adds r1, 0x86
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldrb r2, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E6B78
+ adds r0, r4, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080E6B60
+ cmp r0, 0x1
+ bgt _080E6B4C
+ cmp r0, 0
+ beq _080E6B52
+ b _080E6BA4
+ .align 2, 0
+_080E6B44: .4byte 0x02001000
+_080E6B48: .4byte gMain
+_080E6B4C:
+ cmp r0, 0x2
+ beq _080E6B6C
+ b _080E6BA4
+_080E6B52:
+ ldr r0, _080E6B5C @ =sub_80E6BC0
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B5C: .4byte sub_80E6BC0
+_080E6B60:
+ ldr r0, _080E6B68 @ =sub_80E6C84
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B68: .4byte sub_80E6C84
+_080E6B6C:
+ ldr r0, _080E6B74 @ =sub_80E6D7C
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B74: .4byte sub_80E6D7C
+_080E6B78:
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x85
+ adds r3, r0, 0
+ muls r3, r2
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x27
+ strb r0, [r1]
+ bl sub_80E7574
+ ldr r0, _080E6BA0 @ =sub_80E6F68
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6BA0: .4byte sub_80E6F68
+_080E6BA4:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6BB4
+ ldr r0, _080E6BBC @ =sub_80E6C84
+ bl sub_80E682C
+_080E6BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6BBC: .4byte sub_80E6C84
+ thumb_func_end sub_80E6AE4
+
+ thumb_func_start sub_80E6BC0
+sub_80E6BC0: @ 80E6BC0
+ push {r4,lr}
+ ldr r4, _080E6BD4 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6C12
+ cmp r0, 0x1
+ bgt _080E6BD8
+ cmp r0, 0
+ beq _080E6BE2
+ b _080E6C76
+ .align 2, 0
+_080E6BD4: .4byte 0x02001000
+_080E6BD8:
+ cmp r0, 0x2
+ beq _080E6C54
+ cmp r0, 0x64
+ beq _080E6C64
+ b _080E6C76
+_080E6BE2:
+ movs r0, 0x2
+ bl sub_80E8398
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6BFA
+ movs r0, 0x6
+ bl sub_80E91D4
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6BFA:
+ movs r0, 0x2
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080E6C3E
+_080E6C12:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6C32
+ cmp r1, 0
+ bgt _080E6C2C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6C46
+ b _080E6C76
+_080E6C2C:
+ cmp r1, 0x1
+ beq _080E6C46
+ b _080E6C76
+_080E6C32:
+ bl sub_80E7D6C
+ bl sub_80E98C4
+ bl sub_80E95A4
+_080E6C3E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6C46:
+ ldr r1, _080E6C50 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6C76
+ .align 2, 0
+_080E6C50: .4byte 0x02001000
+_080E6C54:
+ bl sub_80E81FC
+ ldr r0, _080E6C60 @ =sub_80E6AC4
+ bl sub_80E682C
+ b _080E6C76
+ .align 2, 0
+_080E6C60: .4byte sub_80E6AC4
+_080E6C64:
+ ldr r0, _080E6C7C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6C76
+ ldr r0, _080E6C80 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6C7C: .4byte gMain
+_080E6C80: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6BC0
+
+ thumb_func_start sub_80E6C84
+sub_80E6C84: @ 80E6C84
+ push {r4,lr}
+ ldr r4, _080E6C98 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6CF4
+ cmp r0, 0x1
+ bgt _080E6C9C
+ cmp r0, 0
+ beq _080E6CA6
+ b _080E6D72
+ .align 2, 0
+_080E6C98: .4byte 0x02001000
+_080E6C9C:
+ cmp r0, 0x2
+ beq _080E6D24
+ cmp r0, 0xFF
+ beq _080E6D64
+ b _080E6D72
+_080E6CA6:
+ movs r0, 0x2
+ bl sub_80E8398
+ movs r0, 0x3
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x9
+ beq _080E6CE8
+ cmp r0, 0x4
+ beq _080E6CE8
+ cmp r0, 0x7
+ beq _080E6CE8
+ cmp r0, 0x8
+ beq _080E6CE8
+ cmp r0, 0xA
+ beq _080E6CE8
+ cmp r0, 0xB
+ beq _080E6CE8
+ cmp r0, 0xC
+ beq _080E6CE8
+ cmp r0, 0x5
+ beq _080E6CE8
+ cmp r0, 0xD
+ bne _080E6D1C
+_080E6CE8:
+ ldr r1, _080E6CF0 @ =0x02001000
+ movs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6CF0: .4byte 0x02001000
+_080E6CF4:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D06
+ cmp r1, 0
+ ble _080E6D34
+ b _080E6D3E
+_080E6D06:
+ movs r0, 0x4
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+_080E6D1C:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6D72
+_080E6D24:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D44
+ cmp r1, 0
+ bgt _080E6D3E
+_080E6D34:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6D58
+ b _080E6D72
+_080E6D3E:
+ cmp r1, 0x1
+ beq _080E6D58
+ b _080E6D72
+_080E6D44:
+ ldr r0, _080E6D50 @ =gScriptResult
+ strh r1, [r0]
+ ldr r0, _080E6D54 @ =sub_80E752C
+ bl sub_80E682C
+ b _080E6D72
+ .align 2, 0
+_080E6D50: .4byte gScriptResult
+_080E6D54: .4byte sub_80E752C
+_080E6D58:
+ ldr r1, _080E6D60 @ =0x02001000
+ movs r0, 0xFF
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6D60: .4byte 0x02001000
+_080E6D64:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r0, _080E6D78 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6D78: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6C84
+
+ thumb_func_start sub_80E6D7C
+sub_80E6D7C: @ 80E6D7C
+ push {r4-r7,lr}
+ ldr r5, _080E6D98 @ =0x02001000
+ ldrh r0, [r5, 0x24]
+ cmp r0, 0xA
+ bne _080E6D88
+ b _080E6F06
+_080E6D88:
+ cmp r0, 0xA
+ bgt _080E6D9C
+ cmp r0, 0
+ beq _080E6DB6
+ cmp r0, 0x1
+ beq _080E6E3C
+ b _080E6F5E
+ .align 2, 0
+_080E6D98: .4byte 0x02001000
+_080E6D9C:
+ cmp r0, 0x65
+ bne _080E6DA2
+ b _080E6F30
+_080E6DA2:
+ cmp r0, 0x65
+ bgt _080E6DAE
+ cmp r0, 0x64
+ bne _080E6DAC
+ b _080E6F24
+_080E6DAC:
+ b _080E6F5E
+_080E6DAE:
+ cmp r0, 0x66
+ bne _080E6DB4
+ b _080E6F50
+_080E6DB4:
+ b _080E6F5E
+_080E6DB6:
+ movs r0, 0x2
+ bl sub_80E8398
+ bl sub_80E8054
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6DCA
+ movs r0, 0x5
+ b _080E6DEE
+_080E6DCA:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6DFC
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6DDE
+ movs r0, 0x8
+ b _080E6DEE
+_080E6DDE:
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6DF8 @ =0x0000ffff
+ cmp r0, r1
+ beq _080E6DEC
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6DFC
+_080E6DEC:
+ movs r0, 0x9
+_080E6DEE:
+ bl sub_80E91D4
+ movs r0, 0xA
+ strh r0, [r5, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6DF8: .4byte 0x0000ffff
+_080E6DFC:
+ ldr r0, _080E6E18 @ =0x02001000
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ bne _080E6E20
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6E20
+ ldr r0, _080E6E1C @ =sub_80E6C84
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6E18: .4byte 0x02001000
+_080E6E1C: .4byte sub_80E6C84
+_080E6E20:
+ movs r0, 0x1
+ bl sub_80E91D4
+ bl sub_80E9744
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ b _080E6F3C
+_080E6E3C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _080E6E5C
+ cmp r6, 0
+ bgt _080E6E56
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E56:
+ cmp r6, 0x1
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E5C:
+ ldr r7, _080E6EC8 @ =gScriptResult
+ bl sub_80E7FA8
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r0, 31
+ strh r0, [r7]
+ bl sub_80E7D9C
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ bne _080E6E82
+ ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ bl sub_80E8094
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E82:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6E9C
+ bl sub_80E81C0
+ ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ ldr r1, _080E6ED0 @ =0x00009c7c
+ adds r0, r5, r1
+ bl sub_80FA364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E9C:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0xD
+ bne _080E6EBE
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6ED4 @ =0x0000ffff
+ cmp r0, r1
+ beq _080E6EB0
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6EB2
+_080E6EB0:
+ strh r6, [r7]
+_080E6EB2:
+ ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ bl sub_80E810C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6EBE:
+ ldr r0, _080E6ED8 @ =sub_80E752C
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6EC8: .4byte gScriptResult
+_080E6ECC: .4byte gUnknown_0202E8CC
+_080E6ED0: .4byte 0x00009c7c
+_080E6ED4: .4byte 0x0000ffff
+_080E6ED8: .4byte sub_80E752C
+_080E6EDC:
+ bl sub_8072DEC
+ bl sub_80E81FC
+ ldr r4, _080E6EFC @ =0x02001000
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6F00
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6F00
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6EFC: .4byte 0x02001000
+_080E6F00:
+ bl sub_80E95A4
+ b _080E6F12
+_080E6F06:
+ ldr r0, _080E6F1C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F12:
+ ldr r0, _080E6F20 @ =sub_80E6AC4
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6F1C: .4byte gMain
+_080E6F20: .4byte sub_80E6AC4
+_080E6F24:
+ movs r0, 0x7
+ bl sub_80E91D4
+ ldrh r0, [r5, 0x24]
+ adds r0, 0x1
+ strh r0, [r5, 0x24]
+_080E6F30:
+ ldr r0, _080E6F48 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F3C:
+ ldr r1, _080E6F4C @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6F48: .4byte gMain
+_080E6F4C: .4byte 0x02001000
+_080E6F50:
+ bl sub_80E7E50
+ bl sub_80E95A4
+ ldr r0, _080E6F64 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6F5E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6F64: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6D7C
+
+ thumb_func_start sub_80E6F68
+sub_80E6F68: @ 80E6F68
+ push {r4,lr}
+ ldr r4, _080E6F78 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0
+ beq _080E6F7C
+ cmp r0, 0x1
+ beq _080E6F9C
+ b _080E6FBC
+ .align 2, 0
+_080E6F78: .4byte 0x02001000
+_080E6F7C:
+ movs r0, 0x1
+ bl sub_80E8398
+ movs r0, 0xA
+ bl sub_80E91D4
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6FBC
+_080E6F9C:
+ bl sub_80E9EA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6FBC
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E6FC4 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E6FBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6FC4: .4byte sub_80E6FC8
+ thumb_func_end sub_80E6F68
+
+ thumb_func_start sub_80E6FC8
+sub_80E6FC8: @ 80E6FC8
+ push {r4,lr}
+ bl sub_80E77C8
+ adds r1, r0, 0
+ ldr r4, _080E7000 @ =0x02001000
+ adds r0, r4, 0
+ adds r0, 0x96
+ strb r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E700C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E7004 @ =sub_80E6FC8
+ str r1, [r0]
+ ldr r0, _080E7008 @ =sub_80E7458
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E7000: .4byte 0x02001000
+_080E7004: .4byte sub_80E6FC8
+_080E7008: .4byte sub_80E7458
+_080E700C:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E7018
+ movs r0, 0x5
+ bl PlaySE
+_080E7018:
+ ldr r0, _080E7054 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70E8
+ ldr r2, _080E7058 @ =0x000001b7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7090
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ beq _080E7070
+ cmp r0, 0x2
+ bgt _080E705C
+ cmp r0, 0x1
+ beq _080E7062
+ b _080E710A
+ .align 2, 0
+_080E7054: .4byte gMain
+_080E7058: .4byte 0x000001b7
+_080E705C:
+ cmp r0, 0x3
+ beq _080E70F0
+ b _080E710A
+_080E7062:
+ ldr r0, _080E706C @ =sub_80E718C
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E706C: .4byte sub_80E718C
+_080E7070:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ beq _080E710A
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ ldr r1, _080E708C @ =0x0000ffff
+ bl sub_80E7F00
+ bl sub_80E7574
+ bl sub_80E95A4
+ b _080E710A
+ .align 2, 0
+_080E708C: .4byte 0x0000ffff
+_080E7090:
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E70CA
+ ldr r2, _080E70DC @ =0x000001a9
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r2, _080E70E0 @ =0x00004142
+ adds r1, r4, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080E710A
+_080E70CA:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E7AD4
+ ldr r0, _080E70E4 @ =sub_80E7218
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70DC: .4byte 0x000001a9
+_080E70E0: .4byte 0x00004142
+_080E70E4: .4byte sub_80E7218
+_080E70E8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70FC
+_080E70F0:
+ ldr r0, _080E70F8 @ =sub_80E7114
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70F8: .4byte sub_80E7114
+_080E70FC:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E710A
+ ldr r0, _080E7110 @ =sub_80E718C
+ bl sub_80E682C
+_080E710A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7110: .4byte sub_80E718C
+ thumb_func_end sub_80E6FC8
+
+ thumb_func_start sub_80E7114
+sub_80E7114: @ 80E7114
+ push {lr}
+ ldr r0, _080E712C @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E7182
+ lsls r0, r1, 2
+ ldr r1, _080E7130 @ =_080E7134
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E712C: .4byte 0x02001000
+_080E7130: .4byte _080E7134
+ .align 2, 0
+_080E7134:
+ .4byte _080E7148
+ .4byte _080E715C
+ .4byte _080E715C
+ .4byte _080E7164
+ .4byte _080E717C
+_080E7148:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8D8C
+ b _080E716E
+_080E715C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E7182
+_080E7164:
+ bl sub_80E9F50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7182
+_080E716E:
+ ldr r1, _080E7178 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7182
+ .align 2, 0
+_080E7178: .4byte 0x02001000
+_080E717C:
+ ldr r0, _080E7188 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E7182:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7188: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7114
+
+ thumb_func_start sub_80E718C
+sub_80E718C: @ 80E718C
+ push {r4,lr}
+ ldr r0, _080E71A4 @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ beq _080E71C6
+ cmp r1, 0x1
+ bgt _080E71A8
+ cmp r1, 0
+ beq _080E71AE
+ b _080E71EC
+ .align 2, 0
+_080E71A4: .4byte 0x02001000
+_080E71A8:
+ cmp r1, 0x8
+ beq _080E71F4
+ b _080E71EC
+_080E71AE:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ bl sub_80E8D54
+ b _080E720E
+_080E71C6:
+ bl sub_80E9FD4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ movs r2, 0
+ adds r1, r4, 0
+ adds r1, 0x26
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080E71DE
+ movs r2, 0x1
+_080E71DE:
+ strb r2, [r1]
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+_080E71EC:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E720E
+_080E71F4:
+ bl sub_80EA014
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E7214 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E720E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7214: .4byte sub_80E6FC8
+ thumb_func_end sub_80E718C
+
+ thumb_func_start sub_80E7218
+sub_80E7218: @ 80E7218
+ push {r4,lr}
+ ldr r4, _080E7230 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ adds r1, r4, 0
+ cmp r0, 0x9
+ beq _080E7260
+ cmp r0, 0x9
+ bgt _080E7234
+ cmp r0, 0x8
+ beq _080E7244
+ b _080E723C
+ .align 2, 0
+_080E7230: .4byte 0x02001000
+_080E7234:
+ cmp r0, 0xA
+ beq _080E7276
+ cmp r0, 0xB
+ beq _080E7288
+_080E723C:
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7288
+_080E7244:
+ movs r0, 0
+ bl sub_80E8D8C
+ bl sub_80E8504
+ bl sub_80E9AD4
+ bl sub_80E68E8
+ bl sub_80E88F0
+ bl sub_80E9E98
+ b _080E726E
+_080E7260:
+ bl sub_80EA050
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7288
+ bl sub_80E9C94
+_080E726E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7288
+_080E7276:
+ movs r0, 0x1
+ bl sub_80E87CC
+ movs r0, 0x1
+ bl sub_80E8958
+ ldr r0, _080E7290 @ =sub_80E7294
+ bl sub_80E682C
+_080E7288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7290: .4byte sub_80E7294
+ thumb_func_end sub_80E7218
+
+ thumb_func_start sub_80E7294
+sub_80E7294: @ 80E7294
+ push {r4,lr}
+ bl sub_80E7B40
+ adds r1, r0, 0
+ ldr r4, _080E72CC @ =0x02001000
+ ldr r2, _080E72D0 @ =0x000001b9
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E72DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E72D4 @ =sub_80E7294
+ str r1, [r0]
+ ldr r0, _080E72D8 @ =sub_80E7458
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E72CC: .4byte 0x02001000
+_080E72D0: .4byte 0x000001b9
+_080E72D4: .4byte sub_80E7294
+_080E72D8: .4byte sub_80E7458
+_080E72DC:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E72E8
+ movs r0, 0x5
+ bl PlaySE
+_080E72E8:
+ ldr r0, _080E7304 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E730C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080E7308 @ =sub_80E7324
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E7304: .4byte gMain
+_080E7308: .4byte sub_80E7324
+_080E730C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E731A
+ ldr r0, _080E7320 @ =sub_80E73D0
+ bl sub_80E682C
+_080E731A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7320: .4byte sub_80E73D0
+ thumb_func_end sub_80E7294
+
+ thumb_func_start sub_80E7324
+sub_80E7324: @ 80E7324
+ push {lr}
+ ldr r0, _080E733C @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E73C6
+ lsls r0, r1, 2
+ ldr r1, _080E7340 @ =_080E7344
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E733C: .4byte 0x02001000
+_080E7340: .4byte _080E7344
+ .align 2, 0
+_080E7344:
+ .4byte _080E7358
+ .4byte _080E737C
+ .4byte _080E7384
+ .4byte _080E738A
+ .4byte _080E73A4
+_080E7358:
+ bl sub_80E7DD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7370
+ ldr r0, _080E736C @ =sub_80E7294
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E736C: .4byte sub_80E7294
+_080E7370:
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E87CC
+ b _080E7394
+_080E737C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E73C6
+_080E7384:
+ bl sub_80E9E98
+ b _080E7394
+_080E738A:
+ bl sub_80EA184
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C6
+_080E7394:
+ ldr r1, _080E73A0 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E73C6
+ .align 2, 0
+_080E73A0: .4byte 0x02001000
+_080E73A4:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0x6
+ bne _080E73C0
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C0
+ ldr r0, _080E73BC @ =sub_80E6D7C
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E73BC: .4byte sub_80E6D7C
+_080E73C0:
+ ldr r0, _080E73CC @ =sub_80E6AC4
+ bl sub_80E682C
+_080E73C6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E73CC: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7324
+
+ thumb_func_start sub_80E73D0
+sub_80E73D0: @ 80E73D0
+ push {lr}
+ ldr r0, _080E73E4 @ =0x02001000
+ ldrh r0, [r0, 0x24]
+ cmp r0, 0x4
+ bhi _080E744E
+ lsls r0, 2
+ ldr r1, _080E73E8 @ =_080E73EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E73E4: .4byte 0x02001000
+_080E73E8: .4byte _080E73EC
+ .align 2, 0
+_080E73EC:
+ .4byte _080E7400
+ .4byte _080E740C
+ .4byte _080E7416
+ .4byte _080E742C
+ .4byte _080E7444
+_080E7400:
+ movs r0, 0
+ bl sub_80E87CC
+ bl sub_80E88F0
+ b _080E7436
+_080E740C:
+ bl sub_80E9AD4
+ bl sub_80E9E98
+ b _080E7436
+_080E7416:
+ bl sub_80EA0E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E744E
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E9A14
+ b _080E7436
+_080E742C:
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+_080E7436:
+ ldr r1, _080E7440 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E744E
+ .align 2, 0
+_080E7440: .4byte 0x02001000
+_080E7444:
+ bl sub_80E9974
+ ldr r0, _080E7454 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E744E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7454: .4byte sub_80E6FC8
+ thumb_func_end sub_80E73D0
+
+ thumb_func_start sub_80E7458
+sub_80E7458: @ 80E7458
+ push {r4,r5,lr}
+ ldr r4, _080E7468 @ =0x02001000
+ ldrh r5, [r4, 0x24]
+ cmp r5, 0
+ beq _080E746C
+ cmp r5, 0x1
+ beq _080E74A4
+ b _080E7518
+ .align 2, 0
+_080E7468: .4byte 0x02001000
+_080E746C:
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E7480 @ =sub_80E6FC8
+ cmp r1, r0
+ bne _080E7484
+ bl sub_80E9D7C
+ b _080E7488
+ .align 2, 0
+_080E7480: .4byte sub_80E6FC8
+_080E7484:
+ bl sub_80E9D00
+_080E7488:
+ ldr r4, _080E74A0 @ =0x02001000
+ movs r2, 0xDF
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80E9E08
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7518
+ .align 2, 0
+_080E74A0: .4byte 0x02001000
+_080E74A4:
+ bl sub_80E9E54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7518
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E74DC @ =sub_80E6FC8
+ cmp r1, r0
+ bne _080E74E4
+ bl sub_80E9D7C
+ ldr r2, _080E74E0 @ =0x000001b5
+ adds r1, r4, r2
+ adds r2, 0xB
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7A98
+ adds r0, r4, 0
+ adds r0, 0x96
+ b _080E74FE
+ .align 2, 0
+_080E74DC: .4byte sub_80E6FC8
+_080E74E0: .4byte 0x000001b5
+_080E74E4:
+ ldr r0, _080E7520 @ =0x00009a29
+ adds r1, r4, r0
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7D30
+ ldr r1, _080E7524 @ =0x000001b9
+ adds r0, r4, r1
+_080E74FE:
+ strb r5, [r0]
+ ldr r1, _080E7528 @ =0x02001000
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0x2
+ strb r0, [r2]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ bl sub_80E682C
+_080E7518:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7520: .4byte 0x00009a29
+_080E7524: .4byte 0x000001b9
+_080E7528: .4byte 0x02001000
+ thumb_func_end sub_80E7458
+
+ thumb_func_start sub_80E752C
+sub_80E752C: @ 80E752C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080E7540 @ =0x02001000
+ ldrh r1, [r4, 0x24]
+ cmp r1, 0
+ beq _080E7544
+ cmp r1, 0x1
+ beq _080E755C
+ b _080E756C
+ .align 2, 0
+_080E7540: .4byte 0x02001000
+_080E7544:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E756C
+_080E755C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E756C
+ ldr r0, [r4]
+ bl SetMainCallback2
+_080E756C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E752C
+
+ thumb_func_start sub_80E7574
+sub_80E7574: @ 80E7574
+ push {r4,r5,lr}
+ ldr r4, _080E75B8 @ =0x02001000
+ ldrb r5, [r4, 0x8]
+ cmp r5, 0x1
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r4, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ lsls r0, 1
+ subs r1, 0x72
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ beq _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x7D
+ strb r5, [r0]
+ adds r1, r4, 0
+ b _080E75C6
+ .align 2, 0
+_080E75B8: .4byte 0x02001000
+_080E75BC:
+ ldr r1, _080E75D4 @ =0x02001000
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0
+ strb r0, [r2]
+_080E75C6:
+ adds r1, 0x7D
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E75D4: .4byte 0x02001000
+ thumb_func_end sub_80E7574
+
+ thumb_func_start sub_80E75D8
+sub_80E75D8: @ 80E75D8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r2, _080E75FC @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7604
+ ldr r1, _080E7600 @ =0x02001000
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x86
+ strb r0, [r2]
+ adds r1, 0x85
+ movs r0, 0x2
+ b _080E768E
+ .align 2, 0
+_080E75FC: .4byte gMain
+_080E7600: .4byte 0x02001000
+_080E7604:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7630
+ ldr r2, _080E762C @ =0x02001000
+ adds r1, r2, 0
+ adds r1, 0x86
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E765C
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080E765C
+ .align 2, 0
+_080E762C: .4byte 0x02001000
+_080E7630:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7658
+ ldr r0, _080E7684 @ =0x02001000
+ adds r3, r0, 0
+ adds r3, 0x86
+ ldrb r1, [r3]
+ adds r1, 0x1
+ strb r1, [r3]
+ adds r0, 0x84
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ ble _080E7656
+ strb r4, [r3]
+_080E7656:
+ movs r4, 0x1
+_080E7658:
+ cmp r4, 0
+ beq _080E76EA
+_080E765C:
+ ldr r2, _080E7684 @ =0x02001000
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0x2
+ bne _080E7692
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7688
+ adds r0, r2, 0
+ adds r0, 0x85
+ strb r3, [r0]
+ b _080E77BC
+ .align 2, 0
+_080E7684: .4byte 0x02001000
+_080E7688:
+ adds r1, r2, 0
+ adds r1, 0x85
+ movs r0, 0
+_080E768E:
+ strb r0, [r1]
+ b _080E77BC
+_080E7692:
+ movs r0, 0x85
+ adds r0, r2
+ mov r12, r0
+ adds r4, r2, 0
+ adds r4, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrb r3, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _080E76B0
+ subs r0, r3, 0x1
+ mov r1, r12
+ strb r0, [r1]
+_080E76B0:
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r3, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ beq _080E77BC
+ ldrb r0, [r4]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, 0
+ mov r5, r12
+ ldrb r5, [r5]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+ mov r6, r12
+ strb r0, [r6]
+ b _080E77BC
+_080E76EA:
+ ldrh r2, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080E7744
+ ldr r2, _080E7728 @ =0x02001000
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E77BC
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r4, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E772C
+ movs r0, 0x2
+ b _080E77BA
+ .align 2, 0
+_080E7728: .4byte 0x02001000
+_080E772C:
+ adds r0, r2, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ subs r1, r0, 0x1
+ strb r1, [r3]
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ b _080E77B2
+_080E7744:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080E77C0
+ ldr r2, _080E777C @ =0x02001000
+ adds r5, r2, 0
+ adds r5, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7780
+ adds r1, r2, 0
+ adds r1, 0x85
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ ble _080E77BC
+ strb r4, [r1]
+ b _080E77BC
+ .align 2, 0
+_080E777C: .4byte 0x02001000
+_080E7780:
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r6, 0x83
+ adds r6, r2
+ mov r12, r6
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ blt _080E779E
+ strb r4, [r3]
+_080E779E:
+ ldrb r1, [r5]
+ mov r4, r12
+ ldrb r0, [r4]
+ adds r5, r0, 0
+ muls r5, r1
+ adds r0, r5, 0
+ ldrb r6, [r3]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+_080E77B2:
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+_080E77BA:
+ strb r0, [r3]
+_080E77BC:
+ movs r0, 0x1
+ b _080E77C2
+_080E77C0:
+ movs r0, 0
+_080E77C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E75D8
+
+ thumb_func_start sub_80E77C8
+sub_80E77C8: @ 80E77C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r1, _080E780C @ =0x02001000
+ ldr r2, _080E7810 @ =0x000001b7
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080E783E
+ ldr r1, _080E7814 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7818
+ movs r4, 0xD4
+ lsls r4, 1
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ ble _080E7806
+ b _080E7948
+_080E7806:
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7948
+ .align 2, 0
+_080E780C: .4byte 0x02001000
+_080E7810: .4byte 0x000001b7
+_080E7814: .4byte gMain
+_080E7818:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _080E7822
+ b _080E7950
+_080E7822:
+ movs r5, 0xD4
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080E7838
+ b _080E7948
+_080E7838:
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080E7948
+_080E783E:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E789A
+ movs r4, 0
+ ldr r1, _080E7870 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7874
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r1, r3, r6
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7944
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7944
+ .align 2, 0
+_080E7870: .4byte gMain
+_080E7874:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E7894
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080E7892
+ strb r7, [r1]
+_080E7892:
+ movs r4, 0x1
+_080E7894:
+ cmp r4, 0
+ beq _080E7950
+ b _080E7944
+_080E789A:
+ movs r4, 0
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r5, r3, r1
+ strb r7, [r5]
+ ldr r1, _080E78E0 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E78E8
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E78C4
+ b _080E7A88
+_080E78C4:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E78E4 @ =0x000001b5
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7932
+ movs r0, 0xFF
+ strb r0, [r5]
+ b _080E7932
+ .align 2, 0
+_080E78E0: .4byte gMain
+_080E78E4: .4byte 0x000001b5
+_080E78E8:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E792E
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ movs r4, 0xDB
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E790E
+ b _080E7A88
+_080E790E:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E794C @ =0x000001b5
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x3
+ cmp r1, r0
+ ble _080E792C
+ movs r0, 0x1
+ strb r0, [r5]
+_080E792C:
+ movs r4, 0x1
+_080E792E:
+ cmp r4, 0
+ beq _080E7950
+_080E7932:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7944
+ b _080E7A88
+_080E7944:
+ bl sub_80E7A98
+_080E7948:
+ movs r0, 0x1
+ b _080E7A8A
+ .align 2, 0
+_080E794C: .4byte 0x000001b5
+_080E7950:
+ ldrh r1, [r6, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _080E7992
+ ldr r5, _080E7974 @ =0x000001a9
+ adds r2, r3, r5
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080E7978
+ subs r0, r1, 0x1
+ strb r0, [r2]
+ b _080E79E6
+ .align 2, 0
+_080E7974: .4byte 0x000001a9
+_080E7978:
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r4, 0xD5
+ lsls r4, 1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ b _080E79E6
+_080E7992:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E79E2
+ ldr r5, _080E79D4 @ =0x000001b7
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E79CC
+ ldr r0, _080E79D8 @ =0x000001a9
+ adds r4, r3, r0
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD5
+ lsls r2, 1
+ adds r0, r3, r2
+ adds r1, r0
+ ldrb r5, [r4]
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E79DC
+_080E79CC:
+ ldr r4, _080E79D8 @ =0x000001a9
+ adds r0, r3, r4
+ strb r6, [r0]
+ b _080E79E0
+ .align 2, 0
+_080E79D4: .4byte 0x000001b7
+_080E79D8: .4byte 0x000001a9
+_080E79DC:
+ adds r0, r5, 0x1
+ strb r0, [r4]
+_080E79E0:
+ movs r7, 0x1
+_080E79E2:
+ cmp r7, 0
+ beq _080E7A88
+_080E79E6:
+ adds r2, r3, 0
+ ldr r5, _080E7A48 @ =0x000001b7
+ adds r7, r2, r5
+ ldrb r6, [r7]
+ mov r9, r6
+ movs r1, 0
+ ldr r0, _080E7A4C @ =0x000001a9
+ adds r0, r2
+ mov r12, r0
+ subs r5, 0xF
+ adds r4, r2, r5
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r6, 0xD5
+ lsls r6, 1
+ adds r6, r2
+ mov r8, r6
+ add r0, r8
+ mov r6, r12
+ movs r5, 0
+ ldrsb r5, [r6, r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E7A1C
+ movs r1, 0x1
+_080E7A1C:
+ strb r1, [r7]
+ cmp r1, 0
+ beq _080E7A58
+ ldr r0, _080E7A50 @ =0x000001b5
+ adds r1, r2, r0
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ subs r0, r1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7A36
+ b _080E7948
+_080E7A36:
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080E7A54 @ =0x000001ab
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r2, r12
+ strb r0, [r2]
+ b _080E7948
+ .align 2, 0
+_080E7A48: .4byte 0x000001b7
+_080E7A4C: .4byte 0x000001a9
+_080E7A50: .4byte 0x000001b5
+_080E7A54: .4byte 0x000001ab
+_080E7A58:
+ mov r6, r9
+ cmp r6, 0
+ bne _080E7A60
+ b _080E7948
+_080E7A60:
+ ldr r1, _080E7A84 @ =0x000001b5
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ adds r0, r2
+ strb r0, [r4]
+ cmp r5, 0
+ bne _080E7A72
+ b _080E7948
+_080E7A72:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r0, r8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r4, r12
+ strb r0, [r4]
+ b _080E7948
+ .align 2, 0
+_080E7A84: .4byte 0x000001b5
+_080E7A88:
+ movs r0, 0
+_080E7A8A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E77C8
+
+ thumb_func_start sub_80E7A98
+sub_80E7A98: @ 80E7A98
+ push {lr}
+ ldr r1, _080E7ACC @ =0x02001000
+ ldr r0, _080E7AD0 @ =0x000001a9
+ adds r3, r1, r0
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0x2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ ldrb r2, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080E7AC6
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080E7AC6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7ACC: .4byte 0x02001000
+_080E7AD0: .4byte 0x000001a9
+ thumb_func_end sub_80E7A98
+
+ thumb_func_start sub_80E7AD4
+sub_80E7AD4: @ 80E7AD4
+ push {lr}
+ ldr r3, _080E7B08 @ =0x02001000
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7B10
+ ldr r1, _080E7B0C @ =0x000001a9
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x2A
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r2, 0x10
+ b _080E7B34
+ .align 2, 0
+_080E7B08: .4byte 0x02001000
+_080E7B0C: .4byte 0x000001a9
+_080E7B10:
+ ldr r1, _080E7B3C @ =0x000001a9
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r1, 0x1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r3, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r2, 0xDC
+ lsls r2, 1
+_080E7B34:
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7B3C: .4byte 0x000001a9
+ thumb_func_end sub_80E7AD4
+
+ thumb_func_start sub_80E7B40
+sub_80E7B40: @ 80E7B40
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r2, _080E7B8C @ =0x02001000
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r6, r2, r0
+ strb r5, [r6]
+ ldr r1, _080E7B90 @ =gMain
+ ldrh r4, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r4
+ adds r3, r2, 0
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080E7B9C
+ ldr r2, _080E7B94 @ =0x000099a4
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E7B6E
+ b _080E7D1A
+_080E7B6E:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E7B98 @ =0x00009a29
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7BF2
+ movs r0, 0xFF
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7B8C: .4byte 0x02001000
+_080E7B90: .4byte gMain
+_080E7B94: .4byte 0x000099a4
+_080E7B98: .4byte 0x00009a29
+_080E7B9C:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _080E7BEE
+ ldr r0, _080E7BE0 @ =0x000099a4
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r4, _080E7BE4 @ =0x00009a28
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E7BBE
+ b _080E7D1A
+_080E7BBE:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E7BE8 @ =0x00009a29
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ cmp r1, r0
+ blt _080E7BEC
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7BE0: .4byte 0x000099a4
+_080E7BE4: .4byte 0x00009a28
+_080E7BE8: .4byte 0x00009a29
+_080E7BEC:
+ movs r5, 0x1
+_080E7BEE:
+ cmp r5, 0
+ beq _080E7BFA
+_080E7BF2:
+ bl sub_80E7D30
+_080E7BF6:
+ movs r0, 0x1
+ b _080E7D1C
+_080E7BFA:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080E7C38
+ ldr r4, _080E7C30 @ =0x000099a5
+ adds r2, r3, r4
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7BF6
+ ldr r6, _080E7C34 @ =0x000099a4
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, 0x1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r2]
+ b _080E7BF6
+ .align 2, 0
+_080E7C30: .4byte 0x000099a5
+_080E7C34: .4byte 0x000099a4
+_080E7C38:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7C70
+ ldr r6, _080E7C68 @ =0x000099a5
+ adds r4, r3, r6
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r2, _080E7C6C @ =0x000099a4
+ adds r1, r3, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r6, 0x1
+ adds r1, r3, r6
+ adds r2, r1
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ blt _080E7BF6
+ strb r5, [r4]
+ b _080E7BF6
+ .align 2, 0
+_080E7C68: .4byte 0x000099a5
+_080E7C6C: .4byte 0x000099a4
+_080E7C70:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7CC4
+ ldr r1, _080E7CBC @ =0x00009a29
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7CA2
+ negs r0, r1
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r2, r3, r4
+ strb r0, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E7CA2
+ strb r1, [r2]
+_080E7CA2:
+ ldr r6, _080E7CC0 @ =0x000099a4
+ adds r1, r3, r6
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ ldrb r4, [r1]
+ adds r0, r4
+ strb r0, [r1]
+ movs r6, 0xDF
+ lsls r6, 1
+ adds r1, r3, r6
+ b _080E7D16
+ .align 2, 0
+_080E7CBC: .4byte 0x00009a29
+_080E7CC0: .4byte 0x000099a4
+_080E7CC4:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7D1A
+ ldr r0, _080E7D24 @ =0x00009a29
+ adds r4, r3, r0
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r6, _080E7D28 @ =0x00009a28
+ adds r2, r3, r6
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ subs r0, 0x4
+ cmp r1, r0
+ bge _080E7CFE
+ ldrb r1, [r4]
+ adds r1, 0x4
+ ldrb r0, [r2]
+ subs r0, r1
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080E7CFE
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7CFE:
+ ldr r4, _080E7D2C @ =0x000099a4
+ adds r1, r3, r4
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ movs r4, 0xDF
+ lsls r4, 1
+ adds r1, r3, r4
+_080E7D16:
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7D1A:
+ movs r0, 0
+_080E7D1C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7D24: .4byte 0x00009a29
+_080E7D28: .4byte 0x00009a28
+_080E7D2C: .4byte 0x000099a4
+ thumb_func_end sub_80E7B40
+
+ thumb_func_start sub_80E7D30
+sub_80E7D30: @ 80E7D30
+ push {r4,lr}
+ ldr r0, _080E7D60 @ =0x02001000
+ ldr r1, _080E7D64 @ =0x000099a5
+ adds r4, r0, r1
+ ldr r2, _080E7D68 @ =0x000099a4
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r2, 0x2
+ adds r0, r2
+ adds r1, r0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ ldrb r3, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ blt _080E7D5A
+ subs r0, r3, 0x1
+ strb r0, [r4]
+_080E7D5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D60: .4byte 0x02001000
+_080E7D64: .4byte 0x000099a5
+_080E7D68: .4byte 0x000099a4
+ thumb_func_end sub_80E7D30
+
+ thumb_func_start sub_80E7D6C
+sub_80E7D6C: @ 80E7D6C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080E7D94 @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r4, r1
+ bcs _080E7D8E
+ adds r5, r0, 0
+_080E7D7A:
+ adds r0, r4, 0
+ ldr r1, _080E7D98 @ =0x0000ffff
+ bl sub_80E7F00
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r5, 0xA]
+ cmp r4, r0
+ bcc _080E7D7A
+_080E7D8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D94: .4byte 0x02001000
+_080E7D98: .4byte 0x0000ffff
+ thumb_func_end sub_80E7D6C
+
+ thumb_func_start sub_80E7D9C
+sub_80E7D9C: @ 80E7D9C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _080E7DCC @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r2, r1
+ bcs _080E7DC6
+ adds r3, r0, 0
+ ldr r4, [r3, 0x4]
+ adds r5, r3, 0
+ adds r5, 0xC
+_080E7DB0:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r3, 0xA]
+ cmp r2, r0
+ bcc _080E7DB0
+_080E7DC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7DCC: .4byte 0x02001000
+ thumb_func_end sub_80E7D9C
+
+ thumb_func_start sub_80E7DD0
+sub_80E7DD0: @ 80E7DD0
+ push {r4,lr}
+ ldr r2, _080E7E28 @ =0x02001000
+ ldr r1, _080E7E2C @ =0x000099a5
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r3, _080E7E30 @ =0x000099a4
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0
+ adds r3, 0x86
+ adds r0, r2, r3
+ adds r1, r0
+ ldrh r4, [r1]
+ adds r0, r2, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E7E34
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080E7E34
+ adds r0, r4, 0
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bne _080E7E34
+ movs r0, 0
+ b _080E7E46
+ .align 2, 0
+_080E7E28: .4byte 0x02001000
+_080E7E2C: .4byte 0x000099a5
+_080E7E30: .4byte 0x000099a4
+_080E7E34:
+ ldr r0, _080E7E4C @ =0x02001000
+ adds r0, 0x27
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80E7F00
+ bl sub_80E95A4
+ movs r0, 0x1
+_080E7E46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7E4C: .4byte 0x02001000
+ thumb_func_end sub_80E7DD0
+
+ thumb_func_start sub_80E7E50
+sub_80E7E50: @ 80E7E50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r5, 0
+ movs r2, 0
+ ldr r1, _080E7EF0 @ =0x02001000
+ adds r3, r1, 0
+ adds r3, 0x84
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r2, r0
+ bge _080E7EDE
+ mov r8, r1
+ adds r0, r1, 0
+ str r0, [sp]
+_080E7E74:
+ mov r0, r8
+ adds r0, 0x7E
+ adds r0, r2, r0
+ movs r1, 0
+ strb r1, [r0]
+ movs r3, 0
+ ldr r6, _080E7EF4 @ =0x02001083
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ cmp r3, r0
+ bge _080E7ECE
+ ldr r6, [sp]
+ mov r12, r6
+ movs r0, 0
+ mov r10, r0
+ ldr r1, _080E7EF4 @ =0x02001083
+ mov r9, r1
+ ldr r7, _080E7EF8 @ =0x0200100c
+ lsls r4, r2, 1
+_080E7E9E:
+ lsls r1, r5, 1
+ adds r2, r1, r7
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r0, r3, r4
+ mov r1, r12
+ adds r1, 0x8C
+ adds r0, r1
+ mov r1, r10
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r6, r9
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r3, r0
+ blt _080E7E9E
+_080E7ECE:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r6, _080E7EFC @ =0x02001084
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080E7E74
+_080E7EDE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7EF0: .4byte 0x02001000
+_080E7EF4: .4byte 0x02001083
+_080E7EF8: .4byte 0x0200100c
+_080E7EFC: .4byte 0x02001084
+ thumb_func_end sub_80E7E50
+
+ thumb_func_start sub_80E7F00
+sub_80E7F00: @ 80E7F00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r7, _080E7F68 @ =0x02001000
+ adds r0, r7, 0
+ adds r0, 0x83
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r1, r7, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r9
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, 0x7
+ bne _080E7F6C
+ cmp r3, 0x7
+ beq _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _080E7F7A
+ .align 2, 0
+_080E7F68: .4byte 0x02001000
+_080E7F6C:
+ cmp r3, 0x7
+ bne _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ adds r0, 0x1
+_080E7F7A:
+ strb r0, [r1]
+_080E7F7C:
+ movs r3, 0
+ ldr r2, _080E7FA4 @ =0x02001000
+ lsls r0, r5, 1
+ add r0, r8
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r0, r1
+ strb r3, [r0]
+ lsls r0, r6, 1
+ adds r2, 0xC
+ adds r0, r2
+ mov r1, r9
+ strh r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7FA4: .4byte 0x02001000
+ thumb_func_end sub_80E7F00
+
+ thumb_func_start sub_80E7FA8
+sub_80E7FA8: @ 80E7FA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080E8040 @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r8, r1
+ bcs _080E802E
+ ldr r3, _080E8044 @ =0x00009e14
+ adds r6, r0, r3
+ ldr r1, _080E8048 @ =0x00009e41
+ adds r1, r0
+ mov r9, r1
+_080E7FC8:
+ ldr r3, _080E804C @ =0xffff61ec
+ adds r7, r6, r3
+ ldr r0, [r7, 0x4]
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r1, _080E8050 @ =0xffff61f8
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0
+ bl sub_80EB218
+ adds r1, r6, 0
+ mov r2, r9
+ ldrb r0, [r1]
+ adds r4, r5, 0x1
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _080E8018
+ adds r3, r7, 0
+ cmp r0, 0xFF
+ beq _080E8010
+_080E8000:
+ adds r1, 0x1
+ adds r2, 0x1
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bne _080E8018
+ cmp r0, 0xFF
+ bne _080E8000
+_080E8010:
+ ldrb r0, [r1]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080E8024
+_080E8018:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r3, _080E8040 @ =0x02001000
+_080E8024:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r3, 0xA]
+ cmp r5, r3
+ bcc _080E7FC8
+_080E802E:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E8040: .4byte 0x02001000
+_080E8044: .4byte 0x00009e14
+_080E8048: .4byte 0x00009e41
+_080E804C: .4byte 0xffff61ec
+_080E8050: .4byte 0xffff61f8
+ thumb_func_end sub_80E7FA8
+
+ thumb_func_start sub_80E8054
+sub_80E8054: @ 80E8054
+ push {r4,lr}
+ movs r1, 0
+ ldr r2, _080E8078 @ =0x02001000
+ ldrb r0, [r2, 0xA]
+ cmp r1, r0
+ bcs _080E808A
+ adds r4, r2, 0
+ adds r4, 0xC
+ ldr r3, _080E807C @ =0x0000ffff
+ adds r2, r0, 0
+_080E8068:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _080E8080
+ movs r0, 0
+ b _080E808C
+ .align 2, 0
+_080E8078: .4byte 0x02001000
+_080E807C: .4byte 0x0000ffff
+_080E8080:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080E8068
+_080E808A:
+ movs r0, 0x1
+_080E808C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8054
+
+ thumb_func_start sub_80E8094
+sub_80E8094: @ 80E8094
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, _080E80C4 @ =0x0200ae14
+ adds r7, r6, 0
+ adds r7, 0x2D
+_080E809E:
+ lsls r4, r5, 1
+ ldr r1, _080E80C8 @ =0xffff61f8
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r0, _080E80CC @ =gMysteryEventPhrase
+ adds r4, r0
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r3, r6, 0
+ adds r4, r7, 0
+ b _080E80D8
+ .align 2, 0
+_080E80C4: .4byte 0x0200ae14
+_080E80C8: .4byte 0xffff61f8
+_080E80CC: .4byte gMysteryEventPhrase
+_080E80D0:
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r2, r1
+ bne _080E80F4
+_080E80D8:
+ ldrb r2, [r3]
+ adds r0, r2, 0
+ cmp r0, 0xFF
+ beq _080E80EE
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _080E80D0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E80F4
+_080E80EE:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080E80F8
+_080E80F4:
+ movs r0, 0
+ b _080E8104
+_080E80F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E809E
+ movs r0, 0x1
+_080E8104:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8094
+
+ thumb_func_start sub_80E810C
+sub_80E810C: @ 80E810C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080E8198 @ =0x0200ae6e
+ ldr r0, _080E819C @ =0xffff6192
+ adds r0, r6
+ mov r9, r0
+ movs r1, 0
+ mov r8, r1
+ adds r7, r6, 0
+ adds r7, 0x80
+ ldr r2, _080E81A0 @ =gBerryMasterWifePhrases
+ mov r10, r2
+_080E812C:
+ mov r0, r9
+ ldrh r1, [r0, 0xC]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, 0x1
+ mov r2, r9
+ ldrh r1, [r2, 0xE]
+ movs r2, 0
+ bl sub_80EB218
+ lsls r4, r5, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ adds r0, r6, 0
+ adds r3, r7, 0
+ adds r4, r5, 0x1
+_080E8170:
+ ldrb r2, [r0]
+ cmp r2, 0xFF
+ beq _080E818A
+ ldrb r1, [r3]
+ cmp r1, 0xFF
+ beq _080E8184
+ adds r3, 0x1
+ adds r0, 0x1
+ cmp r2, r1
+ beq _080E8170
+_080E8184:
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E81A8
+_080E818A:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E81A8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _080E81B2
+ .align 2, 0
+_080E8198: .4byte 0x0200ae6e
+_080E819C: .4byte 0xffff6192
+_080E81A0: .4byte gBerryMasterWifePhrases
+_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
+_080E81A8:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080E812C
+ movs r0, 0
+_080E81B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E810C
+
+ thumb_func_start sub_80E81C0
+sub_80E81C0: @ 80E81C0
+ push {r4,lr}
+ ldr r0, _080E81EC @ =gStringVar2
+ ldr r4, _080E81F0 @ =0x02001000
+ ldr r2, _080E81F4 @ =0x00009c7c
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_80EB218
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81F8 @ =0x00009c7e
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E81EC: .4byte gStringVar2
+_080E81F0: .4byte 0x02001000
+_080E81F4: .4byte 0x00009c7c
+_080E81F8: .4byte 0x00009c7e
+ thumb_func_end sub_80E81C0
+
+ thumb_func_start sub_80E81FC
+sub_80E81FC: @ 80E81FC
+ push {lr}
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E95A4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E81FC
+
+ thumb_func_start sub_80E8218
+sub_80E8218: @ 80E8218
+ push {r4,r5,lr}
+ sub sp, 0x40
+ mov r1, sp
+ ldr r0, _080E8260 @ =gSpriteSheets_Interview
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r4, sp, 0x28
+ adds r1, r4, 0
+ ldr r0, _080E8264 @ =gSpritePalettes_Interview
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ bl sub_80E8268
+ bl sub_80E8818
+ bl sub_80E8A7C
+ add sp, 0x40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8260: .4byte gSpriteSheets_Interview
+_080E8264: .4byte gSpritePalettes_Interview
+ thumb_func_end sub_80E8218
+
+ thumb_func_start sub_80E8268
+sub_80E8268: @ 80E8268
+ push {lr}
+ ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E82B4 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080E82B8 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x8
+ movs r2, 0
+ strh r0, [r1, 0x22]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r0, r3, 0
+ adds r0, 0x98
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E82B0: .4byte gSpriteTemplate_83DBBFC
+_080E82B4: .4byte gSprites
+_080E82B8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8268
+
+ thumb_func_start sub_80E82BC
+sub_80E82BC: @ 80E82BC
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E838C
+ ldr r0, _080E8334 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x87
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E836C
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0
+ movs r1, 0
+ cmp r7, r4
+ bcs _080E8316
+ lsls r6, r5, 1
+ adds r2, 0x8C
+_080E8300:
+ adds r0, r1, r6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bcc _080E8300
+_080E8316:
+ mov r0, r12
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E8338
+ movs r0, 0x60
+ strh r0, [r3, 0x22]
+ lsls r0, r4, 3
+ subs r0, r4
+ adds r0, 0x3
+ b _080E8356
+ .align 2, 0
+_080E8334: .4byte gUnknown_083DB694
+_080E8338:
+ adds r1, r2, 0
+ adds r1, 0x8A
+ lsls r0, r5, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ adds r0, r7
+ movs r1, 0xB
+ muls r1, r4
+ adds r0, r1
+_080E8356:
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3, 0x20]
+ movs r1, 0
+ ldr r0, _080E8368 @ =0x0000fffa
+ strh r0, [r3, 0x24]
+ strh r1, [r3, 0x2E]
+ b _080E838C
+ .align 2, 0
+_080E8368: .4byte 0x0000fffa
+_080E836C:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E838C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x24]
+ adds r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E838C
+ ldr r0, _080E8394 @ =0x0000fffa
+ strh r0, [r3, 0x24]
+_080E838C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8394: .4byte 0x0000fffa
+ thumb_func_end sub_80E82BC
+
+ thumb_func_start sub_80E8398
+sub_80E8398: @ 80E8398
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ beq _080E83D4
+ cmp r3, 0x1
+ bgt _080E83AC
+ cmp r3, 0
+ beq _080E83B2
+ b _080E8416
+_080E83AC:
+ cmp r3, 0x2
+ beq _080E83F8
+ b _080E8416
+_080E83B2:
+ ldr r0, _080E83D0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0x98
+ ldr r1, [r0]
+ strh r3, [r1, 0x30]
+ ldr r1, [r0]
+ strh r3, [r1, 0x24]
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83D0: .4byte gUnknown_083DB694
+_080E83D4:
+ ldr r0, _080E83F4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r0, [r1]
+ movs r2, 0
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83F4: .4byte gUnknown_083DB694
+_080E83F8:
+ ldr r0, _080E841C @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_080E8414:
+ strb r0, [r1]
+_080E8416:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E841C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8398
+
+ thumb_func_start sub_80E8420
+sub_80E8420: @ 80E8420
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E84E4 @ =gUnknown_083DB694
+ ldr r7, [r1]
+ adds r5, r7, 0
+ adds r5, 0x9C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _080E84E8 @ =gSprites
+ adds r1, r4
+ str r1, [r5]
+ ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F0 @ =sub_80E872C
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r7, 0
+ adds r6, 0xA0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r6]
+ ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F8 @ =sub_80E8760
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r7, 0
+ adds r2, 0xA4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2]
+ ldr r0, [r5]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r6]
+ strh r1, [r0, 0x2E]
+ ldr r0, [r2]
+ strh r1, [r0, 0x2E]
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r2, _080E84FC @ =0x00000101
+ adds r0, r2
+ strh r0, [r1, 0x34]
+ bl sub_80E8534
+ adds r1, r7, 0
+ adds r1, 0x96
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080E8500 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E84E0: .4byte gSpriteTemplate_83DBCAC
+_080E84E4: .4byte gUnknown_083DB694
+_080E84E8: .4byte gSprites
+_080E84EC: .4byte gSpriteAnimTable_83DBC8C
+_080E84F0: .4byte sub_80E872C
+_080E84F4: .4byte gSpriteAnimTable_83DBC9C
+_080E84F8: .4byte sub_80E8760
+_080E84FC: .4byte 0x00000101
+_080E8500: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8420
+
+ thumb_func_start sub_80E8504
+sub_80E8504: @ 80E8504
+ push {r4,lr}
+ ldr r0, _080E8530 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x9C
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldr r0, [r0]
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8530: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8504
+
+ thumb_func_start sub_80E8534
+sub_80E8534: @ 80E8534
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _080E8554 @ =gUnknown_083DB694
+ ldr r3, [r1]
+ ldr r2, _080E8558 @ =0x000001b7
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080E8560
+ ldr r1, _080E855C @ =gUnknown_020388AC
+ movs r0, 0x1
+ b _080E8598
+ .align 2, 0
+_080E8554: .4byte gUnknown_083DB694
+_080E8558: .4byte 0x000001b7
+_080E855C: .4byte gUnknown_020388AC
+_080E8560:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080E8578
+ ldr r0, _080E8574 @ =gUnknown_020388AC
+ strb r2, [r0]
+ adds r7, r0, 0
+ b _080E859C
+ .align 2, 0
+_080E8574: .4byte gUnknown_020388AC
+_080E8578:
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _080E8594
+ ldr r1, _080E8590 @ =gUnknown_020388AC
+ movs r0, 0x2
+ b _080E8598
+ .align 2, 0
+_080E8590: .4byte gUnknown_020388AC
+_080E8594:
+ ldr r1, _080E85F4 @ =gUnknown_020388AC
+ movs r0, 0x3
+_080E8598:
+ strb r0, [r1]
+ adds r7, r1, 0
+_080E859C:
+ ldr r2, [r4]
+ adds r4, r2, 0
+ adds r4, 0x9C
+ ldr r1, [r4]
+ ldrb r0, [r7]
+ movs r3, 0
+ mov r8, r3
+ strh r0, [r1, 0x32]
+ adds r5, r2, 0
+ adds r5, 0xA0
+ ldr r1, [r5]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ adds r6, r2, 0
+ adds r6, 0xA4
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r5]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r6]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ movs r1, 0x8
+ strh r1, [r0, 0x38]
+ ldr r0, [r4]
+ strh r1, [r0, 0x3A]
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E85F4: .4byte gUnknown_020388AC
+ thumb_func_end sub_80E8534
+
+ thumb_func_start sub_80E85F8
+sub_80E85F8: @ 80E85F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E8624
+ ldr r1, _080E8620 @ =gSineTable
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r0, 0x8
+ strh r0, [r5, 0x38]
+ b _080E863A
+ .align 2, 0
+_080E8620: .4byte gSineTable
+_080E8624:
+ ldr r1, _080E8688 @ =gSineTable
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 21
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r5, 0x3A]
+_080E863A:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldr r2, _080E868C @ =REG_BLDALPHA
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 8
+ ldrh r1, [r5, 0x38]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080E8690 @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E871A
+ bl sub_80E8534
+ adds r1, r6, 0
+ adds r1, 0x9C
+ ldr r0, [r1]
+ movs r2, 0x8
+ strh r2, [r0, 0x38]
+ ldr r0, [r1]
+ strh r2, [r0, 0x3A]
+ ldr r1, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080E86C4
+ cmp r0, 0x1
+ bgt _080E8694
+ cmp r0, 0
+ beq _080E869E
+ b _080E871A
+ .align 2, 0
+_080E8688: .4byte gSineTable
+_080E868C: .4byte REG_BLDALPHA
+_080E8690: .4byte gUnknown_083DB694
+_080E8694:
+ cmp r0, 0x2
+ beq _080E86D6
+ cmp r0, 0x3
+ beq _080E86DE
+ b _080E871A
+_080E869E:
+ ldr r2, _080E86C0 @ =0x000001a9
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x20
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0xC
+ b _080E870A
+ .align 2, 0
+_080E86C0: .4byte 0x000001a9
+_080E86C4:
+ movs r0, 0xD8
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080E8714
+_080E86D6:
+ movs r0, 0x97
+ strh r0, [r5, 0x20]
+ movs r0, 0x60
+ b _080E8718
+_080E86DE:
+ ldr r4, _080E8720 @ =gUnknown_083DBCC4
+ ldr r2, _080E8724 @ =0x000001a9
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r3, r6, r0
+ movs r2, 0
+ ldrsb r2, [r3, r2]
+ lsls r0, r2, 3
+ subs r0, r2
+ adds r1, r0
+ adds r1, r4
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 3
+ adds r0, 0x1F
+ strh r0, [r5, 0x20]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ ldr r2, _080E8728 @ =0x000001b5
+_080E870A:
+ adds r1, r6, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+_080E8714:
+ lsls r0, 4
+ adds r0, 0x60
+_080E8718:
+ strh r0, [r5, 0x22]
+_080E871A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8720: .4byte gUnknown_083DBCC4
+_080E8724: .4byte 0x000001a9
+_080E8728: .4byte 0x000001b5
+ thumb_func_end sub_80E85F8
+
+ thumb_func_start sub_80E872C
+sub_80E872C: @ 80E872C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E875C @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8756
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E8756
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E8756:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E875C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E872C
+
+ thumb_func_start sub_80E8760
+sub_80E8760: @ 80E8760
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E8780 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E879E
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _080E8784
+ cmp r0, 0x2
+ beq _080E878E
+ b _080E879E
+ .align 2, 0
+_080E8780: .4byte gUnknown_083DB694
+_080E8784:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x40
+ b _080E8796
+_080E878E:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x15
+_080E8796:
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E879E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8760
+
+ thumb_func_start sub_80E87A4
+sub_80E87A4: @ 80E87A4
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _080E87C8 @ =gUnknown_083DB694
+ ldr r1, [r1]
+ adds r2, r1, 0
+ adds r2, 0xA8
+ ldr r3, [r2]
+ movs r4, 0
+ cmp r0, 0
+ bne _080E87BA
+ movs r4, 0x1
+_080E87BA:
+ movs r1, 0
+ strh r4, [r3, 0x30]
+ ldr r0, [r2]
+ strh r1, [r0, 0x24]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E87C8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E87A4
+
+ thumb_func_start sub_80E87CC
+sub_80E87CC: @ 80E87CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E8810 @ =gUnknown_083DB694
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0xA8
+ ldr r0, [r0]
+ movs r3, 0
+ cmp r4, 0
+ bne _080E87E6
+ movs r3, 0x1
+_080E87E6:
+ adds r2, r0, 0
+ adds r2, 0x3E
+ lsls r3, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl sub_80E87A4
+ cmp r4, 0
+ beq _080E880A
+ ldr r0, _080E8814 @ =0x000001b9
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080E880A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8810: .4byte gUnknown_083DB694
+_080E8814: .4byte 0x000001b9
+ thumb_func_end sub_80E87CC
+
+ thumb_func_start sub_80E8818
+sub_80E8818: @ 80E8818
+ push {lr}
+ ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E8854 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ ldr r0, _080E8858 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xA8
+ str r1, [r0]
+ ldr r0, _080E885C @ =sub_80E8860
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ bl sub_80E87CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8850: .4byte gSpriteTemplate_83DBBFC
+_080E8854: .4byte gSprites
+_080E8858: .4byte gUnknown_083DB694
+_080E885C: .4byte sub_80E8860
+ thumb_func_end sub_80E8818
+
+ thumb_func_start sub_80E8860
+sub_80E8860: @ 80E8860
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ bne _080E88E4
+ ldr r0, _080E88B0 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ ldr r1, _080E88B4 @ =0x000001b9
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080E88C4
+ ldr r5, _080E88B8 @ =0x000099a5
+ adds r0, r3, r5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x2C
+ strh r0, [r2, 0x20]
+ ldr r1, _080E88BC @ =0x000099a4
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r5, 0x84
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+ lsls r0, 4
+ adds r0, 0x60
+ strh r0, [r2, 0x22]
+ ldr r0, _080E88C0 @ =0x0000fffa
+ strh r0, [r2, 0x24]
+ strh r4, [r2, 0x2E]
+ b _080E88E4
+ .align 2, 0
+_080E88B0: .4byte gUnknown_083DB694
+_080E88B4: .4byte 0x000001b9
+_080E88B8: .4byte 0x000099a5
+_080E88BC: .4byte 0x000099a4
+_080E88C0: .4byte 0x0000fffa
+_080E88C4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E88E4
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E88E4
+ ldr r0, _080E88EC @ =0x0000fffa
+ strh r0, [r2, 0x24]
+_080E88E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E88EC: .4byte 0x0000fffa
+ thumb_func_end sub_80E8860
+
+ thumb_func_start sub_80E88F0
+sub_80E88F0: @ 80E88F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r0, _080E8950 @ =gUnknown_083DB694
+ mov r8, r0
+ ldr r0, [r0]
+ movs r6, 0x4
+ movs r5, 0
+ movs r1, 0xB4
+ adds r1, r0
+ mov r12, r1
+ adds r7, r0, 0
+ adds r7, 0xAC
+_080E890C:
+ lsls r2, r4, 2
+ adds r3, r7, r2
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r5, [r0, 0x30]
+ add r2, r12
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r2]
+ strh r5, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E890C
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, _080E8954 @ =0x00009c70
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8950: .4byte gUnknown_083DB694
+_080E8954: .4byte 0x00009c70
+ thumb_func_end sub_80E88F0
+
+ thumb_func_start sub_80E8958
+sub_80E8958: @ 80E8958
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _080E89B4
+ movs r0, 0x64
+ mov r9, r0
+ ldr r0, _080E8998 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r3, _080E899C @ =0x00009c6c
+ adds r1, r2, r3
+ ldr r3, _080E89A0 @ =0x000001b5
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E89A8
+ movs r1, 0xDB
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E89A4 @ =0x00009c71
+ adds r1, r2, r3
+ strb r0, [r1]
+ b _080E8A00
+ .align 2, 0
+_080E8998: .4byte gUnknown_083DB694
+_080E899C: .4byte 0x00009c6c
+_080E89A0: .4byte 0x000001b5
+_080E89A4: .4byte 0x00009c71
+_080E89A8:
+ ldr r1, _080E89B0 @ =0x00009c71
+ adds r0, r2, r1
+ strb r7, [r0]
+ b _080E8A00
+ .align 2, 0
+_080E89B0: .4byte 0x00009c71
+_080E89B4:
+ movs r3, 0x78
+ mov r9, r3
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E8A68 @ =0x00009c6c
+ adds r1, r2, r0
+ ldr r3, _080E8A6C @ =0x00009a29
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r1, _080E8A70 @ =0x00009a28
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E8A74 @ =0x00009c71
+ adds r1, r2, r3
+ strb r0, [r1]
+ movs r4, 0
+ adds r5, r2, 0
+ adds r5, 0xB4
+ movs r0, 0x5
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x1
+_080E89E2:
+ lsls r3, r4, 2
+ adds r3, r5, r3
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r6, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E89E2
+_080E8A00:
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r3, _080E8A74 @ =0x00009c71
+ adds r1, r2, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E8A14
+ movs r0, 0
+ strb r0, [r1]
+_080E8A14:
+ movs r4, 0
+ adds r6, r2, 0
+ adds r6, 0xAC
+ movs r0, 0x5
+ negs r0, r0
+ mov r8, r0
+_080E8A20:
+ lsls r2, r4, 2
+ adds r2, r6, r2
+ ldr r0, [r2]
+ mov r1, r9
+ strh r1, [r0, 0x20]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r5, 0x1
+ strh r5, [r0, 0x30]
+ ldr r0, [r2]
+ adds r1, r7, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E8A20
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E8A78 @ =0x00009c70
+ adds r0, r1
+ strb r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8A64: .4byte gUnknown_083DB694
+_080E8A68: .4byte 0x00009c6c
+_080E8A6C: .4byte 0x00009a29
+_080E8A70: .4byte 0x00009a28
+_080E8A74: .4byte 0x00009c71
+_080E8A78: .4byte 0x00009c70
+ thumb_func_end sub_80E8958
+
+ thumb_func_start sub_80E8A7C
+sub_80E8A7C: @ 80E8A7C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r5, 0
+_080E8A8E:
+ lsls r2, r5, 3
+ adds r2, r5
+ lsls r2, 19
+ movs r0, 0xA8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ lsls r0, r5, 2
+ adds r2, 0xAC
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ adds r3, 0x3F
+ movs r0, 0x1
+ adds r2, r5, 0
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3]
+ movs r4, 0x3
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8A8E
+ mov r0, sp
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _080E8B74 @ =gUnknown_083DBD10
+ str r0, [sp, 0x8]
+ movs r5, 0
+ movs r7, 0x3F
+ movs r6, 0x40
+_080E8AF6:
+ lsls r4, r5, 2
+ adds r1, r4, r5
+ lsls r1, 19
+ movs r0, 0x8E
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r2, 0xB4
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x1]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x3]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x3]
+ ldr r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8AF6
+ movs r0, 0
+ bl sub_80E8958
+ bl sub_80E88F0
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8B68: .4byte gSpriteTemplate_83DBD18
+_080E8B6C: .4byte gUnknown_083DB694
+_080E8B70: .4byte gSprites
+_080E8B74: .4byte gUnknown_083DBD10
+ thumb_func_end sub_80E8A7C
+
+ thumb_func_start sub_80E8B78
+sub_80E8B78: @ 80E8B78
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080E8BB0 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ ldr r2, _080E8BB4 @ =0x00009c70
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _080E8BBC
+ movs r4, 0
+ ldr r2, _080E8BB8 @ =0x00009c6c
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E8BD6
+ b _080E8BD4
+ .align 2, 0
+_080E8BB0: .4byte gUnknown_083DB694
+_080E8BB4: .4byte 0x00009c70
+_080E8BB8: .4byte 0x00009c6c
+_080E8BBC:
+ movs r4, 0
+ ldr r2, _080E8BF0 @ =0x00009c6c
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x5
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E8BD6
+_080E8BD4:
+ movs r4, 0x1
+_080E8BD6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ lsls r3, r4, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E8BE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8BF0: .4byte 0x00009c6c
+ thumb_func_end sub_80E8B78
+
+ thumb_func_start sub_80E8BF4
+sub_80E8BF4: @ 80E8BF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r0, _080E8C28 @ =gUnknown_083DBD30
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ ldr r0, _080E8C2C @ =gUnknown_083DBD38
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ cmp r2, 0x2
+ beq _080E8C20
+ cmp r2, 0x5
+ beq _080E8C30
+_080E8C20:
+ movs r4, 0x40
+ movs r5, 0x28
+ b _080E8C34
+ .align 2, 0
+_080E8C28: .4byte gUnknown_083DBD30
+_080E8C2C: .4byte gUnknown_083DBD38
+_080E8C30:
+ movs r4, 0x24
+ movs r5, 0x30
+_080E8C34:
+ cmp r3, 0
+ beq _080E8C3C
+ cmp r3, 0x1
+ beq _080E8C40
+_080E8C3C:
+ movs r0, 0x43
+ b _080E8C42
+_080E8C40:
+ movs r0, 0x44
+_080E8C42:
+ mov r8, r0
+ add r0, sp, 0x4
+ bl LoadCompressedObjectPic
+ add r0, sp, 0xC
+ bl LoadSpritePalette
+ ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r0, _080E8CE0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x69
+ cmp r0, 0
+ bne _080E8C68
+ movs r1, 0x64
+_080E8C68:
+ ldr r7, _080E8CE4 @ =SpriteCallbackDummy
+ adds r2, r4, 0
+ subs r2, 0xC
+ movs r6, 0
+ str r6, [sp]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8C9E
+ ldr r1, _080E8CE8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_080E8C9E:
+ adds r2, r4, 0
+ adds r2, 0xC
+ str r6, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8CD0
+ ldr r1, _080E8CE8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8CD0:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8CDC: .4byte gSpriteTemplate_83DBD48
+_080E8CE0: .4byte gSaveBlock2
+_080E8CE4: .4byte SpriteCallbackDummy
+_080E8CE8: .4byte gSprites
+ thumb_func_end sub_80E8BF4
+
+ thumb_func_start sub_80E8CEC
+sub_80E8CEC: @ 80E8CEC
+ push {lr}
+ ldr r0, _080E8D24 @ =gUnknown_083DBD60
+ bl LoadCompressedObjectPic
+ ldr r0, _080E8D28 @ =gUnknown_083DBD68
+ bl LoadSpritePalette
+ ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4
+ movs r1, 0xE0
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080E8D3C
+ ldr r0, _080E8D30 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E8D34 @ =0x00009c74
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8D38 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ b _080E8D48
+ .align 2, 0
+_080E8D24: .4byte gUnknown_083DBD60
+_080E8D28: .4byte gUnknown_083DBD68
+_080E8D2C: .4byte gSpriteTemplate_83DBDE4
+_080E8D30: .4byte gUnknown_083DB694
+_080E8D34: .4byte 0x00009c74
+_080E8D38: .4byte gSprites
+_080E8D3C:
+ ldr r0, _080E8D4C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E8D50 @ =0x00009c74
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080E8D48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8D4C: .4byte gUnknown_083DB694
+_080E8D50: .4byte 0x00009c74
+ thumb_func_end sub_80E8CEC
+
+ thumb_func_start sub_80E8D54
+sub_80E8D54: @ 80E8D54
+ push {lr}
+ ldr r0, _080E8D78 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r1, _080E8D7C @ =0x00009c74
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8D88
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8D80
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080E8D88
+ .align 2, 0
+_080E8D78: .4byte gUnknown_083DB694
+_080E8D7C: .4byte 0x00009c74
+_080E8D80:
+ adds r0, r1, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8D88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D54
+
+ thumb_func_start sub_80E8D8C
+sub_80E8D8C: @ 80E8D8C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080E8DB8 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r1, _080E8DBC @ =0x00009c74
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8DD2
+ cmp r3, 0
+ beq _080E8DCA
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8DC0
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _080E8DD2
+ .align 2, 0
+_080E8DB8: .4byte gUnknown_083DB694
+_080E8DBC: .4byte 0x00009c74
+_080E8DC0:
+ adds r0, r1, 0
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080E8DD2
+_080E8DCA:
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl StartSpriteAnim
+_080E8DD2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D8C
+
+ thumb_func_start sub_80E8DD8
+sub_80E8DD8: @ 80E8DD8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ ldr r0, _080E8F2C @ =REG_BG0HOFS
+ movs r6, 0
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ subs r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ ldr r1, _080E8F30 @ =REG_BG0CNT
+ movs r2, 0x8B
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E8F34 @ =0x00000d09
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E8F38 @ =gUnknown_08E945D0
+ ldr r1, _080E8F3C @ =gUnknown_083DB694
+ ldr r1, [r1]
+ mov r8, r1
+ movs r4, 0xE4
+ lsls r4, 1
+ add r4, r8
+ movs r5, 0xA0
+ lsls r5, 2
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F40 @ =gUnknown_08E953D0
+ movs r1, 0xD9
+ lsls r1, 3
+ add r1, r8
+ bl LZ77UnCompWram
+ ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx
+ ldr r1, _080E8F48 @ =0x06008000
+ bl LZ77UnCompVram
+ ldr r1, _080E8F4C @ =0x06006800
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal
+ movs r1, 0x40
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r1, _080E8F54 @ =REG_BG2CNT
+ ldr r2, _080E8F58 @ =0x00000e02
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F5C @ =0x06007000
+ movs r5, 0x80
+ lsls r5, 4
+ mov r0, sp
+ strh r6, [r0]
+ ldr r4, _080E8F60 @ =0x040000d4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r0, r5, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F64 @ =gUnknown_08E9AB00
+ ldr r2, _080E8F68 @ =0x06006000
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _080E8F6C @ =0x80000020
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F70 @ =gUnknown_08E9AB60
+ bl LZ77UnCompVram
+ ldr r0, _080E8F74 @ =gUnknown_08E9AB40
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F78 @ =gUnknown_083DBDFC
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080E8F7C @ =REG_BG3CNT
+ ldr r2, _080E8F80 @ =0x00000f0f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F84 @ =0x06007800
+ movs r0, 0
+ mov r9, r0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r5, 2
+ movs r0, 0x85
+ lsls r0, 24
+ orrs r5, r0
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F88 @ =gUnknown_083DBE40
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F8C @ =gPlttBufferUnfaded
+ adds r1, r0, 0
+ adds r1, 0x7E
+ ldr r3, _080E8F90 @ =0x00007fff
+ strh r3, [r1]
+ subs r1, 0x1C
+ ldr r2, _080E8F94 @ =0x00006f5b
+ strh r2, [r1]
+ adds r0, 0x70
+ ldr r1, _080E8F98 @ =0x0000739c
+ strh r1, [r0]
+ ldr r0, _080E8F9C @ =gPlttBufferFaded
+ adds r4, r0, 0
+ adds r4, 0x7E
+ strh r3, [r4]
+ adds r3, r0, 0
+ adds r3, 0x62
+ strh r2, [r3]
+ adds r0, 0x70
+ strh r1, [r0]
+ movs r1, 0xBC
+ add r8, r1
+ mov r2, r8
+ strb r6, [r2]
+ bl sub_80E8FA4
+ bl sub_80E948C
+ movs r0, 0xA
+ bl sub_80E9198
+ movs r0, 0
+ bl sub_80E91D4
+ bl sub_80E95A4
+ ldr r0, _080E8FA0 @ =REG_BLDCNT
+ mov r1, r9
+ strh r1, [r0]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8F2C: .4byte REG_BG0HOFS
+_080E8F30: .4byte REG_BG0CNT
+_080E8F34: .4byte 0x00000d09
+_080E8F38: .4byte gUnknown_08E945D0
+_080E8F3C: .4byte gUnknown_083DB694
+_080E8F40: .4byte gUnknown_08E953D0
+_080E8F44: .4byte gMenuWordGroupFrame_Gfx
+_080E8F48: .4byte 0x06008000
+_080E8F4C: .4byte 0x06006800
+_080E8F50: .4byte gMenuWordGroupFrame1_Pal
+_080E8F54: .4byte REG_BG2CNT
+_080E8F58: .4byte 0x00000e02
+_080E8F5C: .4byte 0x06007000
+_080E8F60: .4byte 0x040000d4
+_080E8F64: .4byte gUnknown_08E9AB00
+_080E8F68: .4byte 0x06006000
+_080E8F6C: .4byte 0x80000020
+_080E8F70: .4byte gUnknown_08E9AB60
+_080E8F74: .4byte gUnknown_08E9AB40
+_080E8F78: .4byte gUnknown_083DBDFC
+_080E8F7C: .4byte REG_BG3CNT
+_080E8F80: .4byte 0x00000f0f
+_080E8F84: .4byte 0x06007800
+_080E8F88: .4byte gUnknown_083DBE40
+_080E8F8C: .4byte gPlttBufferUnfaded
+_080E8F90: .4byte 0x00007fff
+_080E8F94: .4byte 0x00006f5b
+_080E8F98: .4byte 0x0000739c
+_080E8F9C: .4byte gPlttBufferFaded
+_080E8FA0: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8DD8
+
+ thumb_func_start sub_80E8FA4
+sub_80E8FA4: @ 80E8FA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x24]
+ add r2, sp, 0xC
+ mov r12, r2
+_080E8FBE:
+ mov r3, r9
+ lsls r1, r3, 1
+ ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2
+ adds r0, r1, r4
+ ldrh r2, [r0]
+ movs r0, 0x1F
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp]
+ ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8
+ adds r1, r5
+ ldrh r1, [r1]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0xC]
+ lsls r2, 16
+ lsrs r0, r2, 21
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r0, 8
+ str r0, [sp, 0x4]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r3
+ lsls r0, 8
+ mov r4, r12
+ str r0, [r4, 0x4]
+ lsrs r2, 26
+ ands r2, r3
+ lsls r2, 8
+ str r2, [sp, 0x8]
+ lsrs r1, 26
+ ands r1, r3
+ lsls r1, 8
+ str r1, [r4, 0x8]
+ movs r3, 0
+ mov r5, r9
+ lsls r5, 3
+ mov r10, r5
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x28]
+ ldr r4, [sp, 0x24]
+_080E9016:
+ lsls r0, r3, 2
+ adds r2, r4, r0
+ mov r5, r12
+ adds r1, r5, r0
+ add r0, sp
+ ldr r1, [r1]
+ ldr r0, [r0]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080E902C
+ adds r0, 0x7
+_080E902C:
+ asrs r0, 3
+ str r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9016
+ movs r4, 0
+ ldr r0, _080E90FC @ =gUnknown_083DB694
+ ldr r1, [r0]
+ mov r0, r10
+ add r0, r9
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x1F
+ ldr r6, [sp, 0x24]
+ ldr r0, _080E9100 @ =0x00009c34
+ adds r7, r1, r0
+_080E9050:
+ lsls r2, r4, 1
+ add r2, r8
+ adds r2, r7, r2
+ ldr r1, [sp, 0x8]
+ asrs r1, 8
+ ands r1, r5
+ lsls r1, 10
+ ldr r0, [sp, 0x4]
+ asrs r0, 8
+ ands r0, r5
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp]
+ asrs r0, 8
+ ands r0, r5
+ orrs r1, r0
+ strh r1, [r2]
+ movs r3, 0
+ adds r4, 0x1
+_080E9076:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ adds r0, r6, r0
+ ldr r1, [r2]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9076
+ lsls r0, r4, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080E9050
+ ldr r2, _080E90FC @ =gUnknown_083DB694
+ ldr r3, [r2]
+ mov r0, r10
+ add r0, r9
+ adds r0, r4
+ lsls r0, 1
+ ldr r4, _080E9100 @ =0x00009c34
+ adds r2, r3, r4
+ adds r2, r0
+ mov r5, r12
+ ldr r1, [r5, 0x8]
+ asrs r1, 8
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 10
+ ldr r0, [r5, 0x4]
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp, 0xC]
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r5, [sp, 0x28]
+ lsls r0, r5, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x2
+ bhi _080E90DA
+ b _080E8FBE
+_080E90DA:
+ ldr r0, _080E9104 @ =0x00009c32
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
+_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
+_080E90FC: .4byte gUnknown_083DB694
+_080E9100: .4byte 0x00009c34
+_080E9104: .4byte 0x00009c32
+ thumb_func_end sub_80E8FA4
+
+ thumb_func_start sub_80E9108
+sub_80E9108: @ 80E9108
+ push {r4-r7,lr}
+ lsls r0, 24
+ ldr r1, _080E9164 @ =gUnknown_083DB694
+ ldr r2, [r1]
+ ldr r3, _080E9168 @ =0x00009c32
+ adds r1, r2, r3
+ lsrs r0, 24
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+ movs r4, 0
+ ldr r0, _080E916C @ =gPlttBufferUnfaded
+ mov r12, r0
+ adds r6, r1, 0
+ ldr r3, _080E9170 @ =0x00009c34
+ adds r5, r2, r3
+ ldr r7, _080E9174 @ =gPlttBufferFaded
+_080E912A:
+ adds r2, r4, 0
+ adds r2, 0x51
+ lsls r2, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r2, r7
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080E912A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9164: .4byte gUnknown_083DB694
+_080E9168: .4byte 0x00009c32
+_080E916C: .4byte gPlttBufferUnfaded
+_080E9170: .4byte 0x00009c34
+_080E9174: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E9108
+
+ thumb_func_start sub_80E9178
+sub_80E9178: @ 80E9178
+ push {lr}
+ ldr r0, _080E9190 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E9194 @ =0x00009c32
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80E9108
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9190: .4byte gUnknown_083DB694
+_080E9194: .4byte 0x00009c32
+ thumb_func_end sub_80E9178
+
+ thumb_func_start sub_80E9198
+sub_80E9198: @ 80E9198
+ ldr r1, _080E91A0 @ =gUnknown_03000740
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080E91A0: .4byte gUnknown_03000740
+ thumb_func_end sub_80E9198
+
+ thumb_func_start sub_80E91A4
+sub_80E91A4: @ 80E91A4
+ ldr r0, _080E91AC @ =gUnknown_03000740
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080E91AC: .4byte gUnknown_03000740
+ thumb_func_end sub_80E91A4
+
+ thumb_func_start sub_80E91B0
+sub_80E91B0: @ 80E91B0
+ push {lr}
+ sub sp, 0x8
+ lsls r2, 24
+ lsls r1, 27
+ lsrs r1, 24
+ lsrs r2, 21
+ lsls r3, 27
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ movs r3, 0xB0
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E91B0
+
+ thumb_func_start sub_80E91D4
+sub_80E91D4: @ 80E91D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E91FC @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ cmp r4, 0xA
+ bne _080E9200
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0xA
+ bl sub_80E9198
+ b _080E935C
+ .align 2, 0
+_080E91FC: .4byte gWindowConfig_81E6DA8
+_080E9200:
+ bl sub_80E91A4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _080E9218
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080E9218:
+ adds r0, r4, 0
+ bl sub_80E9198
+ cmp r4, 0x9
+ bls _080E9224
+ b _080E935C
+_080E9224:
+ lsls r0, r4, 2
+ ldr r1, _080E9230 @ =_080E9234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9230: .4byte _080E9234
+ .align 2, 0
+_080E9234:
+ .4byte _080E925C
+ .4byte _080E9284
+ .4byte _080E92AC
+ .4byte _080E92C4
+ .4byte _080E92F0
+ .4byte _080E9308
+ .4byte _080E9310
+ .4byte _080E9318
+ .4byte _080E933C
+ .4byte _080E9350
+_080E925C:
+ ldr r0, _080E9278 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r1, _080E927C @ =0x00009c80
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9280 @ =0x00009cc9
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E9278: .4byte gUnknown_083DB694
+_080E927C: .4byte 0x00009c80
+_080E9280: .4byte 0x00009cc9
+_080E9284:
+ ldr r0, _080E92A0 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r1, _080E92A4 @ =0x00009d12
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92A8 @ =0x00009d5b
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E92A0: .4byte gUnknown_083DB694
+_080E92A4: .4byte 0x00009d12
+_080E92A8: .4byte 0x00009d5b
+_080E92AC:
+ ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2
+ b _080E9326
+ .align 2, 0
+_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
+_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
+_080E92C4:
+ ldr r0, _080E92D8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ beq _080E92E0
+ cmp r0, 0x9
+ bne _080E92E8
+ ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo
+ b _080E933E
+ .align 2, 0
+_080E92D8: .4byte gUnknown_083DB694
+_080E92DC: .4byte gOtherText_QuitGivingInfo
+_080E92E0:
+ ldr r0, _080E92E4 @ =gOtherText_StopGivingMail
+ b _080E933E
+ .align 2, 0
+_080E92E4: .4byte gOtherText_StopGivingMail
+_080E92E8:
+ ldr r0, _080E92EC @ =gOtherText_QuitEditing
+ b _080E933E
+ .align 2, 0
+_080E92EC: .4byte gOtherText_QuitEditing
+_080E92F0:
+ ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2
+ b _080E9326
+ .align 2, 0
+_080E9300: .4byte gOtherText_EditedTextNoSavePage1
+_080E9304: .4byte gOtherText_EditedTextNoSavePage2
+_080E9308:
+ ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord
+ b _080E933E
+ .align 2, 0
+_080E930C: .4byte gOtherText_EnterAPhraseOrWord
+_080E9310:
+ ldr r0, _080E9314 @ =gOtherText_TextNoDelete
+ b _080E933E
+ .align 2, 0
+_080E9314: .4byte gOtherText_TextNoDelete
+_080E9318:
+ ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored
+_080E9326:
+ movs r1, 0x4
+ movs r2, 0x11
+ movs r3, 0x2
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E9334: .4byte gOtherText_OnlyOnePhrase
+_080E9338: .4byte gOtherText_OriginalSongRestored
+_080E933C:
+ ldr r0, _080E934C @ =gOtherText_TrendyAlready
+_080E933E:
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E934C: .4byte gOtherText_TrendyAlready
+_080E9350:
+ ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+_080E935C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9364: .4byte gOtherText_CombineTwoPhrases
+ thumb_func_end sub_80E91D4
+
+ thumb_func_start sub_80E9368
+sub_80E9368: @ 80E9368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080E93F8
+ lsls r0, 2
+ ldr r1, _080E937C @ =_080E9380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E937C: .4byte _080E9380
+ .align 2, 0
+_080E9380:
+ .4byte _080E93B8
+ .4byte _080E93C0
+ .4byte _080E93C8
+ .4byte _080E93D0
+ .4byte _080E93F8
+ .4byte _080E93E8
+ .4byte _080E93D8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E0
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93F0
+_080E93B8:
+ ldr r4, _080E93BC @ =gOtherText_Profile
+ b _080E93FA
+ .align 2, 0
+_080E93BC: .4byte gOtherText_Profile
+_080E93C0:
+ ldr r4, _080E93C4 @ =gOtherText_AtBattleStart
+ b _080E93FA
+ .align 2, 0
+_080E93C4: .4byte gOtherText_AtBattleStart
+_080E93C8:
+ ldr r4, _080E93CC @ =gOtherText_UponWinningBattle
+ b _080E93FA
+ .align 2, 0
+_080E93CC: .4byte gOtherText_UponWinningBattle
+_080E93D0:
+ ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle
+ b _080E93FA
+ .align 2, 0
+_080E93D4: .4byte gOtherText_UponLosingBattle
+_080E93D8:
+ ldr r4, _080E93DC @ =gOtherText_TheBardsSong
+ b _080E93FA
+ .align 2, 0
+_080E93DC: .4byte gOtherText_TheBardsSong
+_080E93E0:
+ ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening
+ b _080E93FA
+ .align 2, 0
+_080E93E4: .4byte gOtherText_WhatsHipHappening
+_080E93E8:
+ ldr r4, _080E93EC @ =gOtherText_Interview
+ b _080E93FA
+ .align 2, 0
+_080E93EC: .4byte gOtherText_Interview
+_080E93F0:
+ ldr r4, _080E93F4 @ =gOtherText_GoodSaying
+ b _080E93FA
+ .align 2, 0
+_080E93F4: .4byte gOtherText_GoodSaying
+_080E93F8:
+ movs r4, 0
+_080E93FA:
+ ldr r0, _080E943C @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9440 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E9444 @ =0x00009f8e
+ adds r5, r2, r0
+ movs r3, 0xFC
+ strb r3, [r5]
+ adds r0, 0x1
+ adds r1, r2, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080E9448 @ =0x00009f90
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ cmp r4, 0
+ beq _080E9450
+ ldr r1, _080E944C @ =0x00009f91
+ adds r0, r2, r1
+ adds r1, r4, 0
+ movs r2, 0xF0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ b _080E9476
+ .align 2, 0
+_080E943C: .4byte gWindowConfig_81E6D8C
+_080E9440: .4byte gUnknown_083DB694
+_080E9444: .4byte 0x00009f8e
+_080E9448: .4byte 0x00009f90
+_080E944C: .4byte 0x00009f91
+_080E9450:
+ ldr r0, _080E9484 @ =0x00009f91
+ adds r1, r2, r0
+ strb r3, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0
+ bl MenuPrint
+_080E9476:
+ ldr r0, _080E9488 @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9484: .4byte 0x00009f91
+_080E9488: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9368
+
+ thumb_func_start sub_80E948C
+sub_80E948C: @ 80E948C
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080E94A8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bls _080E949C
+ b _080E9594
+_080E949C:
+ lsls r0, 2
+ ldr r1, _080E94AC @ =_080E94B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E94A8: .4byte gUnknown_083DB694
+_080E94AC: .4byte _080E94B0
+ .align 2, 0
+_080E94B0:
+ .4byte _080E9508
+ .4byte _080E9530
+ .4byte _080E9554
+ .4byte _080E9578
+ .4byte _080E94C8
+ .4byte _080E94E8
+_080E94C8:
+ ldr r0, _080E94E0 @ =0x06006800
+ ldr r3, _080E94E4 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1A
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x6
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ b _080E9568
+ .align 2, 0
+_080E94E0: .4byte 0x06006800
+_080E94E4: .4byte gUnknown_08E94AD0
+_080E94E8:
+ ldr r0, _080E9500 @ =0x06006800
+ ldr r3, _080E9504 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0xD
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+ b _080E951E
+ .align 2, 0
+_080E9500: .4byte 0x06006800
+_080E9504: .4byte gUnknown_08E94AD0
+_080E9508:
+ ldr r0, _080E9528 @ =0x06006800
+ ldr r3, _080E952C @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+_080E951E:
+ movs r2, 0x2
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9528: .4byte 0x06006800
+_080E952C: .4byte gUnknown_08E94AD0
+_080E9530:
+ ldr r0, _080E954C @ =0x06006800
+ ldr r3, _080E9550 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0xA
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E954C: .4byte 0x06006800
+_080E9550: .4byte gUnknown_08E94AD0
+_080E9554:
+ ldr r0, _080E9570 @ =0x06006800
+ ldr r3, _080E9574 @ =gUnknown_08E94AD0
+ movs r2, 0xD
+ str r2, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+_080E9568:
+ movs r2, 0x3
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9570: .4byte 0x06006800
+_080E9574: .4byte gUnknown_08E94AD0
+_080E9578:
+ ldr r0, _080E959C @ =0x06006800
+ ldr r3, _080E95A0 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ movs r2, 0x2
+ bl sub_809D104
+_080E9594:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E959C: .4byte 0x06006800
+_080E95A0: .4byte gUnknown_08E94AD0
+ thumb_func_end sub_80E948C
+
+ thumb_func_start sub_80E95A4
+sub_80E95A4: @ 80E95A4
+ push {lr}
+ ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E95C4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9612
+ lsls r0, 2
+ ldr r1, _080E95C8 @ =_080E95CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E95C0: .4byte gWindowConfig_81E6D8C
+_080E95C4: .4byte gUnknown_083DB694
+_080E95C8: .4byte _080E95CC
+ .align 2, 0
+_080E95CC:
+ .4byte _080E95F2
+ .4byte _080E95F6
+ .4byte _080E9600
+ .4byte _080E960A
+ .4byte _080E95E4
+ .4byte _080E95EE
+_080E95E4:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E9620
+ b _080E9612
+_080E95EE:
+ movs r0, 0x2
+ b _080E9602
+_080E95F2:
+ movs r0, 0x3
+ b _080E95F8
+_080E95F6:
+ movs r0, 0
+_080E95F8:
+ movs r1, 0x5
+ bl sub_80E9620
+ b _080E9612
+_080E9600:
+ movs r0, 0x4
+_080E9602:
+ movs r1, 0x11
+ bl sub_80E9620
+ b _080E9612
+_080E960A:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E9620
+_080E9612:
+ ldr r0, _080E961C @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E961C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E95A4
+
+ thumb_func_start sub_80E9620
+sub_80E9620: @ 80E9620
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r1, 0
+ mov r10, r1
+ lsrs r7, r0, 16
+ mov r9, r1
+ ldr r0, _080E9644 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ b _080E971A
+ .align 2, 0
+_080E9644: .4byte gUnknown_083DB694
+_080E9648:
+ ldr r6, [sp, 0x14]
+ movs r2, 0
+ mov r8, r2
+ adds r0, r7, 0x2
+ str r0, [sp, 0x1C]
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x18]
+ b _080E96E4
+_080E965A:
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _080E9690 @ =0x0000ffff
+ cmp r0, r2
+ bne _080E969C
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, _080E9694 @ =0x06007000
+ adds r1, r6, 0
+ adds r2, r7, 0
+ ldr r3, _080E9698 @ =gUnknown_083DBE1C
+ bl sub_8095C8C
+ adds r0, r6, 0
+ adds r0, 0xB
+ b _080E96CC
+ .align 2, 0
+_080E9690: .4byte 0x0000ffff
+_080E9694: .4byte 0x06007000
+_080E9698: .4byte gUnknown_083DBE1C
+_080E969C:
+ ldr r0, _080E9738 @ =0x00009e14
+ adds r4, r5, r0
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ movs r2, 0xB
+ bl sub_80EB218
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl MenuPrint
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r8
+ adds r1, r5, 0
+ adds r1, 0x8C
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xB
+ ldrb r1, [r1]
+ adds r0, r1
+_080E96CC:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080E96E4:
+ ldr r0, _080E973C @ =gUnknown_083DB694
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080E970A
+ ldrb r2, [r5, 0xA]
+ cmp r10, r2
+ bcc _080E965A
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ ldr r0, _080E9740 @ =gUnknown_083DBEA8
+ bl MenuPrint
+_080E970A:
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r5, 0
+_080E971A:
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r9, r0
+ blt _080E9648
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9738: .4byte 0x00009e14
+_080E973C: .4byte gUnknown_083DB694
+_080E9740: .4byte gUnknown_083DBEA8
+ thumb_func_end sub_80E9620
+
+ thumb_func_start sub_80E9744
+sub_80E9744: @ 80E9744
+ push {lr}
+ ldr r0, _080E9760 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9764 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E97B2
+ lsls r0, 2
+ ldr r1, _080E9768 @ =_080E976C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9760: .4byte gWindowConfig_81E6D8C
+_080E9764: .4byte gUnknown_083DB694
+_080E9768: .4byte _080E976C
+ .align 2, 0
+_080E976C:
+ .4byte _080E9792
+ .4byte _080E9796
+ .4byte _080E97A0
+ .4byte _080E97AA
+ .4byte _080E9784
+ .4byte _080E978E
+_080E9784:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E97C0
+ b _080E97B2
+_080E978E:
+ movs r0, 0x2
+ b _080E97A2
+_080E9792:
+ movs r0, 0x3
+ b _080E9798
+_080E9796:
+ movs r0, 0
+_080E9798:
+ movs r1, 0x5
+ bl sub_80E97C0
+ b _080E97B2
+_080E97A0:
+ movs r0, 0x4
+_080E97A2:
+ movs r1, 0x11
+ bl sub_80E97C0
+ b _080E97B2
+_080E97AA:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E97C0
+_080E97B2:
+ ldr r0, _080E97BC @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E97BC: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9744
+
+ thumb_func_start sub_80E97C0
+sub_80E97C0: @ 80E97C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r7, 0
+ movs r3, 0
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080E98A6
+_080E97EA:
+ ldr r1, [r1]
+ ldr r0, _080E98BC @ =0x00009e6e
+ adds r2, r1, r0
+ movs r6, 0
+ adds r0, r1, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r4, [sp]
+ lsls r4, 24
+ mov r8, r4
+ lsls r4, r5, 24
+ mov r9, r4
+ adds r5, 0x2
+ mov r10, r5
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ cmp r6, r0
+ bge _080E985E
+ ldrb r1, [r1, 0xA]
+ cmp r7, r1
+ bcs _080E985E
+ ldr r0, _080E98B8 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r5, _080E98C0 @ =0x0000ffff
+_080E981E:
+ lsls r0, r7, 1
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _080E983E
+ adds r1, r0, 0
+ adds r0, r2, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+_080E983E:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E985E
+ ldrb r0, [r4, 0xA]
+ cmp r7, r0
+ bcc _080E981E
+_080E985E:
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ ldr r4, [r1]
+ adds r0, r4, 0
+ adds r0, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xB
+ muls r1, r0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ lsls r1, 3
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _080E98BC @ =0x00009e6e
+ adds r0, r4, r2
+ mov r3, r8
+ lsrs r1, r3, 24
+ mov r3, r9
+ lsrs r2, r3, 24
+ bl MenuPrint
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ adds r4, 0x84
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r3, r0
+ blt _080E97EA
+_080E98A6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E98B8: .4byte gUnknown_083DB694
+_080E98BC: .4byte 0x00009e6e
+_080E98C0: .4byte 0x0000ffff
+ thumb_func_end sub_80E97C0
+
+ thumb_func_start sub_80E98C4
+sub_80E98C4: @ 80E98C4
+ push {lr}
+ ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E98E4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9936
+ lsls r0, 2
+ ldr r1, _080E98E8 @ =_080E98EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E98E0: .4byte gWindowConfig_81E6D8C
+_080E98E4: .4byte gUnknown_083DB694
+_080E98E8: .4byte _080E98EC
+ .align 2, 0
+_080E98EC:
+ .4byte _080E990A
+ .4byte _080E9910
+ .4byte _080E9916
+ .4byte _080E991A
+ .4byte _080E9904
+ .4byte _080E990A
+_080E9904:
+ movs r1, 0x4
+ movs r3, 0x2
+ b _080E991E
+_080E990A:
+ movs r1, 0x3
+ movs r3, 0x2
+ b _080E991E
+_080E9910:
+ movs r1, 0x1
+ movs r3, 0x3
+ b _080E991E
+_080E9916:
+ movs r1, 0x4
+ b _080E991C
+_080E991A:
+ movs r1, 0x3
+_080E991C:
+ movs r3, 0x1
+_080E991E:
+ lsls r3, 1
+ adds r3, r1, r3
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x2
+ movs r2, 0x1B
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080E993C @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+_080E9936:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E993C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E98C4
+
+ thumb_func_start sub_80E9940
+sub_80E9940: @ 80E9940
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 24
+ lsrs r5, 24
+ movs r4, 0x7
+ ands r4, r5
+ lsls r3, r4, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0x2
+ movs r2, 0x1F
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80E9A7C
+ lsls r4, 1
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_80E9A60
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9940
+
+ thumb_func_start sub_80E9974
+sub_80E9974: @ 80E9974
+ push {r4-r6,lr}
+ ldr r0, _080E99C4 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ ldr r0, _080E99C8 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E99D4
+ ldr r1, _080E99CC @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ adds r0, 0x4
+ cmp r4, r0
+ bge _080E9A08
+ adds r5, r2, 0
+ ldr r2, _080E99CC @ =0x000001b5
+ adds r6, r5, r2
+_080E99A4:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E99D0 @ =0x00009dc9
+ adds r0, r5, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, 0x4
+ cmp r4, r0
+ blt _080E99A4
+ b _080E9A08
+ .align 2, 0
+_080E99C4: .4byte gWindowConfig_81E6D54
+_080E99C8: .4byte gUnknown_083DB694
+_080E99CC: .4byte 0x000001b5
+_080E99D0: .4byte 0x00009dc9
+_080E99D4:
+ bl sub_80E9AD4
+ ldr r4, _080E9A10 @ =gUnknown_083DBEAC
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x20
+ movs r1, 0x2
+ movs r2, 0x2
+ bl sub_80E9A60
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x2
+ movs r2, 0x4
+ bl sub_80E9A60
+ adds r4, 0x60
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ bl sub_80E9A60
+_080E9A08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A10: .4byte gUnknown_083DBEAC
+ thumb_func_end sub_80E9974
+
+ thumb_func_start sub_80E9A14
+sub_80E9A14: @ 80E9A14
+ push {lr}
+ bl sub_80E9A4C
+ ldr r0, _080E9A44 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E9A40
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r3, _080E9A48 @ =0x000001b5
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+_080E9A40:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A44: .4byte gUnknown_083DB694
+_080E9A48: .4byte 0x000001b5
+ thumb_func_end sub_80E9A14
+
+ thumb_func_start sub_80E9A4C
+sub_80E9A4C: @ 80E9A4C
+ ldr r0, _080E9A5C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080E9A5C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A4C
+
+ thumb_func_start sub_80E9A60
+sub_80E9A60: @ 80E9A60
+ push {lr}
+ lsls r2, 16
+ movs r3, 0xF0
+ lsls r3, 12
+ ands r3, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r3, 16
+ adds r2, r3, 0
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9A60
+
+ thumb_func_start sub_80E9A7C
+sub_80E9A7C: @ 80E9A7C
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r0, r7, 17
+ lsrs r5, r0, 16
+ movs r4, 0
+ ldr r0, _080E9AD0 @ =gUnknown_083DB694
+ ldr r6, [r0]
+_080E9A8E:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ muls r0, r4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r7, 1
+ adds r1, r4, r1
+ adds r0, r6, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0xB
+ bl sub_80EAD64
+ adds r2, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r6, 0x28]
+ cmp r5, r0
+ bcs _080E9ACA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E9A8E
+_080E9ACA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AD0: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A7C
+
+ thumb_func_start sub_80E9AD4
+sub_80E9AD4: @ 80E9AD4
+ push {r4,lr}
+ ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ movs r4, 0
+_080E9ADE:
+ adds r0, r4, 0
+ bl sub_80E9C74
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080E9ADE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AF4: .4byte gWindowConfig_81E6D54
+ thumb_func_end sub_80E9AD4
+
+ thumb_func_start sub_80E9AF8
+sub_80E9AF8: @ 80E9AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ bl sub_80E9C74
+ ldr r4, _080E9B7C @ =gUnknown_083DB694
+ ldr r5, [r4]
+ ldr r0, _080E9B80 @ =0x00009e14
+ adds r0, r5
+ mov r8, r0
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ ldr r2, _080E9B84 @ =0x00009e17
+ adds r2, r5
+ mov r8, r2
+ adds r0, r5, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E9BF4
+ movs r6, 0
+ ldr r3, _080E9B88 @ =0x000099a6
+ adds r0, r5, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _080E9B4A
+ b _080E9C52
+_080E9B4A:
+ lsls r0, r7, 2
+ mov r9, r0
+ ldr r1, _080E9B8C @ =0x00009a2a
+ adds r1, r5, r1
+ str r1, [sp]
+ lsls r2, r7, 17
+ mov r10, r2
+_080E9B58:
+ lsls r4, r6, 1
+ mov r3, r9
+ adds r0, r4, r3
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r4, 0
+ cmp r0, 0x7
+ bne _080E9B94
+ ldr r0, _080E9B90 @ =gWindowConfig_81E6D70
+ bl BasicInitMenuWindow
+ b _080E9B9A
+ .align 2, 0
+_080E9B7C: .4byte gUnknown_083DB694
+_080E9B80: .4byte 0x00009e14
+_080E9B84: .4byte 0x00009e17
+_080E9B88: .4byte 0x000099a6
+_080E9B8C: .4byte 0x00009a2a
+_080E9B90: .4byte gWindowConfig_81E6D70
+_080E9B94:
+ ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+_080E9B9A:
+ ldr r2, _080E9BE4 @ =gUnknown_083DB694
+ ldr r4, [r2]
+ mov r3, r9
+ adds r1, r5, r3
+ ldr r2, _080E9BE8 @ =0x00009a2a
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ ldr r3, _080E9BEC @ =0x00009e14
+ adds r0, r4, r3
+ movs r1, 0xB
+ muls r1, r6
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ mov r3, r10
+ lsrs r2, r3, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080E9BF0 @ =0x000099a6
+ adds r4, r0
+ adds r4, r7
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r6, r0
+ blt _080E9B58
+ b _080E9C52
+ .align 2, 0
+_080E9BE0: .4byte gWindowConfig_81E6D54
+_080E9BE4: .4byte gUnknown_083DB694
+_080E9BE8: .4byte 0x00009a2a
+_080E9BEC: .4byte 0x00009e14
+_080E9BF0: .4byte 0x000099a6
+_080E9BF4:
+ ldr r0, _080E9C64 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ movs r6, 0
+ ldr r1, _080E9C68 @ =0x000099a6
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E9C52
+ adds r4, r5, 0
+ adds r0, r4, r1
+ adds r0, r7
+ mov r9, r0
+ lsls r5, r7, 17
+_080E9C16:
+ lsls r1, r6, 1
+ lsls r0, r7, 2
+ adds r1, r0
+ ldr r2, _080E9C6C @ =0x00009a2a
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ movs r0, 0xB
+ adds r1, r6, 0
+ muls r1, r0
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _080E9C70 @ =0x00009e14
+ adds r0, r4, r3
+ lsrs r2, r5, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r9
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r6, r0
+ blt _080E9C16
+_080E9C52:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9C64: .4byte gWindowConfig_81E6D54
+_080E9C68: .4byte 0x000099a6
+_080E9C6C: .4byte 0x00009a2a
+_080E9C70: .4byte 0x00009e14
+ thumb_func_end sub_80E9AF8
+
+ thumb_func_start sub_80E9C74
+sub_80E9C74: @ 80E9C74
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ lsls r3, r1, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C74
+
+ thumb_func_start sub_80E9C94
+sub_80E9C94: @ 80E9C94
+ push {r4-r6,lr}
+ ldr r0, _080E9CAC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r2, _080E9CB0 @ =0x00009a28
+ adds r1, r0, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x3
+ bgt _080E9CB4
+ lsls r0, 16
+ lsrs r0, 16
+ b _080E9CB6
+ .align 2, 0
+_080E9CAC: .4byte gUnknown_083DB694
+_080E9CB0: .4byte 0x00009a28
+_080E9CB4:
+ movs r0, 0x4
+_080E9CB6:
+ adds r5, r0, 0
+ movs r4, 0
+ cmp r4, r5
+ bcs _080E9CF4
+ ldr r0, _080E9CE0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E9CE4 @ =0x00009a29
+ adds r6, r0, r1
+_080E9CC6:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80E9AF8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080E9CC6
+ b _080E9CF4
+ .align 2, 0
+_080E9CE0: .4byte gUnknown_083DB694
+_080E9CE4: .4byte 0x00009a29
+_080E9CE8:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_80E9C74
+_080E9CF4:
+ cmp r4, 0x3
+ bls _080E9CE8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C94
+
+ thumb_func_start sub_80E9D00
+sub_80E9D00: @ 80E9D00
+ push {r4-r6,lr}
+ ldr r0, _080E9D28 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080E9D30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D2C @ =0x00009a29
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ b _080E9D46
+ .align 2, 0
+_080E9D28: .4byte gUnknown_083DB694
+_080E9D2C: .4byte 0x00009a29
+_080E9D30:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D74 @ =0x00009a29
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r4
+_080E9D46:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080E9D78 @ =0x0000ffff
+ cmp r4, r0
+ beq _080E9D6E
+ adds r6, r0, 0
+_080E9D58:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_80E9AF8
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r6
+ bne _080E9D58
+_080E9D6E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9D74: .4byte 0x00009a29
+_080E9D78: .4byte 0x0000ffff
+ thumb_func_end sub_80E9D00
+
+ thumb_func_start sub_80E9D7C
+sub_80E9D7C: @ 80E9D7C
+ push {r4-r7,lr}
+ ldr r0, _080E9DAC @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ ldr r0, _080E9DB0 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E9DB8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DB4 @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r6
+ b _080E9DCC
+ .align 2, 0
+_080E9DAC: .4byte gWindowConfig_81E6D54
+_080E9DB0: .4byte gUnknown_083DB694
+_080E9DB4: .4byte 0x000001b5
+_080E9DB8:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DFC @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+_080E9DCC:
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0
+ cmp r5, r6
+ bcs _080E9DF6
+ ldr r0, _080E9E00 @ =gUnknown_083DB694
+ ldr r7, [r0]
+_080E9DDA:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E9E04 @ =0x00009dc9
+ adds r0, r7, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r6
+ bcc _080E9DDA
+_080E9DF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9DFC: .4byte 0x000001b5
+_080E9E00: .4byte gUnknown_083DB694
+_080E9E04: .4byte 0x00009dc9
+ thumb_func_end sub_80E9D7C
+
+ thumb_func_start sub_80E9E08
+sub_80E9E08: @ 80E9E08
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E9E4C @ =gUnknown_083DB694
+ ldr r3, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r2, r3, r5
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7F
+ ands r0, r1
+ subs r5, 0x4
+ adds r1, r3, r5
+ strh r0, [r1]
+ adds r1, r4, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bge _080E9E3E
+ negs r1, r4
+_080E9E3E:
+ ldr r2, _080E9E50 @ =0x000001bf
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9E4C: .4byte gUnknown_083DB694
+_080E9E50: .4byte 0x000001bf
+ thumb_func_end sub_80E9E08
+
+ thumb_func_start sub_80E9E54
+sub_80E9E54: @ 80E9E54
+ push {r4,lr}
+ ldr r0, _080E9E8C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r3, r2, r0
+ ldr r1, _080E9E90 @ =0x000001bf
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r4, [r3]
+ adds r0, r4
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r3]
+ movs r3, 0
+ movs r4, 0xDE
+ lsls r4, 1
+ adds r1, r2, r4
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080E9E84
+ movs r3, 0x1
+_080E9E84:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E9E8C: .4byte gUnknown_083DB694
+_080E9E90: .4byte 0x000001bf
+ thumb_func_end sub_80E9E54
+
+ thumb_func_start nullsub_23
+nullsub_23: @ 80E9E94
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start sub_80E9E98
+sub_80E9E98: @ 80E9E98
+ ldr r0, _080E9EA4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080E9EA4: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9E98
+
+ thumb_func_start sub_80E9EA8
+sub_80E9EA8: @ 80E9EA8
+ push {lr}
+ ldr r1, _080E9EC4 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _080E9F48
+ lsls r0, 2
+ ldr r1, _080E9EC8 @ =_080E9ECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9EC4: .4byte gUnknown_083DB694
+_080E9EC8: .4byte _080E9ECC
+ .align 2, 0
+_080E9ECC:
+ .4byte _080E9EE4
+ .4byte _080E9EF4
+ .4byte _080E9F0C
+ .4byte _080E9F24
+ .4byte _080E9F38
+ .4byte _080E9F44
+_080E9EE4:
+ bl sub_80EA24C
+ ldr r0, _080E9F08 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9EF4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA4A4
+ ldr r0, _080E9F08 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F08: .4byte gUnknown_083DB694
+_080E9F0C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA704
+ ldr r0, _080E9F20 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F20: .4byte gUnknown_083DB694
+_080E9F24:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ ldr r0, _080E9F34 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F34: .4byte gUnknown_083DB694
+_080E9F38:
+ ldr r1, [r2]
+_080E9F3A:
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9F48
+_080E9F44:
+ movs r0, 0x1
+ b _080E9F4A
+_080E9F48:
+ movs r0, 0
+_080E9F4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9EA8
+
+ thumb_func_start sub_80E9F50
+sub_80E9F50: @ 80E9F50
+ push {lr}
+ ldr r0, _080E9F68 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bhi _080E9FCC
+ lsls r0, 2
+ ldr r1, _080E9F6C @ =_080E9F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9F68: .4byte gUnknown_083DB694
+_080E9F6C: .4byte _080E9F70
+ .align 2, 0
+_080E9F70:
+ .4byte _080E9F8C
+ .4byte _080E9FAC
+ .4byte _080E9F96
+ .4byte _080E9FAC
+ .4byte _080E9F9C
+ .4byte _080E9FAC
+ .4byte _080E9FC8
+_080E9F8C:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080E9FA0
+_080E9F96:
+ bl sub_80EA5A0
+ b _080E9FA0
+_080E9F9C:
+ bl sub_80EA348
+_080E9FA0:
+ ldr r0, _080E9FC4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9FAC:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9FCC
+ ldr r0, _080E9FC4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9FCC
+ .align 2, 0
+_080E9FC4: .4byte gUnknown_083DB694
+_080E9FC8:
+ movs r0, 0x1
+ b _080E9FCE
+_080E9FCC:
+ movs r0, 0
+_080E9FCE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9F50
+
+ thumb_func_start sub_80E9FD4
+sub_80E9FD4: @ 80E9FD4
+ push {r4,lr}
+ ldr r0, _080E9FEC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080E9FF0
+ cmp r0, 0x1
+ beq _080E9FFE
+ b _080EA00C
+ .align 2, 0
+_080E9FEC: .4byte gUnknown_083DB694
+_080E9FF0:
+ bl nullsub_23
+ bl sub_80EA5A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080E9FFE:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA00C
+ movs r0, 0x1
+ b _080EA00E
+_080EA00C:
+ movs r0, 0
+_080EA00E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9FD4
+
+ thumb_func_start sub_80EA014
+sub_80EA014: @ 80EA014
+ push {r4,lr}
+ ldr r0, _080EA02C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EA030
+ cmp r0, 0x1
+ beq _080EA03A
+ b _080EA048
+ .align 2, 0
+_080EA02C: .4byte gUnknown_083DB694
+_080EA030:
+ bl sub_80EA4A4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA03A:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA048
+ movs r0, 0x1
+ b _080EA04A
+_080EA048:
+ movs r0, 0
+_080EA04A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA014
+
+ thumb_func_start sub_80EA050
+sub_80EA050: @ 80EA050
+ push {lr}
+ ldr r0, _080EA068 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA0DC
+ lsls r0, 2
+ ldr r1, _080EA06C @ =_080EA070
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA068: .4byte gUnknown_083DB694
+_080EA06C: .4byte _080EA070
+ .align 2, 0
+_080EA070:
+ .4byte _080EA084
+ .4byte _080EA08E
+ .4byte _080EA09E
+ .4byte _080EA0B4
+ .4byte _080EA0D8
+_080EA084:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080EA0C4
+_080EA08E:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA7F4
+ b _080EA0C4
+_080EA09E:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA8BC
+ b _080EA0C4
+_080EA0B4:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+_080EA0C4:
+ ldr r0, _080EA0D4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA0DC
+ .align 2, 0
+_080EA0D4: .4byte gUnknown_083DB694
+_080EA0D8:
+ movs r0, 0x1
+ b _080EA0DE
+_080EA0DC:
+ movs r0, 0
+_080EA0DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA050
+
+ thumb_func_start sub_80EA0E4
+sub_80EA0E4: @ 80EA0E4
+ push {lr}
+ ldr r0, _080EA0FC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA17C
+ lsls r0, 2
+ ldr r1, _080EA100 @ =_080EA104
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA0FC: .4byte gUnknown_083DB694
+_080EA100: .4byte _080EA104
+ .align 2, 0
+_080EA104:
+ .4byte _080EA118
+ .4byte _080EA128
+ .4byte _080EA144
+ .4byte _080EA15C
+ .4byte _080EA178
+_080EA118:
+ bl sub_80EA948
+ ldr r0, _080EA140 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EA128:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EAA44
+ b _080EA166
+ .align 2, 0
+_080EA140: .4byte gUnknown_083DB694
+_080EA144:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EA704
+ b _080EA166
+_080EA15C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+_080EA166:
+ ldr r0, _080EA174 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA17C
+ .align 2, 0
+_080EA174: .4byte gUnknown_083DB694
+_080EA178:
+ movs r0, 0x1
+ b _080EA17E
+_080EA17C:
+ movs r0, 0
+_080EA17E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA0E4
+
+ thumb_func_start sub_80EA184
+sub_80EA184: @ 80EA184
+ push {r4,lr}
+ ldr r0, _080EA1A0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EA1B4
+ cmp r0, 0x1
+ bgt _080EA1A4
+ cmp r0, 0
+ beq _080EA1AA
+ b _080EA1D8
+ .align 2, 0
+_080EA1A0: .4byte gUnknown_083DB694
+_080EA1A4:
+ cmp r0, 0x2
+ beq _080EA1D0
+ b _080EA1D8
+_080EA1AA:
+ bl sub_80EAAD4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA1B4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA1D8
+ ldr r0, _080EA1CC @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA1D8
+ .align 2, 0
+_080EA1CC: .4byte gUnknown_083DB694
+_080EA1D0:
+ bl sub_80E9178
+ movs r0, 0x1
+ b _080EA1DA
+_080EA1D8:
+ movs r0, 0
+_080EA1DA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA184
+
+ thumb_func_start sub_80EA1E0
+sub_80EA1E0: @ 80EA1E0
+ push {r4-r6,lr}
+ ldr r0, _080EA240 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EA244
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EA228
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EA200:
+ lsls r0, r4, 4
+ adds r0, 0xC8
+ adds r0, r5, r0
+ bl sub_80EAC0C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ bl sub_80EAC48
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EA200
+_080EA228:
+ ldr r0, _080EA240 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xBC
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080EA246
+ .align 2, 0
+_080EA240: .4byte gUnknown_083DB694
+_080EA244:
+ movs r0, 0x1
+_080EA246:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA1E0
+
+ thumb_func_start sub_80EA24C
+sub_80EA24C: @ 80EA24C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA340 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ ldr r1, _080EA344 @ =0x0000fffe
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r6, 0x10
+ str r6, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0x9
+ mov r3, r8
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA340: .4byte gUnknown_083DB694
+_080EA344: .4byte 0x0000fffe
+ thumb_func_end sub_80EA24C
+
+ thumb_func_start sub_80EA348
+sub_80EA348: @ 80EA348
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA49C @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r5, 0xF
+ str r5, [sp]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EA4A0 @ =0x0000fffe
+ mov r8, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r5, 0x10
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0x2
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xE
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA49C: .4byte gUnknown_083DB694
+_080EA4A0: .4byte 0x0000fffe
+ thumb_func_end sub_80EA348
+
+ thumb_func_start sub_80EA4A4
+sub_80EA4A4: @ 80EA4A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA598 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r1, _080EA59C @ =0x0000ffff
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x10
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r6, 0x1
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA598: .4byte gUnknown_083DB694
+_080EA59C: .4byte 0x0000ffff
+ thumb_func_end sub_80EA4A4
+
+ thumb_func_start sub_80EA5A0
+sub_80EA5A0: @ 80EA5A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA6FC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EA700 @ =0x0000ffff
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r1, r8
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA6FC: .4byte gUnknown_083DB694
+_080EA700: .4byte 0x0000ffff
+ thumb_func_end sub_80EA5A0
+
+ thumb_func_start sub_80EA704
+sub_80EA704: @ 80EA704
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA75C @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r1, 0x14
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r3, _080EA760 @ =0x0000ffff
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0xA
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xC2
+ strh r5, [r0]
+ adds r1, r6, 0
+ adds r1, 0xC4
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA75C: .4byte gUnknown_083DB694
+_080EA760: .4byte 0x0000ffff
+ thumb_func_end sub_80EA704
+
+ thumb_func_start sub_80EA764
+sub_80EA764: @ 80EA764
+ push {r4-r7,lr}
+ sub sp, 0x14
+ ldr r0, _080EA7EC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EA7F0 @ =0x0000ffff
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1E
+ movs r2, 0xC
+ movs r3, 0x1F
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0xC
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA7EC: .4byte gUnknown_083DB694
+_080EA7F0: .4byte 0x0000ffff
+ thumb_func_end sub_80EA764
+
+ thumb_func_start sub_80EA7F4
+sub_80EA7F4: @ 80EA7F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r0, _080EA8B4 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x14
+ movs r2, 0xA
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ ldr r3, _080EA8B8 @ =0x0000ffff
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r2, r7
+ mov r8, r2
+ str r2, [sp, 0x4]
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x3
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA8B4: .4byte gUnknown_083DB694
+_080EA8B8: .4byte 0x0000ffff
+ thumb_func_end sub_80EA7F4
+
+ thumb_func_start sub_80EA8BC
+sub_80EA8BC: @ 80EA8BC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA944 @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA944: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EA8BC
+
+ thumb_func_start sub_80EA948
+sub_80EA948: @ 80EA948
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EAA3C @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EAA40 @ =0x0000ffff
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x80
+ adds r1, r7
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x5
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1A
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ movs r2, 0xA
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x19
+ movs r2, 0xA
+ movs r3, 0x1A
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAA3C: .4byte gUnknown_083DB694
+_080EAA40: .4byte 0x0000ffff
+ thumb_func_end sub_80EA948
+
+ thumb_func_start sub_80EAA44
+sub_80EAA44: @ 80EAA44
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EAACC @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EAAD0 @ =0x0000ffff
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x17
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAACC: .4byte gUnknown_083DB694
+_080EAAD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAA44
+
+ thumb_func_start sub_80EAAD4
+sub_80EAAD4: @ 80EAAD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EABCC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r1, 0xF
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r5, 0x1
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EABD0 @ =0x0000ffff
+ str r6, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xF
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x68
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EABCC: .4byte gUnknown_083DB694
+_080EABD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAAD4
+
+ thumb_func_start sub_80EABD4
+sub_80EABD4: @ 80EABD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r8, r7
+ strh r1, [r0]
+ strh r3, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r5, [r0, 0x6]
+ strh r6, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r4, r8
+ strh r4, [r0, 0xE]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EABD4
+
+ thumb_func_start sub_80EAC0C
+sub_80EAC0C: @ 80EAC0C
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0xA]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0xC]
+ ldrh r2, [r0, 0x4]
+ adds r1, r2
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0, 0xE]
+ ldrh r2, [r0, 0x6]
+ adds r1, r2
+ strh r1, [r0, 0x6]
+ bx lr
+ thumb_func_end sub_80EAC0C
+
+ thumb_func_start sub_80EAC30
+sub_80EAC30: @ 80EAC30
+ push {r4,r5,lr}
+ ldr r4, [sp, 0xC]
+ ldr r5, [sp, 0x10]
+ strh r1, [r0]
+ strh r2, [r0, 0x2]
+ strh r3, [r0, 0x4]
+ strh r4, [r0, 0x6]
+ str r5, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EAC30
+
+ thumb_func_start sub_80EAC48
+sub_80EAC48: @ 80EAC48
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0x6]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ bx lr
+ thumb_func_end sub_80EAC48
+
+ thumb_func_start sub_80EAC5C
+sub_80EAC5C: @ 80EAC5C
+ push {r4-r6,lr}
+ ldr r0, _080EACB4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EACAC
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EACA2
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EAC7C:
+ lsls r1, r4, 4
+ adds r1, 0xC8
+ adds r1, r5, r1
+ lsls r2, r4, 1
+ adds r2, r4
+ lsls r2, 2
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r2, r0
+ adds r2, r5, r2
+ ldr r0, _080EACB8 @ =0x06006800
+ bl sub_80EACBC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EAC7C
+_080EACA2:
+ ldr r0, _080EACB4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBC
+ movs r1, 0
+ strb r1, [r0]
+_080EACAC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EACB4: .4byte gUnknown_083DB694
+_080EACB8: .4byte 0x06006800
+ thumb_func_end sub_80EAC5C
+
+ thumb_func_start sub_80EACBC
+sub_80EACBC: @ 80EACBC
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r3]
+ subs r2, r0
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r3, 0x4]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, r2, 16
+ cmp r6, 0
+ ble _080EACFE
+ lsls r5, r0, 16
+ cmp r5, 0
+ ble _080EACFE
+ ldrh r1, [r3]
+ ldrh r2, [r3, 0x4]
+ ldr r3, [r4, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp]
+ ldrh r0, [r4, 0x2]
+ str r0, [sp, 0x4]
+ lsrs r0, r6, 16
+ str r0, [sp, 0x8]
+ lsrs r0, r5, 16
+ str r0, [sp, 0xC]
+ adds r0, r7, 0
+ bl sub_809D104
+_080EACFE:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EACBC
+
+ thumb_func_start sub_80EAD08
+sub_80EAD08: @ 80EAD08
+ push {r4,r5,lr}
+ ldr r0, _080EAD58 @ =gUnknown_03004DC0
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080EAD5C @ =gUnknown_03004DE0
+ adds r4, r0, r1
+ adds r4, 0xB0
+ ldr r0, _080EAD60 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r2, r0, 0
+ subs r2, 0x58
+ movs r0, 0xFF
+ ands r2, r0
+ movs r3, 0
+ movs r5, 0xFF
+_080EAD32:
+ ldrh r0, [r1]
+ adds r0, r3
+ cmp r0, 0x80
+ bne _080EAD42
+ negs r0, r3
+ adds r2, r0, 0
+ subs r2, 0x58
+ ands r2, r5
+_080EAD42:
+ strh r2, [r4]
+ adds r4, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080EAD32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAD58: .4byte gUnknown_03004DC0
+_080EAD5C: .4byte gUnknown_03004DE0
+_080EAD60: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EAD08
+
+ thumb_func_start sub_80EAD64
+sub_80EAD64: @ 80EAD64
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080EAD78 @ =gEasyChatGroupNames
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAD78: .4byte gEasyChatGroupNames
+ thumb_func_end sub_80EAD64
+
+ thumb_func_start sub_80EAD7C
+sub_80EAD7C: @ 80EAD7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x14
+ beq _080EADA2
+ cmp r0, 0x14
+ bgt _080EAD9C
+ cmp r0, 0x11
+ blt _080EADBA
+ ldr r0, _080EAD98 @ =0x00000804
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EAD98: .4byte 0x00000804
+_080EAD9C:
+ cmp r1, 0x15
+ beq _080EADB0
+ b _080EADBA
+_080EADA2:
+ ldr r0, _080EADAC @ =0x00000806
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EADAC: .4byte 0x00000806
+_080EADB0:
+ bl sub_80EB9C8
+_080EADB4:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EADBC
+_080EADBA:
+ movs r0, 0x1
+_080EADBC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EAD7C
+
+ thumb_func_start sub_80EADC0
+sub_80EADC0: @ 80EADC0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r2, 0x15
+ bhi _080EAE82
+ lsls r0, r2, 2
+ ldr r1, _080EADD8 @ =_080EADDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EADD8: .4byte _080EADDC
+ .align 2, 0
+_080EADDC:
+ .4byte _080EAE50
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE34
+ .4byte _080EAE78
+_080EAE34:
+ ldr r0, _080EAE4C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EAE70
+ lsls r0, r3, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ b _080EAE7C
+ .align 2, 0
+_080EAE4C: .4byte gUnknown_083DB694
+_080EAE50:
+ adds r0, r3, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ b _080EAE7C
+_080EAE62:
+ ldr r0, _080EAE74 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EAE82
+_080EAE70:
+ movs r0, 0
+ b _080EAE84
+ .align 2, 0
+_080EAE74: .4byte gUnknown_083DB694
+_080EAE78:
+ bl sub_80EB9C8
+_080EAE7C:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAE84
+_080EAE82:
+ movs r0, 0x1
+_080EAE84:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EADC0
+
+ thumb_func_start sub_80EAE88
+sub_80EAE88: @ 80EAE88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080EAEA6
+ cmp r4, 0x14
+ beq _080EAEB2
+ adds r0, r4, 0
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EAEBC
+ movs r0, 0
+ b _080EAEC2
+_080EAEA6:
+ movs r0, 0
+ bl sub_8090F68
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EAEC2
+_080EAEB2:
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAEC2
+_080EAEBC:
+ ldr r0, _080EAEC8 @ =gEasyChatGroupSizes
+ adds r0, r4, r0
+ ldrb r0, [r0]
+_080EAEC2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAEC8: .4byte gEasyChatGroupSizes
+ thumb_func_end sub_80EAE88
+
+ thumb_func_start sub_80EAECC
+sub_80EAECC: @ 80EAECC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _080EAF10 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ ldr r3, _080EAF14 @ =0x00004142
+ adds r3, r0, r3
+ str r3, [sp, 0x4]
+_080EAEE6:
+ ldr r1, _080EAF18 @ =gEasyChatWordsByLetter
+ mov r7, r8
+ lsls r2, r7, 1
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ mov r3, r8
+ adds r3, 0x1
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r0
+ adds r6, r4, 0
+ mov r10, r2
+ str r3, [sp, 0x8]
+ b _080EB00C
+ .align 2, 0
+_080EAF10: .4byte gUnknown_083DB694
+_080EAF14: .4byte 0x00004142
+_080EAF18: .4byte gEasyChatWordsByLetter
+_080EAF1C:
+ ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r4, r1, 0
+ ldr r0, _080EAFB4 @ =0x0000feff
+ cmp r1, r0
+ bls _080EAFCC
+ movs r0, 0xFF
+ ands r1, r0
+ movs r7, 0
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r3, _080EAFB8 @ =0x0000ffff
+ cmp r5, r3
+ beq _080EB00C
+ mov r1, r8
+ lsls r0, r1, 8
+ subs r0, r1
+ lsls r3, r0, 1
+_080EAF4E:
+ adds r1, r6, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 1
+ ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized
+ adds r1, r0
+ ldrh r4, [r1]
+ lsrs r0, r4, 9
+ ldr r1, _080EAFBC @ =0x000001ff
+ adds r2, r1, 0
+ adds r1, r4, 0
+ ands r1, r2
+ str r3, [sp, 0xC]
+ bl sub_80EADC0
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _080EAFA2
+ cmp r7, 0
+ bne _080EAFA2
+ ldr r7, _080EAFC0 @ =gUnknown_083DB694
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 1
+ adds r1, r3
+ ldr r7, _080EAFC4 @ =0x00000b78
+ adds r0, r2, r7
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _080EAFC8 @ =0x00004142
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ movs r7, 0x1
+_080EAFA2:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080EAFB8 @ =0x0000ffff
+ cmp r5, r1
+ bne _080EAF4E
+ b _080EB00C
+ .align 2, 0
+_080EAFB0: .4byte gEasyChatWordsAlphabetized
+_080EAFB4: .4byte 0x0000feff
+_080EAFB8: .4byte 0x0000ffff
+_080EAFBC: .4byte 0x000001ff
+_080EAFC0: .4byte gUnknown_083DB694
+_080EAFC4: .4byte 0x00000b78
+_080EAFC8: .4byte 0x00004142
+_080EAFCC:
+ lsrs r0, r4, 9
+ ldr r3, _080EB030 @ =0x000001ff
+ adds r2, r3, 0
+ adds r1, r4, 0
+ ands r1, r2
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB00C
+ ldr r7, _080EB034 @ =gUnknown_083DB694
+ ldr r2, [r7]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r3, r8
+ lsls r0, r3, 8
+ subs r0, r3
+ adds r0, r1
+ lsls r0, 1
+ ldr r7, _080EB038 @ =0x00000b78
+ adds r1, r2, r7
+ adds r1, r0
+ strh r4, [r1]
+ ldr r0, _080EB03C @ =0x00004142
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EB00C:
+ ldr r1, [sp]
+ cmp r6, r1
+ bcc _080EAF1C
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1A
+ bhi _080EB020
+ b _080EAEE6
+_080EB020:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB030: .4byte 0x000001ff
+_080EB034: .4byte gUnknown_083DB694
+_080EB038: .4byte 0x00000b78
+_080EB03C: .4byte 0x00004142
+ thumb_func_end sub_80EAECC
+
+ thumb_func_start sub_80EB040
+sub_80EB040: @ 80EB040
+ push {r4-r6,lr}
+ movs r3, 0
+_080EB044:
+ adds r6, r3, 0x1
+ cmp r3, 0
+ beq _080EB094
+ cmp r3, 0x15
+ beq _080EB094
+ cmp r3, 0x12
+ beq _080EB094
+ cmp r3, 0x13
+ beq _080EB094
+ ldr r0, _080EB0A4 @ =gEasyChatGroupWords
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r4, 0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _080EB094
+ ldr r0, _080EB0A8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080EB0AC @ =0x000041a4
+ adds r5, r0, r1
+_080EB06E:
+ lsls r0, r4, 2
+ lsls r1, r3, 10
+ adds r0, r1
+ adds r0, r5, r0
+ str r2, [r0]
+ ldrb r0, [r2]
+ adds r1, r4, 0x1
+ cmp r0, 0xFF
+ beq _080EB088
+_080EB080:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB080
+_080EB088:
+ adds r2, 0x1
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB06E
+_080EB094:
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x15
+ bls _080EB044
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB0A4: .4byte gEasyChatGroupWords
+_080EB0A8: .4byte gUnknown_083DB694
+_080EB0AC: .4byte 0x000041a4
+ thumb_func_end sub_80EB040
+
+ thumb_func_start sub_80EB0B0
+sub_80EB0B0: @ 80EB0B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r3, _080EB184 @ =gUnknown_083DB694
+ ldr r4, [r3]
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080EB19C
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r2, r4, r0
+ ldrb r6, [r2]
+ lsls r1, r6, 1
+ ldr r7, _080EB188 @ =0x00004178
+ adds r0, r4, r7
+ adds r0, r1
+ strh r5, [r0]
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080EB18C @ =gEasyChatGroupOrders
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080EB190 @ =gEasyChatGroupSizes
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB0FE
+ b _080EB1FA
+_080EB0FE:
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r2, r4, r2
+ str r2, [sp, 0x4]
+ lsls r5, r6, 24
+ mov r10, r5
+_080EB10A:
+ mov r1, r8
+ lsls r0, r1, 1
+ ldr r2, [sp]
+ adds r5, r0, r2
+ ldrh r1, [r5]
+ mov r2, r10
+ lsrs r0, r2, 24
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB16A
+ ldr r0, _080EB184 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ lsls r1, r7, 1
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r1, r0
+ ldr r0, _080EB194 @ =0x00009a2a
+ adds r4, r3, r0
+ adds r4, r1
+ movs r0, 0x7F
+ ands r0, r6
+ lsls r0, 9
+ ldrh r1, [r5]
+ ldr r5, _080EB198 @ =0x000001ff
+ adds r2, r5, 0
+ ands r1, r2
+ orrs r0, r1
+ strh r0, [r4]
+ lsls r0, r6, 1
+ ldr r1, _080EB188 @ =0x00004178
+ adds r3, r1
+ adds r3, r0
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _080EB16A
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+_080EB16A:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080EB190 @ =gEasyChatGroupSizes
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB10A
+ b _080EB1FA
+ .align 2, 0
+_080EB184: .4byte gUnknown_083DB694
+_080EB188: .4byte 0x00004178
+_080EB18C: .4byte gEasyChatGroupOrders
+_080EB190: .4byte gEasyChatGroupSizes
+_080EB194: .4byte 0x00009a2a
+_080EB198: .4byte 0x000001ff
+_080EB19C:
+ movs r5, 0xDC
+ lsls r5, 1
+ adds r0, r4, r5
+ ldrb r2, [r0]
+ movs r3, 0
+ movs r6, 0
+ movs r5, 0
+ lsls r1, r2, 1
+ ldr r7, _080EB20C @ =0x00004142
+ adds r0, r4, r7
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r5, r0
+ bcs _080EB1FA
+ ldr r7, _080EB210 @ =0x00009a2a
+ adds r7, r4
+ mov r8, r7
+ lsls r0, r2, 8
+ subs r0, r2
+ lsls r7, r0, 1
+ ldr r0, _080EB214 @ =0x00000b78
+ adds r2, r4, r0
+ adds r4, r1, 0
+_080EB1CA:
+ lsls r1, r3, 1
+ lsls r0, r6, 2
+ adds r1, r0
+ add r1, r8
+ lsls r0, r5, 1
+ adds r0, r7
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _080EB1EE
+ movs r3, 0
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB1EE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r1, [r4]
+ cmp r5, r1
+ bcc _080EB1CA
+_080EB1FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB20C: .4byte 0x00004142
+_080EB210: .4byte 0x00009a2a
+_080EB214: .4byte 0x00000b78
+ thumb_func_end sub_80EB0B0
+
+ thumb_func_start sub_80EB218
+sub_80EB218: @ 80EB218
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB240
+ ldr r1, _080EB23C @ =gOtherText_ThreeQuestions
+ b _080EB2A2
+ .align 2, 0
+_080EB23C: .4byte gOtherText_ThreeQuestions
+_080EB240:
+ ldr r0, _080EB250 @ =0x0000ffff
+ cmp r4, r0
+ bne _080EB254
+ adds r1, r5, 0
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080EB2AA
+ .align 2, 0
+_080EB250: .4byte 0x0000ffff
+_080EB254:
+ lsrs r2, r6, 25
+ ldr r1, _080EB268 @ =0x000001ff
+ ands r1, r7
+ cmp r2, 0x13
+ bgt _080EB26C
+ cmp r2, 0x12
+ bge _080EB280
+ cmp r2, 0
+ beq _080EB270
+ b _080EB290
+ .align 2, 0
+_080EB268: .4byte 0x000001ff
+_080EB26C:
+ cmp r2, 0x15
+ bne _080EB290
+_080EB270:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB27C @ =gSpeciesNames
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB27C: .4byte gSpeciesNames
+_080EB280:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB28C @ =gMoveNames
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB28C: .4byte gMoveNames
+_080EB290:
+ ldr r0, _080EB2CC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB2D0 @ =0x000041a4
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB2A2:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r1, r0, 0
+_080EB2AA:
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ mov r2, r8
+ lsls r0, r2, 3
+ strb r0, [r1, 0x2]
+ adds r1, 0x3
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB2CC: .4byte gUnknown_083DB694
+_080EB2D0: .4byte 0x000041a4
+ thumb_func_end sub_80EB218
+
+ thumb_func_start sub_80EB2D4
+sub_80EB2D4: @ 80EB2D4
+ push {r4-r6,lr}
+ lsls r5, r0, 16
+ lsrs r4, r5, 16
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB2F8
+ ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EB374
+ .align 2, 0
+_080EB2F4: .4byte gOtherText_ThreeQuestions
+_080EB2F8:
+ ldr r0, _080EB304 @ =0x0000ffff
+ cmp r4, r0
+ bne _080EB308
+ movs r0, 0
+ b _080EB374
+ .align 2, 0
+_080EB304: .4byte 0x0000ffff
+_080EB308:
+ lsrs r2, r5, 25
+ ldr r1, _080EB31C @ =0x000001ff
+ ands r1, r6
+ cmp r2, 0x13
+ bgt _080EB320
+ cmp r2, 0x12
+ bge _080EB334
+ cmp r2, 0
+ beq _080EB324
+ b _080EB344
+ .align 2, 0
+_080EB31C: .4byte 0x000001ff
+_080EB320:
+ cmp r2, 0x15
+ bne _080EB344
+_080EB324:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB330 @ =gSpeciesNames
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB330: .4byte gSpeciesNames
+_080EB334:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB340 @ =gMoveNames
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB340: .4byte gMoveNames
+_080EB344:
+ ldr r0, _080EB35C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB360 @ =0x000041a4
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB356:
+ movs r2, 0
+ b _080EB36C
+ .align 2, 0
+_080EB35C: .4byte gUnknown_083DB694
+_080EB360: .4byte 0x000041a4
+_080EB364:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB36C:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB364
+ adds r0, r2, 0
+_080EB374:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB2D4
+
+ thumb_func_start sub_80EB37C
+sub_80EB37C: @ 80EB37C
+ push {r4,r5,lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB3A0 @ =0x0000ffff
+ cmp r3, r0
+ beq _080EB3EA
+ lsrs r2, r1, 25
+ ldr r5, _080EB3A4 @ =0x000001ff
+ ands r5, r3
+ cmp r2, 0x15
+ bhi _080EB3F4
+ cmp r2, 0x13
+ bgt _080EB3A8
+ cmp r2, 0x12
+ bge _080EB3AC
+ cmp r2, 0
+ beq _080EB3AC
+ b _080EB3E0
+ .align 2, 0
+_080EB3A0: .4byte 0x0000ffff
+_080EB3A4: .4byte 0x000001ff
+_080EB3A8:
+ cmp r2, 0x15
+ bne _080EB3E0
+_080EB3AC:
+ ldr r0, _080EB3D8 @ =gEasyChatGroupWords
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r4, [r1]
+ movs r3, 0
+ ldr r0, _080EB3DC @ =gEasyChatGroupSizes
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080EB3F4
+ adds r1, r0, 0
+_080EB3C2:
+ lsls r0, r3, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080EB3EA
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _080EB3C2
+ b _080EB3F4
+ .align 2, 0
+_080EB3D8: .4byte gEasyChatGroupWords
+_080EB3DC: .4byte gEasyChatGroupSizes
+_080EB3E0:
+ ldr r0, _080EB3F0 @ =gEasyChatGroupSizes
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080EB3F4
+_080EB3EA:
+ movs r0, 0
+ b _080EB3F6
+ .align 2, 0
+_080EB3F0: .4byte gEasyChatGroupSizes
+_080EB3F4:
+ movs r0, 0x1
+_080EB3F6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB37C
+
+ thumb_func_start sub_80EB3FC
+sub_80EB3FC: @ 80EB3FC
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB420
+ ldr r1, _080EB41C @ =gOtherText_ThreeQuestions
+ adds r0, r5, 0
+ bl StringCopy
+ b _080EB4A6
+ .align 2, 0
+_080EB41C: .4byte gOtherText_ThreeQuestions
+_080EB420:
+ ldr r0, _080EB43C @ =0x0000ffff
+ cmp r4, r0
+ beq _080EB4A0
+ lsrs r1, r6, 25
+ ldr r2, _080EB440 @ =0x000001ff
+ ands r2, r7
+ cmp r1, 0x13
+ bgt _080EB444
+ cmp r1, 0x12
+ bge _080EB458
+ cmp r1, 0
+ beq _080EB448
+ b _080EB468
+ .align 2, 0
+_080EB43C: .4byte 0x0000ffff
+_080EB440: .4byte 0x000001ff
+_080EB444:
+ cmp r1, 0x15
+ bne _080EB468
+_080EB448:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB454 @ =gSpeciesNames
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB454: .4byte gSpeciesNames
+_080EB458:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB464 @ =gMoveNames
+ adds r1, r0
+ b _080EB498
+ .align 2, 0
+_080EB464: .4byte gMoveNames
+_080EB468:
+ ldr r0, _080EB4AC @ =gEasyChatGroupWords
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB4B0 @ =0x0000ffff
+ cmp r2, r0
+ beq _080EB498
+ adds r3, r0, 0
+_080EB47E:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB490
+_080EB488:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB488
+_080EB490:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB47E
+_080EB498:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+_080EB4A0:
+ movs r0, 0xFF
+ strb r0, [r5]
+ adds r0, r5, 0
+_080EB4A6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB4AC: .4byte gEasyChatGroupWords
+_080EB4B0: .4byte 0x0000ffff
+ thumb_func_end sub_80EB3FC
+
+ thumb_func_start ConvertEasyChatWordsToString
+ConvertEasyChatWordsToString: @ 80EB4B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ ldr r0, _080EB53C @ =0xffff0000
+ adds r2, r0
+ lsrs r7, r2, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _080EB524
+_080EB4D6:
+ movs r6, 0
+ adds r0, 0x1
+ mov r8, r0
+ cmp r6, r7
+ bcs _080EB508
+ ldr r2, _080EB540 @ =0x0000ffff
+_080EB4E2:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB4FC
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB4FC:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EB4E2
+_080EB508:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ movs r0, 0xFE
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcc _080EB4D6
+_080EB524:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB53C: .4byte 0xffff0000
+_080EB540: .4byte 0x0000ffff
+ thumb_func_end ConvertEasyChatWordsToString
+
+ thumb_func_start sub_80EB544
+sub_80EB544: @ 80EB544
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ ldr r0, _080EB5B0 @ =0xffff0000
+ adds r2, r0
+ lsrs r2, 16
+ mov r8, r2
+ movs r7, 0
+ cmp r7, r10
+ bcs _080EB5C8
+_080EB56A:
+ movs r6, 0
+ adds r1, r7, 0x1
+ mov r9, r1
+ cmp r6, r8
+ bcs _080EB59C
+ ldr r2, _080EB5B4 @ =0x0000ffff
+_080EB576:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _080EB590
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_080EB590:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r8
+ bcc _080EB576
+_080EB59C:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl sub_80EB3FC
+ adds r4, r0, 0
+ cmp r7, 0
+ bne _080EB5B8
+ movs r0, 0xFE
+ b _080EB5BA
+ .align 2, 0
+_080EB5B0: .4byte 0xffff0000
+_080EB5B4: .4byte 0x0000ffff
+_080EB5B8:
+ movs r0, 0xFA
+_080EB5BA:
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r9
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, r10
+ bcc _080EB56A
+_080EB5C8:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB544
+
+ thumb_func_start unref_sub_80EB5E0
+unref_sub_80EB5E0: @ 80EB5E0
+ push {lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB5F0 @ =0x0000ffff
+ cmp r3, r0
+ bne _080EB5F4
+ movs r0, 0
+ b _080EB67C
+ .align 2, 0
+_080EB5F0: .4byte 0x0000ffff
+_080EB5F4:
+ lsrs r1, 25
+ ldr r2, _080EB608 @ =0x000001ff
+ ands r2, r3
+ cmp r1, 0x13
+ bgt _080EB60C
+ cmp r1, 0x12
+ bge _080EB620
+ cmp r1, 0
+ beq _080EB610
+ b _080EB630
+ .align 2, 0
+_080EB608: .4byte 0x000001ff
+_080EB60C:
+ cmp r1, 0x15
+ bne _080EB630
+_080EB610:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB61C @ =gSpeciesNames
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB61C: .4byte gSpeciesNames
+_080EB620:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB62C @ =gMoveNames
+ adds r1, r0
+ b _080EB660
+ .align 2, 0
+_080EB62C: .4byte gMoveNames
+_080EB630:
+ ldr r0, _080EB664 @ =gEasyChatGroupWords
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB668 @ =0x0000ffff
+ cmp r2, r0
+ beq _080EB660
+ adds r3, r0, 0
+_080EB646:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB658
+_080EB650:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB650
+_080EB658:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB646
+_080EB660:
+ movs r2, 0
+ b _080EB674
+ .align 2, 0
+_080EB664: .4byte gEasyChatGroupWords
+_080EB668: .4byte 0x0000ffff
+_080EB66C:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB674:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB66C
+ adds r0, r2, 0
+_080EB67C:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80EB5E0
+
+ thumb_func_start sub_80EB680
+sub_80EB680: @ 80EB680
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80EB680
+
+ thumb_func_start unref_sub_80EB684
+unref_sub_80EB684: @ 80EB684
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, 0x7
+ beq _080EB6B4
+ cmp r0, 0x7
+ bgt _080EB69E
+ cmp r0, 0x5
+ beq _080EB6A4
+ b _080EB6EE
+_080EB69E:
+ cmp r2, 0x8
+ beq _080EB6C4
+ b _080EB6EE
+_080EB6A4:
+ movs r2, 0x6
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C
+ b _080EB6CE
+ .align 2, 0
+_080EB6B0: .4byte gSaveBlock1 + 0x273C
+_080EB6B4:
+ movs r2, 0x2
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754
+ b _080EB6CE
+ .align 2, 0
+_080EB6C0: .4byte gSaveBlock1 + 0x2754
+_080EB6C4:
+ movs r2, 0x1
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A
+_080EB6CE:
+ adds r1, r0, r1
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB6F8 @ =0x0000ffff
+ cmp r2, r0
+ beq _080EB6EE
+ adds r4, r0, 0
+ adds r3, r0, 0
+_080EB6E0:
+ strh r4, [r1]
+ adds r1, 0x2
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB6E0
+_080EB6EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB6F4: .4byte gSaveBlock1 + 0x273A
+_080EB6F8: .4byte 0x0000ffff
+ thumb_func_end unref_sub_80EB684
+
+ thumb_func_start sub_80EB6FC
+sub_80EB6FC: @ 80EB6FC
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldr r0, _080EB724 @ =0xffff0000
+ adds r1, r0
+ lsrs r0, r1, 16
+ ldr r1, _080EB728 @ =0x0000ffff
+ cmp r0, r1
+ beq _080EB71E
+ adds r3, r1, 0
+_080EB710:
+ strh r3, [r2]
+ adds r2, 0x2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bne _080EB710
+_080EB71E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB724: .4byte 0xffff0000
+_080EB728: .4byte 0x0000ffff
+ thumb_func_end sub_80EB6FC
+
+ thumb_func_start sub_80EB72C
+sub_80EB72C: @ 80EB72C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080EB778 @ =gEasyChatGroupSizes
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r4, 0
+ beq _080EB758
+ cmp r4, 0x15
+ beq _080EB758
+ cmp r4, 0x12
+ beq _080EB758
+ cmp r4, 0x13
+ bne _080EB766
+_080EB758:
+ ldr r1, _080EB77C @ =gEasyChatGroupWords
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r2, [r0]
+_080EB766:
+ movs r0, 0x7F
+ ands r0, r4
+ lsls r0, 9
+ ldr r1, _080EB780 @ =0x000001ff
+ ands r2, r1
+ orrs r0, r2
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB778: .4byte gEasyChatGroupSizes
+_080EB77C: .4byte gEasyChatGroupWords
+_080EB780: .4byte 0x000001ff
+ thumb_func_end sub_80EB72C
+
+ thumb_func_start sub_80EB784
+sub_80EB784: @ 80EB784
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB7A0
+ ldr r0, _080EB79C @ =0x0000ffff
+ b _080EB7BE
+ .align 2, 0
+_080EB79C: .4byte 0x0000ffff
+_080EB7A0:
+ cmp r4, 0
+ beq _080EB7AE
+ cmp r4, 0x14
+ bne _080EB7B4
+ bl sub_80EB960
+ b _080EB7BA
+_080EB7AE:
+ bl sub_80EB9D8
+ b _080EB7BA
+_080EB7B4:
+ adds r0, r4, 0
+ bl sub_80EB72C
+_080EB7BA:
+ lsls r0, 16
+ lsrs r0, 16
+_080EB7BE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB784
+
+ thumb_func_start sub_80EB7C4
+sub_80EB7C4: @ 80EB7C4
+ push {r4,r5,lr}
+ ldr r0, _080EB7D8 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080EB7F0
+ cmp r0, 0x1
+ bgt _080EB7DC
+ cmp r0, 0
+ beq _080EB7E6
+ b _080EB82E
+ .align 2, 0
+_080EB7D8: .4byte gUnknown_0202E8CC
+_080EB7DC:
+ cmp r0, 0x2
+ beq _080EB810
+ cmp r0, 0x3
+ beq _080EB818
+ b _080EB82E
+_080EB7E6:
+ ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C
+ movs r2, 0x2
+ b _080EB81C
+ .align 2, 0
+_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
+_080EB7F0:
+ ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x14
+ bl sub_80EB680
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB81A
+ movs r2, 0x2
+ movs r3, 0x3
+ b _080EB81E
+ .align 2, 0
+_080EB80C: .4byte gSaveBlock1 + 0x2B28
+_080EB810:
+ ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34
+ b _080EB81A
+ .align 2, 0
+_080EB814: .4byte gSaveBlock1 + 0x2B34
+_080EB818:
+ ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40
+_080EB81A:
+ movs r2, 0x3
+_080EB81C:
+ movs r3, 0x2
+_080EB81E:
+ ldr r4, _080EB838 @ =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldAutoScrollMessage
+_080EB82E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB834: .4byte gSaveBlock1 + 0x2B40
+_080EB838: .4byte gStringVar4
+ thumb_func_end sub_80EB7C4
+
+ thumb_func_start sub_80EB83C
+sub_80EB83C: @ 80EB83C
+ push {lr}
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0xC
+ cmp r1, 0
+ beq _080EB84E
+ movs r0, 0xD
+_080EB84E:
+ bl sub_80EB784
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _080EB864 @ =gStringVar2
+ bl sub_80EB3FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB864: .4byte gStringVar2
+ thumb_func_end sub_80EB83C
+
+ thumb_func_start sub_80EB868
+sub_80EB868: @ 80EB868
+ lsls r0, 24
+ lsrs r2, r0, 27
+ movs r1, 0xE0
+ lsls r1, 19
+ ands r1, r0
+ lsrs r1, 24
+ ldr r0, _080EB888 @ =gSaveBlock1
+ ldr r3, _080EB88C @ =0x00002d8c
+ adds r0, r3
+ adds r2, r0
+ ldrb r0, [r2]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_080EB888: .4byte gSaveBlock1
+_080EB88C: .4byte 0x00002d8c
+ thumb_func_end sub_80EB868
+
+ thumb_func_start sub_80EB890
+sub_80EB890: @ 80EB890
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x20
+ bhi _080EB8B2
+ lsrs r2, r0, 27
+ movs r1, 0x7
+ ands r1, r3
+ ldr r0, _080EB8B8 @ =gSaveBlock1
+ ldr r3, _080EB8BC @ =0x00002d8c
+ adds r0, r3
+ adds r2, r0
+ movs r0, 0x1
+ lsls r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+_080EB8B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB8B8: .4byte gSaveBlock1
+_080EB8BC: .4byte 0x00002d8c
+ thumb_func_end sub_80EB890
+
+ thumb_func_start sub_80EB8C0
+sub_80EB8C0: @ 80EB8C0
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_080EB8C6:
+ adds r0, r4, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB8D8
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080EB8D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x20
+ bls _080EB8C6
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB8C0
+
+ thumb_func_start sub_80EB8EC
+sub_80EB8EC: @ 80EB8EC
+ push {r4-r6,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x21
+ bne _080EB918
+ b _080EB952
+_080EB8FC:
+ adds r0, r5, 0
+ bl sub_80EB890
+ ldr r0, _080EB914 @ =0x000001ff
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB954
+ .align 2, 0
+_080EB914: .4byte 0x000001ff
+_080EB918:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x21
+ subs r1, r4
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+_080EB92E:
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EB948
+ cmp r6, 0
+ beq _080EB8FC
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB948:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB92E
+_080EB952:
+ ldr r0, _080EB95C @ =0x0000ffff
+_080EB954:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB95C: .4byte 0x0000ffff
+ thumb_func_end sub_80EB8EC
+
+ thumb_func_start sub_80EB960
+sub_80EB960: @ 80EB960
+ push {r4,r5,lr}
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080EB984
+ b _080EB9BA
+_080EB970:
+ ldr r0, _080EB980 @ =0x000001ff
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _080EB9BC
+ .align 2, 0
+_080EB980: .4byte 0x000001ff
+_080EB984:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+_080EB998:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB9B0
+ cmp r5, 0
+ beq _080EB970
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EB9B0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _080EB998
+_080EB9BA:
+ ldr r0, _080EB9C4 @ =0x0000ffff
+_080EB9BC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB9C4: .4byte 0x0000ffff
+ thumb_func_end sub_80EB960
+
+ thumb_func_start sub_80EB9C8
+sub_80EB9C8: @ 80EB9C8
+ push {lr}
+ bl sub_806912C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB9C8
+
+ thumb_func_start sub_80EB9D8
+sub_80EB9D8: @ 80EB9D8
+ push {r4-r7,lr}
+ movs r0, 0
+ bl sub_80EAE88
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _080EB9F8
+ b _080EBA46
+_080EB9EA:
+ ldrh r1, [r5]
+ ldr r0, _080EB9F4 @ =0x000001ff
+ ands r0, r1
+ b _080EBA48
+ .align 2, 0
+_080EB9F4: .4byte 0x000001ff
+_080EB9F8:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080EBA50 @ =gEasyChatGroupWords
+ ldr r5, [r0]
+ movs r6, 0
+ ldr r0, _080EBA54 @ =gEasyChatGroupSizes
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080EBA46
+ adds r7, r0, 0
+_080EBA1A:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBA3A
+ cmp r4, 0
+ beq _080EB9EA
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EBA3A:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _080EBA1A
+_080EBA46:
+ ldr r0, _080EBA58 @ =0x0000ffff
+_080EBA48:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EBA50: .4byte gEasyChatGroupWords
+_080EBA54: .4byte gEasyChatGroupSizes
+_080EBA58: .4byte 0x0000ffff
+ thumb_func_end sub_80EB9D8
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_poison.s b/asm/field_poison.s
new file mode 100644
index 000000000..36b10b747
--- /dev/null
+++ b/asm/field_poison.s
@@ -0,0 +1,317 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C5684
+sub_80C5684: @ 80C5684
+ push {lr}
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080C569C
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C56A0
+_080C569C:
+ movs r0, 0
+ b _080C56A2
+_080C56A0:
+ movs r0, 0x1
+_080C56A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5684
+
+ thumb_func_start sub_80C56A8
+sub_80C56A8: @ 80C56A8
+ push {r4,r5,lr}
+ ldr r4, _080C56C8 @ =gPlayerParty
+ movs r5, 0
+_080C56AE:
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C56CC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080C56CC
+ movs r0, 0
+ b _080C56D6
+ .align 2, 0
+_080C56C8: .4byte gPlayerParty
+_080C56CC:
+ adds r5, 0x1
+ adds r4, 0x64
+ cmp r5, 0x5
+ ble _080C56AE
+ movs r0, 0x1
+_080C56D6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C56A8
+
+ thumb_func_start sub_80C56DC
+sub_80C56DC: @ 80C56DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080C5720 @ =gPlayerParty
+ adds r4, r0
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl AdjustFriendship
+ adds r0, r4, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ ldr r5, _080C5724 @ =gStringVar1
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r5, 0
+ bl StringGetEnd10
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5720: .4byte gPlayerParty
+_080C5724: .4byte gStringVar1
+ thumb_func_end sub_80C56DC
+
+ thumb_func_start sub_80C5728
+sub_80C5728: @ 80C5728
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _080C5764 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80C5684
+ cmp r0, 0
+ beq _080C5768
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C5768
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C5768
+ movs r0, 0x1
+ b _080C576A
+ .align 2, 0
+_080C5764: .4byte gPlayerParty
+_080C5768:
+ movs r0, 0
+_080C576A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5728
+
+ thumb_func_start sub_80C5770
+sub_80C5770: @ 80C5770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C5794 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C57CA
+ cmp r0, 0x1
+ bgt _080C5798
+ cmp r0, 0
+ beq _080C579E
+ b _080C581A
+ .align 2, 0
+_080C5794: .4byte gTasks + 0x8
+_080C5798:
+ cmp r0, 0x2
+ beq _080C57DC
+ b _080C581A
+_080C579E:
+ ldrh r1, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bgt _080C57C4
+_080C57A8:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_80C5728
+ cmp r0, 0
+ bne _080C57F4
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r1, r0, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C57A8
+_080C57C4:
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C581A
+_080C57CA:
+ bl IsFieldMessageBoxHidden
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C581A
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+_080C57DC:
+ bl sub_80C56A8
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080C580C
+ ldr r1, _080C57F0 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080C5810
+ .align 2, 0
+_080C57F0: .4byte gScriptResult
+_080C57F4:
+ ldrb r0, [r4, 0x2]
+ bl sub_80C56DC
+ ldr r0, _080C5808 @ =UnknownString_81A1132
+ bl ShowFieldMessage
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080C581A
+ .align 2, 0
+_080C5808: .4byte UnknownString_81A1132
+_080C580C:
+ ldr r0, _080C5820 @ =gScriptResult
+ strh r1, [r0]
+_080C5810:
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+_080C581A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5820: .4byte gScriptResult
+ thumb_func_end sub_80C5770
+
+ thumb_func_start sub_80C5824
+sub_80C5824: @ 80C5824
+ push {lr}
+ ldr r0, _080C5838 @ =sub_80C5770
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5838: .4byte sub_80C5770
+ thumb_func_end sub_80C5824
+
+ thumb_func_start overworld_poison
+overworld_poison: @ 80C583C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _080C58A8 @ =gPlayerParty
+ movs r7, 0
+ movs r6, 0
+ movs r5, 0x5
+_080C5848:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _080C588C
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C588C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ str r0, [sp]
+ cmp r0, 0
+ beq _080C587E
+ subs r0, 0x1
+ str r0, [sp]
+ cmp r0, 0
+ bne _080C5880
+_080C587E:
+ adds r6, 0x1
+_080C5880:
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r7, 0x1
+_080C588C:
+ adds r4, 0x64
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C5848
+ cmp r6, 0
+ bne _080C589C
+ cmp r7, 0
+ beq _080C58A0
+_080C589C:
+ bl overworld_posion_effect
+_080C58A0:
+ cmp r6, 0
+ beq _080C58AC
+ movs r0, 0x2
+ b _080C58B6
+ .align 2, 0
+_080C58A8: .4byte gPlayerParty
+_080C58AC:
+ cmp r7, 0
+ bne _080C58B4
+ movs r0, 0
+ b _080C58B6
+_080C58B4:
+ movs r0, 0x1
+_080C58B6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end overworld_poison
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
new file mode 100644
index 000000000..fb5ec4283
--- /dev/null
+++ b/asm/fldeff_80C5CD4.s
@@ -0,0 +1,2766 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C5CD4
+sub_80C5CD4: @ 80C5CD4
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5D64 @ =gUnknown_083D1898
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5D68 @ =gUnknown_083D18A0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5D70 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x1
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0xA]
+ strh r6, [r7, 0x8]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5D4E
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5D4E:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5D58
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5D58:
+ ldr r0, _080C5D74 @ =gUnknown_020387EC
+ str r7, [r0]
+ movs r4, 0
+ ldr r5, _080C5D78 @ =gSprites
+ b _080C5D94
+ .align 2, 0
+_080C5D64: .4byte gUnknown_083D1898
+_080C5D68: .4byte gUnknown_083D18A0
+_080C5D6C: .4byte gSpriteTemplate_83D18A8
+_080C5D70: .4byte 0xffff0000
+_080C5D74: .4byte gUnknown_020387EC
+_080C5D78: .4byte gSprites
+_080C5D7C:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r7, 0x4]
+ cmp r4, 0x3
+ bhi _080C5D8C
+ negs r1, r1
+_080C5D8C:
+ strh r1, [r0, 0x2E]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080C5D94:
+ cmp r4, 0x7
+ bhi _080C5DB2
+ lsls r1, r4, 5
+ adds r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080C5D7C
+_080C5DB2:
+ ldr r1, _080C5DC8 @ =REG_BLDCNT
+ movs r0, 0xBF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5DC8: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5CD4
+
+ thumb_func_start sub_80C5DCC
+sub_80C5DCC: @ 80C5DCC
+ push {r4,lr}
+ ldr r4, _080C5E10 @ =gUnknown_020387EC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ bne _080C5DF0
+ ldr r0, [r1, 0x10]
+ ldr r2, _080C5E14 @ =0x0000ffff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5E18 @ =sub_80C603C
+ bl sub_80C61B0
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5DF0:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ cmp r0, 0x7
+ bls _080C5E0A
+ ldrh r0, [r1, 0x6]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ movs r2, 0
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ bgt _080C5E1C
+_080C5E0A:
+ movs r0, 0
+ b _080C5E2E
+ .align 2, 0
+_080C5E10: .4byte gUnknown_020387EC
+_080C5E14: .4byte 0x0000ffff
+_080C5E18: .4byte sub_80C603C
+_080C5E1C:
+ movs r0, 0x50
+ strh r0, [r1, 0xC]
+ ldr r0, _080C5E34 @ =REG_BLDCNT
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ bl ClearGpuRegBits
+ movs r0, 0x1
+_080C5E2E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C5E34: .4byte REG_BLDCNT
+ thumb_func_end sub_80C5DCC
+
+ thumb_func_start sub_80C5E38
+sub_80C5E38: @ 80C5E38
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r7, r0, 0
+ ldr r0, _080C5EC8 @ =gUnknown_083D1898
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ ldr r0, _080C5ECC @ =gUnknown_083D18A0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldrh r3, [r7]
+ lsls r2, r3, 16
+ add r0, sp, 0x18
+ ldrh r1, [r0, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ mov r1, sp
+ movs r6, 0
+ strh r3, [r1]
+ ldrh r2, [r7, 0x2]
+ ldr r5, _080C5ED4 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r1, [r4, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r4, 0x4]
+ mov r1, sp
+ strh r2, [r1, 0x2]
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ movs r0, 0x50
+ strh r0, [r7, 0xC]
+ strh r6, [r7, 0x8]
+ strh r6, [r7, 0xA]
+ ldrh r0, [r7, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ bics r5, r1
+ str r5, [r7, 0x10]
+ ldrh r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080C5EB2
+ movs r0, 0x10
+ strh r0, [r7, 0x4]
+_080C5EB2:
+ ldrh r0, [r7, 0x6]
+ cmp r0, 0
+ bne _080C5EBC
+ movs r0, 0x14
+ strh r0, [r7, 0x6]
+_080C5EBC:
+ ldr r0, _080C5ED8 @ =gUnknown_020387EC
+ str r7, [r0]
+ movs r5, 0
+ ldr r6, _080C5EDC @ =gSprites
+ b _080C5F4A
+ .align 2, 0
+_080C5EC8: .4byte gUnknown_083D1898
+_080C5ECC: .4byte gUnknown_083D18A0
+_080C5ED0: .4byte gSpriteTemplate_83D18C0
+_080C5ED4: .4byte 0xffff0000
+_080C5ED8: .4byte gUnknown_020387EC
+_080C5EDC: .4byte gSprites
+_080C5EE0:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ strh r0, [r1, 0x2E]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5EF4 @ =gSprites
+ b _080C5F2A
+ .align 2, 0
+_080C5EF4: .4byte gSprites
+_080C5EF8:
+ lsls r1, r5, 21
+ movs r0, 0x80
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080C5F6E
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r7, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C5F88 @ =0x0000ffff
+ strh r0, [r1, 0x30]
+ ldr r1, _080C5F8C @ =gSprites
+ lsls r4, r5, 5
+_080C5F2A:
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ movs r2, 0
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x36]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080C5F4A:
+ cmp r5, 0x7
+ bhi _080C5F6E
+ cmp r5, 0x3
+ bhi _080C5EF8
+ lsls r4, r5, 5
+ adds r1, r4, 0
+ subs r1, 0x70
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080C5EE0
+_080C5F6E:
+ ldr r1, _080C5F90 @ =REG_BLDCNT
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, _080C5F94 @ =sub_80C6078
+ bl sub_80C61B0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5F88: .4byte 0x0000ffff
+_080C5F8C: .4byte gSprites
+_080C5F90: .4byte REG_BLDCNT
+_080C5F94: .4byte sub_80C6078
+ thumb_func_end sub_80C5E38
+
+ thumb_func_start sub_80C5F98
+sub_80C5F98: @ 80C5F98
+ push {r4,lr}
+ ldr r4, _080C5FB0 @ =gUnknown_020387EC
+ ldr r2, [r4]
+ ldrh r0, [r2, 0x8]
+ cmp r0, 0x1
+ beq _080C5FEC
+ cmp r0, 0x1
+ bgt _080C5FB4
+ cmp r0, 0
+ beq _080C5FBA
+ b _080C602C
+ .align 2, 0
+_080C5FB0: .4byte gUnknown_020387EC
+_080C5FB4:
+ cmp r0, 0x2
+ beq _080C6008
+ b _080C602C
+_080C5FBA:
+ ldrh r0, [r2, 0xC]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _080C6034
+ ldr r0, [r2, 0x10]
+ ldr r2, _080C5FE4 @ =0x0000ffff
+ movs r1, 0x10
+ bl BlendPalettes
+ ldr r0, _080C5FE8 @ =sub_80C603C
+ bl SetHBlankCallback
+ ldr r1, [r4]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _080C6000
+ .align 2, 0
+_080C5FE4: .4byte 0x0000ffff
+_080C5FE8: .4byte sub_80C603C
+_080C5FEC:
+ ldrh r0, [r2, 0xA]
+ cmp r0, 0x8
+ bne _080C6034
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, [r4]
+_080C6000:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C6034
+_080C6008:
+ ldr r0, _080C6030 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldrh r0, [r2]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ bl ClearGpuRegBits
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C602C:
+ movs r0, 0x1
+ b _080C6036
+ .align 2, 0
+_080C6030: .4byte REG_BLDCNT
+_080C6034:
+ movs r0, 0
+_080C6036:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5F98
+
+ thumb_func_start sub_80C603C
+sub_80C603C: @ 80C603C
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C6060 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r3, 0xFF
+ adds r0, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x50
+ bne _080C6068
+ ldr r1, _080C6064 @ =REG_BLDCNT
+ movs r0, 0x8F
+ strh r0, [r1]
+ b _080C606C
+ .align 2, 0
+_080C6060: .4byte REG_VCOUNT
+_080C6064: .4byte REG_BLDCNT
+_080C6068:
+ ldr r0, _080C6074 @ =REG_BLDCNT
+ strh r3, [r0]
+_080C606C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6074: .4byte REG_BLDCNT
+ thumb_func_end sub_80C603C
+
+ thumb_func_start sub_80C6078
+sub_80C6078: @ 80C6078
+ push {lr}
+ sub sp, 0x4
+ mov r2, sp
+ ldr r0, _080C60B0 @ =REG_VCOUNT
+ ldrh r1, [r0]
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ ldrh r1, [r0]
+ ldr r0, _080C60B4 @ =gUnknown_020387EC
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r2, [r0, r3]
+ movs r0, 0x50
+ subs r0, r2
+ cmp r1, r0
+ ble _080C60BC
+ mov r0, sp
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x50
+ cmp r1, r0
+ bge _080C60BC
+ ldr r1, _080C60B8 @ =REG_BLDY
+ movs r0, 0
+ b _080C60C0
+ .align 2, 0
+_080C60B0: .4byte REG_VCOUNT
+_080C60B4: .4byte gUnknown_020387EC
+_080C60B8: .4byte REG_BLDY
+_080C60BC:
+ ldr r1, _080C60C8 @ =REG_BLDY
+ movs r0, 0x10
+_080C60C0:
+ strh r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C60C8: .4byte REG_BLDY
+ thumb_func_end sub_80C6078
+
+ thumb_func_start sub_80C60CC
+sub_80C60CC: @ 80C60CC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bls _080C611C
+ adds r0, r2, 0
+ bl DestroySprite
+ ldr r4, _080C6124 @ =gUnknown_020387EC
+ ldr r1, [r4]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080C611C
+ ldrh r0, [r1]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ ldr r2, _080C6128 @ =0x0000ffff
+ movs r1, 0
+ bl BlendPalettes
+ ldr r0, _080C612C @ =sub_80C6078
+ bl SetHBlankCallback
+_080C611C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6124: .4byte gUnknown_020387EC
+_080C6128: .4byte 0x0000ffff
+_080C612C: .4byte sub_80C6078
+ thumb_func_end sub_80C60CC
+
+ thumb_func_start sub_80C6130
+sub_80C6130: @ 80C6130
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080C61AA
+ ldr r1, _080C6184 @ =gUnknown_020387EC
+ ldr r0, [r1]
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ adds r5, r1, 0
+ cmp r4, 0x1
+ bne _080C61AA
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080C616C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_080C616C:
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _080C6188
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ blt _080C6196
+ b _080C6194
+ .align 2, 0
+_080C6184: .4byte gUnknown_020387EC
+_080C6188:
+ movs r0, 0x20
+ ldrsh r1, [r2, r0]
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bgt _080C6196
+_080C6194:
+ strh r4, [r2, 0x36]
+_080C6196:
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080C61AA
+ ldr r0, [r5]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x1
+ strh r1, [r0, 0xA]
+ ldrh r0, [r2, 0x32]
+ strh r0, [r2, 0x20]
+_080C61AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6130
+
+ thumb_func_start sub_80C61B0
+sub_80C61B0: @ 80C61B0
+ push {r4-r6,lr}
+ ldr r2, _080C61F0 @ =INTR_CHECK
+ ldrh r1, [r2]
+ movs r5, 0x2
+ orrs r1, r5
+ strh r1, [r2]
+ ldr r3, _080C61F4 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ movs r2, 0x10
+ orrs r1, r2
+ strh r1, [r3]
+ ldr r4, _080C61F8 @ =0x04000208
+ ldrh r2, [r4]
+ movs r6, 0
+ strh r6, [r4]
+ ldr r3, _080C61FC @ =0x04000200
+ ldrh r1, [r3]
+ orrs r1, r5
+ strh r1, [r3]
+ strh r2, [r4]
+ ldr r2, _080C6200 @ =gMain
+ ldrh r1, [r2, 0x1C]
+ orrs r1, r5
+ ldrh r3, [r2, 0x1C]
+ orrs r1, r6
+ strh r1, [r2, 0x1C]
+ bl SetHBlankCallback
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C61F0: .4byte INTR_CHECK
+_080C61F4: .4byte REG_DISPSTAT
+_080C61F8: .4byte 0x04000208
+_080C61FC: .4byte 0x04000200
+_080C6200: .4byte gMain
+ thumb_func_end sub_80C61B0
+
+ thumb_func_start ClearGpuRegBits
+ClearGpuRegBits: @ 80C6204
+ push {r4,r5,lr}
+ ldr r3, _080C6248 @ =INTR_CHECK
+ ldrh r1, [r3]
+ ldr r2, _080C624C @ =0x0000fffd
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r3, _080C6250 @ =REG_DISPSTAT
+ ldrh r1, [r3]
+ ldr r0, _080C6254 @ =0x0000ffef
+ ands r0, r1
+ strh r0, [r3]
+ ldr r4, _080C6258 @ =0x04000208
+ ldrh r3, [r4]
+ movs r0, 0
+ strh r0, [r4]
+ ldr r5, _080C625C @ =0x04000200
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r5]
+ strh r3, [r4]
+ ldr r0, _080C6260 @ =gMain
+ ldrh r1, [r0, 0x1C]
+ ands r2, r1
+ ldrh r1, [r0, 0x1C]
+ strh r2, [r0, 0x1C]
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6248: .4byte INTR_CHECK
+_080C624C: .4byte 0x0000fffd
+_080C6250: .4byte REG_DISPSTAT
+_080C6254: .4byte 0x0000ffef
+_080C6258: .4byte 0x04000208
+_080C625C: .4byte 0x04000200
+_080C6260: .4byte gMain
+ thumb_func_end ClearGpuRegBits
+
+ thumb_func_start sub_80C6264
+sub_80C6264: @ 80C6264
+ push {lr}
+ ldr r0, _080C6278 @ =gUnknown_0203923C
+ ldr r1, _080C627C @ =gMapHeader
+ ldr r1, [r1, 0x4]
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6278: .4byte gUnknown_0203923C
+_080C627C: .4byte gMapHeader
+ thumb_func_end sub_80C6264
+
+ thumb_func_start sub_80C6280
+sub_80C6280: @ 80C6280
+ push {lr}
+ ldr r1, _080C6294 @ =gUnknown_0202FF84
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080C62AA
+ cmp r0, 0x2
+ bgt _080C6298
+ cmp r0, 0x1
+ beq _080C62A2
+ b _080C62BE
+ .align 2, 0
+_080C6294: .4byte gUnknown_0202FF84
+_080C6298:
+ cmp r0, 0x3
+ beq _080C62AE
+ cmp r0, 0x4
+ beq _080C62B8
+ b _080C62BE
+_080C62A2:
+ movs r0, 0x8
+ str r0, [r1, 0x14]
+ movs r0, 0x28
+ b _080C62BC
+_080C62AA:
+ movs r0, 0x8
+ b _080C62BA
+_080C62AE:
+ movs r0, 0x8
+ negs r0, r0
+ str r0, [r1, 0x14]
+ movs r0, 0x18
+ b _080C62BC
+_080C62B8:
+ movs r0, 0x18
+_080C62BA:
+ str r0, [r1, 0x14]
+_080C62BC:
+ str r0, [r1, 0x18]
+_080C62BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6280
+
+ thumb_func_start SetUpFieldMove_SecretPower
+SetUpFieldMove_SecretPower: @ 80C62C4
+ push {r4,lr}
+ bl sub_80BB63C
+ ldr r0, _080C6318 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080C636E
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C636E
+ ldr r4, _080C631C @ =gUnknown_0203923C
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80571EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6330
+ bl sub_80C6264
+ ldr r1, _080C6320 @ =gUnknown_0300485C
+ ldr r0, _080C6324 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080C6328 @ =gUnknown_03005CE4
+ ldr r0, _080C632C @ =sub_80C639C
+ b _080C6380
+ .align 2, 0
+_080C6318: .4byte gScriptResult
+_080C631C: .4byte gUnknown_0203923C
+_080C6320: .4byte gUnknown_0300485C
+_080C6324: .4byte sub_808AB90
+_080C6328: .4byte gUnknown_03005CE4
+_080C632C: .4byte sub_80C639C
+_080C6330:
+ adds r0, r4, 0
+ bl sub_805720C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6360
+ bl sub_80C6264
+ ldr r1, _080C6350 @ =gUnknown_0300485C
+ ldr r0, _080C6354 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080C6358 @ =gUnknown_03005CE4
+ ldr r0, _080C635C @ =sub_80C64A8
+ b _080C6380
+ .align 2, 0
+_080C6350: .4byte gUnknown_0300485C
+_080C6354: .4byte sub_808AB90
+_080C6358: .4byte gUnknown_03005CE4
+_080C635C: .4byte sub_80C64A8
+_080C6360:
+ adds r0, r4, 0
+ bl is_tile_x98
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C6372
+_080C636E:
+ movs r0, 0
+ b _080C6384
+_080C6372:
+ bl sub_80C6264
+ ldr r1, _080C638C @ =gUnknown_0300485C
+ ldr r0, _080C6390 @ =sub_808AB90
+ str r0, [r1]
+ ldr r1, _080C6394 @ =gUnknown_03005CE4
+ ldr r0, _080C6398 @ =sub_80C660C
+_080C6380:
+ str r0, [r1]
+ movs r0, 0x1
+_080C6384:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C638C: .4byte gUnknown_0300485C
+_080C6390: .4byte sub_808AB90
+_080C6394: .4byte gUnknown_03005CE4
+_080C6398: .4byte sub_80C660C
+ thumb_func_end SetUpFieldMove_SecretPower
+
+ thumb_func_start sub_80C639C
+sub_80C639C: @ 80C639C
+ push {lr}
+ ldr r1, _080C63B0 @ =gUnknown_0202FF84
+ ldr r0, _080C63B4 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C63B8 @ =gUnknown_081A2CE6
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C63B0: .4byte gUnknown_0202FF84
+_080C63B4: .4byte gUnknown_03005CE0
+_080C63B8: .4byte gUnknown_081A2CE6
+ thumb_func_end sub_80C639C
+
+ thumb_func_start FldEff_UseSecretPowerCave
+FldEff_UseSecretPowerCave: @ 80C63BC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C63E0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C63E4 @ =sub_80C63E8
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C63E0: .4byte gTasks
+_080C63E4: .4byte sub_80C63E8
+ thumb_func_end FldEff_UseSecretPowerCave
+
+ thumb_func_start sub_80C63E8
+sub_80C63E8: @ 80C63E8
+ push {lr}
+ movs r0, 0xB
+ bl FieldEffectActiveListRemove
+ movs r0, 0x37
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C63E8
+
+ thumb_func_start FldEff_SecretPowerCave
+FldEff_SecretPowerCave: @ 80C63FC
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C643C @ =gSpriteTemplate_83D2614
+ ldr r3, _080C6440 @ =gSprites
+ ldr r1, _080C6444 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6448 @ =gUnknown_0202FF84
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C643C: .4byte gSpriteTemplate_83D2614
+_080C6440: .4byte gSprites
+_080C6444: .4byte gPlayerAvatar
+_080C6448: .4byte gUnknown_0202FF84
+ thumb_func_end FldEff_SecretPowerCave
+
+ thumb_func_start sub_80C644C
+sub_80C644C: @ 80C644C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C6464 @ =sub_80C6468
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6464: .4byte sub_80C6468
+ thumb_func_end sub_80C644C
+
+ thumb_func_start sub_80C6468
+sub_80C6468: @ 80C6468
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C6488
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6490
+ bl sub_80BB800
+ b _080C6490
+_080C6488:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6494 @ =sub_80C6498
+ str r0, [r1, 0x1C]
+_080C6490:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6494: .4byte sub_80C6498
+ thumb_func_end sub_80C6468
+
+ thumb_func_start sub_80C6498
+sub_80C6498: @ 80C6498
+ push {lr}
+ movs r1, 0x37
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6498
+
+ thumb_func_start sub_80C64A8
+sub_80C64A8: @ 80C64A8
+ push {lr}
+ ldr r1, _080C64BC @ =gUnknown_0202FF84
+ ldr r0, _080C64C0 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C64C4 @ =gUnknown_081A2D3E
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C64BC: .4byte gUnknown_0202FF84
+_080C64C0: .4byte gUnknown_03005CE0
+_080C64C4: .4byte gUnknown_081A2D3E
+ thumb_func_end sub_80C64A8
+
+ thumb_func_start FldEff_UseSecretPowerTree
+FldEff_UseSecretPowerTree: @ 80C64C8
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C64EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C64F0 @ =sub_80C64F4
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C64EC: .4byte gTasks
+_080C64F0: .4byte sub_80C64F4
+ thumb_func_end FldEff_UseSecretPowerTree
+
+ thumb_func_start sub_80C64F4
+sub_80C64F4: @ 80C64F4
+ push {lr}
+ movs r0, 0x1A
+ bl FieldEffectActiveListRemove
+ movs r0, 0x38
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C64F4
+
+ thumb_func_start FldEff_SecretPowerTree
+FldEff_SecretPowerTree: @ 80C6508
+ push {r4,lr}
+ ldr r1, _080C6580 @ =gUnknown_0203923C
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r2, r0, 0
+ ldr r1, _080C6584 @ =0x00000fff
+ adds r0, r1, 0
+ ands r2, r0
+ cmp r2, 0x96
+ bne _080C652A
+ ldr r1, _080C6588 @ =gUnknown_0202FF84
+ movs r0, 0
+ str r0, [r1, 0x1C]
+_080C652A:
+ cmp r2, 0x9C
+ bne _080C6534
+ ldr r1, _080C6588 @ =gUnknown_0202FF84
+ movs r0, 0x2
+ str r0, [r1, 0x1C]
+_080C6534:
+ bl sub_80C6280
+ ldr r0, _080C658C @ =gSpriteTemplate_83D262C
+ ldr r3, _080C6590 @ =gSprites
+ ldr r1, _080C6594 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C6588 @ =gUnknown_0202FF84
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0x1
+ beq _080C6572
+ cmp r0, 0x3
+ bne _080C6576
+_080C6572:
+ bl sub_80BB800
+_080C6576:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6580: .4byte gUnknown_0203923C
+_080C6584: .4byte 0x00000fff
+_080C6588: .4byte gUnknown_0202FF84
+_080C658C: .4byte gSpriteTemplate_83D262C
+_080C6590: .4byte gSprites
+_080C6594: .4byte gPlayerAvatar
+ thumb_func_end FldEff_SecretPowerTree
+
+ thumb_func_start sub_80C6598
+sub_80C6598: @ 80C6598
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x9B
+ bl PlaySE
+ ldr r0, _080C65BC @ =gUnknown_0202FF84
+ ldr r1, [r0, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x2A
+ movs r0, 0
+ strb r1, [r2]
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65C0 @ =sub_80C65C4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65BC: .4byte gUnknown_0202FF84
+_080C65C0: .4byte sub_80C65C4
+ thumb_func_end sub_80C6598
+
+ thumb_func_start sub_80C65C4
+sub_80C65C4: @ 80C65C4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080C65EE
+ ldr r0, _080C65F4 @ =gUnknown_0202FF84
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080C65E2
+ cmp r0, 0x2
+ bne _080C65E6
+_080C65E2:
+ bl sub_80BB800
+_080C65E6:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C65F8 @ =sub_80C65FC
+ str r0, [r4, 0x1C]
+_080C65EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C65F4: .4byte gUnknown_0202FF84
+_080C65F8: .4byte sub_80C65FC
+ thumb_func_end sub_80C65C4
+
+ thumb_func_start sub_80C65FC
+sub_80C65FC: @ 80C65FC
+ push {lr}
+ movs r1, 0x38
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C65FC
+
+ thumb_func_start sub_80C660C
+sub_80C660C: @ 80C660C
+ push {lr}
+ ldr r1, _080C6620 @ =gUnknown_0202FF84
+ ldr r0, _080C6624 @ =gUnknown_03005CE0
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _080C6628 @ =gUnknown_081A2D96
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6620: .4byte gUnknown_0202FF84
+_080C6624: .4byte gUnknown_03005CE0
+_080C6628: .4byte gUnknown_081A2D96
+ thumb_func_end sub_80C660C
+
+ thumb_func_start FldEff_UseSecretPowerShrub
+FldEff_UseSecretPowerShrub: @ 80C662C
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6650 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _080C6654 @ =sub_80C6658
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6650: .4byte gTasks
+_080C6654: .4byte sub_80C6658
+ thumb_func_end FldEff_UseSecretPowerShrub
+
+ thumb_func_start sub_80C6658
+sub_80C6658: @ 80C6658
+ push {lr}
+ movs r0, 0x1B
+ bl FieldEffectActiveListRemove
+ movs r0, 0x39
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6658
+
+ thumb_func_start FldEff_SecretPowerShrub
+FldEff_SecretPowerShrub: @ 80C666C
+ push {r4,lr}
+ bl sub_80C6280
+ ldr r0, _080C66AC @ =gSpriteTemplate_83D2644
+ ldr r3, _080C66B0 @ =gSprites
+ ldr r1, _080C66B4 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 23
+ ldr r4, _080C66B8 @ =gUnknown_0202FF84
+ ldr r3, [r4, 0x14]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ ldrb r2, [r2]
+ ldr r3, [r4, 0x18]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x94
+ bl CreateSprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C66AC: .4byte gSpriteTemplate_83D2644
+_080C66B0: .4byte gSprites
+_080C66B4: .4byte gPlayerAvatar
+_080C66B8: .4byte gUnknown_0202FF84
+ thumb_func_end FldEff_SecretPowerShrub
+
+ thumb_func_start sub_80C66BC
+sub_80C66BC: @ 80C66BC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0xA9
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080C66D4 @ =sub_80C66D8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C66D4: .4byte sub_80C66D8
+ thumb_func_end sub_80C66BC
+
+ thumb_func_start sub_80C66D8
+sub_80C66D8: @ 80C66D8
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x2E]
+ movs r3, 0x2E
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x27
+ bgt _080C66F8
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _080C6700
+ bl sub_80BB800
+ b _080C6700
+_080C66F8:
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldr r0, _080C6704 @ =sub_80C6708
+ str r0, [r1, 0x1C]
+_080C6700:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6704: .4byte sub_80C6708
+ thumb_func_end sub_80C66D8
+
+ thumb_func_start sub_80C6708
+sub_80C6708: @ 80C6708
+ push {lr}
+ movs r1, 0x39
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6708
+
+ thumb_func_start FldEff_PCTurnOn
+FldEff_PCTurnOn: @ 80C6718
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r0, _080C6758 @ =sub_80C6760
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C675C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ ldrh r0, [r4]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6758: .4byte sub_80C6760
+_080C675C: .4byte gTasks
+ thumb_func_end FldEff_PCTurnOn
+
+ thumb_func_start sub_80C6760
+sub_80C6760: @ 80C6760
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C6788 @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x4
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bhi _080C682E
+ lsls r0, 2
+ ldr r1, _080C678C @ =_080C6790
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6788: .4byte gTasks + 0x8
+_080C678C: .4byte _080C6790
+ .align 2, 0
+_080C6790:
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67D4
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C67E2
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C682E
+ .4byte _080C6800
+_080C67D4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ b _080C67EE
+_080C67E2:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x88
+ lsls r2, 2
+_080C67EE:
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080C682E
+_080C6800:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r2, 0x89
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0x3D
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6834
+_080C682E:
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+_080C6834:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6760
+
+ thumb_func_start sub_80C683C
+sub_80C683C: @ 80C683C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r0, 0x3
+ bl PlaySE
+ ldr r0, _080C6874 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C6878
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ b _080C6888
+ .align 2, 0
+_080C6874: .4byte 0x00004054
+_080C6878:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _080C68A0 @ =0x00000e21
+ bl MapGridSetMetatileIdAt
+_080C6888:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68A0: .4byte 0x00000e21
+ thumb_func_end sub_80C683C
+
+ thumb_func_start sub_80C68A4
+sub_80C68A4: @ 80C68A4
+ 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, 16
+ lsrs r6, 16
+ ldr r0, _080C68E4 @ =sub_80C68EC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C68E8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ strh r6, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C68E4: .4byte sub_80C68EC
+_080C68E8: .4byte gTasks
+ thumb_func_end sub_80C68A4
+
+ thumb_func_start sub_80C68EC
+sub_80C68EC: @ 80C68EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C690C @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ bne _080C6910
+ movs r0, 0
+ b _080C6912
+ .align 2, 0
+_080C690C: .4byte gTasks + 0x8
+_080C6910:
+ adds r0, r1, 0x1
+_080C6912:
+ strh r0, [r4, 0x6]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080C6964
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _080C692C
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ bl sub_80C696C
+_080C692C:
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x8]
+ ldrh r3, [r4]
+ adds r2, r3
+ lsls r2, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x3
+ bne _080C6960
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080C6964
+_080C6960:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_080C6964:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C68EC
+
+ thumb_func_start sub_80C696C
+sub_80C696C: @ 80C696C
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ movs r0, 0xCE
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C6998
+ cmp r1, r0
+ bgt _080C6988
+ movs r0, 0x8A
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69B0
+ b _080C69B6
+_080C6988:
+ movs r0, 0xCF
+ lsls r0, 2
+ cmp r1, r0
+ beq _080C69A0
+ adds r0, 0x4
+ cmp r1, r0
+ beq _080C69A8
+ b _080C69B6
+_080C6998:
+ movs r0, 0x4A
+ bl PlaySE
+ b _080C69B6
+_080C69A0:
+ movs r0, 0x4B
+ bl PlaySE
+ b _080C69B6
+_080C69A8:
+ movs r0, 0x4C
+ bl PlaySE
+ b _080C69B6
+_080C69B0:
+ movs r0, 0x4E
+ bl PlaySE
+_080C69B6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C696C
+
+ thumb_func_start FldEff_Nop47
+FldEff_Nop47: @ 80C69BC
+ movs r0, 0
+ bx lr
+ thumb_func_end FldEff_Nop47
+
+ thumb_func_start FldEff_Nop48
+FldEff_Nop48: @ 80C69C0
+ movs r0, 0
+ bx lr
+ thumb_func_end FldEff_Nop48
+
+ thumb_func_start sub_80C69C4
+sub_80C69C4: @ 80C69C4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x4D
+ bl PlaySE
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ ldr r2, _080C6A0C @ =0x00000276
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ subs r6, r4, 0x1
+ ldr r2, _080C6A10 @ =0x0000026e
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CurrentMapDrawMetatileAt
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6A0C: .4byte 0x00000276
+_080C6A10: .4byte 0x0000026e
+ thumb_func_end sub_80C69C4
+
+ thumb_func_start sub_80C6A14
+sub_80C6A14: @ 80C6A14
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6A44 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ bne _080C6A48
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ movs r3, 0xC
+ ldrsh r1, [r1, r3]
+ bl sub_80C69C4
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6A4C
+ .align 2, 0
+_080C6A44: .4byte gTasks
+_080C6A48:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+_080C6A4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6A14
+
+ thumb_func_start sub_80C6A54
+sub_80C6A54: @ 80C6A54
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r7, r5, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C6A7C
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r4, 16
+ asrs r1, 16
+ bl sub_80C69C4
+ b _080C6A9E
+_080C6A7C:
+ cmp r0, 0x2
+ bne _080C6A9E
+ ldr r0, _080C6AA4 @ =sub_80C6A14
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6AA8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r7, [r1, 0xA]
+ strh r6, [r1, 0xC]
+_080C6A9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6AA4: .4byte sub_80C6A14
+_080C6AA8: .4byte gTasks
+ thumb_func_end sub_80C6A54
+
+ thumb_func_start sub_80C6AAC
+sub_80C6AAC: @ 80C6AAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C6AE4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ beq _080C6AC8
+ b _080C6C26
+_080C6AC8:
+ ldr r2, _080C6AE8 @ =0xfffffd88
+ adds r0, r2, 0
+ ldrh r1, [r1, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ bls _080C6ADA
+ b _080C6C1E
+_080C6ADA:
+ lsls r0, 2
+ ldr r1, _080C6AEC @ =_080C6AF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C6AE4: .4byte gTasks
+_080C6AE8: .4byte 0xfffffd88
+_080C6AEC: .4byte _080C6AF0
+ .align 2, 0
+_080C6AF0:
+ .4byte _080C6BE0
+ .4byte _080C6BE8
+ .4byte _080C6BF0
+ .4byte _080C6BF8
+ .4byte _080C6C00
+ .4byte _080C6C08
+ .4byte _080C6C10
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C1E
+ .4byte _080C6C18
+_080C6BE0:
+ movs r0, 0x3E
+ bl PlaySE
+ b _080C6C1E
+_080C6BE8:
+ movs r0, 0x3F
+ bl PlaySE
+ b _080C6C1E
+_080C6BF0:
+ movs r0, 0x40
+ bl PlaySE
+ b _080C6C1E
+_080C6BF8:
+ movs r0, 0x41
+ bl PlaySE
+ b _080C6C1E
+_080C6C00:
+ movs r0, 0x42
+ bl PlaySE
+ b _080C6C1E
+_080C6C08:
+ movs r0, 0x43
+ bl PlaySE
+ b _080C6C1E
+_080C6C10:
+ movs r0, 0x44
+ bl PlaySE
+ b _080C6C1E
+_080C6C18:
+ movs r0, 0x45
+ bl PlaySE
+_080C6C1E:
+ adds r0, r4, 0
+ bl DestroyTask
+ b _080C6C2A
+_080C6C26:
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_080C6C2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6AAC
+
+ thumb_func_start sub_80C6C30
+sub_80C6C30: @ 80C6C30
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _080C6C5C @ =sub_80C6AAC
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C6C60 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r4, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6C5C: .4byte sub_80C6AAC
+_080C6C60: .4byte gTasks
+ thumb_func_end sub_80C6C30
+
+ thumb_func_start sub_80C6C64
+sub_80C6C64: @ 80C6C64
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _080C6C7C
+ movs r0, 0xC3
+ bl PlaySE
+_080C6C7C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1F
+ ble _080C6C8A
+ adds r0, r4, 0
+ bl DestroySprite
+_080C6C8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6C64
+
+ thumb_func_start sub_80C6C90
+sub_80C6C90: @ 80C6C90
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r3, _080C6D28 @ =gMapObjects
+ ldr r2, _080C6D2C @ =gPlayerAvatar
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0, 0x10]
+ mov r0, sp
+ strh r1, [r0]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x12]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers
+ ldr r0, [r0, 0x58]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080C6D1E
+ ldr r3, _080C6D34 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r4, r2, r3
+ movs r0, 0x3E
+ adds r0, r4
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r3, 0x1C
+ adds r2, r3
+ ldr r0, _080C6D38 @ =sub_80C6C64
+ str r0, [r2]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_080C6D1E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6D28: .4byte gMapObjects
+_080C6D2C: .4byte gPlayerAvatar
+_080C6D30: .4byte gFieldEffectObjectTemplatePointers
+_080C6D34: .4byte gSprites
+_080C6D38: .4byte sub_80C6C64
+ thumb_func_end sub_80C6C90
+
+ thumb_func_start FldEff_SandPillar
+FldEff_SandPillar: @ 80C6D3C
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r1, _080C6D78 @ =gUnknown_0202FF84
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r1, 0x14]
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ str r0, [r1, 0x18]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080C6DBC
+ cmp r0, 0x2
+ bgt _080C6D7C
+ cmp r0, 0x1
+ beq _080C6D86
+ b _080C6E4C
+ .align 2, 0
+_080C6D78: .4byte gUnknown_0202FF84
+_080C6D7C:
+ cmp r0, 0x3
+ beq _080C6DEC
+ cmp r0, 0x4
+ beq _080C6E24
+ b _080C6E4C
+_080C6D86:
+ ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6DB4 @ =gSprites
+ ldr r1, _080C6DB8 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x20
+ movs r3, 0
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6DB0: .4byte gSpriteTemplate_83D26A0
+_080C6DB4: .4byte gSprites
+_080C6DB8: .4byte gPlayerAvatar
+_080C6DBC:
+ ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6DE4 @ =gSprites
+ ldr r1, _080C6DE8 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0x80
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ b _080C6E0C
+ .align 2, 0
+_080C6DE0: .4byte gSpriteTemplate_83D26A0
+_080C6DE4: .4byte gSprites
+_080C6DE8: .4byte gPlayerAvatar
+_080C6DEC:
+ ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6E18 @ =gSprites
+ ldr r1, _080C6E1C @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ ldr r3, _080C6E20 @ =0xfff80000
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+_080C6E0C:
+ movs r3, 0x94
+ bl CreateSprite
+ b _080C6E4C
+ .align 2, 0
+_080C6E14: .4byte gSpriteTemplate_83D26A0
+_080C6E18: .4byte gSprites
+_080C6E1C: .4byte gPlayerAvatar
+_080C6E20: .4byte 0xfff80000
+_080C6E24:
+ ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0
+ ldr r3, _080C6E5C @ =gSprites
+ ldr r1, _080C6E60 @ =gPlayerAvatar
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r2, 0x2]
+ lsls r1, 23
+ lsrs r1, 7
+ movs r3, 0xC0
+ lsls r3, 13
+ adds r1, r3
+ asrs r1, 16
+ ldrb r2, [r2]
+ adds r2, 0x10
+ movs r3, 0x94
+ bl CreateSprite
+_080C6E4C:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C6E58: .4byte gSpriteTemplate_83D26A0
+_080C6E5C: .4byte gSprites
+_080C6E60: .4byte gPlayerAvatar
+ thumb_func_end FldEff_SandPillar
+
+ thumb_func_start door_restore_tilemap
+door_restore_tilemap: @ 80C6E64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x83
+ bl PlaySE
+ ldr r4, _080C6E90 @ =gUnknown_0202FF84
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl MapGridGetMetatileIdAt
+ ldr r1, _080C6E94 @ =0x00000286
+ cmp r0, r1
+ bne _080C6E9C
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ ldr r2, _080C6E98 @ =0x00000e02
+ bl MapGridSetMetatileIdAt
+ b _080C6EAA
+ .align 2, 0
+_080C6E90: .4byte gUnknown_0202FF84
+_080C6E94: .4byte 0x00000286
+_080C6E98: .4byte 0x00000e02
+_080C6E9C:
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ movs r2, 0xA1
+ lsls r2, 2
+ bl MapGridSetMetatileIdAt
+_080C6EAA:
+ ldr r4, _080C6ED8 @ =gUnknown_0202FF84
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6EDC @ =0x0000020a
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ subs r1, 0x1
+ bl CurrentMapDrawMetatileAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6EE0 @ =sub_80C6EE4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6ED8: .4byte gUnknown_0202FF84
+_080C6EDC: .4byte 0x0000020a
+_080C6EE0: .4byte sub_80C6EE4
+ thumb_func_end door_restore_tilemap
+
+ thumb_func_start sub_80C6EE4
+sub_80C6EE4: @ 80C6EE4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x11
+ bgt _080C6EF8
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _080C6F14
+_080C6EF8:
+ ldr r4, _080C6F1C @ =gUnknown_0202FF84
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ ldr r2, _080C6F20 @ =0x00000e8c
+ bl MapGridSetMetatileIdAt
+ ldr r0, [r4, 0x14]
+ ldr r1, [r4, 0x18]
+ bl CurrentMapDrawMetatileAt
+ movs r0, 0
+ strh r0, [r5, 0x2E]
+ ldr r0, _080C6F24 @ =sub_80C6F28
+ str r0, [r5, 0x1C]
+_080C6F14:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C6F1C: .4byte gUnknown_0202FF84
+_080C6F20: .4byte 0x00000e8c
+_080C6F24: .4byte sub_80C6F28
+ thumb_func_end sub_80C6EE4
+
+ thumb_func_start sub_80C6F28
+sub_80C6F28: @ 80C6F28
+ push {lr}
+ movs r1, 0x34
+ bl FieldEffectStop
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C6F28
+
+ thumb_func_start sub_80C6F38
+sub_80C6F38: @ 80C6F38
+ 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 MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _080C6F70 @ =0x000002f5
+ cmp r1, r0
+ beq _080C6FE8
+ cmp r1, r0
+ bgt _080C6F74
+ subs r0, 0x17
+ cmp r1, r0
+ beq _080C6FB0
+ adds r0, 0x16
+ cmp r1, r0
+ beq _080C6FDC
+ b _080C6FFA
+ .align 2, 0
+_080C6F70: .4byte 0x000002f5
+_080C6F74:
+ ldr r0, _080C6F9C @ =0x000002f6
+ cmp r1, r0
+ beq _080C6FF4
+ adds r0, 0x40
+ cmp r1, r0
+ bne _080C6FFA
+ ldr r0, _080C6FA0 @ =gStringVar1
+ movs r1, 0x64
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FA4 @ =gStringVar2
+ ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank
+ bl StringCopy
+ ldr r1, _080C6FAC @ =gScriptResult
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6F9C: .4byte 0x000002f6
+_080C6FA0: .4byte gStringVar1
+_080C6FA4: .4byte gStringVar2
+_080C6FA8: .4byte gSecretBaseText_GoldRank
+_080C6FAC: .4byte gScriptResult
+_080C6FB0:
+ ldr r0, _080C6FCC @ =gStringVar1
+ movs r1, 0x32
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080C6FD0 @ =gStringVar2
+ ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank
+ bl StringCopy
+ ldr r1, _080C6FD8 @ =gScriptResult
+ movs r0, 0
+ b _080C6FF8
+ .align 2, 0
+_080C6FCC: .4byte gStringVar1
+_080C6FD0: .4byte gStringVar2
+_080C6FD4: .4byte gSecretBaseText_SilverRank
+_080C6FD8: .4byte gScriptResult
+_080C6FDC:
+ ldr r1, _080C6FE4 @ =gScriptResult
+ movs r0, 0x1
+ b _080C6FF8
+ .align 2, 0
+_080C6FE4: .4byte gScriptResult
+_080C6FE8:
+ ldr r1, _080C6FF0 @ =gScriptResult
+ movs r0, 0x2
+ b _080C6FF8
+ .align 2, 0
+_080C6FF0: .4byte gScriptResult
+_080C6FF4:
+ ldr r1, _080C7004 @ =gScriptResult
+ movs r0, 0x3
+_080C6FF8:
+ strh r0, [r1]
+_080C6FFA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7004: .4byte gScriptResult
+ thumb_func_end sub_80C6F38
+
+ thumb_func_start task50_overworld_posion_effect
+task50_overworld_posion_effect: @ 80C7008
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080C702C @ =gTasks + 0x8
+ adds r1, r0, r1
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C7046
+ cmp r0, 0x1
+ bgt _080C7030
+ cmp r0, 0
+ beq _080C7036
+ b _080C7062
+ .align 2, 0
+_080C702C: .4byte gTasks + 0x8
+_080C7030:
+ cmp r0, 0x2
+ beq _080C705A
+ b _080C7062
+_080C7036:
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080C7062
+ b _080C7052
+_080C7046:
+ ldrh r0, [r1, 0x2]
+ subs r0, 0x2
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C7062
+_080C7052:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080C7062
+_080C705A:
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C706C
+_080C7062:
+ ldr r2, _080C7070 @ =REG_MOSAIC
+ ldrh r1, [r1, 0x2]
+ lsls r0, r1, 4
+ orrs r0, r1
+ strh r0, [r2]
+_080C706C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7070: .4byte REG_MOSAIC
+ thumb_func_end task50_overworld_posion_effect
+
+ thumb_func_start overworld_posion_effect
+overworld_posion_effect: @ 80C7074
+ push {lr}
+ movs r0, 0x4F
+ bl PlaySE
+ ldr r0, _080C7088 @ =task50_overworld_posion_effect
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7088: .4byte task50_overworld_posion_effect
+ thumb_func_end overworld_posion_effect
+
+ thumb_func_start c3_80A0DD8_is_running
+c3_80A0DD8_is_running: @ 80C708C
+ push {lr}
+ ldr r0, _080C709C @ =task50_overworld_posion_effect
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C709C: .4byte task50_overworld_posion_effect
+ thumb_func_end c3_80A0DD8_is_running
+
+ thumb_func_start sub_80C70A0
+sub_80C70A0: @ 80C70A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C70B4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C70B8 @ =sub_80C70BC
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C70B4: .4byte gTasks
+_080C70B8: .4byte sub_80C70BC
+ thumb_func_end sub_80C70A0
+
+ thumb_func_start sub_80C70BC
+sub_80C70BC: @ 80C70BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7120 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7124 @ =gMapObjects
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C70E8
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C711A
+_080C70E8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8059D08
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectSetSpecialAnim
+ ldr r1, _080C7128 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C712C @ =sub_80C7130
+ str r1, [r0]
+_080C711A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7120: .4byte gPlayerAvatar
+_080C7124: .4byte gMapObjects
+_080C7128: .4byte gTasks
+_080C712C: .4byte sub_80C7130
+ thumb_func_end sub_80C70BC
+
+ thumb_func_start sub_80C7130
+sub_80C7130: @ 80C7130
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C7184 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C7188 @ =gMapObjects
+ adds r5, r0, r1
+ adds r0, r5, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7194
+ ldr r1, _080C718C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bgt _080C7190
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetStepInPlaceDelay16AnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldObjectSetSpecialAnim
+ b _080C7194
+ .align 2, 0
+_080C7184: .4byte gPlayerAvatar
+_080C7188: .4byte gMapObjects
+_080C718C: .4byte gTasks
+_080C7190:
+ ldr r0, _080C719C @ =sub_80C71A0
+ str r0, [r2]
+_080C7194:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C719C: .4byte sub_80C71A0
+ thumb_func_end sub_80C7130
+
+ thumb_func_start sub_80C71A0
+sub_80C71A0: @ 80C71A0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80597D0
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPlayerAvatarTransitionFlags
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C71A0
+
+ thumb_func_start sub_80C71C4
+sub_80C71C4: @ 80C71C4
+ push {lr}
+ ldr r0, _080C71D4 @ =sub_80C70A0
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C71D4: .4byte sub_80C70A0
+ thumb_func_end sub_80C71C4
+
+ thumb_func_start sub_80C71D8
+sub_80C71D8: @ 80C71D8
+ push {r4,r5,lr}
+ ldr r0, _080C722C @ =gUnknown_083D2878
+ bl LoadSpritePalette
+ ldr r0, _080C7230 @ =gSpriteTemplate_83D2894
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7238
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _080C7234 @ =gSprites
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ movs r0, 0x10
+ movs r1, 0xD
+ bl sub_8060388
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x10
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ adds r0, r5, 0
+ b _080C723A
+ .align 2, 0
+_080C722C: .4byte gUnknown_083D2878
+_080C7230: .4byte gSpriteTemplate_83D2894
+_080C7234: .4byte gSprites
+_080C7238:
+ movs r0, 0x40
+_080C723A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C71D8
+
+ thumb_func_start sub_80C7240
+sub_80C7240: @ 80C7240
+ push {r4-r7,lr}
+ ldr r4, _080C7274 @ =gSprites
+ adds r7, r4, 0
+ movs r6, 0
+ movs r5, 0x3F
+_080C724A:
+ adds r0, r7, 0
+ adds r0, 0x14
+ adds r0, r6, r0
+ ldr r1, [r0]
+ ldr r0, _080C7278 @ =gSpriteTemplate_83D2894
+ cmp r1, r0
+ bne _080C7264
+ adds r0, r4, 0
+ bl FreeSpritePalette
+ adds r0, r4, 0
+ bl DestroySprite
+_080C7264:
+ adds r4, 0x44
+ adds r6, 0x44
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080C724A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7274: .4byte gSprites
+_080C7278: .4byte gSpriteTemplate_83D2894
+ thumb_func_end sub_80C7240
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/heal_location.s b/asm/heal_location.s
new file mode 100644
index 000000000..41c98c25d
--- /dev/null
+++ b/asm/heal_location.s
@@ -0,0 +1,86 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FA86C
+sub_80FA86C: @ 80FA86C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0
+ ldr r2, _080FA890 @ =gUnknown_083E5A20
+_080FA87A:
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, r4
+ bne _080FA894
+ movs r0, 0x1
+ ldrsb r0, [r2, r0]
+ cmp r0, r1
+ bne _080FA894
+ adds r0, r3, 0x1
+ b _080FA89E
+ .align 2, 0
+_080FA890: .4byte gUnknown_083E5A20
+_080FA894:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x15
+ bls _080FA87A
+ movs r0, 0
+_080FA89E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA86C
+
+ thumb_func_start unref_sub_80FA8A4
+unref_sub_80FA8A4: @ 80FA8A4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FA86C
+ cmp r0, 0
+ beq _080FA8C4
+ lsls r0, 3
+ ldr r1, _080FA8C0 @ =gUnknown_083E5A18
+ adds r0, r1
+ b _080FA8C6
+ .align 2, 0
+_080FA8C0: .4byte gUnknown_083E5A18
+_080FA8C4:
+ movs r0, 0
+_080FA8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80FA8A4
+
+ thumb_func_start sub_80FA8CC
+sub_80FA8CC: @ 80FA8CC
+ push {lr}
+ cmp r0, 0
+ beq _080FA8E4
+ cmp r0, 0x16
+ bhi _080FA8E4
+ lsls r0, 3
+ ldr r1, _080FA8E0 @ =gUnknown_083E5A18
+ adds r0, r1
+ b _080FA8E6
+ .align 2, 0
+_080FA8E0: .4byte gUnknown_083E5A18
+_080FA8E4:
+ movs r0, 0
+_080FA8E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FA8CC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_use.s b/asm/item_use.s
new file mode 100644
index 000000000..ec093aa2e
--- /dev/null
+++ b/asm/item_use.s
@@ -0,0 +1,3017 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C8FAC
+sub_80C8FAC: @ 80C8FAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8FD0 @ =word_203855E
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _080C8FD8
+ ldr r1, _080C8FD4 @ =gTasks
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ b _080C8FE6
+ .align 2, 0
+_080C8FD0: .4byte word_203855E
+_080C8FD4: .4byte gTasks
+_080C8FD8:
+ ldrh r0, [r1]
+ bl itemid_get_type
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, r4, 2
+_080C8FE6:
+ ldr r0, _080C9008 @ =gTasks
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r2, _080C900C @ =gUnknown_083D61E4
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r2, [r0]
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _080C9010 @ =sub_80A5B00
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9008: .4byte gTasks
+_080C900C: .4byte gUnknown_083D61E4
+_080C9010: .4byte sub_80A5B00
+ thumb_func_end sub_80C8FAC
+
+ thumb_func_start unknown_ItemMenu_Confirm
+unknown_ItemMenu_Confirm: @ 80C9014
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end unknown_ItemMenu_Confirm
+
+ thumb_func_start sub_80C9038
+sub_80C9038: @ 80C9038
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80C8FAC
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9038
+
+ thumb_func_start SetUpItemUseOnFieldCallback
+SetUpItemUseOnFieldCallback: @ 80C9050
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C9078 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ beq _080C9084
+ ldr r1, _080C907C @ =gUnknown_0300485C
+ ldr r0, _080C9080 @ =sub_80A5CC4
+ str r0, [r1]
+ adds r0, r2, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C908E
+ .align 2, 0
+_080C9078: .4byte gTasks
+_080C907C: .4byte gUnknown_0300485C
+_080C9080: .4byte sub_80A5CC4
+_080C9084:
+ ldr r0, _080C9094 @ =gUnknown_03005D00
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+_080C908E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9094: .4byte gUnknown_03005D00
+ thumb_func_end SetUpItemUseOnFieldCallback
+
+ thumb_func_start sub_80C9098
+sub_80C9098: @ 80C9098
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r1, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080C90CC @ =gStringVar4
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ cmp r4, 0
+ bne _080C90D4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C90D0 @ =sub_80A5C48
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C90E0
+ .align 2, 0
+_080C90CC: .4byte gStringVar4
+_080C90D0: .4byte sub_80A5C48
+_080C90D4:
+ ldr r2, _080C90E8 @ =sub_80A5C9C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C90E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C90E8: .4byte sub_80A5C9C
+ thumb_func_end sub_80C9098
+
+ thumb_func_start DisplayDadsAdviceCannotUseItemMessage
+DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9100 @ =gOtherText_DadsAdvice
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9100: .4byte gOtherText_DadsAdvice
+ thumb_func_end DisplayDadsAdviceCannotUseItemMessage
+
+ thumb_func_start sub_80C9104
+sub_80C9104: @ 80C9104
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
+ bl sub_80C9098
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9118: .4byte gOtherText_CantGetOffBike
+ thumb_func_end sub_80C9104
+
+ thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
+CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
+ cmp r0, r1
+ bne _080C9138
+ movs r0, 0x1
+ b _080C914E
+ .align 2, 0
+_080C9134: .4byte ItemUseOutOfBattle_TMHM
+_080C9138:
+ adds r0, r4, 0
+ bl itemid_get_overworld_function
+ ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
+ cmp r0, r1
+ beq _080C914C
+ movs r0, 0
+ b _080C914E
+ .align 2, 0
+_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
+_080C914C:
+ movs r0, 0x2
+_080C914E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
+
+ thumb_func_start sub_80C9154
+sub_80C9154: @ 80C9154
+ push {r4,lr}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9188 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9180
+ mov r1, sp
+ ldr r0, _080C918C @ =word_203855E
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+ ldr r1, _080C9190 @ =sub_80A5D04
+ mov r0, sp
+ movs r2, 0
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_080C9180:
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9188: .4byte gPaletteFade
+_080C918C: .4byte word_203855E
+_080C9190: .4byte sub_80A5D04
+ thumb_func_end sub_80C9154
+
+ thumb_func_start ItemUseOutOfBattle_Mail
+ItemUseOutOfBattle_Mail: @ 80C9194
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080C91C4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C91C8 @ =sub_80C9154
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C91C4: .4byte gTasks
+_080C91C8: .4byte sub_80C9154
+ thumb_func_end ItemUseOutOfBattle_Mail
+
+ thumb_func_start ItemUseOutOfBattle_Bike
+ItemUseOutOfBattle_Bike: @ 80C91CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C924C @ =0x0000082b
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedVerticalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9238
+ adds r0, r4, 0
+ bl MetatileBehavior_IsIsolatedHorizontalRail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9254
+_080C9238:
+ ldr r0, _080C9250 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl sub_80C9104
+ b _080C928E
+ .align 2, 0
+_080C924C: .4byte 0x0000082b
+_080C9250: .4byte gTasks
+_080C9254:
+ bl sub_8053C44
+ cmp r0, 0x1
+ bne _080C927C
+ bl sub_80E5EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C927C
+ ldr r1, _080C9274 @ =gUnknown_03005D00
+ ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
+ str r0, [r1]
+ adds r0, r5, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C928E
+ .align 2, 0
+_080C9274: .4byte gUnknown_03005D00
+_080C9278: .4byte ItemUseOnFieldCB_Bike
+_080C927C:
+ ldr r0, _080C9298 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r5, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C928E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9298: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Bike
+
+ thumb_func_start ItemUseOnFieldCB_Bike
+ItemUseOnFieldCB_Bike: @ 80C929C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C92E0 @ =word_203855E
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C92B6
+ movs r0, 0x2
+ bl GetOnOffBike
+_080C92B6:
+ ldrh r0, [r4]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C92CA
+ movs r0, 0x4
+ bl GetOnOffBike
+_080C92CA:
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C92E0: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Bike
+
+ thumb_func_start CanFish
+CanFish: @ 80C92E4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x10
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C936C
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C933C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C936C
+_080C9338:
+ movs r0, 0x1
+ b _080C936E
+_080C933C:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C935C
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C9338
+_080C935C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8057434
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9338
+_080C936C:
+ movs r0, 0
+_080C936E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CanFish
+
+ thumb_func_start ItemUseOutOfBattle_Rod
+ItemUseOutOfBattle_Rod: @ 80C9378
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CanFish
+ cmp r0, 0x1
+ bne _080C939C
+ ldr r1, _080C9394 @ =gUnknown_03005D00
+ ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C93AE
+ .align 2, 0
+_080C9394: .4byte gUnknown_03005D00
+_080C9398: .4byte ItemUseOnFieldCB_Rod
+_080C939C:
+ ldr r0, _080C93B4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C93AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93B4: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_Rod
+
+ thumb_func_start ItemUseOnFieldCB_Rod
+ItemUseOnFieldCB_Rod: @ 80C93B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C93DC @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 24
+ bl StartFishing
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C93DC: .4byte word_203855E
+ thumb_func_end ItemUseOnFieldCB_Rod
+
+ thumb_func_start ItemUseOutOfBattle_Itemfinder
+ItemUseOutOfBattle_Itemfinder: @ 80C93E0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x27
+ bl sav12_xor_increment
+ ldr r1, _080C9400 @ =gUnknown_03005D00
+ ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9400: .4byte gUnknown_03005D00
+_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
+ thumb_func_end ItemUseOutOfBattle_Itemfinder
+
+ thumb_func_start ItemUseOnFieldCB_Itemfinder
+ItemUseOnFieldCB_Itemfinder: @ 80C9408
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C9430 @ =gMapHeader
+ ldr r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl ItemfinderCheckForHiddenItems
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C943C
+ ldr r0, _080C9434 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C9438 @ =sub_80C9458
+ str r0, [r1]
+ b _080C9448
+ .align 2, 0
+_080C9430: .4byte gMapHeader
+_080C9434: .4byte gTasks
+_080C9438: .4byte sub_80C9458
+_080C943C:
+ ldr r1, _080C9450 @ =gOtherText_NoResponse
+ ldr r2, _080C9454 @ =sub_80C9520
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9448:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9450: .4byte gOtherText_NoResponse
+_080C9454: .4byte sub_80C9520
+ thumb_func_end ItemUseOnFieldCB_Itemfinder
+
+ thumb_func_start sub_80C9458
+sub_80C9458: @ 80C9458
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r7, r0, 3
+ ldr r0, _080C94AC @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r7, r0
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C950C
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _080C9500
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80C9908
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080C94B8
+ ldr r1, _080C94B0 @ =gUnknown_083D61F0
+ subs r0, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _080C94B4 @ =sub_80C99EC
+ str r1, [r0]
+ b _080C9516
+ .align 2, 0
+_080C94AC: .4byte gTasks + 0x8
+_080C94B0: .4byte gUnknown_083D61F0
+_080C94B4: .4byte sub_80C99EC
+_080C94B8:
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ adds r3, r6, 0
+ ldr r7, _080C94F4 @ =gUnknown_083D61F0
+ movs r6, 0x3
+_080C94C8:
+ adds r0, r1, r7
+ adds r1, 0x1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _080C94D8
+ adds r0, r1, 0
+ ands r0, r6
+ strh r0, [r4, 0xA]
+_080C94D8:
+ lsls r0, r1, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C94C8
+ ldr r1, _080C94F8 @ =gTasks
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C94FC @ =sub_80C9A38
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ strh r0, [r4, 0x4]
+ b _080C9516
+ .align 2, 0
+_080C94F4: .4byte gUnknown_083D61F0
+_080C94F8: .4byte gTasks
+_080C94FC: .4byte sub_80C9A38
+_080C9500:
+ movs r0, 0x48
+ bl PlaySE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C950C:
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r4, 0x6]
+_080C9516:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9458
+
+ thumb_func_start sub_80C9520
+sub_80C9520: @ 80C9520
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8064E2C
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9520
+
+ thumb_func_start ItemfinderCheckForHiddenItems
+ItemfinderCheckForHiddenItems: @ 80C9548
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ ldr r1, _080C9618 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r3, 0
+ mov r9, r4
+ ldrb r0, [r5, 0x3]
+ cmp r3, r0
+ bge _080C95FC
+ subs r1, 0x5
+ mov r8, r1
+_080C9580:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r5, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r1, r4, r2
+ ldrb r0, [r1, 0x5]
+ adds r7, r3, 0
+ cmp r0, 0x7
+ bne _080C95EC
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r1, [r1, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C95EC
+ ldr r1, [r5, 0x10]
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ adds r2, 0x7
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r2, r0
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ mov r3, r9
+ ldrh r1, [r3]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r2, r3
+ lsrs r2, 16
+ cmp r2, 0xE
+ bhi _080C95EC
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, r8
+ blt _080C95EC
+ cmp r2, 0x5
+ bgt _080C95EC
+ adds r0, r6, 0
+ bl sub_80C9838
+_080C95EC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r2, [r5, 0x3]
+ cmp r0, r2
+ blt _080C9580
+_080C95FC:
+ adds r0, r6, 0
+ bl sub_80C9720
+ ldr r0, _080C9618 @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080C961C
+ movs r0, 0
+ b _080C961E
+ .align 2, 0
+_080C9618: .4byte gTasks
+_080C961C:
+ movs r0, 0x1
+_080C961E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ItemfinderCheckForHiddenItems
+
+ thumb_func_start sub_80C962C
+sub_80C962C: @ 80C962C
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldrb r2, [r0, 0x3]
+ ldr r5, [r0, 0x10]
+ movs r1, 0
+ cmp r1, r2
+ bge _080C9680
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ adds r3, r5, 0
+_080C964A:
+ ldrb r0, [r3, 0x5]
+ cmp r0, 0x7
+ bne _080C9678
+ ldrh r0, [r3]
+ cmp r6, r0
+ bne _080C9678
+ ldrh r0, [r3, 0x2]
+ cmp r4, r0
+ bne _080C9678
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r3, [r3, 0xA]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C9680
+ movs r0, 0x1
+ b _080C9682
+_080C9678:
+ adds r3, 0xC
+ adds r1, 0x1
+ cmp r1, r2
+ blt _080C964A
+_080C9680:
+ movs r0, 0
+_080C9682:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C962C
+
+ thumb_func_start sub_80C9688
+sub_80C9688: @ 80C9688
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl mapconnection_get_mapheader
+ adds r3, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080C96B0
+ cmp r0, 0x2
+ bgt _080C96A6
+ cmp r0, 0x1
+ beq _080C96C4
+ b _080C9704
+_080C96A6:
+ cmp r0, 0x3
+ beq _080C96DC
+ cmp r0, 0x4
+ beq _080C96E6
+ b _080C9704
+_080C96B0:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ subs r0, 0x7
+ adds r0, r6
+ b _080C96FA
+_080C96C4:
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080C96D8 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ b _080C96F6
+ .align 2, 0
+_080C96D8: .4byte gMapHeader
+_080C96DC:
+ ldr r0, [r3]
+ ldr r0, [r0]
+ subs r0, 0x7
+ adds r0, r5
+ b _080C96F0
+_080C96E6:
+ ldr r0, _080C9700 @ =gMapHeader
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, 0x7
+ subs r0, r5, r0
+_080C96F0:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, [r4, 0x4]
+_080C96F6:
+ adds r0, 0x7
+ subs r0, r6, r0
+_080C96FA:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9708
+ .align 2, 0
+_080C9700: .4byte gMapHeader
+_080C9704:
+ movs r0, 0
+ b _080C971A
+_080C9708:
+ ldr r0, [r3, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ bl sub_80C962C
+ lsls r0, 24
+ lsrs r0, 24
+_080C971A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9688
+
+ thumb_func_start sub_80C9720
+sub_80C9720: @ 80C9720
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, _080C9834 @ =gMapHeader
+ ldr r1, [r0]
+ ldr r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ adds r1, 0x7
+ cmp r0, r1
+ bgt _080C9824
+_080C976E:
+ mov r5, sp
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ movs r6, 0x2
+ ldrsh r0, [r5, r6]
+ adds r0, 0x5
+ lsls r3, 16
+ mov r8, r3
+ cmp r1, r0
+ bgt _080C980E
+ movs r0, 0x7
+ str r0, [sp, 0x10]
+ mov r1, r8
+ asrs r1, 16
+ mov r9, r1
+ mov r10, r0
+_080C9796:
+ ldr r3, [sp, 0x10]
+ cmp r3, r9
+ bgt _080C97B8
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r9, r0
+ bge _080C97B8
+ asrs r1, r2, 16
+ cmp r10, r1
+ bgt _080C97B8
+ ldr r6, [sp, 0xC]
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r7, r4, 16
+ cmp r1, r0
+ blt _080C97F6
+_080C97B8:
+ mov r0, r8
+ asrs r5, r0, 16
+ lsls r4, 16
+ asrs r6, r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8056BA0
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080C97F6
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80C9688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C97F6
+ mov r0, sp
+ ldrh r1, [r0]
+ subs r1, r5, r1
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, r6, r2
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, [sp, 0x4]
+ bl sub_80C9838
+_080C97F6:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r4, r0, 16
+ lsls r2, r4, 16
+ asrs r1, r2, 16
+ mov r3, sp
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ adds r0, 0x5
+ cmp r1, r0
+ ble _080C9796
+_080C980E:
+ movs r1, 0x80
+ lsls r1, 9
+ add r1, r8
+ lsrs r3, r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ adds r0, 0x7
+ cmp r1, r0
+ ble _080C976E
+_080C9824:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9834: .4byte gMapHeader
+ thumb_func_end sub_80C9720
+
+ thumb_func_start sub_80C9838
+sub_80C9838: @ 80C9838
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r12, r2
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C986C @ =gTasks + 0x8
+ adds r3, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C9870
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+ movs r0, 0x1
+ strh r0, [r3, 0x4]
+ b _080C98FA
+ .align 2, 0
+_080C986C: .4byte gTasks + 0x8
+_080C9870:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bge _080C9880
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C9882
+_080C9880:
+ ldrh r4, [r3]
+_080C9882:
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ ldrh r1, [r3, 0x2]
+ mov r9, r1
+ cmp r0, 0
+ bge _080C9896
+ negs r0, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ b _080C9898
+_080C9896:
+ ldrh r2, [r3, 0x2]
+_080C9898:
+ lsls r1, r7, 16
+ asrs r0, r1, 16
+ cmp r0, 0
+ bge _080C98A8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _080C98AA
+_080C98A8:
+ lsrs r6, r1, 16
+_080C98AA:
+ mov r1, r12
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ mov r8, r0
+ cmp r1, 0
+ bge _080C98BC
+ negs r0, r1
+ lsls r0, 16
+ b _080C98BE
+_080C98BC:
+ mov r0, r8
+_080C98BE:
+ lsrs r5, r0, 16
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r2, r1, 16
+ adds r4, r0, r2
+ lsls r0, r6, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r4, r0
+ ble _080C98E0
+ strh r7, [r3]
+ mov r1, r12
+ strh r1, [r3, 0x2]
+ b _080C98FA
+_080C98E0:
+ cmp r4, r0
+ bne _080C98FA
+ cmp r2, r1
+ bgt _080C98F4
+ cmp r2, r1
+ bne _080C98FA
+ mov r1, r9
+ lsls r0, r1, 16
+ cmp r0, r8
+ bge _080C98FA
+_080C98F4:
+ strh r7, [r3]
+ mov r0, r12
+ strh r0, [r3, 0x2]
+_080C98FA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C9838
+
+ thumb_func_start sub_80C9908
+sub_80C9908: @ 80C9908
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bne _080C991A
+ cmp r1, 0
+ beq _080C9974
+_080C991A:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ adds r5, r0, 0
+ cmp r2, 0
+ bge _080C992C
+ negs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080C992E
+_080C992C:
+ lsrs r4, r5, 16
+_080C992E:
+ lsls r0, r1, 16
+ asrs r2, r0, 16
+ adds r1, r0, 0
+ cmp r2, 0
+ bge _080C9940
+ negs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080C9942
+_080C9940:
+ lsrs r3, r1, 16
+_080C9942:
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C995A
+ cmp r5, 0
+ bge _080C9956
+ movs r0, 0x4
+ b _080C9976
+_080C9956:
+ movs r0, 0x2
+ b _080C9976
+_080C995A:
+ cmp r2, r0
+ bge _080C9964
+ cmp r1, 0
+ blt _080C996C
+ b _080C9970
+_080C9964:
+ cmp r2, r0
+ bne _080C9974
+ cmp r1, 0
+ bge _080C9970
+_080C996C:
+ movs r0, 0x1
+ b _080C9976
+_080C9970:
+ movs r0, 0x3
+ b _080C9976
+_080C9974:
+ movs r0, 0
+_080C9976:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C9908
+
+ thumb_func_start sub_80C997C
+sub_80C997C: @ 80C997C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080C99E8 @ =gMapObjects
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FieldObjectClearAnim
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl npc_sync_anim_pause_bits
+ adds r0, r5, 0
+ bl PlayerTurnInPlace
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C99E8: .4byte gMapObjects
+ thumb_func_end sub_80C997C
+
+ thumb_func_start sub_80C99EC
+sub_80C99EC: @ 80C99EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9A2C @ =gMapObjects
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9A24
+ ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
+ ldr r2, _080C9A34 @ =sub_80C9520
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9A24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9A2C: .4byte gMapObjects
+_080C9A30: .4byte gOtherText_ItemfinderResponding
+_080C9A34: .4byte sub_80C9520
+ thumb_func_end sub_80C99EC
+
+ thumb_func_start sub_80C9A38
+sub_80C9A38: @ 80C9A38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C9AB4 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C9AB8 @ =gMapObjects
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C9A78
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C9AAE
+_080C9A78:
+ ldr r1, _080C9ABC @ =gUnknown_083D61F0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80C997C
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ movs r1, 0x3
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080C9AAE
+ ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
+ ldr r2, _080C9AC4 @ =sub_80C9520
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9AAE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9AB4: .4byte gTasks + 0x8
+_080C9AB8: .4byte gMapObjects
+_080C9ABC: .4byte gUnknown_083D61F0
+_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
+_080C9AC4: .4byte sub_80C9520
+ thumb_func_end sub_80C9A38
+
+ thumb_func_start ItemUseOutOfBattle_PokeblockCase
+ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9AF4
+ ldr r0, _080C9AF0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+ b _080C9B2A
+ .align 2, 0
+_080C9AF0: .4byte gTasks
+_080C9AF4:
+ ldr r0, _080C9B14 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _080C9B18
+ movs r0, 0
+ bl sub_810BA7C
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ b _080C9B2A
+ .align 2, 0
+_080C9B14: .4byte gTasks
+_080C9B18:
+ ldr r1, _080C9B30 @ =gUnknown_0300485C
+ ldr r0, _080C9B34 @ =sub_8080E28
+ str r0, [r1]
+ movs r0, 0x1
+ bl sub_810BA7C
+ adds r0, r5, 0
+ bl sub_80C9038
+_080C9B2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9B30: .4byte gUnknown_0300485C
+_080C9B34: .4byte sub_8080E28
+ thumb_func_end ItemUseOutOfBattle_PokeblockCase
+
+ thumb_func_start ItemUseOutOfBattle_CoinCase
+ItemUseOutOfBattle_CoinCase: @ 80C9B38
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080C9B8C @ =gStringVar1
+ bl GetCoins
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080C9B90 @ =gStringVar4
+ ldr r1, _080C9B94 @ =gOtherText_Coins3
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r1, _080C9B98 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9BA0
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r2, _080C9B9C @ =sub_80A5C48
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9BAC
+ .align 2, 0
+_080C9B8C: .4byte gStringVar1
+_080C9B90: .4byte gStringVar4
+_080C9B94: .4byte gOtherText_Coins3
+_080C9B98: .4byte gTasks
+_080C9B9C: .4byte sub_80A5C48
+_080C9BA0:
+ ldr r2, _080C9BB4 @ =sub_80A5C9C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9BAC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BB4: .4byte sub_80A5C9C
+ thumb_func_end ItemUseOutOfBattle_CoinCase
+
+ thumb_func_start sub_80C9BB8
+sub_80C9BB8: @ 80C9BB8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BD4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BD0
+ adds r0, r2, 0
+ bl sub_80A5C48
+_080C9BD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BD4: .4byte gMain
+ thumb_func_end sub_80C9BB8
+
+ thumb_func_start sub_80C9BD8
+sub_80C9BD8: @ 80C9BD8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C9BF4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9BF0
+ adds r0, r2, 0
+ bl sub_80A5C9C
+_080C9BF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9BF4: .4byte gMain
+ thumb_func_end sub_80C9BD8
+
+ thumb_func_start unref_sub_80C9BF8
+unref_sub_80C9BF8: @ 80C9BF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C9C3C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080C9C4C
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080C9C40 @ =gUnknown_083D61DC
+ ldr r0, _080C9C44 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C48 @ =sub_80C9BB8
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9C68
+ .align 2, 0
+_080C9C3C: .4byte gTasks
+_080C9C40: .4byte gUnknown_083D61DC
+_080C9C44: .4byte word_203855E
+_080C9C48: .4byte sub_80C9BB8
+_080C9C4C:
+ ldr r4, _080C9C70 @ =gUnknown_083D61DC
+ ldr r0, _080C9C74 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_x28
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r2, _080C9C78 @ =sub_80C9BD8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080C9C68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9C70: .4byte gUnknown_083D61DC
+_080C9C74: .4byte word_203855E
+_080C9C78: .4byte sub_80C9BD8
+ thumb_func_end unref_sub_80C9BF8
+
+ thumb_func_start sub_80C9C7C
+sub_80C9C7C: @ 80C9C7C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsPlayerFacingPlantedBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9CE4
+ ldr r1, _080C9CC8 @ =gUnknown_03005D00
+ ldr r0, _080C9CCC @ =sub_80C9D00
+ str r0, [r1]
+ ldr r1, _080C9CD0 @ =gUnknown_0300485C
+ ldr r0, _080C9CD4 @ =sub_80A5CC4
+ str r0, [r1]
+ ldr r1, _080C9CD8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch
+ lsrs r1, r2, 16
+ movs r3, 0
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ ldr r1, _080C9CE0 @ =sub_80A5B00
+ str r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r3, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080C9CF4
+ .align 2, 0
+_080C9CC8: .4byte gUnknown_03005D00
+_080C9CCC: .4byte sub_80C9D00
+_080C9CD0: .4byte gUnknown_0300485C
+_080C9CD4: .4byte sub_80A5CC4
+_080C9CD8: .4byte gTasks
+_080C9CDC: .4byte c2_exit_to_overworld_2_switch
+_080C9CE0: .4byte sub_80A5B00
+_080C9CE4:
+ ldr r0, _080C9CFC @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_overworld_function
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+_080C9CF4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9CFC: .4byte word_203855E
+ thumb_func_end sub_80C9C7C
+
+ thumb_func_start sub_80C9D00
+sub_80C9D00: @ 80C9D00
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C9D28 @ =word_203855E
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D2C @ =gUnknown_081A1654
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D28: .4byte word_203855E
+_080C9D2C: .4byte gUnknown_081A1654
+ thumb_func_end sub_80C9D00
+
+ thumb_func_start ItemUseOutOfBattle_WailmerPail
+ItemUseOutOfBattle_WailmerPail: @ 80C9D30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl WaterBerryTree
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080C9D58
+ ldr r1, _080C9D50 @ =gUnknown_03005D00
+ ldr r0, _080C9D54 @ =sub_80C9D74
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080C9D6A
+ .align 2, 0
+_080C9D50: .4byte gUnknown_03005D00
+_080C9D54: .4byte sub_80C9D74
+_080C9D58:
+ ldr r0, _080C9D70 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080C9D6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D70: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_WailmerPail
+
+ thumb_func_start sub_80C9D74
+sub_80C9D74: @ 80C9D74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ ldr r0, _080C9D94 @ =gUnknown_081A168F
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9D94: .4byte gUnknown_081A168F
+ thumb_func_end sub_80C9D74
+
+ thumb_func_start sub_80C9D98
+sub_80C9D98: @ 80C9D98
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DAC @ =gUnknown_02038561
+ movs r1, 0
+ strb r1, [r2]
+ bl unknown_ItemMenu_Confirm
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DAC: .4byte gUnknown_02038561
+ thumb_func_end sub_80C9D98
+
+ thumb_func_start ItemUseOutOfBattle_Medicine
+ItemUseOutOfBattle_Medicine: @ 80C9DB0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9DC4 @ =gUnknown_03004AE4
+ ldr r1, _080C9DC8 @ =sub_806FE2C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9DC4: .4byte gUnknown_03004AE4
+_080C9DC8: .4byte sub_806FE2C
+ thumb_func_end ItemUseOutOfBattle_Medicine
+
+ thumb_func_start ItemUseOutOfBattle_SacredAsh
+ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _080C9DDC @ =gUnknown_03005CE0
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+ b _080C9DE6
+ .align 2, 0
+_080C9DDC: .4byte gUnknown_03005CE0
+_080C9DE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C9DE6:
+ cmp r5, 0x5
+ bhi _080C9E10
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C9E28 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080C9DE0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080C9DE0
+ ldr r0, _080C9E2C @ =gUnknown_03005CE0
+ strb r5, [r0]
+_080C9E10:
+ ldr r1, _080C9E30 @ =gUnknown_03004AE4
+ ldr r0, _080C9E34 @ =sub_8070048
+ str r0, [r1]
+ ldr r1, _080C9E38 @ =gUnknown_02038561
+ movs r0, 0x4
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E28: .4byte gPlayerParty
+_080C9E2C: .4byte gUnknown_03005CE0
+_080C9E30: .4byte gUnknown_03004AE4
+_080C9E34: .4byte sub_8070048
+_080C9E38: .4byte gUnknown_02038561
+ thumb_func_end ItemUseOutOfBattle_SacredAsh
+
+ thumb_func_start ItemUseOutOfBattle_PPRecovery
+ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E50 @ =gUnknown_03004AE4
+ ldr r1, _080C9E54 @ =dp05_ether
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E50: .4byte gUnknown_03004AE4
+_080C9E54: .4byte dp05_ether
+ thumb_func_end ItemUseOutOfBattle_PPRecovery
+
+ thumb_func_start ItemUseOutOfBattle_PPUp
+ItemUseOutOfBattle_PPUp: @ 80C9E58
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E6C @ =gUnknown_03004AE4
+ ldr r1, _080C9E70 @ =dp05_pp_up
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E6C: .4byte gUnknown_03004AE4
+_080C9E70: .4byte dp05_pp_up
+ thumb_func_end ItemUseOutOfBattle_PPUp
+
+ thumb_func_start ItemUseOutOfBattle_RareCandy
+ItemUseOutOfBattle_RareCandy: @ 80C9E74
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9E88 @ =gUnknown_03004AE4
+ ldr r1, _080C9E8C @ =sub_8070680
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9E88: .4byte gUnknown_03004AE4
+_080C9E8C: .4byte sub_8070680
+ thumb_func_end ItemUseOutOfBattle_RareCandy
+
+ thumb_func_start ItemUseOutOfBattle_TMHM
+ItemUseOutOfBattle_TMHM: @ 80C9E90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080C9EBC @ =word_203855E
+ ldrh r1, [r0]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bls _080C9EC8
+ ldr r1, _080C9EC0 @ =gOtherText_BootedHM
+ ldr r2, _080C9EC4 @ =sub_80C9EE4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080C9ED4
+ .align 2, 0
+_080C9EBC: .4byte word_203855E
+_080C9EC0: .4byte gOtherText_BootedHM
+_080C9EC4: .4byte sub_80C9EE4
+_080C9EC8:
+ ldr r1, _080C9EDC @ =gOtherText_BootedTM
+ ldr r2, _080C9EE0 @ =sub_80C9EE4
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9ED4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9EDC: .4byte gOtherText_BootedTM
+_080C9EE0: .4byte sub_80C9EE4
+ thumb_func_end ItemUseOutOfBattle_TMHM
+
+ thumb_func_start sub_80C9EE4
+sub_80C9EE4: @ 80C9EE4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ bl PlaySE
+ ldr r1, _080C9F08 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C9F0C @ =sub_80C9F10
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F08: .4byte gTasks
+_080C9F0C: .4byte sub_80C9F10
+ thumb_func_end sub_80C9EE4
+
+ thumb_func_start sub_80C9F10
+sub_80C9F10: @ 80C9F10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C9F64 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C9F2A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C9F5C
+_080C9F2A:
+ ldr r4, _080C9F68 @ =gStringVar1
+ ldr r0, _080C9F6C @ =word_203855E
+ ldrh r0, [r0]
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _080C9F70 @ =gMoveNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r4, _080C9F74 @ =gStringVar4
+ ldr r1, _080C9F78 @ =gOtherText_ContainsMove
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080C9F7C @ =sub_80C9F80
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080C9F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9F64: .4byte gMain
+_080C9F68: .4byte gStringVar1
+_080C9F6C: .4byte word_203855E
+_080C9F70: .4byte gMoveNames
+_080C9F74: .4byte gStringVar4
+_080C9F78: .4byte gOtherText_ContainsMove
+_080C9F7C: .4byte sub_80C9F80
+ thumb_func_end sub_80C9F10
+
+ thumb_func_start sub_80C9F80
+sub_80C9F80: @ 80C9F80
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _080C9FB8 @ =gBG1TilemapBuffer
+ movs r1, 0x4
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x8
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_80A3FA0
+ ldr r1, _080C9FBC @ =gUnknown_083D61F4
+ adds r0, r4, 0
+ bl sub_80F914C
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FBC: .4byte gUnknown_083D61F4
+ thumb_func_end sub_80C9F80
+
+ thumb_func_start sub_80C9FC0
+sub_80C9FC0: @ 80C9FC0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C9FD4 @ =gUnknown_03004AE4
+ ldr r1, _080C9FD8 @ =sub_806F06C
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C9FD4: .4byte gUnknown_03004AE4
+_080C9FD8: .4byte sub_806F06C
+ thumb_func_end sub_80C9FC0
+
+ thumb_func_start sub_80C9FDC
+sub_80C9FDC: @ 80C9FDC
+ push {r4,lr}
+ ldr r4, _080CA004 @ =word_203855E
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl sub_80A3E0C
+ ldrh r0, [r4]
+ ldr r1, _080CA008 @ =gStringVar2
+ bl itemid_copy_name
+ ldr r0, _080CA00C @ =gStringVar4
+ ldr r1, _080CA010 @ =gOtherText_UsedItem
+ bl StringExpandPlaceholders
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA004: .4byte word_203855E
+_080CA008: .4byte gStringVar2
+_080CA00C: .4byte gStringVar4
+_080CA010: .4byte gOtherText_UsedItem
+ thumb_func_end sub_80C9FDC
+
+ thumb_func_start ItemUseOutOfBattle_Repel
+ItemUseOutOfBattle_Repel: @ 80CA014
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _080CA050 @ =0x00004021
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080CA060
+ ldr r0, _080CA054 @ =word_203855E
+ ldrh r0, [r0]
+ bl itemid_get_quality
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl VarSet
+ bl sub_80C9FDC
+ ldr r1, _080CA058 @ =gStringVar4
+ ldr r2, _080CA05C @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA06C
+ .align 2, 0
+_080CA050: .4byte 0x00004021
+_080CA054: .4byte word_203855E
+_080CA058: .4byte gStringVar4
+_080CA05C: .4byte sub_80A5C48
+_080CA060:
+ ldr r1, _080CA074 @ =gOtherText_RepelLingers
+ ldr r2, _080CA078 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA074: .4byte gOtherText_RepelLingers
+_080CA078: .4byte sub_80A5C48
+ thumb_func_end ItemUseOutOfBattle_Repel
+
+ thumb_func_start sub_80CA07C
+sub_80CA07C: @ 80CA07C
+ push {lr}
+ bl sub_80A3E0C
+ ldr r0, _080CA090 @ =word_203855E
+ ldrh r0, [r0]
+ ldr r1, _080CA094 @ =gStringVar2
+ bl itemid_copy_name
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA090: .4byte word_203855E
+_080CA094: .4byte gStringVar2
+ thumb_func_end sub_80CA07C
+
+ thumb_func_start sub_80CA098
+sub_80CA098: @ 80CA098
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA0D0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA0C8
+ movs r0, 0x75
+ bl PlaySE
+ ldr r1, _080CA0D4 @ =gStringVar4
+ ldr r2, _080CA0D8 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA0C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA0D0: .4byte gTasks
+_080CA0D4: .4byte gStringVar4
+_080CA0D8: .4byte sub_80A5C48
+ thumb_func_end sub_80CA098
+
+ thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
+ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080CA10C @ =word_203855E
+ ldrh r0, [r0]
+ cmp r0, 0x2B
+ bne _080CA124
+ ldr r0, _080CA110 @ =0x0000084d
+ bl FlagSet
+ ldr r0, _080CA114 @ =0x0000084e
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA118 @ =gStringVar4
+ ldr r1, _080CA11C @ =gOtherText_UsedFlute
+ bl StringExpandPlaceholders
+ ldr r1, _080CA120 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ b _080CA146
+ .align 2, 0
+_080CA10C: .4byte word_203855E
+_080CA110: .4byte 0x0000084d
+_080CA114: .4byte 0x0000084e
+_080CA118: .4byte gStringVar4
+_080CA11C: .4byte gOtherText_UsedFlute
+_080CA120: .4byte gTasks
+_080CA124:
+ cmp r0, 0x2A
+ bne _080CA152
+ ldr r0, _080CA158 @ =0x0000084e
+ bl FlagSet
+ ldr r0, _080CA15C @ =0x0000084d
+ bl FlagReset
+ bl sub_80CA07C
+ ldr r0, _080CA160 @ =gStringVar4
+ ldr r1, _080CA164 @ =gOtherText_UsedRepel
+ bl StringExpandPlaceholders
+ ldr r1, _080CA168 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+_080CA146:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080CA16C @ =sub_80CA098
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x26]
+_080CA152:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA158: .4byte 0x0000084e
+_080CA15C: .4byte 0x0000084d
+_080CA160: .4byte gStringVar4
+_080CA164: .4byte gOtherText_UsedRepel
+_080CA168: .4byte gTasks
+_080CA16C: .4byte sub_80CA098
+ thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
+
+ thumb_func_start task08_080A1C44
+task08_080A1C44: @ 80CA170
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl player_avatar_init_params_reset
+ bl sub_80878A8
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task08_080A1C44
+
+ thumb_func_start sub_80CA18C
+sub_80CA18C: @ 80CA18C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8053014
+ bl sub_80C9FDC
+ ldr r1, _080CA1BC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080CA1C0 @ =gStringVar4
+ ldr r2, _080CA1C4 @ =task08_080A1C44
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA1BC: .4byte gTasks
+_080CA1C0: .4byte gStringVar4
+_080CA1C4: .4byte task08_080A1C44
+ thumb_func_end sub_80CA18C
+
+ thumb_func_start sub_80CA1C8
+sub_80CA1C8: @ 80CA1C8
+ push {lr}
+ ldr r0, _080CA1D8 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x4
+ beq _080CA1DC
+ movs r0, 0
+ b _080CA1DE
+ .align 2, 0
+_080CA1D8: .4byte gMapHeader
+_080CA1DC:
+ movs r0, 0x1
+_080CA1DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80CA1C8
+
+ thumb_func_start ItemUseOutOfBattle_EscapeRope
+ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80CA1C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080CA20C
+ ldr r1, _080CA204 @ =gUnknown_03005D00
+ ldr r0, _080CA208 @ =sub_80CA18C
+ str r0, [r1]
+ adds r0, r4, 0
+ bl SetUpItemUseOnFieldCallback
+ b _080CA21E
+ .align 2, 0
+_080CA204: .4byte gUnknown_03005D00
+_080CA208: .4byte sub_80CA18C
+_080CA20C:
+ ldr r0, _080CA224 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA21E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA224: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EscapeRope
+
+ thumb_func_start ItemUseOutOfBattle_EvolutionStone
+ItemUseOutOfBattle_EvolutionStone: @ 80CA228
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA23C @ =gUnknown_03004AE4
+ ldr r1, _080CA240 @ =sub_8070DBC
+ str r1, [r2]
+ bl sub_80C9D98
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA23C: .4byte gUnknown_03004AE4
+_080CA240: .4byte sub_8070DBC
+ thumb_func_end ItemUseOutOfBattle_EvolutionStone
+
+ thumb_func_start ItemUseInBattle_PokeBall
+ItemUseInBattle_PokeBall: @ 80CA244
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA26C
+ ldr r0, _080CA268 @ =word_203855E
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r4, 0
+ bl sub_80A7094
+ b _080CA284
+ .align 2, 0
+_080CA268: .4byte word_203855E
+_080CA26C:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r1, _080CA28C @ =gOtherText_BoxIsFull
+ ldr r2, _080CA290 @ =sub_80A5C48
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA284:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA28C: .4byte gOtherText_BoxIsFull
+_080CA290: .4byte sub_80A5C48
+ thumb_func_end ItemUseInBattle_PokeBall
+
+ thumb_func_start sub_80CA294
+sub_80CA294: @ 80CA294
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080CA2B8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA2AE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080CA2B4
+_080CA2AE:
+ adds r0, r2, 0
+ bl sub_80A7094
+_080CA2B4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA2B8: .4byte gMain
+ thumb_func_end sub_80CA294
+
+ thumb_func_start sub_80CA2BC
+sub_80CA2BC: @ 80CA2BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080CA304 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080CA2FC
+ movs r0, 0x1
+ bl PlaySE
+ ldr r4, _080CA308 @ =word_203855E
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldrh r0, [r4]
+ bl sub_803F378
+ adds r1, r0, 0
+ ldr r2, _080CA30C @ =sub_80CA294
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA2FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA304: .4byte gTasks
+_080CA308: .4byte word_203855E
+_080CA30C: .4byte sub_80CA294
+ thumb_func_end sub_80CA2BC
+
+ thumb_func_start ItemUseInBattle_StatIncrease
+ItemUseInBattle_StatIncrease: @ 80CA310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080CA35C @ =gUnknown_02024A6A
+ ldr r0, _080CA360 @ =gUnknown_02024E6C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080CA364 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080CA368 @ =word_203855E
+ ldrh r1, [r1]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r2, r4, 0
+ movs r3, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080CA374
+ ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
+ ldr r2, _080CA370 @ =sub_80A5C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA384
+ .align 2, 0
+_080CA35C: .4byte gUnknown_02024A6A
+_080CA360: .4byte gUnknown_02024E6C
+_080CA364: .4byte gPlayerParty
+_080CA368: .4byte word_203855E
+_080CA36C: .4byte gOtherText_WontHaveAnyEffect
+_080CA370: .4byte sub_80A5C48
+_080CA374:
+ ldr r0, _080CA38C @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080CA390 @ =sub_80CA2BC
+ str r0, [r1]
+ strh r2, [r1, 0x26]
+_080CA384:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA38C: .4byte gTasks
+_080CA390: .4byte sub_80CA2BC
+ thumb_func_end ItemUseInBattle_StatIncrease
+
+ thumb_func_start sub_80CA394
+sub_80CA394: @ 80CA394
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA3BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA3B4
+ bl sub_8094E4C
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_080CA3B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3BC: .4byte gPaletteFade
+ thumb_func_end sub_80CA394
+
+ thumb_func_start sub_80CA3C0
+sub_80CA3C0: @ 80CA3C0
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA3EC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080CA3F0 @ =sub_80CA394
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA3EC: .4byte gTasks
+_080CA3F0: .4byte sub_80CA394
+ thumb_func_end sub_80CA3C0
+
+ thumb_func_start ItemUseInBattle_Medicine
+ItemUseInBattle_Medicine: @ 80CA3F4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA408 @ =gUnknown_03004AE4
+ ldr r1, _080CA40C @ =sub_806FE2C
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA408: .4byte gUnknown_03004AE4
+_080CA40C: .4byte sub_806FE2C
+ thumb_func_end ItemUseInBattle_Medicine
+
+ thumb_func_start unref_sub_80CA410
+unref_sub_80CA410: @ 80CA410
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA424 @ =gUnknown_03004AE4
+ ldr r1, _080CA428 @ =sub_8070048
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA424: .4byte gUnknown_03004AE4
+_080CA428: .4byte sub_8070048
+ thumb_func_end unref_sub_80CA410
+
+ thumb_func_start ItemUseInBattle_PPRecovery
+ItemUseInBattle_PPRecovery: @ 80CA42C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA440 @ =gUnknown_03004AE4
+ ldr r1, _080CA444 @ =dp05_ether
+ str r1, [r2]
+ bl sub_80CA3C0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA440: .4byte gUnknown_03004AE4
+_080CA444: .4byte dp05_ether
+ thumb_func_end ItemUseInBattle_PPRecovery
+
+ thumb_func_start unref_sub_80CA448
+unref_sub_80CA448: @ 80CA448
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r4, _080CA494 @ =word_203855E
+ ldrh r1, [r4]
+ movs r0, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ bne _080CA4AC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, _080CA498 @ =gPlayerParty
+ ldr r1, _080CA49C @ =gStringVar1
+ bl GetMonNickname
+ ldr r4, _080CA4A0 @ =gStringVar4
+ ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080CA4A8 @ =sub_80A7094
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA4B8
+ .align 2, 0
+_080CA494: .4byte word_203855E
+_080CA498: .4byte gPlayerParty
+_080CA49C: .4byte gStringVar1
+_080CA4A0: .4byte gStringVar4
+_080CA4A4: .4byte gOtherText_SnapConfusion
+_080CA4A8: .4byte sub_80A7094
+_080CA4AC:
+ ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
+ ldr r2, _080CA4C4 @ =sub_80A5C48
+ adds r0, r5, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+_080CA4B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
+_080CA4C4: .4byte sub_80A5C48
+ thumb_func_end unref_sub_80CA448
+
+ thumb_func_start ItemUseInBattle_Escape
+ItemUseInBattle_Escape: @ 80CA4C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xD
+ movs r3, 0x14
+ bl MenuZeroFillWindowRect
+ ldr r0, _080CA4F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080CA504
+ bl sub_80C9FDC
+ ldr r1, _080CA4FC @ =gStringVar4
+ ldr r2, _080CA500 @ =sub_80A7094
+ adds r0, r4, 0
+ movs r3, 0x1
+ bl DisplayItemMessageOnField
+ b _080CA516
+ .align 2, 0
+_080CA4F8: .4byte gUnknown_020239F8
+_080CA4FC: .4byte gStringVar4
+_080CA500: .4byte sub_80A7094
+_080CA504:
+ ldr r0, _080CA51C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrb r1, [r1, 0xC]
+ adds r0, r4, 0
+ bl DisplayDadsAdviceCannotUseItemMessage
+_080CA516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA51C: .4byte gTasks
+ thumb_func_end ItemUseInBattle_Escape
+
+ thumb_func_start ItemUseOutOfBattle_EnigmaBerry
+ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA544 @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x14
+ bls _080CA53A
+ b _080CA62C
+_080CA53A:
+ lsls r0, 2
+ ldr r1, _080CA548 @ =_080CA54C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA544: .4byte word_203855E
+_080CA548: .4byte _080CA54C
+ .align 2, 0
+_080CA54C:
+ .4byte _080CA5D8
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA62C
+ .4byte _080CA5BC
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA5A0
+ .4byte _080CA62C
+ .4byte _080CA5F4
+ .4byte _080CA5F4
+ .4byte _080CA610
+_080CA5A0:
+ ldr r0, _080CA5B8 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_Medicine
+ b _080CA640
+ .align 2, 0
+_080CA5B8: .4byte gTasks
+_080CA5BC:
+ ldr r0, _080CA5D4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_SacredAsh
+ b _080CA640
+ .align 2, 0
+_080CA5D4: .4byte gTasks
+_080CA5D8:
+ ldr r0, _080CA5F0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_RareCandy
+ b _080CA640
+ .align 2, 0
+_080CA5F0: .4byte gTasks
+_080CA5F4:
+ ldr r0, _080CA60C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPUp
+ b _080CA640
+ .align 2, 0
+_080CA60C: .4byte gTasks
+_080CA610:
+ ldr r0, _080CA628 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_PPRecovery
+ b _080CA640
+ .align 2, 0
+_080CA628: .4byte gTasks
+_080CA62C:
+ ldr r0, _080CA648 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x4
+ strh r0, [r1, 0x26]
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA640:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA648: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_EnigmaBerry
+
+ thumb_func_start ItemUseInBattle_EnigmaBerry
+ItemUseInBattle_EnigmaBerry: @ 80CA64C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080CA66C @ =word_203855E
+ ldrh r0, [r0]
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x15
+ bhi _080CA6E4
+ lsls r0, 2
+ ldr r1, _080CA670 @ =_080CA674
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080CA66C: .4byte word_203855E
+_080CA670: .4byte _080CA674
+ .align 2, 0
+_080CA674:
+ .4byte _080CA6CC
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6D4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6E4
+ .4byte _080CA6DC
+_080CA6CC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_StatIncrease
+ b _080CA6EA
+_080CA6D4:
+ adds r0, r4, 0
+ bl ItemUseInBattle_Medicine
+ b _080CA6EA
+_080CA6DC:
+ adds r0, r4, 0
+ bl ItemUseInBattle_PPRecovery
+ b _080CA6EA
+_080CA6E4:
+ adds r0, r4, 0
+ bl ItemUseOutOfBattle_CannotUse
+_080CA6EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemUseInBattle_EnigmaBerry
+
+ thumb_func_start ItemUseOutOfBattle_CannotUse
+ItemUseOutOfBattle_CannotUse: @ 80CA6F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080CA70C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r1, [r1, 0xC]
+ bl DisplayDadsAdviceCannotUseItemMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080CA70C: .4byte gTasks
+ thumb_func_end ItemUseOutOfBattle_CannotUse
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mail.s b/asm/mail.s
new file mode 100644
index 000000000..5a3efbf69
--- /dev/null
+++ b/asm/mail.s
@@ -0,0 +1,892 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80F890C
+sub_80F890C: @ 80F890C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r2, _080F8958 @ =0x02000000
+ adds r1, r2, 0
+ adds r1, 0xFF
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, 0xFE
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x82
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F895C @ =sub_80EB3FC
+ str r0, [r1]
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, _080F8960 @ =ConvertEasyChatWordsToString
+ str r0, [r1]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _080F8964
+ subs r1, 0x79
+ adds r0, r2, 0
+ adds r0, 0xFA
+ strb r1, [r0]
+ b _080F896E
+ .align 2, 0
+_080F8958: .4byte 0x02000000
+_080F895C: .4byte sub_80EB3FC
+_080F8960: .4byte ConvertEasyChatWordsToString
+_080F8964:
+ adds r1, r2, 0
+ adds r1, 0xFA
+ movs r0, 0
+ strb r0, [r1]
+ movs r5, 0
+_080F896E:
+ ldr r1, _080F8994 @ =0x02000000
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8980
+ cmp r0, 0x1
+ beq _080F899C
+_080F8980:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F8998 @ =gUnknown_083E5730
+ b _080F89AC
+ .align 2, 0
+_080F8994: .4byte 0x02000000
+_080F8998: .4byte gUnknown_083E5730
+_080F899C:
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ adds r0, r1, 0
+ adds r0, 0xFA
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r1, _080F89DC @ =gUnknown_083E57A4
+_080F89AC:
+ adds r0, r1
+ str r0, [r2]
+ ldrh r0, [r4, 0x1E]
+ mov r1, sp
+ bl sub_80A2D64
+ lsls r0, 16
+ ldr r1, _080F89E0 @ =0xffff0000
+ adds r0, r1
+ movs r1, 0xCD
+ lsls r1, 17
+ cmp r0, r1
+ bhi _080F89F8
+ ldr r0, _080F89E4 @ =0x02000000
+ adds r1, r0, 0
+ adds r1, 0xFA
+ ldrb r2, [r1]
+ adds r1, r0, 0
+ cmp r2, 0x6
+ beq _080F89E8
+ cmp r2, 0x9
+ beq _080F89F0
+ b _080F89FA
+ .align 2, 0
+_080F89DC: .4byte gUnknown_083E57A4
+_080F89E0: .4byte 0xffff0000
+_080F89E4: .4byte 0x02000000
+_080F89E8:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x1
+ b _080F8A00
+_080F89F0:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0x2
+ b _080F8A00
+_080F89F8:
+ ldr r1, _080F8A20 @ =0x02000000
+_080F89FA:
+ adds r2, r1, 0
+ adds r2, 0xFB
+ movs r0, 0
+_080F8A00:
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xF4
+ str r4, [r0]
+ subs r0, 0x8
+ str r6, [r0]
+ adds r0, 0xC
+ strb r5, [r0]
+ ldr r0, _080F8A24 @ =sub_80F8D50
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8A20: .4byte 0x02000000
+_080F8A24: .4byte sub_80F8D50
+ thumb_func_end sub_80F890C
+
+ thumb_func_start sub_80F8A28
+sub_80F8A28: @ 80F8A28
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _080F8A44 @ =gMain
+ ldr r1, _080F8A48 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _080F8A3A
+ b _080F8D3C
+_080F8A3A:
+ lsls r0, 2
+ ldr r1, _080F8A4C @ =_080F8A50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F8A44: .4byte gMain
+_080F8A48: .4byte 0x0000043c
+_080F8A4C: .4byte _080F8A50
+ .align 2, 0
+_080F8A50:
+ .4byte _080F8A9C
+ .4byte _080F8AB0
+ .4byte _080F8AC8
+ .4byte _080F8ACE
+ .4byte _080F8AD4
+ .4byte _080F8ADA
+ .4byte _080F8B10
+ .4byte _080F8B1C
+ .4byte _080F8B28
+ .4byte _080F8B34
+ .4byte _080F8B3A
+ .4byte _080F8B54
+ .4byte _080F8B78
+ .4byte _080F8BA0
+ .4byte _080F8C14
+ .4byte _080F8C2C
+ .4byte _080F8C58
+ .4byte _080F8CBC
+ .4byte _080F8CC6
+_080F8A9C:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8D30
+_080F8AB0:
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, _080F8AC4 @ =0x01000200
+ add r0, sp, 0x4
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8AC4: .4byte 0x01000200
+_080F8AC8:
+ bl ResetPaletteFade
+ b _080F8D30
+_080F8ACE:
+ bl ResetTasks
+ b _080F8D30
+_080F8AD4:
+ bl ResetSpriteData
+ b _080F8D30
+_080F8ADA:
+ bl FreeAllSpritePalettes
+ ldr r0, _080F8B0C @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x32
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _080F8D30
+ .align 2, 0
+_080F8B0C: .4byte REG_BG0HOFS
+_080F8B10:
+ ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC
+ bl SetUpWindowConfig
+ b _080F8D30
+ .align 2, 0
+_080F8B18: .4byte gWindowConfig_81E6DFC
+_080F8B1C:
+ ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC
+ bl MultistepInitMenuWindowBegin
+ b _080F8D30
+ .align 2, 0
+_080F8B24: .4byte gWindowConfig_81E6DFC
+_080F8B28:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F8B32
+ b _080F8D30
+_080F8B32:
+ b _080F8D3C
+_080F8B34:
+ bl MenuZeroFillScreen
+ b _080F8D30
+_080F8B3A:
+ mov r0, sp
+ adds r0, 0x6
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _080F8B4C @ =0x06004800
+ ldr r2, _080F8B50 @ =0x01000400
+ bl CpuSet
+ b _080F8D30
+ .align 2, 0
+_080F8B4C: .4byte 0x06004800
+_080F8B50: .4byte 0x01000400
+_080F8B54:
+ ldr r2, _080F8B70 @ =gMailGraphicsTable
+ ldr r0, _080F8B74 @ =0x02000000
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F8D30
+ .align 2, 0
+_080F8B70: .4byte gMailGraphicsTable
+_080F8B74: .4byte 0x02000000
+_080F8B78:
+ ldr r2, _080F8B94 @ =gMailGraphicsTable
+ ldr r0, _080F8B98 @ =0x02000000
+ adds r0, 0xFA
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _080F8B9C @ =0x06004000
+ bl LZ77UnCompVram
+ b _080F8D30
+ .align 2, 0
+_080F8B94: .4byte gMailGraphicsTable
+_080F8B98: .4byte 0x02000000
+_080F8B9C: .4byte 0x06004000
+_080F8BA0:
+ ldr r5, _080F8C00 @ =gMailGraphicsTable
+ ldr r4, _080F8C04 @ =0x02000000
+ adds r4, 0xFA
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r3, _080F8C08 @ =gPlttBufferUnfaded
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x10]
+ movs r2, 0xF1
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x12]
+ adds r2, 0xE
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F8C0C @ =gUnknown_083E562C
+ ldr r2, _080F8C10 @ =gSaveBlock2
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x14]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x16]
+ b _080F8D30
+ .align 2, 0
+_080F8C00: .4byte gMailGraphicsTable
+_080F8C04: .4byte 0x02000000
+_080F8C08: .4byte gPlttBufferUnfaded
+_080F8C0C: .4byte gUnknown_083E562C
+_080F8C10: .4byte gSaveBlock2
+_080F8C14:
+ ldr r0, _080F8C28 @ =0x02000000
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8C20
+ b _080F8D30
+_080F8C20:
+ bl sub_80F8DA0
+ b _080F8D30
+ .align 2, 0
+_080F8C28: .4byte 0x02000000
+_080F8C2C:
+ ldr r0, _080F8C4C @ =0x02000000
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8C3A
+ bl sub_80F8E80
+_080F8C3A:
+ ldr r0, _080F8C50 @ =sub_80F8F18
+ bl SetVBlankCallback
+ ldr r2, _080F8C54 @ =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _080F8D30
+ .align 2, 0
+_080F8C4C: .4byte 0x02000000
+_080F8C50: .4byte sub_80F8F18
+_080F8C54: .4byte gPaletteFade
+_080F8C58:
+ ldr r5, _080F8C7C @ =0x02000000
+ adds r0, r5, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080F8C80
+ cmp r0, 0x2
+ beq _080F8C98
+ b _080F8D30
+ .align 2, 0
+_080F8C7C: .4byte 0x02000000
+_080F8C80:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8C94 @ =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x60
+ b _080F8CA8
+ .align 2, 0
+_080F8C94: .4byte SpriteCallbackDummy
+_080F8C98:
+ adds r0, r4, 0
+ bl sub_809D580
+ ldr r1, _080F8CB8 @ =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x28
+_080F8CA8:
+ movs r3, 0x80
+ bl sub_809D3A4
+ adds r1, r5, 0
+ adds r1, 0xFC
+ strb r0, [r1]
+ b _080F8D30
+ .align 2, 0
+_080F8CB8: .4byte SpriteCallbackDummy
+_080F8CBC:
+ bl sub_8055870
+ cmp r0, 0x1
+ bne _080F8D30
+ b _080F8D3C
+_080F8CC6:
+ ldr r1, _080F8D14 @ =REG_BG0CNT
+ ldr r2, _080F8D18 @ =0x00009f08
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D1C @ =0x00000801
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F8D20 @ =0x00000902
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x50
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _080F8D24 @ =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _080F8D28 @ =0x02000000
+ adds r0, 0xF0
+ ldr r1, _080F8D2C @ =sub_80F8F58
+ str r1, [r0]
+ movs r0, 0x1
+ b _080F8D3E
+ .align 2, 0
+_080F8D14: .4byte REG_BG0CNT
+_080F8D18: .4byte 0x00009f08
+_080F8D1C: .4byte 0x00000801
+_080F8D20: .4byte 0x00000902
+_080F8D24: .4byte gPaletteFade
+_080F8D28: .4byte 0x02000000
+_080F8D2C: .4byte sub_80F8F58
+_080F8D30:
+ ldr r1, _080F8D48 @ =gMain
+ ldr r0, _080F8D4C @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F8D3C:
+ movs r0, 0
+_080F8D3E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8D48: .4byte gMain
+_080F8D4C: .4byte 0x0000043c
+ thumb_func_end sub_80F8A28
+
+ thumb_func_start sub_80F8D50
+sub_80F8D50: @ 80F8D50
+ push {lr}
+_080F8D52:
+ bl sub_80F8A28
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D6C
+ ldr r0, _080F8D68 @ =sub_80F8F2C
+ bl SetMainCallback2
+ b _080F8D78
+ .align 2, 0
+_080F8D68: .4byte sub_80F8F2C
+_080F8D6C:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F8D52
+_080F8D78:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8D50
+
+ thumb_func_start sub_80F8D7C
+sub_80F8D7C: @ 80F8D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8D7C
+
+ thumb_func_start sub_80F8DA0
+sub_80F8DA0: @ 80F8DA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r2, _080F8E3C @ =0x02000000
+ movs r0, 0x86
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080F8E04
+ mov r8, r2
+ adds r7, r1, 0
+_080F8DBE:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ subs r0, r5
+ add r0, r8
+ mov r1, r8
+ adds r1, 0xF4
+ lsls r2, r6, 1
+ ldr r1, [r1]
+ adds r1, r2
+ ldr r2, [r7]
+ ldr r2, [r2, 0x4]
+ lsls r4, r5, 2
+ adds r2, r4, r2
+ ldr r2, [r2]
+ lsls r2, 28
+ lsrs r2, 30
+ movs r3, 0x1
+ bl ConvertEasyChatWordsToString
+ ldr r1, [r7]
+ ldr r0, [r1, 0x4]
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r0, 28
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _080F8DBE
+_080F8E04:
+ ldr r2, _080F8E40 @ =0x020000d8
+ adds r4, r2, 0
+ subs r4, 0xD8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8E48
+ ldr r1, [r2, 0x1C]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ adds r2, r0, 0
+ ldr r1, _080F8E44 @ =gOtherText_From
+ bl StringCopy
+ ldr r0, _080F8E40 @ =0x020000d8
+ bl StringLength
+ movs r2, 0x86
+ lsls r2, 1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ ldrb r1, [r1, 0x2]
+ subs r1, r0
+ b _080F8E6A
+ .align 2, 0
+_080F8E3C: .4byte 0x02000000
+_080F8E40: .4byte 0x020000d8
+_080F8E44: .4byte gOtherText_From
+_080F8E48:
+ ldr r1, _080F8E7C @ =gOtherText_From
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r1, [r0]
+ adds r1, 0x12
+ adds r0, r2, 0
+ bl sub_80F8D7C
+ movs r1, 0x86
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+_080F8E6A:
+ adds r0, r4, 0
+ adds r0, 0xF9
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8E7C: .4byte gOtherText_From
+ thumb_func_end sub_80F8DA0
+
+ thumb_func_start sub_80F8E80
+sub_80F8E80: @ 80F8E80
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _080F8F10 @ =0x02000000
+ movs r0, 0x86
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080F8EF6
+ mov r8, r1
+ adds r7, r2, 0
+_080F8E9E:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r0, r4
+ mov r1, r8
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F8EE8
+ cmp r0, 0
+ beq _080F8EE8
+ ldr r2, [r7]
+ ldr r1, [r2, 0x4]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r3, r0, 24
+ lsrs r3, 28
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r2, [r2, 0x3]
+ lsrs r1, r2, 4
+ adds r1, r3
+ lsls r2, 28
+ lsrs r2, 28
+ adds r2, r6, r2
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r6, r0, 24
+_080F8EE8:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F8E9E
+_080F8EF6:
+ ldr r0, _080F8F14 @ =0x020000d8
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ ldr r2, [r0, 0x34]
+ ldrb r2, [r2, 0x1]
+ bl MenuPrint
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F10: .4byte 0x02000000
+_080F8F14: .4byte 0x020000d8
+ thumb_func_end sub_80F8E80
+
+ thumb_func_start sub_80F8F18
+sub_80F8F18: @ 80F8F18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8F18
+
+ thumb_func_start sub_80F8F2C
+sub_80F8F2C: @ 80F8F2C
+ push {r4,lr}
+ ldr r4, _080F8F54 @ =0x02000000
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F8F42
+ bl AnimateSprites
+ bl BuildOamBuffer
+_080F8F42:
+ adds r0, r4, 0
+ adds r0, 0xF0
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F54: .4byte 0x02000000
+ thumb_func_end sub_80F8F2C
+
+ thumb_func_start sub_80F8F58
+sub_80F8F58: @ 80F8F58
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8F6C
+ ldr r0, _080F8F70 @ =0x02000000
+ adds r0, 0xF0
+ ldr r1, _080F8F74 @ =sub_80F8F78
+ str r1, [r0]
+_080F8F6C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8F70: .4byte 0x02000000
+_080F8F74: .4byte sub_80F8F78
+ thumb_func_end sub_80F8F58
+
+ thumb_func_start sub_80F8F78
+sub_80F8F78: @ 80F8F78
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F8FA8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080F8FA0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _080F8FAC @ =0x02000000
+ adds r0, 0xF0
+ ldr r1, _080F8FB0 @ =sub_80F8FB4
+ str r1, [r0]
+_080F8FA0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8FA8: .4byte gMain
+_080F8FAC: .4byte 0x02000000
+_080F8FB0: .4byte sub_80F8FB4
+ thumb_func_end sub_80F8F78
+
+ thumb_func_start sub_80F8FB4
+sub_80F8FB4: @ 80F8FB4
+ push {r4,lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9012
+ ldr r4, _080F9018 @ =0x02000000
+ adds r0, r4, 0
+ adds r0, 0xEC
+ ldr r0, [r0]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ adds r0, 0xFB
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bgt _080F9002
+ cmp r0, 0x1
+ blt _080F9002
+ adds r0, r4, 0
+ adds r0, 0xF4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1E]
+ bl sub_809D4A8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_809D608
+ adds r0, r4, 0
+ adds r0, 0xFC
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F901C @ =gSprites
+ adds r0, r1
+ bl sub_809D510
+_080F9002:
+ ldr r0, _080F9018 @ =0x02000000
+ movs r2, 0x88
+ lsls r2, 1
+ movs r1, 0
+ bl memset
+ bl ResetPaletteFade
+_080F9012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9018: .4byte 0x02000000
+_080F901C: .4byte gSprites
+ thumb_func_end sub_80F8FB4
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
new file mode 100644
index 000000000..afd35a3f8
--- /dev/null
+++ b/asm/mauville_old_man.s
@@ -0,0 +1,2018 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80F7A34
+sub_80F7A34: @ 80F7A34
+ push {r4,lr}
+ ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, r0, 0
+ adds r2, 0x29
+ strb r1, [r2]
+ movs r2, 0
+ adds r4, r0, 0x2
+ ldr r3, _080F7A68 @ =gUnknown_083E537C
+_080F7A48:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7A48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7A64: .4byte gSaveBlock1 + 0x2D94
+_080F7A68: .4byte gUnknown_083E537C
+ thumb_func_end sub_80F7A34
+
+ thumb_func_start sub_80F7A6C
+sub_80F7A6C: @ 80F7A6C
+ ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A78: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A6C
+
+ thumb_func_start sub_80F7A7C
+sub_80F7A7C: @ 80F7A7C
+ push {lr}
+ bl sub_80F83F8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A7C
+
+ thumb_func_start sub_80F7A88
+sub_80F7A88: @ 80F7A88
+ ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ movs r1, 0x4
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F7A94: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7A88
+
+ thumb_func_start sub_80F7A98
+sub_80F7A98: @ 80F7A98
+ push {lr}
+ bl sub_81099CC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7A98
+
+ thumb_func_start sub_80F7AA4
+sub_80F7AA4: @ 80F7AA4
+ push {lr}
+ ldr r0, _080F7AC8 @ =gSaveBlock2
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 17
+ cmp r0, 0x4
+ bhi _080F7B00
+ lsls r0, 2
+ ldr r1, _080F7ACC @ =_080F7AD0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7AC8: .4byte gSaveBlock2
+_080F7ACC: .4byte _080F7AD0
+ .align 2, 0
+_080F7AD0:
+ .4byte _080F7AE4
+ .4byte _080F7AEA
+ .4byte _080F7AF0
+ .4byte _080F7AF6
+ .4byte _080F7AFC
+_080F7AE4:
+ bl sub_80F7A34
+ b _080F7B00
+_080F7AEA:
+ bl sub_80F7A6C
+ b _080F7B00
+_080F7AF0:
+ bl sub_80F7A98
+ b _080F7B00
+_080F7AF6:
+ bl sub_80F7A7C
+ b _080F7B00
+_080F7AFC:
+ bl sub_80F7A88
+_080F7B00:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7AA4
+
+ thumb_func_start GetCurrentMauvilleOldMan
+GetCurrentMauvilleOldMan: @ 80F7B08
+ ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080F7B10: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end GetCurrentMauvilleOldMan
+
+ thumb_func_start sub_80F7B14
+sub_80F7B14: @ 80F7B14
+ push {r4,lr}
+ ldr r4, _080F7B28 @ =gScriptResult
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B28: .4byte gScriptResult
+ thumb_func_end sub_80F7B14
+
+ thumb_func_start sub_80F7B2C
+sub_80F7B2C: @ 80F7B2C
+ ldr r0, _080F7B38 @ =gScriptResult
+ ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94
+ adds r1, 0x29
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7B38: .4byte gScriptResult
+_080F7B3C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7B2C
+
+ thumb_func_start sub_80F7B40
+sub_80F7B40: @ 80F7B40
+ push {r4,r5,lr}
+ ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94
+ adds r0, r5, 0
+ adds r0, 0x1A
+ ldr r4, _080F7B9C @ =gSaveBlock2
+ adds r1, r4, 0
+ bl StringCopy
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x25
+ adds r4, 0xA
+_080F7B58:
+ adds r1, r3, r2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F7B58
+ movs r2, 0
+ movs r0, 0x29
+ adds r0, r5
+ mov r12, r0
+ adds r4, r5, 0x2
+ adds r3, r5, 0
+ adds r3, 0xE
+_080F7B78:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080F7B78
+ movs r0, 0x1
+ mov r1, r12
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7B98: .4byte gSaveBlock1 + 0x2D94
+_080F7B9C: .4byte gSaveBlock2
+ thumb_func_end sub_80F7B40
+
+ thumb_func_start sub_80F7BA0
+sub_80F7BA0: @ 80F7BA0
+ push {r4-r7,lr}
+ ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94
+ ldr r0, _080F7C4C @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ adds r5, 0xE
+ cmp r0, 0
+ bne _080F7BB2
+ adds r5, r1, 0x2
+_080F7BB2:
+ ldr r2, _080F7C50 @ =gStringVar4
+ adds r4, r2, 0
+ movs r6, 0
+_080F7BB8:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ adds r7, r6, 0x1
+ cmp r2, r4
+ beq _080F7BDA
+ movs r1, 0x37
+_080F7BCC:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BD4
+ strb r1, [r4]
+_080F7BD4:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BCC
+_080F7BDA:
+ adds r4, 0x1
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C02
+ movs r1, 0x37
+_080F7BF4:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7BFC
+ strb r1, [r4]
+_080F7BFC:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7BF4
+_080F7C02:
+ adds r4, 0x1
+ movs r0, 0xFE
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r2, 0
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ cmp r2, r4
+ beq _080F7C2A
+ movs r1, 0x37
+_080F7C1C:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F7C24
+ strb r1, [r4]
+_080F7C24:
+ adds r4, 0x1
+ cmp r2, r4
+ bne _080F7C1C
+_080F7C2A:
+ cmp r6, 0
+ bne _080F7C3A
+ movs r0, 0xFC
+ strb r0, [r2]
+ adds r2, 0x1
+ movs r0, 0xF
+ strb r0, [r2]
+ adds r2, 0x1
+_080F7C3A:
+ lsls r0, r7, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F7BB8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C48: .4byte gSaveBlock1 + 0x2D94
+_080F7C4C: .4byte gUnknown_0202E8CC
+_080F7C50: .4byte gStringVar4
+ thumb_func_end sub_80F7BA0
+
+ thumb_func_start sub_80F7C54
+sub_80F7C54: @ 80F7C54
+ push {lr}
+ ldr r0, _080F7C6C @ =gUnknown_0202E8CC
+ ldrb r0, [r0]
+ bl sub_80F7F80
+ bl MenuDisplayMessageBox
+ bl ScriptContext1_Stop
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7C6C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F7C54
+
+ thumb_func_start sub_80F7C70
+sub_80F7C70: @ 80F7C70
+ ldr r0, _080F7C7C @ =gScriptResult
+ ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94
+ ldrb r1, [r1, 0x1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7C7C: .4byte gScriptResult
+_080F7C80: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C70
+
+ thumb_func_start sub_80F7C84
+sub_80F7C84: @ 80F7C84
+ ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7C8C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7C84
+
+ thumb_func_start sub_80F7C90
+sub_80F7C90: @ 80F7C90
+ push {lr}
+ bl sub_80EB8EC
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F7CA8 @ =0x0000ffff
+ cmp r1, r0
+ bne _080F7CB0
+ ldr r1, _080F7CAC @ =gScriptResult
+ movs r0, 0
+ b _080F7CBA
+ .align 2, 0
+_080F7CA8: .4byte 0x0000ffff
+_080F7CAC: .4byte gScriptResult
+_080F7CB0:
+ ldr r0, _080F7CC0 @ =gStringVar1
+ bl sub_80EB3FC
+ ldr r1, _080F7CC4 @ =gScriptResult
+ movs r0, 0x1
+_080F7CBA:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CC0: .4byte gStringVar1
+_080F7CC4: .4byte gScriptResult
+ thumb_func_end sub_80F7C90
+
+ thumb_func_start sub_80F7CC8
+sub_80F7CC8: @ 80F7CC8
+ push {lr}
+ ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0xA
+ bne _080F7CE4
+ ldr r1, _080F7CE0 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ strb r0, [r2, 0x1]
+ b _080F7CEA
+ .align 2, 0
+_080F7CDC: .4byte gSaveBlock1 + 0x2D94
+_080F7CE0: .4byte gScriptResult
+_080F7CE4:
+ ldr r1, _080F7CF0 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_080F7CEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7CF0: .4byte gScriptResult
+ thumb_func_end sub_80F7CC8
+
+ thumb_func_start sub_80F7CF4
+sub_80F7CF4: @ 80F7CF4
+ push {r4-r6,lr}
+ ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ bne _080F7D02
+ bl sub_80F7DC0
+_080F7D02:
+ ldrb r0, [r5, 0x1]
+ lsls r0, 1
+ adds r6, r5, 0x4
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _080F7D54 @ =0x0000ffff
+ cmp r1, r0
+ beq _080F7D68
+ bl Random
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x7
+ ands r4, r0
+ ldr r0, _080F7D58 @ =gStringVar4
+ ldrb r1, [r5, 0x1]
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ adds r2, r0, 0
+ ldr r1, _080F7D5C @ =gOtherText_Is
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080F7D60 @ =gUnknown_083E5388
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r1, _080F7D64 @ =gOtherText_DontYouAgree
+ bl StringCopy
+ b _080F7D88
+ .align 2, 0
+_080F7D50: .4byte gSaveBlock1 + 0x2D94
+_080F7D54: .4byte 0x0000ffff
+_080F7D58: .4byte gStringVar4
+_080F7D5C: .4byte gOtherText_Is
+_080F7D60: .4byte gUnknown_083E5388
+_080F7D64: .4byte gOtherText_DontYouAgree
+_080F7D68:
+ ldr r0, _080F7DA0 @ =gStringVar4
+ ldr r3, _080F7DA4 @ =gUnknown_083E53A8
+ ldrb r1, [r5, 0x2]
+ adds r2, r1, 0x1
+ strb r2, [r5, 0x2]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0
+ adds r2, 0x18
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+_080F7D88:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F7DA8
+ movs r0, 0xA
+ b _080F7DAC
+ .align 2, 0
+_080F7DA0: .4byte gStringVar4
+_080F7DA4: .4byte gUnknown_083E53A8
+_080F7DA8:
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+_080F7DAC:
+ strb r0, [r5, 0x1]
+ ldr r1, _080F7DBC @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7DBC: .4byte gScriptResult
+ thumb_func_end sub_80F7CF4
+
+ thumb_func_start sub_80F7DC0
+sub_80F7DC0: @ 80F7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r1, _080F7E84 @ =gUnknown_083E53C8
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ movs r5, 0
+ movs r0, 0x2
+ add r0, sp
+ mov r8, r0
+ ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94
+ adds r1, 0x18
+ adds r3, r1, 0
+_080F7DE4:
+ adds r0, r3, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F7DE4
+ movs r5, 0
+ ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
+ adds r2, 0x4
+ mov r9, r2
+ adds r6, r1, 0
+_080F7DFC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r5, 0x1
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r6, r5
+ ldrb r7, [r2]
+ adds r1, r6, r1
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r7, [r1]
+ lsls r4, 16
+ lsrs r5, r4, 16
+ cmp r5, 0x7
+ bls _080F7DFC
+ movs r3, 0
+ mov r10, r3
+ movs r5, 0
+_080F7E2A:
+ lsls r4, r5, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl sub_80EAE88
+ add r4, r8
+ strh r0, [r4]
+ add r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _080F7E2A
+ movs r0, 0
+ ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
+ strb r0, [r2, 0x2]
+ movs r7, 0
+ movs r5, 0
+_080F7E56:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bhi _080F7E90
+ cmp r7, 0x7
+ bhi _080F7E90
+ lsls r0, r5, 1
+ add r0, r9
+ ldr r1, _080F7E8C @ =0x0000ffff
+ strh r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, r5, 0x1
+ b _080F7EE2
+ .align 2, 0
+_080F7E84: .4byte gUnknown_083E53C8
+_080F7E88: .4byte gSaveBlock1 + 0x2D94
+_080F7E8C: .4byte 0x0000ffff
+_080F7E90:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ adds r4, r5, 0x1
+ lsls r6, r5, 1
+ cmp r5, 0x5
+ bhi _080F7ECC
+ mov r3, r8
+ ldrh r0, [r3]
+ b _080F7EC2
+_080F7EB2:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r5, 0x5
+ bhi _080F7ECC
+ lsls r0, r1, 2
+ adds r0, r3, r0
+ ldrh r0, [r0]
+_080F7EC2:
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bgt _080F7EB2
+_080F7ECC:
+ cmp r1, 0x6
+ bne _080F7ED2
+ movs r1, 0
+_080F7ED2:
+ lsls r0, r1, 2
+ add r0, sp
+ ldrh r0, [r0]
+ bl sub_80EB784
+ mov r2, r9
+ adds r1, r2, r6
+ strh r0, [r1]
+_080F7EE2:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F7E56
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7DC0
+
+ thumb_func_start sub_80F7EFC
+sub_80F7EFC: @ 80F7EFC
+ ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94
+ adds r0, 0x29
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7F08: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7EFC
+
+ thumb_func_start sub_80F7F0C
+sub_80F7F0C: @ 80F7F0C
+ ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_080F7F14: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F7F0C
+
+ thumb_func_start sub_80F7F18
+sub_80F7F18: @ 80F7F18
+ push {lr}
+ bl sub_8109A20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F18
+
+ thumb_func_start sub_80F7F24
+sub_80F7F24: @ 80F7F24
+ push {lr}
+ bl sub_80F8428
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F24
+
+ thumb_func_start sub_80F7F30
+sub_80F7F30: @ 80F7F30
+ push {lr}
+ bl GetCurrentMauvilleOldMan
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F7F76
+ lsls r0, 2
+ ldr r1, _080F7F48 @ =_080F7F4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7F48: .4byte _080F7F4C
+ .align 2, 0
+_080F7F4C:
+ .4byte _080F7F60
+ .4byte _080F7F66
+ .4byte _080F7F72
+ .4byte _080F7F6C
+ .4byte _080F7F76
+_080F7F60:
+ bl sub_80F7EFC
+ b _080F7F76
+_080F7F66:
+ bl sub_80F7F0C
+ b _080F7F76
+_080F7F6C:
+ bl sub_80F7F24
+ b _080F7F76
+_080F7F72:
+ bl sub_80F7F18
+_080F7F76:
+ bl sub_80F83D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7F30
+
+ thumb_func_start sub_80F7F80
+sub_80F7F80: @ 80F7F80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F7FA8 @ =sub_80F8184
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F7FAC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x12]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7FA8: .4byte sub_80F8184
+_080F7FAC: .4byte gTasks
+ thumb_func_end sub_80F7F80
+
+ thumb_func_start sub_80F7FB0
+sub_80F7FB0: @ 80F7FB0
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ bls _080F7FBE
+ b _080F817A
+_080F7FBE:
+ lsls r0, 2
+ ldr r1, _080F7FC8 @ =_080F7FCC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F7FC8: .4byte _080F7FCC
+ .align 2, 0
+_080F7FCC:
+ .4byte _080F7FE4
+ .4byte _080F817A
+ .4byte _080F8040
+ .4byte _080F8074
+ .4byte _080F8074
+ .4byte _080F817A
+_080F7FE4:
+ ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94
+ ldr r0, _080F8038 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0xE
+ cmp r0, 0
+ bne _080F7FF4
+ adds r1, r2, 0x2
+_080F7FF4:
+ adds r2, r1, 0
+ adds r1, r6, 0
+ adds r1, 0xC
+ movs r3, 0x5
+_080F7FFC:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F7FFC
+ ldr r2, _080F803C @ =0x0000ffff
+ adds r4, r2, 0
+ movs r2, 0
+ adds r1, r6, 0
+ adds r1, 0x18
+ movs r3, 0x5
+_080F8016:
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ strh r2, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ strh r2, [r1, 0x6]
+ adds r1, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F8016
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x4]
+ b _080F817A
+ .align 2, 0
+_080F8034: .4byte gSaveBlock1 + 0x2D94
+_080F8038: .4byte gUnknown_0202E8CC
+_080F803C: .4byte 0x0000ffff
+_080F8040:
+ ldrb r1, [r6]
+ lsls r1, 1
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrh r4, [r0]
+ lsrs r0, r4, 9
+ ldr r1, _080F8070 @ =0x000001ff
+ ands r1, r4
+ bl sub_814A2D0
+ adds r1, r0, 0
+ movs r0, 0
+ strh r0, [r6, 0x4]
+ movs r2, 0x3
+ ands r2, r4
+ lsrs r4, 3
+ movs r0, 0x1
+ ands r4, r0
+ adds r2, r4
+ adds r0, r6, 0
+ bl sub_814A2EC
+ b _080F817A
+ .align 2, 0
+_080F8070: .4byte 0x000001ff
+_080F8074:
+ ldrb r1, [r6, 0x1]
+ lsls r0, r1, 3
+ adds r0, 0x18
+ adds r7, r6, r0
+ ldrb r0, [r6, 0x3]
+ cmp r0, 0x1
+ beq _080F8124
+ cmp r0, 0x1
+ bgt _080F808C
+ cmp r0, 0
+ beq _080F8092
+ b _080F817A
+_080F808C:
+ cmp r0, 0xFE
+ beq _080F8170
+ b _080F817A
+_080F8092:
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0
+ bne _080F80D0
+ cmp r1, 0x6
+ beq _080F80A2
+ ldrh r0, [r7]
+ cmp r0, 0xFF
+ bne _080F80A6
+_080F80A2:
+ movs r0, 0xFE
+ b _080F8178
+_080F80A6:
+ ldrh r0, [r7, 0x2]
+ strb r0, [r6, 0x2]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F80CA
+ movs r1, 0x3
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0xF9
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStart
+_080F80CA:
+ movs r0, 0x1
+ strb r0, [r6, 0x3]
+ b _080F8114
+_080F80D0:
+ ldrh r1, [r6, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xA
+ ble _080F80E0
+ ldrh r0, [r6, 0x6]
+ subs r0, 0x2
+ strh r0, [r6, 0x6]
+_080F80E0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F80EE
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x40
+ b _080F80F2
+_080F80EE:
+ ldrh r0, [r6, 0x8]
+ subs r0, 0x40
+_080F80F2:
+ strh r0, [r6, 0x8]
+ ldr r4, _080F811C @ =gMPlay_SE2
+ ldr r5, _080F8120 @ =0x0000ffff
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+_080F8114:
+ ldrb r0, [r6, 0x2]
+ subs r0, 0x1
+ strb r0, [r6, 0x2]
+ b _080F817A
+ .align 2, 0
+_080F811C: .4byte gMPlay_SE2
+_080F8120: .4byte 0x0000ffff
+_080F8124:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strb r0, [r6, 0x1]
+ strb r1, [r6, 0x3]
+ ldrh r0, [r7]
+ cmp r0, 0x32
+ bhi _080F817A
+ ldrh r0, [r7, 0x6]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r6, 0x6]
+ ldr r4, _080F8168 @ =gMPlay_SE2
+ ldr r5, _080F816C @ =0x0000ffff
+ ldrh r2, [r6, 0x6]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayVolumeControl
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ldrh r7, [r7, 0x4]
+ adds r0, r7
+ strh r0, [r6, 0x8]
+ movs r0, 0x8
+ ldrsh r2, [r6, r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl m4aMPlayPitchControl
+ b _080F817A
+ .align 2, 0
+_080F8168: .4byte gMPlay_SE2
+_080F816C: .4byte 0x0000ffff
+_080F8170:
+ ldr r0, _080F8180 @ =gMPlay_SE2
+ bl m4aMPlayStop
+ movs r0, 0xFF
+_080F8178:
+ strb r0, [r6, 0x3]
+_080F817A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8180: .4byte gMPlay_SE2
+ thumb_func_end sub_80F7FB0
+
+ thumb_func_start sub_80F8184
+sub_80F8184: @ 80F8184
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F81B4 @ =gTasks
+ adds r5, r0, r1
+ ldr r1, _080F81B8 @ =gUnknown_03005DA0
+ adds r0, r5, 0
+ bl sub_80F7FB0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bls _080F81A8
+ b _080F83C8
+_080F81A8:
+ lsls r0, 2
+ ldr r1, _080F81BC @ =_080F81C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F81B4: .4byte gTasks
+_080F81B8: .4byte gUnknown_03005DA0
+_080F81BC: .4byte _080F81C0
+ .align 2, 0
+_080F81C0:
+ .4byte _080F81D8
+ .4byte _080F8218
+ .4byte _080F8228
+ .4byte _080F82D8
+ .4byte _080F83B8
+ .4byte _080F82C6
+_080F81D8:
+ bl sub_80F7BA0
+ ldr r4, _080F820C @ =gMenuWindowPtr
+ ldr r0, [r4]
+ ldr r1, _080F8210 @ =gWindowConfig_81E6CE4
+ bl InitWindowFromConfig
+ ldr r0, [r4]
+ ldr r1, _080F8214 @ =gStringVar4
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x2
+ movs r3, 0x4
+ bl sub_8002EB0
+ movs r0, 0
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strh r0, [r5, 0x10]
+ movs r0, 0x4
+ bl FadeOutBGMTemporarily
+ movs r0, 0x1
+ b _080F83C6
+ .align 2, 0
+_080F820C: .4byte gMenuWindowPtr
+_080F8210: .4byte gWindowConfig_81E6CE4
+_080F8214: .4byte gStringVar4
+_080F8218:
+ bl IsBGMPausedOrStopped
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F8224
+ b _080F83C8
+_080F8224:
+ movs r0, 0x2
+ b _080F83C6
+_080F8228:
+ ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0xE
+ ldrsh r1, [r5, r2]
+ ldr r0, _080F8244 @ =gStringVar4
+ adds r1, r0
+ movs r3, 0
+ ldrb r0, [r1]
+ ldr r7, _080F8248 @ =gUnknown_03005DA0
+ ldrh r2, [r5, 0x12]
+ ldr r6, _080F824C @ =gUnknown_020388BC
+ b _080F825A
+ .align 2, 0
+_080F8240: .4byte gSaveBlock1 + 0x2D94
+_080F8244: .4byte gStringVar4
+_080F8248: .4byte gUnknown_03005DA0
+_080F824C: .4byte gUnknown_020388BC
+_080F8250:
+ adds r1, 0x1
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrb r0, [r1]
+_080F825A:
+ cmp r0, 0
+ beq _080F826A
+ cmp r0, 0xFE
+ beq _080F826A
+ cmp r0, 0xFC
+ beq _080F826A
+ cmp r0, 0xFF
+ bne _080F8250
+_080F826A:
+ cmp r2, 0
+ bne _080F8278
+ movs r0, 0x10
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0x2
+ b _080F8282
+_080F8278:
+ movs r2, 0x10
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0xE
+_080F8282:
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ lsrs r0, 3
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ strh r1, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ adds r1, r3, 0
+ bl __divsi3
+ movs r1, 0
+ strh r0, [r7, 0x4]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080F82AC
+ movs r0, 0x1
+ strh r0, [r7, 0x4]
+_080F82AC:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82BE
+ movs r0, 0x3
+ b _080F82C0
+_080F82BE:
+ movs r0, 0x5
+_080F82C0:
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ b _080F83C8
+_080F82C6:
+ ldrh r1, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080F82D2
+ b _080F83C4
+_080F82D2:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F82D8:
+ ldr r1, _080F8304 @ =gStringVar4
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ adds r0, r1
+ ldrb r4, [r0]
+ cmp r4, 0xFF
+ bne _080F830C
+ movs r0, 0xC8
+ lsls r0, 1
+ movs r1, 0x6
+ bl FadeInNewBGM
+ ldr r0, _080F8308 @ =gMPlay_SE2
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ bl EnableBothScriptContexts
+ adds r0, r6, 0
+ bl DestroyTask
+ b _080F83C8
+ .align 2, 0
+_080F8304: .4byte gStringVar4
+_080F8308: .4byte gMPlay_SE2
+_080F830C:
+ cmp r4, 0
+ bne _080F832C
+ ldr r0, _080F8328 @ =gMenuWindowPtr
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8328: .4byte gMenuWindowPtr
+_080F832C:
+ cmp r4, 0xFE
+ bne _080F8340
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0xC]
+ b _080F83C8
+_080F8340:
+ cmp r4, 0xFC
+ bne _080F8354
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x2
+ strh r0, [r5, 0xE]
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ movs r0, 0x8
+ strh r0, [r5, 0xC]
+ b _080F83C8
+_080F8354:
+ cmp r4, 0x37
+ bne _080F8374
+ movs r4, 0
+ strb r4, [r0]
+ ldr r0, _080F8370 @ =gMenuWindowPtr
+ ldr r0, [r0]
+ bl sub_8003418
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ strh r4, [r5, 0xC]
+ b _080F83C8
+ .align 2, 0
+_080F8370: .4byte gMenuWindowPtr
+_080F8374:
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080F8394
+ cmp r0, 0x1
+ bgt _080F8386
+ cmp r0, 0
+ beq _080F838C
+ b _080F83C8
+_080F8386:
+ cmp r0, 0x2
+ beq _080F83A0
+ b _080F83C8
+_080F838C:
+ ldr r0, _080F839C @ =gMenuWindowPtr
+ ldr r0, [r0]
+ bl sub_8003418
+_080F8394:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ b _080F83C8
+ .align 2, 0
+_080F839C: .4byte gMenuWindowPtr
+_080F83A0:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0xE]
+ strh r1, [r5, 0xA]
+ ldr r0, _080F83B4 @ =gUnknown_03005DA0
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0xC]
+ movs r0, 0x4
+ b _080F83C6
+ .align 2, 0
+_080F83B4: .4byte gUnknown_03005DA0
+_080F83B8:
+ ldrh r0, [r5, 0xC]
+ subs r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F83C8
+_080F83C4:
+ movs r0, 0x3
+_080F83C6:
+ strh r0, [r5, 0x8]
+_080F83C8:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F8184
+
+ thumb_func_start sub_80F83D0
+sub_80F83D0: @ 80F83D0
+ push {r4,lr}
+ ldr r4, _080F83F4 @ =0x00004010
+ bl GetCurrentMauvilleOldMan
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x8A
+ lsls r0, 15
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F83F4: .4byte 0x00004010
+ thumb_func_end sub_80F83D0
+
+ thumb_func_start sub_80F83F8
+sub_80F83F8: @ 80F83F8
+ push {r4,lr}
+ ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ movs r4, 0
+ movs r3, 0xFF
+ adds r1, r0, 0x4
+ movs r2, 0x3
+_080F840C:
+ strb r4, [r1]
+ ldrb r0, [r1, 0x4]
+ orrs r0, r3
+ strb r0, [r1, 0x4]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080F840C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8424: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F83F8
+
+ thumb_func_start sub_80F8428
+sub_80F8428: @ 80F8428
+ ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ movs r1, 0x3
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F8434: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F8428
+
+ thumb_func_start sub_80F8438
+sub_80F8438: @ 80F8438
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x32
+ bne _080F8444
+ movs r0, 0
+_080F8444:
+ bl sub_8053108
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8438
+
+ thumb_func_start sub_80F844C
+sub_80F844C: @ 80F844C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080F8460 @ =gUnknown_083E53E0
+_080F8454:
+ ldrb r0, [r1]
+ cmp r0, r3
+ bne _080F8464
+ adds r0, r1, 0
+ b _080F846E
+ .align 2, 0
+_080F8460: .4byte gUnknown_083E53E0
+_080F8464:
+ adds r1, 0x10
+ adds r2, 0x1
+ cmp r2, 0x23
+ ble _080F8454
+ ldr r0, _080F8474 @ =gUnknown_083E5610
+_080F846E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F8474: .4byte gUnknown_083E5610
+ thumb_func_end sub_80F844C
+
+ thumb_func_start sub_80F8478
+sub_80F8478: @ 80F8478
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x4]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8478
+
+ thumb_func_start sub_80F8484
+sub_80F8484: @ 80F8484
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0xC]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8484
+
+ thumb_func_start sub_80F8490
+sub_80F8490: @ 80F8490
+ push {lr}
+ bl sub_80F844C
+ ldr r0, [r0, 0x8]
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8490
+
+ thumb_func_start sub_80F849C
+sub_80F849C: @ 80F849C
+ push {lr}
+ movs r1, 0
+ ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ beq _080F84BC
+ adds r2, 0x4
+_080F84AA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F84BC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F84AA
+_080F84BC:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F84C4: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_80F849C
+
+ thumb_func_start sub_80F84C8
+sub_80F84C8: @ 80F84C8
+ lsls r0, 2
+ ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r1, 8
+ orrs r2, r1
+ ldrb r1, [r0, 0x2]
+ lsls r1, 16
+ orrs r2, r1
+ ldrb r0, [r0, 0x3]
+ lsls r0, 24
+ orrs r2, r0
+ adds r0, r2, 0
+ bx lr
+ .align 2, 0
+_080F84E8: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84C8
+
+ thumb_func_start sub_80F84EC
+sub_80F84EC: @ 80F84EC
+ lsls r0, 2
+ ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8
+ adds r0, r2
+ strb r1, [r0]
+ lsrs r2, r1, 8
+ strb r2, [r0, 0x1]
+ lsrs r2, r1, 16
+ strb r2, [r0, 0x2]
+ lsrs r1, 24
+ strb r1, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080F8504: .4byte gSaveBlock1 + 0x2DB8
+ thumb_func_end sub_80F84EC
+
+ thumb_func_start sub_80F8508
+sub_80F8508: @ 80F8508
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ bl sub_80F8438
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84C8
+ cmp r4, r0
+ bhi _080F852C
+ movs r0, 0
+ b _080F852E
+ .align 2, 0
+_080F8528: .4byte gSaveBlock1 + 0x2D94
+_080F852C:
+ movs r0, 0x1
+_080F852E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8508
+
+ thumb_func_start sub_80F8534
+sub_80F8534: @ 80F8534
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r4, r0, 3
+ subs r4, r0
+ ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl memcpy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F855C: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8534
+
+ thumb_func_start sub_80F8560
+sub_80F8560: @ 80F8560
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r5, r0, 3
+ subs r5, r0
+ ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C
+ adds r5, r0
+ adds r0, r6, 0
+ bl StringLength
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8594: .4byte gSaveBlock1 + 0x2D9C
+ thumb_func_end sub_80F8560
+
+ thumb_func_start sub_80F8598
+sub_80F8598: @ 80F8598
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94
+ adds r0, 0x4
+ adds r0, r5, r0
+ strb r6, [r0]
+ ldr r1, _080F85F0 @ =gSaveBlock2
+ adds r0, r5, 0
+ bl sub_80F8560
+ lsls r4, r6, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_80F84EC
+ ldr r5, _080F85F4 @ =gStringVar1
+ adds r0, r4, 0
+ bl sub_80F8438
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F85F8 @ =gStringVar2
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F85EC: .4byte gSaveBlock1 + 0x2D94
+_080F85F0: .4byte gSaveBlock2
+_080F85F4: .4byte gStringVar1
+_080F85F8: .4byte gStringVar2
+ thumb_func_end sub_80F8598
+
+ thumb_func_start sub_80F85FC
+sub_80F85FC: @ 80F85FC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r5, 0
+ cmp r5, r6
+ bge _080F8612
+_080F8608:
+ adds r0, r7, r5
+ strb r5, [r0]
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080F8608
+_080F8612:
+ cmp r6, 0
+ ble _080F8648
+ adds r5, r6, 0
+_080F8618:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r4, r7, r4
+ ldrb r2, [r4]
+ adds r0, r7, r0
+ ldrb r1, [r0]
+ strb r1, [r4]
+ strb r2, [r0]
+ subs r5, 0x1
+ cmp r5, 0
+ bne _080F8618
+_080F8648:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F85FC
+
+ thumb_func_start sub_80F8650
+sub_80F8650: @ 80F8650
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r7, sp
+ mov r10, sp
+ ldr r0, _080F86D4 @ =gUnknown_083E5620
+ ldr r0, [r0]
+ lsls r0, 3
+ lsrs r0, 3
+ adds r0, 0x3
+ lsrs r0, 2
+ lsls r0, 2
+ mov r1, sp
+ subs r1, r0
+ mov sp, r1
+ mov r8, sp
+ mov r0, sp
+ movs r1, 0x24
+ bl sub_80F85FC
+ movs r5, 0
+ ldr r0, _080F86D8 @ =gUnknown_083E53E0
+ mov r9, r0
+ ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94
+_080F8686:
+ mov r1, r8
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 4
+ add r0, r9
+ ldrb r4, [r0]
+ ldrb r6, [r0, 0x1]
+ movs r1, 0
+ ldrb r0, [r3, 0x4]
+ cmp r0, r4
+ beq _080F86AC
+ ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98
+_080F869E:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080F86AC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _080F869E
+_080F86AC:
+ cmp r1, 0x4
+ bne _080F86E4
+ adds r0, r4, 0
+ str r3, [r7]
+ bl sub_80F8438
+ ldr r3, [r7]
+ cmp r0, r6
+ bcc _080F86E4
+ movs r0, 0x1
+ strb r0, [r3, 0x1]
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+ b _080F86EC
+ .align 2, 0
+_080F86D4: .4byte gUnknown_083E5620
+_080F86D8: .4byte gUnknown_083E53E0
+_080F86DC: .4byte gSaveBlock1 + 0x2D94
+_080F86E0: .4byte gSaveBlock1 + 0x2D98
+_080F86E4:
+ adds r5, 0x1
+ cmp r5, 0x23
+ ble _080F8686
+ movs r0, 0
+_080F86EC:
+ mov sp, r10
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F8650
+
+ thumb_func_start sub_80F8700
+sub_80F8700: @ 80F8700
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94
+ adds r0, 0x4
+ adds r0, r5, r0
+ ldrb r6, [r0]
+ ldr r4, _080F874C @ =gStringVar1
+ adds r0, r5, 0
+ bl sub_80F84C8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl ConvertIntToDecimalStringN
+ ldr r4, _080F8750 @ =gStringVar2
+ adds r0, r6, 0
+ bl sub_80F8490
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _080F8754 @ =gStringVar3
+ adds r0, r5, 0
+ bl sub_80F8534
+ adds r0, r6, 0
+ bl sub_80F8484
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8748: .4byte gSaveBlock1 + 0x2D94
+_080F874C: .4byte gStringVar1
+_080F8750: .4byte gStringVar2
+_080F8754: .4byte gStringVar3
+ thumb_func_end sub_80F8700
+
+ thumb_func_start sub_80F8758
+sub_80F8758: @ 80F8758
+ push {r4-r6,lr}
+ bl sub_80F849C
+ adds r3, r0, 0
+ lsls r3, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ bl MenuDrawTextWindow
+ movs r4, 0
+ ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080F87A4
+ adds r6, r1, 0x4
+ movs r5, 0x80
+ lsls r5, 18
+_080F8784:
+ bl sub_80F8478
+ lsrs r2, r5, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r1
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080F87A4
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F8784
+_080F87A4:
+ ldr r0, _080F87C0 @ =gPCText_Cancel
+ lsls r2, r4, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F87BC: .4byte gSaveBlock1 + 0x2D94
+_080F87C0: .4byte gPCText_Cancel
+ thumb_func_end sub_80F8758
+
+ thumb_func_start sub_80F87C4
+sub_80F87C4: @ 80F87C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F87E4 @ =gTasks
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _080F87E8
+ cmp r5, 0x1
+ beq _080F8810
+ b _080F8862
+ .align 2, 0
+_080F87E4: .4byte gTasks
+_080F87E8:
+ bl sub_80F8758
+ bl sub_80F849C
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ str r5, [sp]
+ movs r0, 0x18
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ bl InitMenu
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080F8862
+_080F8810:
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _080F8862
+ adds r0, 0x1
+ cmp r4, r0
+ beq _080F8832
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080F8840
+_080F8832:
+ ldr r1, _080F883C @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ b _080F8848
+ .align 2, 0
+_080F883C: .4byte gScriptResult
+_080F8840:
+ ldr r0, _080F886C @ =gScriptResult
+ strh r5, [r0]
+ ldr r0, _080F8870 @ =gUnknown_03000748
+ strb r4, [r0]
+_080F8848:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x19
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080F8862:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F886C: .4byte gScriptResult
+_080F8870: .4byte gUnknown_03000748
+ thumb_func_end sub_80F87C4
+
+ thumb_func_start sub_80F8874
+sub_80F8874: @ 80F8874
+ push {lr}
+ ldr r0, _080F8884 @ =sub_80F87C4
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8884: .4byte sub_80F87C4
+ thumb_func_end sub_80F8874
+
+ thumb_func_start sub_80F8888
+sub_80F8888: @ 80F8888
+ push {lr}
+ ldr r0, _080F8898 @ =gUnknown_03000748
+ ldrb r0, [r0]
+ bl sub_80F8700
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F8898: .4byte gUnknown_03000748
+ thumb_func_end sub_80F8888
+
+ thumb_func_start sub_80F889C
+sub_80F889C: @ 80F889C
+ push {lr}
+ bl sub_80F849C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F889C
+
+ thumb_func_start sub_80F88AC
+sub_80F88AC: @ 80F88AC
+ push {r4,r5,lr}
+ ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94
+ ldr r5, _080F88CC @ =gUnknown_03000748
+ ldrb r0, [r5]
+ adds r1, 0x4
+ adds r1, r0, r1
+ ldrb r4, [r1]
+ bl sub_80F8508
+ cmp r0, 0x1
+ beq _080F88D0
+ movs r0, 0
+ b _080F88DA
+ .align 2, 0
+_080F88C8: .4byte gSaveBlock1 + 0x2D94
+_080F88CC: .4byte gUnknown_03000748
+_080F88D0:
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_80F8598
+ movs r0, 0x1
+_080F88DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88AC
+
+ thumb_func_start sub_80F88E0
+sub_80F88E0: @ 80F88E0
+ push {lr}
+ ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080F88F4
+ movs r0, 0x1
+ b _080F88F6
+ .align 2, 0
+_080F88F0: .4byte gSaveBlock1 + 0x2D94
+_080F88F4:
+ movs r0, 0
+_080F88F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88E0
+
+ thumb_func_start sub_80F88FC
+sub_80F88FC: @ 80F88FC
+ push {lr}
+ bl sub_80F8650
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F88FC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
new file mode 100644
index 000000000..4faccce74
--- /dev/null
+++ b/asm/menu_helpers.s
@@ -0,0 +1,1339 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80F9020
+sub_80F9020: @ 80F9020
+ push {r4,r5,lr}
+ ldr r4, _080F9054 @ =gBG1TilemapBuffer
+ movs r5, 0x80
+ lsls r5, 4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r0, r4, r5
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9054: .4byte gBG1TilemapBuffer
+ thumb_func_end sub_80F9020
+
+ thumb_func_start sav2_get_text_speed
+sav2_get_text_speed: @ 80F9058
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl MenuDisplayMessageBox
+ cmp r4, 0
+ beq _080F907C
+ ldr r0, _080F908C @ =gBG1TilemapBuffer
+ movs r1, 0x4
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x1A
+ bl sub_80A3FA0
+_080F907C:
+ adds r0, r5, 0
+ bl sub_8072044
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F908C: .4byte gBG1TilemapBuffer
+ thumb_func_end sav2_get_text_speed
+
+ thumb_func_start sub_80F9090
+sub_80F9090: @ 80F9090
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F90AC
+ ldr r0, _080F90B4 @ =gUnknown_0300074C
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F90AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90B4: .4byte gUnknown_0300074C
+ thumb_func_end sub_80F9090
+
+ thumb_func_start DisplayItemMessageOnField
+DisplayItemMessageOnField: @ 80F90B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ adds r1, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sav2_get_text_speed
+ ldr r0, _080F90E8 @ =gUnknown_0300074C
+ str r5, [r0]
+ ldr r1, _080F90EC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080F90F0 @ =sub_80F9090
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F90E8: .4byte gUnknown_0300074C
+_080F90EC: .4byte gTasks
+_080F90F0: .4byte sub_80F9090
+ thumb_func_end DisplayItemMessageOnField
+
+ thumb_func_start Task_CallYesOrNoCallback
+Task_CallYesOrNoCallback: @ 80F90F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080F911A
+ cmp r1, 0
+ bgt _080F9114
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F9130
+ b _080F9140
+_080F9114:
+ cmp r1, 0x1
+ beq _080F9130
+ b _080F9140
+_080F911A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F912C @ =gUnknown_020388C4
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _080F9140
+ .align 2, 0
+_080F912C: .4byte gUnknown_020388C4
+_080F9130:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080F9148 @ =gUnknown_020388C4
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080F9140:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9148: .4byte gUnknown_020388C4
+ thumb_func_end Task_CallYesOrNoCallback
+
+ thumb_func_start sub_80F914C
+sub_80F914C: @ 80F914C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080F916C @ =gUnknown_020388C4
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [r3]
+ str r2, [r3, 0x4]
+ ldr r2, _080F9170 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080F9174 @ =Task_CallYesOrNoCallback
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080F916C: .4byte gUnknown_020388C4
+_080F9170: .4byte gTasks
+_080F9174: .4byte Task_CallYesOrNoCallback
+ thumb_func_end sub_80F914C
+
+ thumb_func_start brm_trade_1
+brm_trade_1: @ 80F9178
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ ldr r1, _080F91C0 @ =gUnknown_083E5A18
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ cmp r4, 0xFF
+ beq _080F91CC
+ mov r0, sp
+ strb r4, [r0, 0x2]
+ ldr r4, _080F91C4 @ =gStringVar4
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ mov r1, sp
+ ldr r0, _080F91C8 @ =gMenuWindowPtr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x2]
+ adds r0, r4, 0
+ bl StringAppend
+ b _080F91D4
+ .align 2, 0
+_080F91C0: .4byte gUnknown_083E5A18
+_080F91C4: .4byte gStringVar4
+_080F91C8: .4byte gMenuWindowPtr
+_080F91CC:
+ ldr r0, _080F91E8 @ =gStringVar4
+ adds r1, r5, 0
+ bl StringCopy
+_080F91D4:
+ ldr r0, _080F91E8 @ =gStringVar4
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F91E8: .4byte gStringVar4
+ thumb_func_end brm_trade_1
+
+ thumb_func_start unref_sub_80F91EC
+unref_sub_80F91EC: @ 80F91EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ adds r4, r2, 0
+ adds r2, r3, 0
+ ldr r0, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r6, _080F9234 @ =gStringVar1
+ adds r0, r6, 0
+ mov r1, r12
+ adds r3, r4, 0
+ bl ConvertIntToDecimalStringN
+ mov r0, r8
+ cmp r0, 0xFF
+ beq _080F9238
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl brm_trade_1
+ b _080F9242
+ .align 2, 0
+_080F9234: .4byte gStringVar1
+_080F9238:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl MenuPrint
+_080F9242:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_80F91EC
+
+ thumb_func_start unref_sub_80F924C
+unref_sub_80F924C: @ 80F924C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F9280 @ =gUnknown_083E5A1C
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl brm_trade_1
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9280: .4byte gUnknown_083E5A1C
+ thumb_func_end unref_sub_80F924C
+
+ thumb_func_start sub_80F9284
+sub_80F9284: @ 80F9284
+ push {lr}
+ ldr r0, _080F92A0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92B6
+ ldr r0, _080F92A4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92A8
+ movs r0, 0x1
+ b _080F92B8
+ .align 2, 0
+_080F92A0: .4byte gSaveBlock2
+_080F92A4: .4byte gMain
+_080F92A8:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92B6
+ movs r0, 0x2
+ b _080F92B8
+_080F92B6:
+ movs r0, 0
+_080F92B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9284
+
+ thumb_func_start sub_80F92BC
+sub_80F92BC: @ 80F92BC
+ push {lr}
+ ldr r0, _080F92D8 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _080F92EE
+ ldr r0, _080F92DC @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92E0
+ movs r0, 0x1
+ b _080F92F0
+ .align 2, 0
+_080F92D8: .4byte gSaveBlock2
+_080F92DC: .4byte gMain
+_080F92E0:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F92EE
+ movs r0, 0x2
+ b _080F92F0
+_080F92EE:
+ movs r0, 0
+_080F92F0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92BC
+
+ thumb_func_start sub_80F92F4
+sub_80F92F4: @ 80F92F4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _080F9314
+ ldr r0, _080F930C @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080F9310 @ =0x00001919
+ cmp r1, r0
+ bne _080F9314
+ movs r0, 0
+ b _080F9316
+ .align 2, 0
+_080F930C: .4byte gSaveBlock1
+_080F9310: .4byte 0x00001919
+_080F9314:
+ movs r0, 0x1
+_080F9316:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F92F4
+
+ thumb_func_start sub_80F931C
+sub_80F931C: @ 80F931C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ bne _080F933C
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F933C
+ movs r0, 0
+ b _080F933E
+_080F933C:
+ movs r0, 0x1
+_080F933E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F931C
+
+ thumb_func_start sub_80F9344
+sub_80F9344: @ 80F9344
+ push {lr}
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ beq _080F9356
+ ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F9360
+_080F9356:
+ movs r0, 0x1
+ b _080F9362
+ .align 2, 0
+_080F935C: .4byte gReceivedRemoteLinkPlayers
+_080F9360:
+ movs r0, 0
+_080F9362:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9344
+
+ thumb_func_start sub_80F9368
+sub_80F9368: @ 80F9368
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0xE
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x14
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _080F9430 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _080F9434 @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_080F93C6:
+ strh r6, [r2]
+ mov r0, sp
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _080F93C6
+ strh r6, [r2]
+ mov r2, sp
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r2, _080F9430 @ =0x040000d4
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9430: .4byte 0x040000d4
+_080F9434: .4byte 0x81000800
+ thumb_func_end sub_80F9368
+
+ thumb_func_start sub_80F9438
+sub_80F9438: @ 80F9438
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9438
+
+ thumb_func_start sub_80F944C
+sub_80F944C: @ 80F944C
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _080F9478 @ =gUnknown_020388C0
+ movs r3, 0xFF
+_080F9454:
+ 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, 0x3
+ bls _080F9454
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ ldr r0, _080F947C @ =gUnknown_083E5968
+ bl LoadSpritePalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9478: .4byte gUnknown_020388C0
+_080F947C: .4byte gUnknown_083E5968
+ thumb_func_end sub_80F944C
+
+ thumb_func_start sub_80F9480
+sub_80F9480: @ 80F9480
+ push {r4,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ cmp r2, r1
+ bcs _080F949E
+ movs r4, 0xFF
+_080F9490:
+ adds r0, r3, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _080F9490
+_080F949E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9480
+
+ thumb_func_start sub_80F94A4
+sub_80F94A4: @ 80F94A4
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r2, 16
+ lsrs r1, r2, 16
+ lsls r3, 16
+ lsrs r2, r3, 16
+ cmp r4, 0x5
+ bhi _080F94E8
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ bne _080F94D0
+ ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+_080F94D0:
+ subs r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F94F4 @ =gSprites
+ adds r0, r1
+ adds r1, r4, 0
+ bl StartSpriteAnim
+_080F94E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F94F0: .4byte gSpriteTemplate_83E5A00
+_080F94F4: .4byte gSprites
+ thumb_func_end sub_80F94A4
+
+ thumb_func_start sub_80F94F8
+sub_80F94F8: @ 80F94F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9516
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F951C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F951C: .4byte gSprites
+ thumb_func_end sub_80F94F8
+
+ thumb_func_start sub_80F9520
+sub_80F9520: @ 80F9520
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080F9526:
+ adds r0, r5, r4
+ bl sub_80F94F8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _080F9526
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9520
+
+ thumb_func_start sub_80F953C
+sub_80F953C: @ 80F953C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r4, 0x3
+ bls _080F9550
+ b _080F9790
+_080F9550:
+ cmp r4, 0x1
+ beq _080F95F6
+ cmp r4, 0x1
+ bgt _080F9564
+ cmp r4, 0
+ beq _080F9578
+ ldr r5, _080F9560 @ =gUnknown_020388C0
+ b _080F977A
+ .align 2, 0
+_080F9560: .4byte gUnknown_020388C0
+_080F9564:
+ cmp r4, 0x2
+ bne _080F956A
+ b _080F967C
+_080F956A:
+ cmp r4, 0x3
+ bne _080F9570
+ b _080F96F8
+_080F9570:
+ ldr r5, _080F9574 @ =gUnknown_020388C0
+ b _080F977A
+ .align 2, 0
+_080F9574: .4byte gUnknown_020388C0
+_080F9578:
+ ldr r0, _080F95D8 @ =gUnknown_020388C0
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9584
+ b _080F977A
+_080F9584:
+ ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5]
+ ldr r3, _080F95E0 @ =gSprites
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F95E4 @ =0x0000ffff
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0xFF
+ beq _080F95E8
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x1]
+ b _080F9650
+ .align 2, 0
+_080F95D8: .4byte gUnknown_020388C0
+_080F95DC: .4byte gSpriteTemplate_83E59D0
+_080F95E0: .4byte gSprites
+_080F95E4: .4byte 0x0000ffff
+_080F95E8:
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x34]
+ b _080F977A
+_080F95F6:
+ ldr r0, _080F9660 @ =gUnknown_020388C0
+ ldrb r1, [r0, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ beq _080F9602
+ b _080F977A
+_080F9602:
+ ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x1]
+ ldr r3, _080F9668 @ =gSprites
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x32]
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _080F966C
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5]
+_080F9650:
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x34]
+ strh r0, [r1, 0x34]
+ b _080F977A
+ .align 2, 0
+_080F9660: .4byte gUnknown_020388C0
+_080F9664: .4byte gSpriteTemplate_83E59D0
+_080F9668: .4byte gSprites
+_080F966C:
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ b _080F977A
+_080F967C:
+ ldr r0, _080F96E4 @ =gUnknown_020388C0
+ ldrb r1, [r0, 0x2]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x2]
+ ldr r3, _080F96EC @ =gSprites
+ ldrb r1, [r5, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, _080F96F0 @ =0x0000ffff
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0xFF
+ beq _080F96F4
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F96E4: .4byte gUnknown_020388C0
+_080F96E8: .4byte gSpriteTemplate_83E59E8
+_080F96EC: .4byte gSprites
+_080F96F0: .4byte 0x0000ffff
+_080F96F4:
+ ldrb r0, [r5, 0x2]
+ b _080F976E
+_080F96F8:
+ ldr r0, _080F9760 @ =gUnknown_020388C0
+ ldrb r1, [r0, 0x3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ bne _080F977A
+ ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0x3]
+ ldr r3, _080F9768 @ =gSprites
+ ldrb r1, [r5, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080F976C
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrb r0, [r5, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0x2]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x30]
+ b _080F9778
+ .align 2, 0
+_080F9760: .4byte gUnknown_020388C0
+_080F9764: .4byte gSpriteTemplate_83E59E8
+_080F9768: .4byte gSprites
+_080F976C:
+ ldrb r0, [r5, 0x3]
+_080F976E:
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+_080F9778:
+ strh r0, [r1, 0x30]
+_080F977A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9798 @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ ands r1, r4
+ bl StartSpriteAnim
+_080F9790:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9798: .4byte gSprites
+ thumb_func_end sub_80F953C
+
+ thumb_func_start sub_80F979C
+sub_80F979C: @ 80F979C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r2, 0x3
+ bhi _080F97D4
+ ldr r0, _080F97D8 @ =gUnknown_020388C0
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F97D4
+ ldr r2, _080F97DC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ movs r0, 0x1
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+_080F97D4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F97D8: .4byte gUnknown_020388C0
+_080F97DC: .4byte gSprites
+ thumb_func_end sub_80F979C
+
+ thumb_func_start SetBgTilemapBuffer
+SetBgTilemapBuffer: @ 80F97E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080F9808
+ ldr r0, _080F9810 @ =gUnknown_020388C0
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F9808
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F9814 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0xFF
+ strb r0, [r4]
+_080F9808:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9810: .4byte gUnknown_020388C0
+_080F9814: .4byte gSprites
+ thumb_func_end SetBgTilemapBuffer
+
+ thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818
+ push {lr}
+ ldr r0, _080F9824 @ =gUnknown_083E5968
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9824: .4byte gUnknown_083E5968
+ thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+
+ thumb_func_start BuyMenuFreeMemory
+BuyMenuFreeMemory: @ 80F9828
+ push {lr}
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end BuyMenuFreeMemory
+
+ thumb_func_start sub_80F9834
+sub_80F9834: @ 80F9834
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9848
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+_080F9848:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F9858
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+_080F9858:
+ ldrh r1, [r2, 0x30]
+ adds r1, 0x1
+ movs r3, 0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _080F9870
+ strh r3, [r2, 0x30]
+_080F9870:
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x2
+ ble _080F987A
+ strh r3, [r2, 0x34]
+_080F987A:
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F988A
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F988C
+_080F988A:
+ strh r3, [r2, 0x24]
+_080F988C:
+ movs r0, 0x26
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x8
+ beq _080F989C
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bne _080F98A0
+_080F989C:
+ movs r0, 0
+ strh r0, [r2, 0x26]
+_080F98A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F9834
+
+ thumb_func_start sub_80F98A4
+sub_80F98A4: @ 80F98A4
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F98D0 @ =gUnknown_020388C0
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F98CA
+ cmp r1, 0x3
+ bhi _080F98CA
+ ldr r2, _080F98D4 @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F98D8 @ =SpriteCallbackDummy
+ str r1, [r0]
+_080F98CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F98D0: .4byte gUnknown_020388C0
+_080F98D4: .4byte gSprites
+_080F98D8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F98A4
+
+ thumb_func_start sub_80F98DC
+sub_80F98DC: @ 80F98DC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9908 @ =gUnknown_020388C0
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _080F9902
+ cmp r1, 0x3
+ bhi _080F9902
+ ldr r2, _080F990C @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080F9910 @ =sub_80F9834
+ str r1, [r0]
+_080F9902:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9908: .4byte gUnknown_020388C0
+_080F990C: .4byte gSprites
+_080F9910: .4byte sub_80F9834
+ thumb_func_end sub_80F98DC
+
+ thumb_func_start sub_80F9914
+sub_80F9914: @ 80F9914
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F9964 @ =gUnknown_020388C0
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080F995C
+ cmp r1, 0x3
+ bhi _080F995C
+ ldr r3, _080F9968 @ =gSprites
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0
+ strh r2, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x26]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x34]
+_080F995C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9964: .4byte gUnknown_020388C0
+_080F9968: .4byte gSprites
+ thumb_func_end sub_80F9914
+
+ thumb_func_start sub_80F996C
+sub_80F996C: @ 80F996C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_80F98A4
+ adds r0, r4, 0
+ bl sub_80F9914
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F996C
+
+ thumb_func_start sub_80F9988
+sub_80F9988: @ 80F9988
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r0, _080F99C4 @ =gUnknown_020388C0
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F99BE
+ cmp r2, 0x3
+ bhi _080F99BE
+ ldr r2, _080F99C8 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r3, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_080F99BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F99C4: .4byte gUnknown_020388C0
+_080F99C8: .4byte gSprites
+ thumb_func_end sub_80F9988
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
new file mode 100644
index 000000000..762135a92
--- /dev/null
+++ b/asm/mon_markings.s
@@ -0,0 +1,1004 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80F727C
+sub_80F727C: @ 80F727C
+ ldr r1, _080F7288 @ =gUnknown_020388B8
+ str r0, [r1]
+ movs r1, 0
+ strb r1, [r0, 0xB]
+ bx lr
+ .align 2, 0
+_080F7288: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F727C
+
+ thumb_func_start sub_80F728C
+sub_80F728C: @ 80F728C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080F72C4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x14]
+ lsrs r0, 3
+ bl GetTextWindowFrameGraphics
+ ldr r3, _080F72C8 @ =gUnknown_020388B8
+ ldr r2, [r3]
+ ldr r1, [r0]
+ str r1, [r2, 0x28]
+ ldr r0, [r0, 0x4]
+ str r0, [r2, 0x2C]
+ ldr r0, _080F72CC @ =0x000010b0
+ adds r2, r0
+ movs r1, 0
+ strb r1, [r2]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, [r3]
+ adds r1, 0x30
+ ldr r2, _080F72D0 @ =0x01000800
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F72C4: .4byte gSaveBlock2
+_080F72C8: .4byte gUnknown_020388B8
+_080F72CC: .4byte 0x000010b0
+_080F72D0: .4byte 0x01000800
+ thumb_func_end sub_80F728C
+
+ thumb_func_start sub_80F72D4
+sub_80F72D4: @ 80F72D4
+ push {r4-r7,lr}
+ ldr r0, _080F72F4 @ =gUnknown_020388B8
+ ldr r1, [r0]
+ ldr r2, _080F72F8 @ =0x000010b0
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ lsls r0, r2, 8
+ adds r0, 0x30
+ adds r5, r1, r0
+ cmp r2, 0xD
+ beq _080F73A4
+ cmp r2, 0xD
+ bgt _080F72FC
+ cmp r2, 0
+ beq _080F7302
+ b _080F734C
+ .align 2, 0
+_080F72F4: .4byte gUnknown_020388B8
+_080F72F8: .4byte 0x000010b0
+_080F72FC:
+ cmp r2, 0xE
+ beq _080F73F0
+ b _080F734C
+_080F7302:
+ ldr r0, [r1, 0x28]
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7312:
+ ldr r6, _080F7344 @ =gUnknown_020388B8
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x20
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7312
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x40
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r0, _080F7348 @ =0x000010b0
+ adds r1, r0
+ b _080F7392
+ .align 2, 0
+_080F7344: .4byte gUnknown_020388B8
+_080F7348: .4byte 0x000010b0
+_080F734C:
+ ldr r0, _080F739C @ =gUnknown_020388B8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x60
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F7362:
+ ldr r6, _080F739C @ =gUnknown_020388B8
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0x80
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F7362
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xA0
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73A0 @ =0x000010b0
+ adds r1, r2
+_080F7392:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F73FC
+ .align 2, 0
+_080F739C: .4byte gUnknown_020388B8
+_080F73A0: .4byte 0x000010b0
+_080F73A4:
+ ldr r0, [r1, 0x28]
+ adds r0, 0xC0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ movs r4, 0
+ adds r7, r5, 0
+ adds r7, 0xE0
+_080F73B6:
+ ldr r6, _080F73F4 @ =gUnknown_020388B8
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ adds r0, 0xE0
+ adds r4, 0x1
+ lsls r1, r4, 5
+ adds r1, r5, r1
+ movs r2, 0x8
+ bl CpuFastSet
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x5
+ bls _080F73B6
+ ldr r0, [r6]
+ ldr r0, [r0, 0x28]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ adds r1, r7, 0
+ movs r2, 0x8
+ bl CpuFastSet
+ ldr r1, [r6]
+ ldr r2, _080F73F8 @ =0x000010b0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F73F0:
+ movs r0, 0
+ b _080F73FE
+ .align 2, 0
+_080F73F4: .4byte gUnknown_020388B8
+_080F73F8: .4byte 0x000010b0
+_080F73FC:
+ movs r0, 0x1
+_080F73FE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F72D4
+
+ thumb_func_start sub_80F7404
+sub_80F7404: @ 80F7404
+ push {lr}
+ bl sub_80F728C
+_080F740A:
+ bl sub_80F72D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F740A
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7404
+
+ thumb_func_start sub_80F7418
+sub_80F7418: @ 80F7418
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ ldr r2, _080F746C @ =gUnknown_020388B8
+ ldr r3, [r2]
+ movs r1, 0
+ strb r1, [r3, 0x5]
+ ldr r1, [r2]
+ strb r0, [r1, 0x4]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0x1
+_080F7434:
+ ldr r0, [r4]
+ adds r1, r0, 0x6
+ adds r1, r3
+ ldrb r0, [r0, 0x4]
+ asrs r0, r3
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F7434
+ bl sub_814A7FC
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ ldr r2, _080F746C @ =gUnknown_020388B8
+ ldr r3, [r2]
+ ldrh r2, [r3]
+ ldrh r3, [r3, 0x2]
+ bl sub_80F761C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F746C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7418
+
+ thumb_func_start sub_80F7470
+sub_80F7470: @ 80F7470
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080F74FC @ =gUnknown_020388B8
+_080F7476:
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080F7476
+ ldr r4, _080F74FC @ =gUnknown_020388B8
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ bl FreeSpritePaletteByTag
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+_080F74A8:
+ ldr r0, _080F74FC @ =gUnknown_020388B8
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r0, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F74A8
+ movs r4, 0
+_080F74C8:
+ ldr r5, _080F74FC @ =gUnknown_020388B8
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080F74C8
+ bl sub_814A7FC
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ cmp r0, 0
+ beq _080F74F6
+ bl DestroySprite
+_080F74F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F74FC: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7470
+
+ thumb_func_start sub_80F7500
+sub_80F7500: @ 80F7500
+ push {r4,r5,lr}
+ sub sp, 0x30
+ ldr r4, _080F7580 @ =gUnknown_020388B8
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x30
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ ldrh r1, [r2]
+ mov r0, sp
+ adds r0, 0x1E
+ strh r1, [r0]
+ add r1, sp, 0x20
+ ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx
+ str r0, [sp, 0x20]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x28
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r1, sp, 0x18
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0
+ beq _080F7558
+ mov r0, sp
+ bl LoadTilesForSpriteSheets
+ ldr r0, [r4]
+ strb r5, [r0, 0xB]
+_080F7558:
+ ldr r0, _080F7588 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F758C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080F75FE
+ ldr r1, [r4]
+ movs r0, 0x5
+ strb r0, [r1, 0x5]
+ b _080F75FE
+ .align 2, 0
+_080F7580: .4byte gUnknown_020388B8
+_080F7584: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7588: .4byte gMain
+_080F758C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ ble _080F75FE
+ ldr r0, [r4]
+ strb r5, [r0, 0x5]
+ b _080F75FE
+_080F75B0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080F7602
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r4]
+ movs r1, 0x5
+ ldrsb r1, [r0, r1]
+ cmp r1, 0x4
+ beq _080F75DC
+ cmp r1, 0x5
+ beq _080F7610
+ adds r0, 0x6
+ adds r1, r0, r1
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F75FC
+ movs r2, 0x1
+ b _080F75FC
+_080F75DC:
+ strb r5, [r0, 0x4]
+ movs r3, 0
+_080F75E0:
+ ldr r2, [r4]
+ adds r0, r2, 0x6
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, r3
+ ldrb r1, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F75E0
+ b _080F7610
+_080F75FC:
+ strb r2, [r1]
+_080F75FE:
+ movs r0, 0x1
+ b _080F7612
+_080F7602:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080F75FE
+ movs r0, 0x5
+ bl PlaySE
+_080F7610:
+ movs r0, 0
+_080F7612:
+ add sp, 0x30
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F7500
+
+ thumb_func_start sub_80F761C
+sub_80F761C: @ 80F761C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x5C
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4C]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x50]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x54]
+ ldr r0, _080F7820 @ =gUnknown_020388B8
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0x30
+ str r0, [sp, 0x1C]
+ add r1, sp, 0x20
+ movs r2, 0
+ mov r9, r2
+ movs r0, 0x80
+ lsls r0, 5
+ strh r0, [r1]
+ mov r0, sp
+ adds r0, 0x22
+ strh r5, [r0]
+ add r1, sp, 0x24
+ ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx
+ str r0, [sp, 0x24]
+ movs r0, 0xA4
+ lsls r0, 3
+ strh r0, [r1, 0x4]
+ adds r0, r5, 0x1
+ strh r0, [r1, 0x6]
+ add r0, sp, 0x2C
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r6, sp, 0x1C
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ movs r2, 0x18
+ bl memcpy
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r0, [r0, 0x2C]
+ str r0, [sp, 0x34]
+ add r0, sp, 0x38
+ add r1, sp, 0x54
+ ldrh r1, [r1]
+ strh r1, [r0]
+ add r1, sp, 0x3C
+ ldr r0, _080F7828 @ =gUnknown_08E966B8
+ str r0, [sp, 0x3C]
+ ldr r0, [sp, 0x54]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ add r0, sp, 0x44
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ add r4, sp, 0x34
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x18
+ bl memcpy
+ strh r5, [r4]
+ add r2, sp, 0x54
+ ldrh r2, [r2]
+ strh r2, [r4, 0x2]
+ ldr r0, _080F782C @ =gUnknown_083E5214
+ str r0, [r4, 0x4]
+ ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC
+ str r0, [r4, 0x8]
+ mov r3, r9
+ str r3, [r4, 0xC]
+ ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable
+ str r0, [r4, 0x10]
+ ldr r0, _080F7838 @ =nullsub_65
+ str r0, [r4, 0x14]
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0xB]
+ add r0, sp, 0x4
+ bl AllocTilesForSpriteSheets
+ adds r0, r6, 0
+ bl LoadSpritePalettes
+ movs r5, 0
+ ldr r1, [sp, 0x4C]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r2, r0
+ mov r8, r2
+ str r0, [sp, 0x58]
+ ldr r3, [sp, 0x50]
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r7, r0, r1
+ mov r9, r0
+_080F7700:
+ adds r0, r4, 0
+ mov r2, r8
+ asrs r1, r2, 16
+ asrs r2, r7, 16
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ bne _080F7718
+ b _080F7850
+_080F7718:
+ ldr r6, _080F7820 @ =gUnknown_020388B8
+ ldr r2, [r6]
+ lsls r0, r5, 2
+ adds r2, 0xC
+ adds r2, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F783C @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F7700
+ ldr r0, [r6]
+ ldr r1, [r0, 0x10]
+ mov r3, r9
+ asrs r0, r3, 16
+ adds r0, 0x60
+ strh r0, [r1, 0x22]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274
+ str r0, [r4, 0x8]
+ ldr r0, _080F7844 @ =sub_80F78CC
+ str r0, [r4, 0x14]
+ ldr r0, _080F7848 @ =gUnknown_083E521C
+ str r0, [r4, 0x4]
+ movs r5, 0
+ ldr r0, [sp, 0x58]
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ mov r10, r0
+_080F7770:
+ lsls r2, r5, 4
+ adds r2, 0x10
+ mov r3, r9
+ asrs r3, 16
+ mov r8, r3
+ add r2, r8
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r4, 0
+ mov r3, r10
+ asrs r1, r3, 16
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7860
+ ldr r6, _080F7820 @ =gUnknown_020388B8
+ ldr r1, [r6]
+ lsls r0, r5, 2
+ adds r1, 0x14
+ adds r1, r0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, _080F783C @ =gSprites
+ adds r0, r7
+ str r0, [r1]
+ strh r5, [r0, 0x2E]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F7770
+ ldr r0, _080F784C @ =SpriteCallbackDummy
+ str r0, [r4, 0x14]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F7874
+ ldr r1, [r6]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r7
+ str r0, [r1, 0x24]
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x3F
+ ands r1, r2
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldr r0, [r6]
+ ldr r2, [r0, 0x24]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r6]
+ ldr r0, [r0, 0x24]
+ movs r1, 0x9
+ bl StartSpriteAnim
+ ldr r1, [r6]
+ ldr r2, [r1, 0x24]
+ ldr r3, [sp, 0x58]
+ asrs r0, r3, 16
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x24]
+ mov r0, r8
+ adds r0, 0x50
+ strh r0, [r2, 0x22]
+ ldr r0, [r1, 0x24]
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ b _080F787A
+ .align 2, 0
+_080F7820: .4byte gUnknown_020388B8
+_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
+_080F7828: .4byte gUnknown_08E966B8
+_080F782C: .4byte gUnknown_083E5214
+_080F7830: .4byte gSpriteAnimTable_83E52AC
+_080F7834: .4byte gDummySpriteAffineAnimTable
+_080F7838: .4byte nullsub_65
+_080F783C: .4byte gSprites
+_080F7840: .4byte gSpriteAnimTable_83E5274
+_080F7844: .4byte sub_80F78CC
+_080F7848: .4byte gUnknown_083E521C
+_080F784C: .4byte SpriteCallbackDummy
+_080F7850:
+ ldr r0, _080F785C @ =gUnknown_020388B8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0xC
+ b _080F7868
+ .align 2, 0
+_080F785C: .4byte gUnknown_020388B8
+_080F7860:
+ ldr r0, _080F7870 @ =gUnknown_020388B8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r0, 0x14
+_080F7868:
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F78B0
+ .align 2, 0
+_080F7870: .4byte gUnknown_020388B8
+_080F7874:
+ ldr r1, [r6]
+ movs r0, 0
+ str r0, [r1, 0x24]
+_080F787A:
+ ldr r4, _080F78C0 @ =gUnknown_020388B8
+ ldr r1, [r4]
+ ldr r0, [sp, 0x50]
+ adds r0, 0x8
+ strb r0, [r1, 0xA]
+ ldr r1, [sp, 0x54]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xF
+ movs r3, 0
+ bl sub_814A5C0
+ ldr r0, [sp, 0x4C]
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ ldrb r1, [r1, 0xA]
+ bl sub_814A880
+ ldr r0, _080F78C4 @ =sub_80F7908
+ bl sub_814AABC
+_080F78B0:
+ add sp, 0x5C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F78C0: .4byte gUnknown_020388B8
+_080F78C4: .4byte sub_80F7908
+ thumb_func_end sub_80F761C
+
+ thumb_func_start nullsub_65
+nullsub_65: @ 80F78C8
+ bx lr
+ thumb_func_end nullsub_65
+
+ thumb_func_start sub_80F78CC
+sub_80F78CC: @ 80F78CC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F78F4 @ =gUnknown_020388B8
+ ldr r0, [r0]
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ adds r0, 0x6
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F78F8
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ b _080F7902
+ .align 2, 0
+_080F78F4: .4byte gUnknown_020388B8
+_080F78F8:
+ lsls r1, 25
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_080F7902:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F78CC
+
+ thumb_func_start sub_80F7908
+sub_80F7908: @ 80F7908
+ ldr r1, _080F791C @ =gUnknown_020388B8
+ ldr r2, [r1]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ lsls r1, 4
+ ldrb r2, [r2, 0xA]
+ adds r1, r2
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F791C: .4byte gUnknown_020388B8
+ thumb_func_end sub_80F7908
+
+ thumb_func_start sub_80F7920
+sub_80F7920: @ 80F7920
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7930
+ ldr r2, _080F793C @ =gUnknown_083E49F4
+_080F7930:
+ movs r3, 0x10
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F793C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7920
+
+ thumb_func_start sub_80F7940
+sub_80F7940: @ 80F7940
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r2, 0
+ bne _080F7950
+ ldr r2, _080F795C @ =gUnknown_083E49F4
+_080F7950:
+ movs r3, 0x1
+ bl sub_80F7960
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F795C: .4byte gUnknown_083E49F4
+ thumb_func_end sub_80F7940
+
+ thumb_func_start sub_80F7960
+sub_80F7960: @ 80F7960
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _080F79DC @ =gUnknown_083E4A14
+ str r4, [sp, 0x18]
+ movs r4, 0x80
+ add r5, sp, 0x18
+ lsrs r6, r0, 16
+ orrs r0, r4
+ str r0, [r5, 0x4]
+ str r2, [sp, 0x20]
+ ldr r0, _080F79E0 @ =0xffff0000
+ mov r8, r0
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ mov r2, r8
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r6, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080F79E4 @ =gUnknown_083E52B4
+ str r0, [sp, 0x4]
+ ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x10]
+ ldr r0, _080F79F0 @ =nullsub_65
+ str r0, [sp, 0x14]
+ lsls r3, 23
+ lsrs r3, 16
+ ldr r0, [r5, 0x4]
+ mov r1, r8
+ ands r0, r1
+ orrs r0, r3
+ str r0, [r5, 0x4]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F79F4
+ movs r0, 0
+ b _080F79FE
+ .align 2, 0
+_080F79DC: .4byte gUnknown_083E4A14
+_080F79E0: .4byte 0xffff0000
+_080F79E4: .4byte gUnknown_083E52B4
+_080F79E8: .4byte gSpriteAnimTable_83E533C
+_080F79EC: .4byte gDummySpriteAffineAnimTable
+_080F79F0: .4byte nullsub_65
+_080F79F4:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F7A0C @ =gSprites
+ adds r0, r1
+_080F79FE:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F7A0C: .4byte gSprites
+ thumb_func_end sub_80F7960
+
+ thumb_func_start sub_80F7A10
+sub_80F7A10: @ 80F7A10
+ lsls r0, 24
+ lsrs r0, 17
+ ldr r2, _080F7A28 @ =gUnknown_083E4A14
+ adds r0, r2
+ ldr r2, _080F7A2C @ =0x040000d4
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080F7A30 @ =0x80000040
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080F7A28: .4byte gUnknown_083E4A14
+_080F7A2C: .4byte 0x040000d4
+_080F7A30: .4byte 0x80000040
+ thumb_func_end sub_80F7A10
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
new file mode 100644
index 000000000..7790b9d6e
--- /dev/null
+++ b/asm/pokenav.s
@@ -0,0 +1,23155 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80EBA5C
+sub_80EBA5C: @ 80EBA5C
+ push {lr}
+ ldr r0, _080EBA74 @ =gMain
+ ldr r2, _080EBA78 @ =0x0000043c
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bhi _080EBABC
+ lsls r0, 2
+ ldr r1, _080EBA7C @ =_080EBA80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBA74: .4byte gMain
+_080EBA78: .4byte 0x0000043c
+_080EBA7C: .4byte _080EBA80
+ .align 2, 0
+_080EBA80:
+ .4byte _080EBAC0
+ .4byte _080EBB08
+ .4byte _080EBB10
+ .4byte _080EBB16
+ .4byte _080EBB1C
+ .4byte _080EBB22
+ .4byte _080EBB28
+ .4byte _080EBB2E
+ .4byte _080EBB3E
+ .4byte _080EBB4C
+ .4byte _080EBB5C
+ .4byte _080EBB6C
+ .4byte _080EBB7C
+ .4byte _080EBB90
+ .4byte _080EBBA0
+_080EBABC:
+ movs r0, 0
+ strb r0, [r1]
+_080EBAC0:
+ bl is_c1_link_related_active
+ ldr r3, _080EBAF0 @ =0x02000000
+ ldr r2, _080EBAF4 @ =0x00006dac
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080EBBC0
+ ldr r1, _080EBAF8 @ =0x00006dab
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r1, _080EBAFC @ =gMain
+ ldr r2, _080EBB00 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBB04 @ =sub_80EBBE8
+ bl SetMainCallback2
+ b _080EBBC0
+ .align 2, 0
+_080EBAF0: .4byte 0x02000000
+_080EBAF4: .4byte 0x00006dac
+_080EBAF8: .4byte 0x00006dab
+_080EBAFC: .4byte gMain
+_080EBB00: .4byte 0x0000043c
+_080EBB04: .4byte sub_80EBBE8
+_080EBB08:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080EBBC0
+_080EBB10:
+ bl ResetPaletteFade
+ b _080EBBC0
+_080EBB16:
+ bl ResetSpriteData
+ b _080EBBC0
+_080EBB1C:
+ bl FreeAllSpritePalettes
+ b _080EBBC0
+_080EBB22:
+ bl ResetTasks
+ b _080EBBC0
+_080EBB28:
+ bl remove_some_task
+ b _080EBBC0
+_080EBB2E:
+ bl sub_80F1A90
+ ldr r1, _080EBB44 @ =gMain
+ ldr r0, _080EBB48 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB3E:
+ bl sub_80F1AC4
+ b _080EBB80
+ .align 2, 0
+_080EBB44: .4byte gMain
+_080EBB48: .4byte 0x0000043c
+_080EBB4C:
+ bl sub_80F2688
+ ldr r1, _080EBB64 @ =gMain
+ ldr r2, _080EBB68 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB5C:
+ bl sub_80F26BC
+ b _080EBB80
+ .align 2, 0
+_080EBB64: .4byte gMain
+_080EBB68: .4byte 0x0000043c
+_080EBB6C:
+ bl sub_80F36F0
+ ldr r1, _080EBB88 @ =gMain
+ ldr r0, _080EBB8C @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBB7C:
+ bl sub_80F3724
+_080EBB80:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EBBCC
+ b _080EBBC0
+ .align 2, 0
+_080EBB88: .4byte gMain
+_080EBB8C: .4byte 0x0000043c
+_080EBB90:
+ bl sub_80EBC10
+ ldr r0, _080EBB9C @ =sub_80EBDD8
+ bl sub_80EBDBC
+ b _080EBBC0
+ .align 2, 0
+_080EBB9C: .4byte sub_80EBDD8
+_080EBBA0:
+ ldr r0, _080EBBD0 @ =0x02000000
+ ldr r1, _080EBBD4 @ =0x00006dab
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x6E
+ bl PlaySE
+ ldr r0, _080EBBD8 @ =sub_80EBD90
+ bl SetMainCallback2
+ ldr r0, _080EBBDC @ =sub_80EBD18
+ bl SetVBlankCallback
+ bl sub_80F1A74
+_080EBBC0:
+ ldr r1, _080EBBE0 @ =gMain
+ ldr r2, _080EBBE4 @ =0x0000043c
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EBBCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBBD0: .4byte 0x02000000
+_080EBBD4: .4byte 0x00006dab
+_080EBBD8: .4byte sub_80EBD90
+_080EBBDC: .4byte sub_80EBD18
+_080EBBE0: .4byte gMain
+_080EBBE4: .4byte 0x0000043c
+ thumb_func_end sub_80EBA5C
+
+ thumb_func_start sub_80EBBE8
+sub_80EBBE8: @ 80EBBE8
+ push {r4,lr}
+ ldr r0, _080EBC08 @ =0x02000000
+ ldr r2, _080EBC0C @ =0x00006dab
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080EBC02
+ adds r4, r1, 0
+_080EBBF8:
+ bl sub_80EBA5C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080EBBF8
+_080EBC02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC08: .4byte 0x02000000
+_080EBC0C: .4byte 0x00006dab
+ thumb_func_end sub_80EBBE8
+
+ thumb_func_start sub_80EBC10
+sub_80EBC10: @ 80EBC10
+ push {r4-r7,lr}
+ ldr r1, _080EBC7C @ =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r2, _080EBC80 @ =0x02000000
+ ldr r1, _080EBC84 @ =0x00008828
+ adds r3, r2, r1
+ movs r1, 0
+ strb r0, [r3]
+ ldr r3, _080EBC88 @ =0x00006ddc
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC8C @ =0x00009344
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _080EBC90 @ =0x00008768
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080EBC94 @ =0x0000ced0
+ adds r0, r2, r3
+ str r1, [r0]
+ movs r3, 0
+ ldr r0, _080EBC98 @ =0x00008fff
+ adds r7, r2, r0
+ mov r12, r2
+ movs r6, 0
+ ldr r5, _080EBC9C @ =0x00009040
+ movs r4, 0x9B
+_080EBC4C:
+ adds r0, r3, r7
+ strb r6, [r0]
+ lsls r1, r3, 2
+ adds r1, r2
+ adds r0, r1, r5
+ strh r4, [r0]
+ ldr r0, _080EBCA0 @ =0x00009042
+ adds r1, r0
+ movs r0, 0x5B
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080EBC4C
+ ldr r1, _080EBCA4 @ =0x00006e95
+ add r1, r12
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80EBCA8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBC7C: .4byte gKeyRepeatStartDelay
+_080EBC80: .4byte 0x02000000
+_080EBC84: .4byte 0x00008828
+_080EBC88: .4byte 0x00006ddc
+_080EBC8C: .4byte 0x00009344
+_080EBC90: .4byte 0x00008768
+_080EBC94: .4byte 0x0000ced0
+_080EBC98: .4byte 0x00008fff
+_080EBC9C: .4byte 0x00009040
+_080EBCA0: .4byte 0x00009042
+_080EBCA4: .4byte 0x00006e95
+ thumb_func_end sub_80EBC10
+
+ thumb_func_start sub_80EBCA8
+sub_80EBCA8: @ 80EBCA8
+ push {r4,lr}
+ ldr r4, _080EBCDC @ =0x02000000
+ ldr r0, _080EBCE0 @ =0x00006db2
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EBCE4 @ =0x00006db3
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080EBCE8 @ =0x00006db4
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _080EBCEC @ =0x0000083b
+ bl FlagGet
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EBCF4
+ ldr r0, _080EBCF0 @ =0x00006db5
+ adds r1, r4, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080EBCFA
+ .align 2, 0
+_080EBCDC: .4byte 0x02000000
+_080EBCE0: .4byte 0x00006db2
+_080EBCE4: .4byte 0x00006db3
+_080EBCE8: .4byte 0x00006db4
+_080EBCEC: .4byte 0x0000083b
+_080EBCF0: .4byte 0x00006db5
+_080EBCF4:
+ ldr r1, _080EBD0C @ =0x00006db5
+ adds r0, r4, r1
+ strb r2, [r0]
+_080EBCFA:
+ ldr r0, _080EBD10 @ =0x02000000
+ ldr r1, _080EBD14 @ =0x00006db6
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBD0C: .4byte 0x00006db5
+_080EBD10: .4byte 0x02000000
+_080EBD14: .4byte 0x00006db6
+ thumb_func_end sub_80EBCA8
+
+ thumb_func_start sub_80EBD18
+sub_80EBD18: @ 80EBD18
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F1FF0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD18
+
+ thumb_func_start sub_80EBD30
+sub_80EBD30: @ 80EBD30
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80FB260
+ bl sub_80EFE7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD30
+
+ thumb_func_start sub_80EBD4C
+sub_80EBD4C: @ 80EBD4C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F5BF0
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD4C
+
+ thumb_func_start sub_80EBD68
+sub_80EBD68: @ 80EBD68
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80F6F64
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD68
+
+ thumb_func_start sub_80EBD80
+sub_80EBD80: @ 80EBD80
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EBD80
+
+ thumb_func_start sub_80EBD90
+sub_80EBD90: @ 80EBD90
+ push {lr}
+ ldr r0, _080EBDB8 @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ bl sub_80F19FC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EBDB8: .4byte 0x02000000
+ thumb_func_end sub_80EBD90
+
+ thumb_func_start sub_80EBDBC
+sub_80EBDBC: @ 80EBDBC
+ ldr r2, _080EBDD4 @ =0x02000000
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r1, r2, r3
+ str r0, [r1]
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080EBDD4: .4byte 0x02000000
+ thumb_func_end sub_80EBDBC
+
+ thumb_func_start sub_80EBDD8
+sub_80EBDD8: @ 80EBDD8
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _080EBDF8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x11
+ bls _080EBDEE
+ b _080EC000
+_080EBDEE:
+ lsls r0, 2
+ ldr r1, _080EBDFC @ =_080EBE00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EBDF8: .4byte 0x02000000
+_080EBDFC: .4byte _080EBE00
+ .align 2, 0
+_080EBE00:
+ .4byte _080EBE48
+ .4byte _080EBE80
+ .4byte _080EBE92
+ .4byte _080EBEAC
+ .4byte _080EBEC0
+ .4byte _080EBED2
+ .4byte _080EBEF0
+ .4byte _080EBF04
+ .4byte _080EBF18
+ .4byte _080EBF2C
+ .4byte _080EBF48
+ .4byte _080EBF54
+ .4byte _080EBF74
+ .4byte _080EBF88
+ .4byte _080EBFA0
+ .4byte _080EBFB4
+ .4byte _080EBFD0
+ .4byte _080EBFE8
+_080EBE48:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080EBE74 @ =0x02000000
+ ldr r3, _080EBE78 @ =0x00006ddc
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ subs r3, 0x2F
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EBE7C @ =0x00006dae
+ adds r2, r1, r0
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBE74: .4byte 0x02000000
+_080EBE78: .4byte 0x00006ddc
+_080EBE7C: .4byte 0x00006dae
+_080EBE80:
+ bl sub_80F3FF0
+ ldr r1, _080EBEA8 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBE92:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBE9E
+ b _080EC000
+_080EBE9E:
+ ldr r1, _080EBEA8 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEA8: .4byte 0x02000000
+_080EBEAC:
+ bl sub_80F2598
+ ldr r1, _080EBEBC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBEBC: .4byte 0x02000000
+_080EBEC0:
+ bl sub_80EEE20
+ ldr r1, _080EBEEC @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBED2:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBEDE
+ b _080EC000
+_080EBEDE:
+ bl sub_80EEE08
+ ldr r1, _080EBEEC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBEEC: .4byte 0x02000000
+_080EBEF0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EBF14 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF04:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EBF12
+ b _080EC000
+_080EBF12:
+ b _080EBFD4
+ .align 2, 0
+_080EBF14: .4byte 0x02000000
+_080EBF18:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EBF44 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBF2C:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBF44 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF44: .4byte 0x02000000
+_080EBF48:
+ ldr r0, _080EBF50 @ =sub_80EBD18
+ bl SetVBlankCallback
+ b _080EBFD4
+ .align 2, 0
+_080EBF50: .4byte sub_80EBD18
+_080EBF54:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _080EBF70 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EBFDC
+ .align 2, 0
+_080EBF70: .4byte 0x02000000
+_080EBF74:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EBF84 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBF84: .4byte 0x02000000
+_080EBF88:
+ ldr r0, _080EBF9C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r2, r3
+ b _080EBFDC
+ .align 2, 0
+_080EBF9C: .4byte gPaletteFade
+_080EBFA0:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EBFCC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EBFB4:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ ldr r1, _080EBFCC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EBFDC
+ .align 2, 0
+_080EBFCC: .4byte 0x02000000
+_080EBFD0:
+ bl sub_80F1DF0
+_080EBFD4:
+ ldr r1, _080EBFE4 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080EBFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC000
+ .align 2, 0
+_080EBFE4: .4byte 0x02000000
+_080EBFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC000
+ movs r0, 0
+ movs r1, 0
+ bl sub_80EF428
+ ldr r0, _080EC008 @ =sub_80EC268
+ bl sub_80EBDBC
+_080EC000:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC008: .4byte sub_80EC268
+ thumb_func_end sub_80EBDD8
+
+ thumb_func_start sub_80EC00C
+sub_80EC00C: @ 80EC00C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC02C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080EC022
+ b _080EC1FA
+_080EC022:
+ lsls r0, 2
+ ldr r1, _080EC030 @ =_080EC034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC02C: .4byte 0x02000000
+_080EC030: .4byte _080EC034
+ .align 2, 0
+_080EC034:
+ .4byte _080EC06C
+ .4byte _080EC0C0
+ .4byte _080EC0D4
+ .4byte _080EC0F0
+ .4byte _080EC104
+ .4byte _080EC120
+ .4byte _080EC12A
+ .4byte _080EC154
+ .4byte _080EC168
+ .4byte _080EC180
+ .4byte _080EC194
+ .4byte _080EC1A8
+ .4byte _080EC1C4
+ .4byte _080EC1DC
+_080EC06C:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC078
+ b _080EC1FA
+_080EC078:
+ ldr r0, _080EC0AC @ =sub_80EBD80
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080EC0B0 @ =0x02000000
+ ldr r1, _080EC0B4 @ =0x00006ddc
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080EC0B8 @ =0x00006dad
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080EC0BC @ =0x00006dae
+ adds r1, r4, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC1FA
+ .align 2, 0
+_080EC0AC: .4byte sub_80EBD80
+_080EC0B0: .4byte 0x02000000
+_080EC0B4: .4byte 0x00006ddc
+_080EC0B8: .4byte 0x00006dad
+_080EC0BC: .4byte 0x00006dae
+_080EC0C0:
+ movs r0, 0
+ bl sub_80EF248
+ ldr r1, _080EC0EC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC0D4:
+ movs r0, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC0E2
+ b _080EC1FA
+_080EC0E2:
+ ldr r1, _080EC0EC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC0EC: .4byte 0x02000000
+_080EC0F0:
+ movs r0, 0
+ bl sub_80F1B8C
+ ldr r1, _080EC11C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC104:
+ movs r0, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC112
+ b _080EC1FA
+_080EC112:
+ ldr r1, _080EC11C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC11C: .4byte 0x02000000
+_080EC120:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC1FA
+ b _080EC1C8
+_080EC12A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EC150 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC150: .4byte sub_80EBD18
+_080EC154:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080EC164 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC164: .4byte 0x02000000
+_080EC168:
+ ldr r0, _080EC17C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC1FA
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC1D0
+ .align 2, 0
+_080EC17C: .4byte gPaletteFade
+_080EC180:
+ bl sub_80F2598
+ ldr r1, _080EC190 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC190: .4byte 0x02000000
+_080EC194:
+ movs r0, 0
+ bl sub_80F2C80
+ ldr r1, _080EC1C0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC1A8:
+ movs r0, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r1, _080EC1C0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EC1D0
+ .align 2, 0
+_080EC1C0: .4byte 0x02000000
+_080EC1C4:
+ bl sub_80F1DF0
+_080EC1C8:
+ ldr r1, _080EC1D8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080EC1D0:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC1FA
+ .align 2, 0
+_080EC1D8: .4byte 0x02000000
+_080EC1DC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC1FA
+ ldr r0, _080EC204 @ =0x02000000
+ ldr r1, _080EC208 @ =0x00006dad
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ ldr r0, _080EC20C @ =sub_80EC268
+ bl sub_80EBDBC
+_080EC1FA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC204: .4byte 0x02000000
+_080EC208: .4byte 0x00006dad
+_080EC20C: .4byte sub_80EC268
+ thumb_func_end sub_80EC00C
+
+ thumb_func_start sub_80EC210
+sub_80EC210: @ 80EC210
+ push {r4,r5,lr}
+ ldr r5, _080EC228 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC22C
+ cmp r0, 0x1
+ beq _080EC24C
+ b _080EC25C
+ .align 2, 0
+_080EC228: .4byte 0x02000000
+_080EC22C:
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080EC248 @ =0x00006ddc
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC25C
+ .align 2, 0
+_080EC248: .4byte 0x00006ddc
+_080EC24C:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC25C
+ ldr r0, _080EC264 @ =sub_80EC268
+ bl sub_80EBDBC
+_080EC25C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC264: .4byte sub_80EC268
+ thumb_func_end sub_80EC210
+
+ thumb_func_start sub_80EC268
+sub_80EC268: @ 80EC268
+ push {r4-r6,lr}
+ ldr r4, _080EC290 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0x3
+ bne _080EC27A
+ b _080EC3BE
+_080EC27A:
+ cmp r0, 0x3
+ bgt _080EC294
+ cmp r0, 0x1
+ bne _080EC284
+ b _080EC3A2
+_080EC284:
+ cmp r0, 0x1
+ ble _080EC28A
+ b _080EC3B4
+_080EC28A:
+ cmp r0, 0
+ beq _080EC2AE
+ b _080EC492
+ .align 2, 0
+_080EC290: .4byte 0x02000000
+_080EC294:
+ cmp r0, 0x6
+ bne _080EC29A
+ b _080EC414
+_080EC29A:
+ cmp r0, 0x6
+ bgt _080EC2A6
+ cmp r0, 0x4
+ bne _080EC2A4
+ b _080EC3DC
+_080EC2A4:
+ b _080EC492
+_080EC2A6:
+ cmp r0, 0xFF
+ bne _080EC2AC
+ b _080EC44C
+_080EC2AC:
+ b _080EC492
+_080EC2AE:
+ bl sub_80EEC10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC2D4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC2D0 @ =0x00006dad
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC2D0: .4byte 0x00006dad
+_080EC2D4:
+ ldr r0, _080EC310 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC394
+ ldr r2, _080EC314 @ =0x00006dad
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x2F
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r2, 0x2A
+ adds r1, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x4
+ bls _080EC304
+ b _080EC492
+_080EC304:
+ lsls r0, 2
+ ldr r1, _080EC318 @ =_080EC31C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC310: .4byte gMain
+_080EC314: .4byte 0x00006dad
+_080EC318: .4byte _080EC31C
+ .align 2, 0
+_080EC31C:
+ .4byte _080EC330
+ .4byte _080EC344
+ .4byte _080EC380
+ .4byte _080EC36C
+ .4byte _080EC358
+_080EC330:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC340 @ =sub_80EC4A0
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC340: .4byte sub_80EC4A0
+_080EC344:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC354 @ =sub_80EC81C
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC354: .4byte sub_80EC81C
+_080EC358:
+ ldr r0, _080EC368 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC368: .4byte 0x02000000
+_080EC36C:
+ ldr r0, _080EC37C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC37C: .4byte 0x02000000
+_080EC380:
+ ldr r0, _080EC390 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EC492
+ .align 2, 0
+_080EC390: .4byte 0x02000000
+_080EC394:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC39E
+ b _080EC492
+_080EC39E:
+ strh r2, [r6]
+ b _080EC492
+_080EC3A2:
+ bl sub_80F208C
+ ldr r0, _080EC3B0 @ =sub_80EE96C
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC3B0: .4byte sub_80EE96C
+_080EC3B4:
+ bl sub_80F6208
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_080EC3BE:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC3D8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC492
+ .align 2, 0
+_080EC3D8: .4byte 0x02000000
+_080EC3DC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC492
+ ldr r1, _080EC400 @ =0x00008fe8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080EC408
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC404 @ =sub_80EDB88
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC400: .4byte 0x00008fe8
+_080EC404: .4byte sub_80EDB88
+_080EC408:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x5
+ b _080EC442
+_080EC414:
+ bl sub_80F6C20
+ ldr r2, _080EC430 @ =0x0000d158
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EC438
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC434 @ =sub_80EE3D8
+ bl sub_80EBDBC
+ b _080EC492
+ .align 2, 0
+_080EC430: .4byte 0x0000d158
+_080EC434: .4byte sub_80EE3D8
+_080EC438:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x6
+_080EC442:
+ bl sub_80EF428
+ movs r0, 0xFF
+ strh r0, [r6]
+ b _080EC492
+_080EC44C:
+ bl sub_80EEC10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080EC478
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC474 @ =0x00006dad
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ movs r0, 0
+ strh r0, [r6]
+ bl sub_80EED9C
+ b _080EC492
+ .align 2, 0
+_080EC474: .4byte 0x00006dad
+_080EC478:
+ ldr r0, _080EC498 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC492
+ ldr r2, _080EC49C @ =0x00006dad
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ movs r0, 0
+ bl sub_80EF428
+ strh r5, [r6]
+_080EC492:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC498: .4byte gMain
+_080EC49C: .4byte 0x00006dad
+ thumb_func_end sub_80EC268
+
+ thumb_func_start sub_80EC4A0
+sub_80EC4A0: @ 80EC4A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EC4C0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xE
+ bls _080EC4B6
+ b _080EC66A
+_080EC4B6:
+ lsls r0, 2
+ ldr r1, _080EC4C4 @ =_080EC4C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC4C0: .4byte 0x02000000
+_080EC4C4: .4byte _080EC4C8
+ .align 2, 0
+_080EC4C8:
+ .4byte _080EC504
+ .4byte _080EC510
+ .4byte _080EC544
+ .4byte _080EC578
+ .4byte _080EC594
+ .4byte _080EC5A8
+ .4byte _080EC5AE
+ .4byte _080EC5C0
+ .4byte _080EC5D0
+ .4byte _080EC5E4
+ .4byte _080EC5F8
+ .4byte _080EC614
+ .4byte _080EC61E
+ .4byte _080EC63E
+ .4byte _080EC658
+_080EC504:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EC644
+_080EC510:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC51C
+ b _080EC66A
+_080EC51C:
+ ldr r0, _080EC53C @ =gSaveBlock2
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x8
+ ands r0, r1
+ movs r1, 0x8
+ cmp r0, 0
+ beq _080EC52C
+ movs r1, 0x7
+_080EC52C:
+ adds r0, r1, 0
+ bl sub_80EEFBC
+ ldr r1, _080EC540 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC53C: .4byte gSaveBlock2
+_080EC540: .4byte 0x02000000
+_080EC544:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EC552
+ b _080EC66A
+_080EC552:
+ ldr r4, _080EC574 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+ .align 2, 0
+_080EC574: .4byte 0x02000000
+_080EC578:
+ ldr r0, _080EC590 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ b _080EC644
+ .align 2, 0
+_080EC590: .4byte gPaletteFade
+_080EC594:
+ bl sub_80F2620
+ ldr r1, _080EC5A4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC5A4: .4byte 0x02000000
+_080EC5A8:
+ bl sub_80EF814
+ b _080EC644
+_080EC5AE:
+ bl sub_80EF840
+ ldr r1, _080EC5CC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5C0:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5CC: .4byte 0x02000000
+_080EC5D0:
+ movs r0, 0x4
+ bl sub_80F2C80
+ ldr r1, _080EC5F4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EC5E4:
+ movs r0, 0x4
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+ .align 2, 0
+_080EC5F4: .4byte 0x02000000
+_080EC5F8:
+ bl sub_80F2DD8
+ ldr r0, _080EC60C @ =sub_80EBD30
+ bl SetVBlankCallback
+ ldr r1, _080EC610 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EC64C
+ .align 2, 0
+_080EC60C: .4byte sub_80EBD30
+_080EC610: .4byte 0x02000000
+_080EC614:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EC66A
+ b _080EC644
+_080EC61E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC64C
+_080EC63E:
+ movs r0, 0x1
+ bl sub_80EED2C
+_080EC644:
+ ldr r1, _080EC654 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EC64C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC66A
+ .align 2, 0
+_080EC654: .4byte 0x02000000
+_080EC658:
+ ldr r0, _080EC674 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC66A
+ ldr r0, _080EC678 @ =sub_80EC67C
+ bl sub_80EBDBC
+_080EC66A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC674: .4byte gPaletteFade
+_080EC678: .4byte sub_80EC67C
+ thumb_func_end sub_80EC4A0
+
+ thumb_func_start sub_80EC67C
+sub_80EC67C: @ 80EC67C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080EC69C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080EC692
+ b _080EC800
+_080EC692:
+ lsls r0, 2
+ ldr r1, _080EC6A0 @ =_080EC6A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EC69C: .4byte 0x02000000
+_080EC6A0: .4byte _080EC6A4
+ .align 2, 0
+_080EC6A4:
+ .4byte _080EC6BC
+ .4byte _080EC718
+ .4byte _080EC746
+ .4byte _080EC77C
+ .4byte _080EC7A0
+ .4byte _080EC7C4
+_080EC6BC:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080EC6E2
+ cmp r0, 0x3
+ bgt _080EC6D2
+ cmp r0, 0x1
+ beq _080EC6DC
+ b _080EC800
+_080EC6D2:
+ cmp r0, 0x4
+ beq _080EC6E8
+ cmp r0, 0x5
+ beq _080EC700
+ b _080EC800
+_080EC6DC:
+ bl sub_80EED9C
+ b _080EC800
+_080EC6E2:
+ bl sub_80EF9F8
+ b _080EC800
+_080EC6E8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC6FC @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC6FC: .4byte 0x02000000
+_080EC700:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EC714 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC714: .4byte 0x02000000
+_080EC718:
+ ldr r1, _080EC730 @ =0x00006e90
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EC734
+ bl sub_80FAEC4
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EC7BC
+ .align 2, 0
+_080EC730: .4byte 0x00006e90
+_080EC734:
+ movs r0, 0x1
+ bl sub_80EFBDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80FAEC4
+ b _080EC7B6
+_080EC746:
+ bl sub_80FAFC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC800
+ ldr r5, _080EC76C @ =0x02000000
+ ldr r1, _080EC770 @ =0x00006e90
+ adds r0, r5, r1
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080EC774
+ bl sub_80EFBB0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r5, r2
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC76C: .4byte 0x02000000
+_080EC770: .4byte 0x00006e90
+_080EC774:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+ b _080EC7BC
+_080EC77C:
+ movs r0, 0
+ bl sub_80EFBDC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EC800
+ bl sub_80EFBB0
+ ldr r0, _080EC79C @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ strh r4, [r0]
+ b _080EC800
+ .align 2, 0
+_080EC79C: .4byte 0x02000000
+_080EC7A0:
+ movs r2, 0xC2
+ lsls r2, 2
+ adds r0, r4, r2
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_080EC7B6:
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EC7BC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EC800
+_080EC7C4:
+ ldr r0, _080EC808 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EC800
+ bl sub_80F2DF4
+ movs r0, 0x4
+ bl sub_80F2D04
+ ldr r3, _080EC80C @ =gSaveBlock2
+ movs r2, 0
+ ldr r0, _080EC810 @ =0x02000000
+ ldr r1, _080EC814 @ =0x00006e90
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EC7EC
+ movs r2, 0x1
+_080EC7EC:
+ lsls r2, 3
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x15]
+ ldr r0, _080EC818 @ =sub_80EC00C
+ bl sub_80EBDBC
+_080EC800:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC808: .4byte gPaletteFade
+_080EC80C: .4byte gSaveBlock2
+_080EC810: .4byte 0x02000000
+_080EC814: .4byte 0x00006e90
+_080EC818: .4byte sub_80EC00C
+ thumb_func_end sub_80EC67C
+
+ thumb_func_start sub_80EC81C
+sub_80EC81C: @ 80EC81C
+ push {r4,lr}
+ ldr r0, _080EC834 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC838
+ cmp r0, 0x1
+ beq _080EC850
+ b _080EC860
+ .align 2, 0
+_080EC834: .4byte 0x02000000
+_080EC838:
+ movs r0, 0
+ bl sub_80F2D04
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC860
+_080EC850:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC860
+ ldr r0, _080EC868 @ =sub_80EC86C
+ bl sub_80EBDBC
+_080EC860:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC868: .4byte sub_80EC86C
+ thumb_func_end sub_80EC81C
+
+ thumb_func_start sub_80EC86C
+sub_80EC86C: @ 80EC86C
+ push {r4-r6,lr}
+ ldr r4, _080EC884 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080EC888
+ cmp r0, 0x1
+ beq _080EC944
+ b _080EC954
+ .align 2, 0
+_080EC884: .4byte 0x02000000
+_080EC888:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EC8B0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC8AC @ =0x00006dad
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080EC954
+ .align 2, 0
+_080EC8AC: .4byte 0x00006dad
+_080EC8B0:
+ ldr r0, _080EC8E4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC918
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080EC8E8 @ =0x00006dad
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ adds r2, 0x43
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080EC900
+ cmp r0, 0x1
+ bgt _080EC8EC
+ cmp r0, 0
+ beq _080EC8F2
+ b _080EC954
+ .align 2, 0
+_080EC8E4: .4byte gMain
+_080EC8E8: .4byte 0x00006dad
+_080EC8EC:
+ cmp r0, 0x2
+ beq _080EC90C
+ b _080EC954
+_080EC8F2:
+ ldr r0, _080EC8FC @ =sub_80ED620
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC8FC: .4byte sub_80ED620
+_080EC900:
+ ldr r0, _080EC908 @ =sub_80EC960
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC908: .4byte sub_80EC960
+_080EC90C:
+ ldr r0, _080EC914 @ =sub_80EC210
+ bl sub_80EBDBC
+ b _080EC954
+ .align 2, 0
+_080EC914: .4byte sub_80EC210
+_080EC918:
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EC954
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EC93C @ =0x00006df0
+ adds r0, r4, r1
+ strb r6, [r0]
+ ldr r2, _080EC940 @ =0x00006dad
+ adds r0, r4, r2
+ strb r6, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EC954
+ .align 2, 0
+_080EC93C: .4byte 0x00006df0
+_080EC940: .4byte 0x00006dad
+_080EC944:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC954
+ ldr r0, _080EC95C @ =sub_80EC210
+ bl sub_80EBDBC
+_080EC954:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC95C: .4byte sub_80EC210
+ thumb_func_end sub_80EC86C
+
+ thumb_func_start sub_80EC960
+sub_80EC960: @ 80EC960
+ push {r4,lr}
+ ldr r0, _080EC978 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC97C
+ cmp r0, 0x1
+ beq _080EC98E
+ b _080EC99E
+ .align 2, 0
+_080EC978: .4byte 0x02000000
+_080EC97C:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EC99E
+_080EC98E:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC99E
+ ldr r0, _080EC9A4 @ =sub_80ECC08
+ bl sub_80EBDBC
+_080EC99E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC9A4: .4byte sub_80ECC08
+ thumb_func_end sub_80EC960
+
+ thumb_func_start sub_80EC9A8
+sub_80EC9A8: @ 80EC9A8
+ push {r4,r5,lr}
+ ldr r5, _080EC9C0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EC9C4
+ cmp r0, 0x1
+ beq _080EC9E4
+ b _080ECA00
+ .align 2, 0
+_080EC9C0: .4byte 0x02000000
+_080EC9C4:
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080EC9E0 @ =0x00006df0
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xC
+ bl sub_80EE9C0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECA00
+ .align 2, 0
+_080EC9E0: .4byte 0x00006df0
+_080EC9E4:
+ bl sub_80EEA0C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECA00
+ ldr r0, _080ECA08 @ =sub_80EC86C
+ bl sub_80EBDBC
+ ldr r1, _080ECA0C @ =0x00006dad
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+_080ECA00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECA08: .4byte sub_80EC86C
+_080ECA0C: .4byte 0x00006dad
+ thumb_func_end sub_80EC9A8
+
+ thumb_func_start sub_80ECA10
+sub_80ECA10: @ 80ECA10
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECA30 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bls _080ECA26
+ b _080ECBF2
+_080ECA26:
+ lsls r0, 2
+ ldr r1, _080ECA34 @ =_080ECA38
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECA30: .4byte 0x02000000
+_080ECA34: .4byte _080ECA38
+ .align 2, 0
+_080ECA38:
+ .4byte _080ECA70
+ .4byte _080ECAC4
+ .4byte _080ECAD8
+ .4byte _080ECAF4
+ .4byte _080ECB08
+ .4byte _080ECB24
+ .4byte _080ECB2E
+ .4byte _080ECB58
+ .4byte _080ECB6C
+ .4byte _080ECB72
+ .4byte _080ECB8C
+ .4byte _080ECBA0
+ .4byte _080ECBBC
+ .4byte _080ECBD4
+_080ECA70:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECA7C
+ b _080ECBF2
+_080ECA7C:
+ ldr r0, _080ECAB0 @ =sub_80EBD80
+ bl SetVBlankCallback
+ bl sub_80EED1C
+ ldr r4, _080ECAB4 @ =0x02000000
+ ldr r1, _080ECAB8 @ =0x00006df0
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECABC @ =0x00006dad
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _080ECAC0 @ =0x00006dae
+ adds r1, r4, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ECBF2
+ .align 2, 0
+_080ECAB0: .4byte sub_80EBD80
+_080ECAB4: .4byte 0x02000000
+_080ECAB8: .4byte 0x00006df0
+_080ECABC: .4byte 0x00006dad
+_080ECAC0: .4byte 0x00006dae
+_080ECAC4:
+ movs r0, 0x1
+ bl sub_80EF248
+ ldr r1, _080ECAF0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECAD8:
+ movs r0, 0x1
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECAE6
+ b _080ECBF2
+_080ECAE6:
+ ldr r1, _080ECAF0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECAF0: .4byte 0x02000000
+_080ECAF4:
+ movs r0, 0x1
+ bl sub_80F1B8C
+ ldr r1, _080ECB20 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECB08:
+ movs r0, 0x1
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECB20 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB20: .4byte 0x02000000
+_080ECB24:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ECBF2
+ b _080ECBC0
+_080ECB2E:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECB54 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECBC8
+ .align 2, 0
+_080ECB54: .4byte sub_80EBD18
+_080ECB58:
+ movs r0, 0
+ bl sub_80EED2C
+ ldr r1, _080ECB68 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB68: .4byte 0x02000000
+_080ECB6C:
+ bl sub_80F2598
+ b _080ECBC0
+_080ECB72:
+ ldr r0, _080ECB88 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECBF2
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECB88: .4byte gPaletteFade
+_080ECB8C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECBB8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECBA0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r1, _080ECBB8 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECBC8
+ .align 2, 0
+_080ECBB8: .4byte 0x02000000
+_080ECBBC:
+ bl sub_80F1DF0
+_080ECBC0:
+ ldr r1, _080ECBD0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ECBC8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ECBF2
+ .align 2, 0
+_080ECBD0: .4byte 0x02000000
+_080ECBD4:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECBF2
+ ldr r0, _080ECBFC @ =0x02000000
+ ldr r1, _080ECC00 @ =0x00006dad
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl sub_80EF428
+ ldr r0, _080ECC04 @ =sub_80EC86C
+ bl sub_80EBDBC
+_080ECBF2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECBFC: .4byte 0x02000000
+_080ECC00: .4byte 0x00006dad
+_080ECC04: .4byte sub_80EC86C
+ thumb_func_end sub_80ECA10
+
+ thumb_func_start sub_80ECC08
+sub_80ECC08: @ 80ECC08
+ push {r4,r5,lr}
+ ldr r4, _080ECC20 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _080ECC24
+ cmp r0, 0x1
+ bne _080ECC1E
+ b _080ECD64
+_080ECC1E:
+ b _080ECD74
+ .align 2, 0
+_080ECC20: .4byte 0x02000000
+_080ECC24:
+ bl sub_80EEC90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECC4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080ECC48 @ =0x00006dad
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ bl sub_80EED9C
+ b _080ECD74
+ .align 2, 0
+_080ECC48: .4byte 0x00006dad
+_080ECC4C:
+ ldr r0, _080ECC78 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080ECC5A
+ b _080ECD40
+_080ECC5A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECC7C @ =0x00006dad
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _080ECD0C
+ lsls r0, 2
+ ldr r1, _080ECC80 @ =_080ECC84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECC78: .4byte gMain
+_080ECC7C: .4byte 0x00006dad
+_080ECC80: .4byte _080ECC84
+ .align 2, 0
+_080ECC84:
+ .4byte _080ECC9C
+ .4byte _080ECCB0
+ .4byte _080ECCC4
+ .4byte _080ECCD8
+ .4byte _080ECCEC
+ .4byte _080ECD00
+_080ECC9C:
+ ldr r0, _080ECCA8 @ =0x02000000
+ ldr r3, _080ECCAC @ =0x000087d8
+ adds r0, r3
+ movs r1, 0x16
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCA8: .4byte 0x02000000
+_080ECCAC: .4byte 0x000087d8
+_080ECCB0:
+ ldr r0, _080ECCBC @ =0x02000000
+ ldr r1, _080ECCC0 @ =0x000087d8
+ adds r0, r1
+ movs r1, 0x17
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCBC: .4byte 0x02000000
+_080ECCC0: .4byte 0x000087d8
+_080ECCC4:
+ ldr r0, _080ECCD0 @ =0x02000000
+ ldr r2, _080ECCD4 @ =0x000087d8
+ adds r0, r2
+ movs r1, 0x18
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCD0: .4byte 0x02000000
+_080ECCD4: .4byte 0x000087d8
+_080ECCD8:
+ ldr r0, _080ECCE4 @ =0x02000000
+ ldr r3, _080ECCE8 @ =0x000087d8
+ adds r0, r3
+ movs r1, 0x21
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCE4: .4byte 0x02000000
+_080ECCE8: .4byte 0x000087d8
+_080ECCEC:
+ ldr r0, _080ECCF8 @ =0x02000000
+ ldr r1, _080ECCFC @ =0x000087d8
+ adds r0, r1
+ movs r1, 0x2F
+ strb r1, [r0]
+ b _080ECD0C
+ .align 2, 0
+_080ECCF8: .4byte 0x02000000
+_080ECCFC: .4byte 0x000087d8
+_080ECD00:
+ ldr r0, _080ECD08 @ =sub_80EC9A8
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD08: .4byte sub_80EC9A8
+_080ECD0C:
+ ldr r1, _080ECD2C @ =0x02000000
+ ldr r2, _080ECD30 @ =0x00006dad
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ ldr r3, _080ECD34 @ =0x00006dfc
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080ECD38 @ =0x000076aa
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080ECD3C @ =sub_80ED01C
+ bl sub_80EBDBC
+ b _080ECD74
+ .align 2, 0
+_080ECD2C: .4byte 0x02000000
+_080ECD30: .4byte 0x00006dad
+_080ECD34: .4byte 0x00006dfc
+_080ECD38: .4byte 0x000076aa
+_080ECD3C: .4byte sub_80ED01C
+_080ECD40:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECD74
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _080ECD60 @ =0x00006dad
+ adds r1, r4, r2
+ movs r0, 0x5
+ strb r0, [r1]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080ECD74
+ .align 2, 0
+_080ECD60: .4byte 0x00006dad
+_080ECD64:
+ bl sub_80F1E6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECD74
+ ldr r0, _080ECD7C @ =sub_80EC9A8
+ bl sub_80EBDBC
+_080ECD74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECD7C: .4byte sub_80EC9A8
+ thumb_func_end sub_80ECC08
+
+ thumb_func_start sub_80ECD80
+sub_80ECD80: @ 80ECD80
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ECDA0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x14
+ bls _080ECD96
+ b _080ED006
+_080ECD96:
+ lsls r0, 2
+ ldr r1, _080ECDA4 @ =_080ECDA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECDA0: .4byte 0x02000000
+_080ECDA4: .4byte _080ECDA8
+ .align 2, 0
+_080ECDA8:
+ .4byte _080ECDFC
+ .4byte _080ECE1A
+ .4byte _080ECE34
+ .4byte _080ECE4C
+ .4byte _080ECE64
+ .4byte _080ECE78
+ .4byte _080ECE80
+ .4byte _080ECEAC
+ .4byte _080ECEC0
+ .4byte _080ECED4
+ .4byte _080ECEE8
+ .4byte _080ECF04
+ .4byte _080ECF10
+ .4byte _080ECF3C
+ .4byte _080ECF44
+ .4byte _080ECF58
+ .4byte _080ECF70
+ .4byte _080ECF84
+ .4byte _080ECFB0
+ .4byte _080ECFC4
+ .4byte _080ECFE8
+_080ECDFC:
+ movs r3, 0xC2
+ lsls r3, 2
+ adds r0, r4, r3
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+_080ECE1A:
+ ldr r0, _080ECE30 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECE28
+ b _080ED006
+_080ECE28:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE30: .4byte gPaletteFade
+_080ECE34:
+ bl sub_80EEF78
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECE40
+ b _080ED006
+_080ECE40:
+ ldr r0, _080ECE48 @ =sub_80EBD80
+ bl SetVBlankCallback
+ b _080ECFD4
+ .align 2, 0
+_080ECE48: .4byte sub_80EBD80
+_080ECE4C:
+ bl sub_80EED1C
+ bl sub_80F3130
+ ldr r1, _080ECE60 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECE60: .4byte 0x02000000
+_080ECE64:
+ movs r0, 0x1
+ bl sub_80F2D6C
+ ldr r1, _080ECE74 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECE74: .4byte 0x02000000
+_080ECE78:
+ movs r0, 0x5
+ bl sub_80F2D6C
+ b _080ECFD4
+_080ECE80:
+ ldr r1, _080ECEA0 @ =0x00006dfc
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, _080ECEA4 @ =0x00006dad
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r3, _080ECEA8 @ =0x00006dae
+ adds r1, r4, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_80EEE08
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECEA0: .4byte 0x00006dfc
+_080ECEA4: .4byte 0x00006dad
+_080ECEA8: .4byte 0x00006dae
+_080ECEAC:
+ movs r0, 0x2
+ bl sub_80EF248
+ ldr r1, _080ECED0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEC0:
+ movs r0, 0x2
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECECE
+ b _080ED006
+_080ECECE:
+ b _080ECFD4
+ .align 2, 0
+_080ECED0: .4byte 0x02000000
+_080ECED4:
+ movs r0, 0x2
+ bl sub_80F1B8C
+ ldr r1, _080ECF00 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECEE8:
+ movs r0, 0x2
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ECEF6
+ b _080ED006
+_080ECEF6:
+ ldr r1, _080ECF00 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF00: .4byte 0x02000000
+_080ECF04:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ECF0E
+ b _080ED006
+_080ECF0E:
+ b _080ECFD4
+_080ECF10:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ECF38 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF38: .4byte sub_80EBD18
+_080ECF3C:
+ movs r0, 0
+ bl sub_80EED2C
+ b _080ECFD4
+_080ECF44:
+ bl sub_80F2598
+ ldr r1, _080ECF54 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ECFDC
+ .align 2, 0
+_080ECF54: .4byte 0x02000000
+_080ECF58:
+ ldr r0, _080ECF6C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED006
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ECFDC
+ .align 2, 0
+_080ECF6C: .4byte gPaletteFade
+_080ECF70:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ECFA8 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECF84:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED006
+ ldr r0, _080ECFA8 @ =0x02000000
+ ldr r3, _080ECFAC @ =0x00000306
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED006
+ .align 2, 0
+_080ECFA8: .4byte 0x02000000
+_080ECFAC: .4byte 0x00000306
+_080ECFB0:
+ movs r0, 0x5
+ bl sub_80F2C80
+ ldr r1, _080ECFE4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ECFC4:
+ movs r0, 0x5
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ bl sub_80F1DF0
+_080ECFD4:
+ ldr r1, _080ECFE4 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+_080ECFDC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED006
+ .align 2, 0
+_080ECFE4: .4byte 0x02000000
+_080ECFE8:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED006
+ ldr r0, _080ED010 @ =0x02000000
+ ldr r1, _080ED014 @ =0x00006dad
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ bl sub_80EF428
+ ldr r0, _080ED018 @ =sub_80ECC08
+ bl sub_80EBDBC
+_080ED006:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED010: .4byte 0x02000000
+_080ED014: .4byte 0x00006dad
+_080ED018: .4byte sub_80ECC08
+ thumb_func_end sub_80ECD80
+
+ thumb_func_start sub_80ED01C
+sub_80ED01C: @ 80ED01C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED03C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x13
+ bls _080ED032
+ b _080ED308
+_080ED032:
+ lsls r0, 2
+ ldr r1, _080ED040 @ =_080ED044
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED03C: .4byte 0x02000000
+_080ED040: .4byte _080ED044
+ .align 2, 0
+_080ED044:
+ .4byte _080ED094
+ .4byte _080ED0B4
+ .4byte _080ED0D4
+ .4byte _080ED108
+ .4byte _080ED138
+ .4byte _080ED14C
+ .4byte _080ED15E
+ .4byte _080ED18C
+ .4byte _080ED1AC
+ .4byte _080ED1C4
+ .4byte _080ED1D8
+ .4byte _080ED1F4
+ .4byte _080ED208
+ .4byte _080ED220
+ .4byte _080ED24C
+ .4byte _080ED260
+ .4byte _080ED28C
+ .4byte _080ED2A0
+ .4byte _080ED2CC
+ .4byte _080ED2EA
+_080ED094:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ movs r0, 0x5
+ bl sub_80F2D04
+ ldr r1, _080ED0B0 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED0B0: .4byte 0x02000000
+_080ED0B4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED0C0
+ b _080ED308
+_080ED0C0:
+ movs r0, 0
+ bl sub_80EEFBC
+ ldr r1, _080ED0D0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED0D0: .4byte 0x02000000
+_080ED0D4:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED0E2
+ b _080ED308
+_080ED0E2:
+ ldr r4, _080ED104 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED104: .4byte 0x02000000
+_080ED108:
+ ldr r0, _080ED130 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED116
+ b _080ED308
+_080ED116:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r1, _080ED134 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED130: .4byte gPaletteFade
+_080ED134: .4byte 0x02000000
+_080ED138:
+ bl sub_80F2620
+ ldr r1, _080ED148 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED148: .4byte 0x02000000
+_080ED14C:
+ bl sub_80F4D44
+ ldr r1, _080ED178 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED15E:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED17C
+ ldr r1, _080ED178 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED178: .4byte 0x02000000
+_080ED17C:
+ ldr r1, _080ED188 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED188: .4byte 0x02000000
+_080ED18C:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED196
+ b _080ED308
+_080ED196:
+ ldr r1, _080ED1A8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED1A8: .4byte 0x02000000
+_080ED1AC:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED1B6
+ b _080ED308
+_080ED1B6:
+ ldr r1, _080ED1C0 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED1C0: .4byte 0x02000000
+_080ED1C4:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED1F0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED1D8:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED1E4
+ b _080ED308
+_080ED1E4:
+ ldr r1, _080ED1F0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED27C
+ .align 2, 0
+_080ED1F0: .4byte 0x02000000
+_080ED1F4:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r1, _080ED204 @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED204: .4byte 0x02000000
+_080ED208:
+ bl sub_8055870
+ cmp r0, 0
+ beq _080ED212
+ b _080ED308
+_080ED212:
+ ldr r1, _080ED21C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED27C
+ .align 2, 0
+_080ED21C: .4byte 0x02000000
+_080ED220:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED248 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED27C
+ .align 2, 0
+_080ED248: .4byte sub_80EBD18
+_080ED24C:
+ movs r0, 0x4
+ bl sub_80EED2C
+ ldr r1, _080ED25C @ =0x02000000
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r3
+ b _080ED27C
+ .align 2, 0
+_080ED25C: .4byte 0x02000000
+_080ED260:
+ ldr r0, _080ED284 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080ED308
+ ldr r2, _080ED288 @ =0x00000306
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r1, r4, r3
+_080ED27C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED308
+ .align 2, 0
+_080ED284: .4byte gPaletteFade
+_080ED288: .4byte 0x00000306
+_080ED28C:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED2C4 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED2A0:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080ED308
+ ldr r0, _080ED2C4 @ =0x02000000
+ ldr r3, _080ED2C8 @ =0x00000306
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED308
+ .align 2, 0
+_080ED2C4: .4byte 0x02000000
+_080ED2C8: .4byte 0x00000306
+_080ED2CC:
+ ldr r4, _080ED310 @ =0x02000000
+ ldr r2, _080ED314 @ =0x00006dfc
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2C80
+ movs r3, 0xC1
+ lsls r3, 2
+ adds r4, r3
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080ED2EA:
+ ldr r0, _080ED310 @ =0x02000000
+ ldr r1, _080ED314 @ =0x00006dfc
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, 0x7
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED308
+ ldr r0, _080ED318 @ =sub_80ED31C
+ bl sub_80EBDBC
+_080ED308:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED310: .4byte 0x02000000
+_080ED314: .4byte 0x00006dfc
+_080ED318: .4byte sub_80ED31C
+ thumb_func_end sub_80ED01C
+
+ thumb_func_start sub_80ED31C
+sub_80ED31C: @ 80ED31C
+ push {r4,lr}
+ ldr r0, _080ED338 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080ED3A8
+ cmp r0, 0x1
+ bgt _080ED33C
+ cmp r0, 0
+ beq _080ED342
+ b _080ED3CA
+ .align 2, 0
+_080ED338: .4byte 0x02000000
+_080ED33C:
+ cmp r0, 0x2
+ beq _080ED3C0
+ b _080ED3CA
+_080ED342:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080ED374
+ cmp r0, 0x2
+ beq _080ED380
+ ldr r0, _080ED36C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED38C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED370 @ =sub_80ED4D8
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED36C: .4byte gMain
+_080ED370: .4byte sub_80ED4D8
+_080ED374:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080ED3CA
+_080ED380:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED38C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED3CA
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080ED3A4 @ =sub_80ECD80
+ bl sub_80EBDBC
+ b _080ED3CA
+ .align 2, 0
+_080ED3A4: .4byte sub_80ECD80
+_080ED3A8:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED3CA
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080ED3C8
+_080ED3C0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED3CA
+_080ED3C8:
+ strh r0, [r4]
+_080ED3CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED31C
+
+ thumb_func_start sub_80ED3D0
+sub_80ED3D0: @ 80ED3D0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080ED3EC @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080ED4C6
+ lsls r0, 2
+ ldr r1, _080ED3F0 @ =_080ED3F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED3EC: .4byte 0x02000000
+_080ED3F0: .4byte _080ED3F4
+ .align 2, 0
+_080ED3F4:
+ .4byte _080ED418
+ .4byte _080ED420
+ .4byte _080ED42A
+ .4byte _080ED432
+ .4byte _080ED446
+ .4byte _080ED458
+ .4byte _080ED462
+ .4byte _080ED498
+ .4byte _080ED4B4
+_080ED418:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _080ED49E
+_080ED420:
+ bl sub_80EED0C
+ bl sub_80F6134
+ b _080ED49E
+_080ED42A:
+ movs r0, 0
+ bl sub_80EEFBC
+ b _080ED49E
+_080ED432:
+ movs r0, 0
+ bl sub_80F0264
+ ldr r1, _080ED454 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED446:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+ .align 2, 0
+_080ED454: .4byte 0x02000000
+_080ED458:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED4C6
+ b _080ED49E
+_080ED462:
+ movs r0, 0
+ bl sub_80F3008
+ ldr r4, _080ED490 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED494 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080ED4A6
+ .align 2, 0
+_080ED490: .4byte 0x02000000
+_080ED494: .4byte sub_80EBD18
+_080ED498:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080ED49E:
+ ldr r1, _080ED4B0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED4A6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED4C6
+ .align 2, 0
+_080ED4B0: .4byte 0x02000000
+_080ED4B4:
+ ldr r0, _080ED4D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED4C6
+ ldr r0, _080ED4D4 @ =sub_80ED31C
+ bl sub_80EBDBC
+_080ED4C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED4D0: .4byte gPaletteFade
+_080ED4D4: .4byte sub_80ED31C
+ thumb_func_end sub_80ED3D0
+
+ thumb_func_start sub_80ED4D8
+sub_80ED4D8: @ 80ED4D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED4F8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080ED4EE
+ b _080ED60E
+_080ED4EE:
+ lsls r0, 2
+ ldr r1, _080ED4FC @ =_080ED500
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED4F8: .4byte 0x02000000
+_080ED4FC: .4byte _080ED500
+ .align 2, 0
+_080ED500:
+ .4byte _080ED524
+ .4byte _080ED542
+ .4byte _080ED564
+ .4byte _080ED57C
+ .4byte _080ED582
+ .4byte _080ED594
+ .4byte _080ED5A4
+ .4byte _080ED5E0
+ .4byte _080ED5FC
+_080ED524:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+_080ED542:
+ ldr r0, _080ED560 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ b _080ED5E6
+ .align 2, 0
+_080ED560: .4byte gPaletteFade
+_080ED564:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED60E
+ ldr r1, _080ED578 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED578: .4byte 0x02000000
+_080ED57C:
+ bl sub_80F4CF0
+ b _080ED5E6
+_080ED582:
+ bl sub_80EFF34
+ ldr r1, _080ED5A0 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED594:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED60E
+ b _080ED5E6
+ .align 2, 0
+_080ED5A0: .4byte 0x02000000
+_080ED5A4:
+ bl sub_80F35B4
+ movs r0, 0x2
+ bl sub_80EEFBC
+ ldr r4, _080ED5D8 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED5DC @ =sub_80EBD4C
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED5EE
+ .align 2, 0
+_080ED5D8: .4byte 0x02000000
+_080ED5DC: .4byte sub_80EBD4C
+_080ED5E0:
+ movs r0, 0x2
+ bl sub_80EED2C
+_080ED5E6:
+ ldr r1, _080ED5F8 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080ED5EE:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED60E
+ .align 2, 0
+_080ED5F8: .4byte 0x02000000
+_080ED5FC:
+ ldr r0, _080ED618 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED60E
+ ldr r0, _080ED61C @ =sub_80ED858
+ bl sub_80EBDBC
+_080ED60E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED618: .4byte gPaletteFade
+_080ED61C: .4byte sub_80ED858
+ thumb_func_end sub_80ED4D8
+
+ thumb_func_start sub_80ED620
+sub_80ED620: @ 80ED620
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080ED640 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ bls _080ED636
+ b _080ED846
+_080ED636:
+ lsls r0, 2
+ ldr r1, _080ED644 @ =_080ED648
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED640: .4byte 0x02000000
+_080ED644: .4byte _080ED648
+ .align 2, 0
+_080ED648:
+ .4byte _080ED68C
+ .4byte _080ED6A4
+ .4byte _080ED6B8
+ .4byte _080ED6EC
+ .4byte _080ED730
+ .4byte _080ED736
+ .4byte _080ED750
+ .4byte _080ED762
+ .4byte _080ED76C
+ .4byte _080ED784
+ .4byte _080ED78A
+ .4byte _080ED7C0
+ .4byte _080ED7D4
+ .4byte _080ED7EC
+ .4byte _080ED800
+ .4byte _080ED820
+ .4byte _080ED834
+_080ED68C:
+ bl sub_80F1E84
+ movs r0, 0x1
+ bl sub_80F2D04
+ ldr r1, _080ED6A0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED6A0: .4byte 0x02000000
+_080ED6A4:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED6B0
+ b _080ED846
+_080ED6B0:
+ movs r0, 0x1
+ bl sub_80EEFBC
+ b _080ED80C
+_080ED6B8:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080ED6C6
+ b _080ED846
+_080ED6C6:
+ ldr r4, _080ED6E8 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED6E8: .4byte 0x02000000
+_080ED6EC:
+ ldr r0, _080ED724 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080ED6FE
+ b _080ED846
+_080ED6FE:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ ldr r0, _080ED728 @ =0x02000000
+ ldr r2, _080ED72C @ =0x000076aa
+ adds r1, r0, r2
+ strb r4, [r1]
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ b _080ED846
+ .align 2, 0
+_080ED724: .4byte gPaletteFade
+_080ED728: .4byte 0x02000000
+_080ED72C: .4byte 0x000076aa
+_080ED730:
+ bl sub_80F2620
+ b _080ED80C
+_080ED736:
+ ldr r0, _080ED74C @ =0x0000d162
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80F4BD0
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED74C: .4byte 0x0000d162
+_080ED750:
+ bl sub_80EFF34
+ ldr r1, _080ED768 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED762:
+ bl sub_80EFF68
+ b _080ED806
+ .align 2, 0
+_080ED768: .4byte 0x02000000
+_080ED76C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080ED846
+ ldr r1, _080ED780 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED780: .4byte 0x02000000
+_080ED784:
+ bl sub_8055870
+ b _080ED808
+_080ED78A:
+ bl sub_80F33A8
+ ldr r4, _080ED7B8 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080ED7BC @ =sub_80EBD4C
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7B8: .4byte 0x02000000
+_080ED7BC: .4byte sub_80EBD4C
+_080ED7C0:
+ movs r0, 0x2
+ bl sub_80EED2C
+ ldr r1, _080ED7D0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080ED814
+ .align 2, 0
+_080ED7D0: .4byte 0x02000000
+_080ED7D4:
+ ldr r0, _080ED7E8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED846
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080ED814
+ .align 2, 0
+_080ED7E8: .4byte gPaletteFade
+_080ED7EC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r1, _080ED81C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED800:
+ movs r0, 0x1
+ bl sub_80F2CBC
+_080ED806:
+ lsls r0, 24
+_080ED808:
+ cmp r0, 0
+ bne _080ED846
+_080ED80C:
+ ldr r1, _080ED81C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+_080ED814:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080ED846
+ .align 2, 0
+_080ED81C: .4byte 0x02000000
+_080ED820:
+ movs r0, 0x6
+ bl sub_80F2C80
+ ldr r1, _080ED850 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080ED834:
+ movs r0, 0x6
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED846
+ ldr r0, _080ED854 @ =sub_80ED858
+ bl sub_80EBDBC
+_080ED846:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED850: .4byte 0x02000000
+_080ED854: .4byte sub_80ED858
+ thumb_func_end sub_80ED620
+
+ thumb_func_start sub_80ED858
+sub_80ED858: @ 80ED858
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _080ED878 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xB
+ bls _080ED86E
+ b _080EDB7A
+_080ED86E:
+ lsls r0, 2
+ ldr r1, _080ED87C @ =_080ED880
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED878: .4byte 0x02000000
+_080ED87C: .4byte _080ED880
+ .align 2, 0
+_080ED880:
+ .4byte _080ED8B0
+ .4byte _080ED8CC
+ .4byte _080ED8EC
+ .4byte _080ED904
+ .4byte _080ED91A
+ .4byte _080EDA68
+ .4byte _080EDA8C
+ .4byte _080EDAA4
+ .4byte _080EDAC0
+ .4byte _080EDAE8
+ .4byte _080EDB7A
+ .4byte _080EDB28
+_080ED8B0:
+ bl sub_80F4F78
+ bl sub_80F5B38
+ ldr r0, _080ED8C8 @ =0x02000000
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8C8: .4byte 0x02000000
+_080ED8CC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED8D8
+ b _080EDB7A
+_080ED8D8:
+ ldr r0, _080ED8E8 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED8E8: .4byte 0x02000000
+_080ED8EC:
+ movs r0, 0x1
+ bl sub_80F0174
+ ldr r0, _080ED900 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED900: .4byte 0x02000000
+_080ED904:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED910
+ b _080EDB7A
+_080ED910:
+ bl sub_80F3C94
+ bl sub_80F3D00
+ b _080EDAD4
+_080ED91A:
+ ldr r2, _080ED960 @ =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080ED970
+ ldr r1, _080ED964 @ =0x000087cb
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED970
+ ldr r2, _080ED968 @ =0x000076aa
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED948
+ ldr r4, _080ED96C @ =0x000087dc
+ adds r0, r5, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080ED970
+_080ED948:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ b _080ED9B8
+ .align 2, 0
+_080ED960: .4byte gMain
+_080ED964: .4byte 0x000087cb
+_080ED968: .4byte 0x000076aa
+_080ED96C: .4byte 0x000087dc
+_080ED970:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r4, _080ED9C0 @ =0x000087cb
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9CC
+ ldr r1, _080ED9C4 @ =0x000076aa
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080ED9A2
+ ldr r2, _080ED9C8 @ =0x000087dc
+ adds r0, r5, r2
+ subs r4, 0x57
+ adds r1, r5, r4
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r2, r0
+ bge _080ED9CC
+_080ED9A2:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r5, r0
+_080ED9B8:
+ movs r0, 0x5
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080ED9C0: .4byte 0x000087cb
+_080ED9C4: .4byte 0x000076aa
+_080ED9C8: .4byte 0x000087dc
+_080ED9CC:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080ED9F8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4FDC
+ bl move_anim_execute
+ ldr r0, _080ED9F4 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x9
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080ED9F4: .4byte 0x02000000
+_080ED9F8:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080EDA02
+ b _080EDB7A
+_080EDA02:
+ adds r4, r5, 0
+ ldr r2, _080EDA38 @ =0x000076aa
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDA44
+ ldr r1, _080EDA3C @ =0x000087dc
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r2, _080EDA40 @ =0x000087da
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _080EDA26
+ b _080EDB7A
+_080EDA26:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ movs r0, 0x9
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA38: .4byte 0x000076aa
+_080EDA3C: .4byte 0x000087dc
+_080EDA40: .4byte 0x000087da
+_080EDA44:
+ ldr r1, _080EDA64 @ =0x00006dac
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EDA50
+ b _080EDB7A
+_080EDA50:
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0x7
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDA64: .4byte 0x00006dac
+_080EDA68:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDA74
+ b _080EDB7A
+_080EDA74:
+ bl sub_80F3D00
+ ldr r0, _080EDA88 @ =0x02000000
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDA88: .4byte 0x02000000
+_080EDA8C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDB7A
+ ldr r0, _080EDAA0 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EDADC
+ .align 2, 0
+_080EDAA0: .4byte 0x02000000
+_080EDAA4:
+ movs r0, 0x3
+ bl sub_80EEFBC
+ bl sub_80F3668
+ ldr r0, _080EDABC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDABC: .4byte 0x02000000
+_080EDAC0:
+ bl sub_80F7500
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDB7A
+ movs r0, 0x2
+ bl sub_80EEFBC
+ bl sub_80F3698
+_080EDAD4:
+ ldr r0, _080EDAE4 @ =0x02000000
+ movs r4, 0xC1
+ lsls r4, 2
+ adds r0, r4
+_080EDADC:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EDB7A
+ .align 2, 0
+_080EDAE4: .4byte 0x02000000
+_080EDAE8:
+ bl sub_80F5038
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EDB7A
+ movs r0, 0
+ bl sub_80F0174
+ bl sub_80F2F48
+ ldr r5, _080EDB24 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r4, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r0, 0xB
+ strh r0, [r1]
+ b _080EDB7A
+ .align 2, 0
+_080EDB24: .4byte 0x02000000
+_080EDB28:
+ ldr r0, _080EDB60 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDB7A
+ bl sub_80F3CE8
+ bl sub_80F5BDC
+ ldr r0, _080EDB64 @ =0x02000000
+ ldr r4, _080EDB68 @ =0x000076aa
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EDB70
+ bl sub_80F357C
+ movs r0, 0x1
+ bl sub_80F2D6C
+ movs r0, 0x6
+ bl sub_80F2D6C
+ ldr r0, _080EDB6C @ =sub_80ECA10
+ bl sub_80EBDBC
+ b _080EDB7A
+ .align 2, 0
+_080EDB60: .4byte gPaletteFade
+_080EDB64: .4byte 0x02000000
+_080EDB68: .4byte 0x000076aa
+_080EDB6C: .4byte sub_80ECA10
+_080EDB70:
+ bl sub_80F3614
+ ldr r0, _080EDB84 @ =sub_80ED3D0
+ bl sub_80EBDBC
+_080EDB7A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDB84: .4byte sub_80ED3D0
+ thumb_func_end sub_80ED858
+
+ thumb_func_start sub_80EDB88
+sub_80EDB88: @ 80EDB88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDBA8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EDB9E
+ b _080EDDAA
+_080EDB9E:
+ lsls r0, 2
+ ldr r1, _080EDBAC @ =_080EDBB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDBA8: .4byte 0x02000000
+_080EDBAC: .4byte _080EDBB0
+ .align 2, 0
+_080EDBB0:
+ .4byte _080EDBF8
+ .4byte _080EDC04
+ .4byte _080EDC24
+ .4byte _080EDC58
+ .4byte _080EDC7C
+ .4byte _080EDC90
+ .4byte _080EDCA2
+ .4byte _080EDCC0
+ .4byte _080EDCDC
+ .4byte _080EDCE6
+ .4byte _080EDCFA
+ .4byte _080EDD0C
+ .4byte _080EDD20
+ .4byte _080EDD34
+ .4byte _080EDD48
+ .4byte _080EDD52
+ .4byte _080EDD7C
+ .4byte _080EDD98
+_080EDBF8:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EDD82
+_080EDC04:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EDC10
+ b _080EDDAA
+_080EDC10:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ ldr r1, _080EDC20 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC20: .4byte 0x02000000
+_080EDC24:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EDC32
+ b _080EDDAA
+_080EDC32:
+ ldr r4, _080EDC54 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC54: .4byte 0x02000000
+_080EDC58:
+ ldr r0, _080EDC78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDC66
+ b _080EDDAA
+_080EDC66:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ b _080EDD82
+ .align 2, 0
+_080EDC78: .4byte gPaletteFade
+_080EDC7C:
+ bl sub_80F2620
+ ldr r1, _080EDC8C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDC8C: .4byte 0x02000000
+_080EDC90:
+ bl sub_80F638C
+ ldr r1, _080EDCBC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCA2:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDD82
+ ldr r1, _080EDCBC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCBC: .4byte 0x02000000
+_080EDCC0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r1, _080EDCD8 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDCD8: .4byte 0x02000000
+_080EDCDC:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDCE6:
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EDD08 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDCFA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD08: .4byte 0x02000000
+_080EDD0C:
+ movs r0, 0x2
+ bl sub_80F2C80
+ ldr r1, _080EDD30 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDD20:
+ movs r0, 0x2
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+ .align 2, 0
+_080EDD30: .4byte 0x02000000
+_080EDD34:
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r1, _080EDD44 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD44: .4byte 0x02000000
+_080EDD48:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDDAA
+ b _080EDD82
+_080EDD52:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EDD78 @ =sub_80EBD18
+ bl SetVBlankCallback
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EDD8A
+ .align 2, 0
+_080EDD78: .4byte sub_80EBD18
+_080EDD7C:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EDD82:
+ ldr r1, _080EDD94 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EDD8A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EDDAA
+ .align 2, 0
+_080EDD94: .4byte 0x02000000
+_080EDD98:
+ ldr r0, _080EDDB4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDDAA
+ ldr r0, _080EDDB8 @ =sub_80EDDBC
+ bl sub_80EBDBC
+_080EDDAA:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDDB4: .4byte gPaletteFade
+_080EDDB8: .4byte sub_80EDDBC
+ thumb_func_end sub_80EDB88
+
+ thumb_func_start sub_80EDDBC
+sub_80EDDBC: @ 80EDDBC
+ push {r4,lr}
+ ldr r0, _080EDDD8 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EDE48
+ cmp r0, 0x1
+ bgt _080EDDDC
+ cmp r0, 0
+ beq _080EDDE2
+ b _080EDE6A
+ .align 2, 0
+_080EDDD8: .4byte 0x02000000
+_080EDDDC:
+ cmp r0, 0x2
+ beq _080EDE60
+ b _080EDE6A
+_080EDDE2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EDE14
+ cmp r0, 0x2
+ beq _080EDE20
+ ldr r0, _080EDE0C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE2C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE10 @ =sub_80EDEE4
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE0C: .4byte gMain
+_080EDE10: .4byte sub_80EDEE4
+_080EDE14:
+ movs r0, 0x5
+ bl PlaySE
+ bl ShowMapNamePopUpWindow
+ b _080EDE6A
+_080EDE20:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE2C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDE6A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EDE44 @ =sub_80EDE70
+ bl sub_80EBDBC
+ b _080EDE6A
+ .align 2, 0
+_080EDE44: .4byte sub_80EDE70
+_080EDE48:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDE6A
+ bl ShowMapNamePopUpWindow
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EDE68
+_080EDE60:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EDE6A
+_080EDE68:
+ strh r0, [r4]
+_080EDE6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDDBC
+
+ thumb_func_start sub_80EDE70
+sub_80EDE70: @ 80EDE70
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EDE8C @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EDEAE
+ cmp r2, 0x1
+ bgt _080EDE90
+ cmp r2, 0
+ beq _080EDE96
+ b _080EDED6
+ .align 2, 0
+_080EDE8C: .4byte 0x02000000
+_080EDE90:
+ cmp r2, 0x2
+ beq _080EDED0
+ b _080EDED6
+_080EDE96:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EDEC4
+_080EDEAE:
+ ldr r0, _080EDECC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EDED6
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+_080EDEC4:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EDED6
+ .align 2, 0
+_080EDECC: .4byte gPaletteFade
+_080EDED0:
+ ldr r0, _080EDEE0 @ =sub_80EC00C
+ bl sub_80EBDBC
+_080EDED6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDEE0: .4byte sub_80EC00C
+ thumb_func_end sub_80EDE70
+
+ thumb_func_start sub_80EDEE4
+sub_80EDEE4: @ 80EDEE4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EDF04 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xA
+ bls _080EDEFA
+ b _080EE060
+_080EDEFA:
+ lsls r0, 2
+ ldr r1, _080EDF08 @ =_080EDF0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EDF04: .4byte 0x02000000
+_080EDF08: .4byte _080EDF0C
+ .align 2, 0
+_080EDF0C:
+ .4byte _080EDF38
+ .4byte _080EDF50
+ .4byte _080EDF80
+ .4byte _080EDF98
+ .4byte _080EDFB0
+ .4byte _080EDFC8
+ .4byte _080EDFE0
+ .4byte _080EDFF8
+ .4byte _080EE01C
+ .4byte _080EE030
+ .4byte _080EE050
+_080EDF38:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE03C
+_080EDF50:
+ ldr r0, _080EDF78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDF5E
+ b _080EE060
+_080EDF5E:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3130
+ ldr r1, _080EDF7C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDF78: .4byte gPaletteFade
+_080EDF7C: .4byte 0x02000000
+_080EDF80:
+ bl sub_80F66E0
+ bl sub_80EEE08
+ ldr r1, _080EDF94 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDF94: .4byte 0x02000000
+_080EDF98:
+ bl sub_80F1080
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFAC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFAC: .4byte 0x02000000
+_080EDFB0:
+ movs r0, 0x5
+ bl sub_80EEFBC
+ bl sub_80F38B8
+ ldr r1, _080EDFDC @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EDFC8:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFDC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EDFDC: .4byte 0x02000000
+_080EDFE0:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE060
+ ldr r1, _080EDFF4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE042
+ .align 2, 0
+_080EDFF4: .4byte 0x02000000
+_080EDFF8:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE018 @ =sub_80EBD18
+ bl SetVBlankCallback
+ b _080EE03C
+ .align 2, 0
+_080EE018: .4byte sub_80EBD18
+_080EE01C:
+ movs r0, 0x3
+ bl sub_80EED2C
+ ldr r1, _080EE02C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE042
+ .align 2, 0
+_080EE02C: .4byte 0x02000000
+_080EE030:
+ ldr r0, _080EE04C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE060
+_080EE03C:
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+_080EE042:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE060
+ .align 2, 0
+_080EE04C: .4byte gPaletteFade
+_080EE050:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE060
+ ldr r0, _080EE068 @ =sub_80EE06C
+ bl sub_80EBDBC
+_080EE060:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE068: .4byte sub_80EE06C
+ thumb_func_end sub_80EDEE4
+
+ thumb_func_start sub_80EE06C
+sub_80EE06C: @ 80EE06C
+ push {r4,r5,lr}
+ ldr r1, _080EE08C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE080
+ b _080EE288
+_080EE080:
+ lsls r0, 2
+ ldr r1, _080EE090 @ =_080EE094
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE08C: .4byte 0x02000000
+_080EE090: .4byte _080EE094
+ .align 2, 0
+_080EE094:
+ .4byte _080EE0B8
+ .4byte _080EE0CC
+ .4byte _080EE180
+ .4byte _080EE19C
+ .4byte _080EE1B8
+ .4byte _080EE1D0
+ .4byte _080EE1F8
+ .4byte _080EE250
+ .4byte _080EE26C
+_080EE0B8:
+ bl sub_80F15A8
+ ldr r1, _080EE0C8 @ =0x02000000
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0C8: .4byte 0x02000000
+_080EE0CC:
+ ldr r2, _080EE0FC @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE104
+ ldr r1, _080EE100 @ =0x000087dc
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE104
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F6A4C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE1C4
+ .align 2, 0
+_080EE0FC: .4byte gMain
+_080EE100: .4byte 0x000087dc
+_080EE104:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE140
+ ldr r1, _080EE138 @ =0x000087dc
+ adds r0, r4, r1
+ ldr r2, _080EE13C @ =0x00008774
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE140
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F6A4C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE1C4
+ .align 2, 0
+_080EE138: .4byte 0x000087dc
+_080EE13C: .4byte 0x00008774
+_080EE140:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080EE164
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0xB
+ bl sub_80EEFBC
+ ldr r0, _080EE160 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ b _080EE262
+ .align 2, 0
+_080EE160: .4byte 0x02000000
+_080EE164:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _080EE16E
+ b _080EE288
+_080EE16E:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE17C @ =sub_80EE294
+ bl sub_80EBDBC
+ b _080EE288
+ .align 2, 0
+_080EE17C: .4byte sub_80EE294
+_080EE180:
+ bl sub_80F6AF0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE18C
+ b _080EE288
+_080EE18C:
+ ldr r1, _080EE198 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE1C4
+ .align 2, 0
+_080EE198: .4byte 0x02000000
+_080EE19C:
+ bl sub_8055870
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EE288
+ ldr r0, _080EE1B4 @ =0x02000000
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE1B4: .4byte 0x02000000
+_080EE1B8:
+ bl sub_80F3B00
+ ldr r1, _080EE1CC @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE1C4:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE288
+ .align 2, 0
+_080EE1CC: .4byte 0x02000000
+_080EE1D0:
+ bl sub_80F3B58
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ bl sub_80F1494
+ ldr r1, _080EE1F4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ bl sub_80EED9C
+ b _080EE288
+ .align 2, 0
+_080EE1F4: .4byte 0x02000000
+_080EE1F8:
+ bl sub_80F68E8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080EE224
+ cmp r0, 0x1
+ bne _080EE224
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE220 @ =0x02000000
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ movs r1, 0x7
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE220: .4byte 0x02000000
+_080EE224:
+ ldr r0, _080EE248 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE288
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F3B94
+ ldr r0, _080EE24C @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE248: .4byte gMain
+_080EE24C: .4byte 0x02000000
+_080EE250:
+ bl sub_80F3BD4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE288
+ ldr r0, _080EE268 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r2
+_080EE262:
+ movs r1, 0x4
+ strh r1, [r0]
+ b _080EE288
+ .align 2, 0
+_080EE268: .4byte 0x02000000
+_080EE26C:
+ bl sub_80F3BD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080EE288
+ movs r0, 0x5
+ bl sub_80EEFBC
+ ldr r0, _080EE290 @ =0x02000000
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r0, r5
+ strh r4, [r0]
+_080EE288:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE290: .4byte 0x02000000
+ thumb_func_end sub_80EE06C
+
+ thumb_func_start sub_80EE294
+sub_80EE294: @ 80EE294
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080EE2B4 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x8
+ bls _080EE2AA
+ b _080EE3C6
+_080EE2AA:
+ lsls r0, 2
+ ldr r1, _080EE2B8 @ =_080EE2BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE2B4: .4byte 0x02000000
+_080EE2B8: .4byte _080EE2BC
+ .align 2, 0
+_080EE2BC:
+ .4byte _080EE2E0
+ .4byte _080EE2FE
+ .4byte _080EE324
+ .4byte _080EE33C
+ .4byte _080EE34C
+ .4byte _080EE370
+ .4byte _080EE37A
+ .4byte _080EE39A
+ .4byte _080EE3B4
+_080EE2E0:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE2FE:
+ ldr r0, _080EE320 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80F3C2C
+ bl sub_80EEE08
+ b _080EE3A0
+ .align 2, 0
+_080EE320: .4byte gPaletteFade
+_080EE324:
+ bl sub_80F6134
+ movs r0, 0x1
+ bl sub_80F0264
+ ldr r1, _080EE348 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE33C:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+ .align 2, 0
+_080EE348: .4byte 0x02000000
+_080EE34C:
+ movs r0, 0x4
+ bl sub_80EEFBC
+ movs r0, 0x1
+ bl sub_80F3008
+ ldr r0, _080EE368 @ =sub_80EBD18
+ bl SetVBlankCallback
+ ldr r1, _080EE36C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE3A8
+ .align 2, 0
+_080EE368: .4byte sub_80EBD18
+_080EE36C: .4byte 0x02000000
+_080EE370:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE3C6
+ b _080EE3A0
+_080EE37A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080EE3A8
+_080EE39A:
+ movs r0, 0x4
+ bl sub_80EED2C
+_080EE3A0:
+ ldr r1, _080EE3B0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE3A8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE3C6
+ .align 2, 0
+_080EE3B0: .4byte 0x02000000
+_080EE3B4:
+ ldr r0, _080EE3D0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE3C6
+ ldr r0, _080EE3D4 @ =sub_80EDDBC
+ bl sub_80EBDBC
+_080EE3C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE3D0: .4byte gPaletteFade
+_080EE3D4: .4byte sub_80EDDBC
+ thumb_func_end sub_80EE294
+
+ thumb_func_start sub_80EE3D8
+sub_80EE3D8: @ 80EE3D8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE3F8 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EE3EC
+ b _080EE57A
+_080EE3EC:
+ lsls r0, 2
+ ldr r1, _080EE3FC @ =_080EE400
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE3F8: .4byte 0x02000000
+_080EE3FC: .4byte _080EE400
+ .align 2, 0
+_080EE400:
+ .4byte _080EE438
+ .4byte _080EE444
+ .4byte _080EE458
+ .4byte _080EE48C
+ .4byte _080EE4B0
+ .4byte _080EE4B6
+ .4byte _080EE4CA
+ .4byte _080EE4DC
+ .4byte _080EE4F0
+ .4byte _080EE504
+ .4byte _080EE50C
+ .4byte _080EE516
+ .4byte _080EE54C
+ .4byte _080EE568
+_080EE438:
+ bl sub_80F1E84
+ movs r0, 0
+ bl sub_80F2D04
+ b _080EE552
+_080EE444:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE450
+ b _080EE57A
+_080EE450:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ b _080EE552
+_080EE458:
+ bl sub_80EEF34
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _080EE466
+ b _080EE57A
+_080EE466:
+ ldr r4, _080EE488 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE488: .4byte 0x02000000
+_080EE48C:
+ ldr r0, _080EE4AC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80EED0C
+ bl sub_80EF814
+ bl sub_80EEE08
+ b _080EE552
+ .align 2, 0
+_080EE4AC: .4byte gPaletteFade
+_080EE4B0:
+ bl sub_80F2620
+ b _080EE552
+_080EE4B6:
+ movs r0, 0x2
+ bl sub_80F0264
+ ldr r1, _080EE4D8 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4CA:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE4D8: .4byte 0x02000000
+_080EE4DC:
+ movs r0, 0x3
+ bl sub_80F2C80
+ ldr r1, _080EE500 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE4F0:
+ movs r0, 0x3
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+ .align 2, 0
+_080EE500: .4byte 0x02000000
+_080EE504:
+ movs r0, 0x2
+ bl sub_80F3008
+ b _080EE552
+_080EE50C:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE57A
+ b _080EE552
+_080EE516:
+ bl sub_80F6F10
+ ldr r4, _080EE544 @ =0x02000000
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080EE548 @ =sub_80EBD68
+ bl SetVBlankCallback
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080EE55A
+ .align 2, 0
+_080EE544: .4byte 0x02000000
+_080EE548: .4byte sub_80EBD68
+_080EE54C:
+ movs r0, 0x5
+ bl sub_80EED2C
+_080EE552:
+ ldr r1, _080EE564 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+_080EE55A:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE57A
+ .align 2, 0
+_080EE564: .4byte 0x02000000
+_080EE568:
+ ldr r0, _080EE584 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE57A
+ ldr r0, _080EE588 @ =sub_80EE58C
+ bl sub_80EBDBC
+_080EE57A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE584: .4byte gPaletteFade
+_080EE588: .4byte sub_80EE58C
+ thumb_func_end sub_80EE3D8
+
+ thumb_func_start sub_80EE58C
+sub_80EE58C: @ 80EE58C
+ push {r4,r5,lr}
+ ldr r5, _080EE5A8 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EE624
+ cmp r0, 0x1
+ bgt _080EE5AC
+ cmp r0, 0
+ beq _080EE5B2
+ b _080EE652
+ .align 2, 0
+_080EE5A8: .4byte 0x02000000
+_080EE5AC:
+ cmp r0, 0x2
+ beq _080EE648
+ b _080EE652
+_080EE5B2:
+ bl sub_80F5DD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080EE5E4
+ cmp r0, 0x2
+ beq _080EE5FC
+ ldr r0, _080EE5DC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE608
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE5E0 @ =sub_80EE658
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE5DC: .4byte gMain
+_080EE5E0: .4byte sub_80EE658
+_080EE5E4:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080EE5F8 @ =0x0000876e
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080EE652
+ .align 2, 0
+_080EE5F8: .4byte 0x0000876e
+_080EE5FC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+_080EE608:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE652
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080EE620 @ =sub_80EE8F4
+ bl sub_80EBDBC
+ b _080EE652
+ .align 2, 0
+_080EE620: .4byte sub_80EE8F4
+_080EE624:
+ bl sub_80F0718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE652
+ ldr r1, _080EE644 @ =0x0000876e
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ bl sub_80F3264
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080EE650
+ .align 2, 0
+_080EE644: .4byte 0x0000876e
+_080EE648:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE652
+_080EE650:
+ strh r0, [r4]
+_080EE652:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE58C
+
+ thumb_func_start sub_80EE658
+sub_80EE658: @ 80EE658
+ push {r4,r5,lr}
+ ldr r1, _080EE678 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x11
+ bls _080EE66C
+ b _080EE8E8
+_080EE66C:
+ lsls r0, 2
+ ldr r1, _080EE67C @ =_080EE680
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE678: .4byte 0x02000000
+_080EE67C: .4byte _080EE680
+ .align 2, 0
+_080EE680:
+ .4byte _080EE6C8
+ .4byte _080EE6DA
+ .4byte _080EE6F4
+ .4byte _080EE708
+ .4byte _080EE71C
+ .4byte _080EE730
+ .4byte _080EE758
+ .4byte _080EE76A
+ .4byte _080EE780
+ .4byte _080EE820
+ .4byte _080EE840
+ .4byte _080EE854
+ .4byte _080EE868
+ .4byte _080EE86E
+ .4byte _080EE880
+ .4byte _080EE898
+ .4byte _080EE8B4
+ .4byte _080EE8D4
+_080EE6C8:
+ movs r0, 0x1
+ bl sub_80F3294
+ movs r0, 0xA
+ bl sub_80EEFBC
+ bl sub_80F0B24
+ b _080EE8BE
+_080EE6DA:
+ bl sub_80F0B44
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE6E6
+ b _080EE8E8
+_080EE6E6:
+ ldr r1, _080EE6F0 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE6F0: .4byte 0x02000000
+_080EE6F4:
+ bl sub_80F0F64
+ ldr r1, _080EE704 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE704: .4byte 0x02000000
+_080EE708:
+ bl sub_80F0FEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE714
+ b _080EE8E8
+_080EE714:
+ movs r0, 0x1
+ bl sub_80F6FB8
+ b _080EE8BE
+_080EE71C:
+ bl sub_80F6DB8
+ ldr r1, _080EE72C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE72C: .4byte 0x02000000
+_080EE730:
+ ldr r4, _080EE750 @ =0x02008788
+ adds r0, r4, 0
+ subs r0, 0x1A
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ bl sub_80F700C
+ adds r0, r4, 0
+ bl sub_80F42C4
+ ldr r1, _080EE754 @ =0xffff7b7c
+ adds r4, r1
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE8E8
+ .align 2, 0
+_080EE750: .4byte 0x02008788
+_080EE754: .4byte 0xffff7b7c
+_080EE758:
+ bl sub_80F0CD8
+ ldr r1, _080EE77C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE76A:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EE776
+ b _080EE8E8
+_080EE776:
+ bl sub_80F0D5C
+ b _080EE8B8
+ .align 2, 0
+_080EE77C: .4byte 0x02000000
+_080EE780:
+ ldr r2, _080EE7B0 @ =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080EE7B8
+ ldr r1, _080EE7B4 @ =0x000087dc
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080EE7B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80F708C
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r4, r5
+ b _080EE7E8
+ .align 2, 0
+_080EE7B0: .4byte gMain
+_080EE7B4: .4byte 0x000087dc
+_080EE7B8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE7F8
+ ldr r1, _080EE7F0 @ =0x000087dc
+ adds r0, r4, r1
+ ldr r2, _080EE7F4 @ =0x00008774
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bge _080EE7F8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F708C
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r4, r0
+_080EE7E8:
+ movs r0, 0x10
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE7F0: .4byte 0x000087dc
+_080EE7F4: .4byte 0x00008774
+_080EE7F8:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE8E8
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80F4394
+ bl sub_80F0EC0
+ ldr r1, _080EE81C @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE81C: .4byte 0x02000000
+_080EE820:
+ bl sub_80F6ED4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ bl sub_80F0EF4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ movs r0, 0
+ bl sub_80F6FB8
+ bl sub_80F2FB0
+ b _080EE8BE
+_080EE840:
+ bl sub_80F6134
+ ldr r1, _080EE850 @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE850: .4byte 0x02000000
+_080EE854:
+ bl sub_80F0FA0
+ ldr r1, _080EE864 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE864: .4byte 0x02000000
+_080EE868:
+ bl sub_80F0FEC
+ b _080EE8B8
+_080EE86E:
+ bl sub_80F0C28
+ ldr r1, _080EE87C @ =0x02000000
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ b _080EE8C6
+ .align 2, 0
+_080EE87C: .4byte 0x02000000
+_080EE880:
+ bl sub_80F0C48
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r1, _080EE894 @ =0x02000000
+ movs r2, 0xC1
+ lsls r2, 2
+ adds r1, r2
+ b _080EE8C6
+ .align 2, 0
+_080EE894: .4byte 0x02000000
+_080EE898:
+ movs r0, 0x9
+ bl sub_80EEFBC
+ movs r0, 0
+ bl sub_80F3294
+ ldr r0, _080EE8B0 @ =sub_80EE58C
+ bl sub_80EBDBC
+ bl sub_80EED9C
+ b _080EE8E8
+ .align 2, 0
+_080EE8B0: .4byte sub_80EE58C
+_080EE8B4:
+ bl sub_80F70FC
+_080EE8B8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EE8E8
+_080EE8BE:
+ ldr r1, _080EE8D0 @ =0x02000000
+ movs r5, 0xC1
+ lsls r5, 2
+ adds r1, r5
+_080EE8C6:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EE8E8
+ .align 2, 0
+_080EE8D0: .4byte 0x02000000
+_080EE8D4:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EE8E8
+ ldr r0, _080EE8F0 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0]
+_080EE8E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE8F0: .4byte 0x02000000
+ thumb_func_end sub_80EE658
+
+ thumb_func_start sub_80EE8F4
+sub_80EE8F4: @ 80EE8F4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080EE910 @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ cmp r2, 0x1
+ beq _080EE932
+ cmp r2, 0x1
+ bgt _080EE914
+ cmp r2, 0
+ beq _080EE91A
+ b _080EE95E
+ .align 2, 0
+_080EE910: .4byte 0x02000000
+_080EE914:
+ cmp r2, 0x2
+ beq _080EE958
+ b _080EE95E
+_080EE91A:
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _080EE94C
+_080EE932:
+ ldr r0, _080EE954 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE95E
+ bl sub_80F3130
+ movs r0, 0x2
+ bl sub_80F2D6C
+ bl sub_80F6FFC
+_080EE94C:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080EE95E
+ .align 2, 0
+_080EE954: .4byte gPaletteFade
+_080EE958:
+ ldr r0, _080EE968 @ =sub_80EC00C
+ bl sub_80EBDBC
+_080EE95E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE968: .4byte sub_80EC00C
+ thumb_func_end sub_80EE8F4
+
+ thumb_func_start sub_80EE96C
+sub_80EE96C: @ 80EE96C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _080EE99C @ =0x02000000
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ cmp r4, 0
+ bne _080EE9A0
+ movs r0, 0x6F
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EE9B4
+ .align 2, 0
+_080EE99C: .4byte 0x02000000
+_080EE9A0:
+ ldr r0, _080EE9BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080EE9B4
+ bl sub_80F5BDC
+ bl sub_805469C
+_080EE9B4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9BC: .4byte gPaletteFade
+ thumb_func_end sub_80EE96C
+
+ thumb_func_start sub_80EE9C0
+sub_80EE9C0: @ 80EE9C0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ bl sub_80F1E84
+ ldr r1, _080EE9FC @ =0x02000000
+ ldr r2, _080EEA00 @ =0x00006e14
+ adds r0, r1, r2
+ movs r2, 0
+ strb r4, [r0]
+ ldr r3, _080EEA04 @ =0x00006e15
+ adds r0, r1, r3
+ strb r5, [r0]
+ adds r3, 0x1
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EEA08 @ =0x00006e17
+ adds r1, r0
+ strb r6, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9FC: .4byte 0x02000000
+_080EEA00: .4byte 0x00006e14
+_080EEA04: .4byte 0x00006e15
+_080EEA08: .4byte 0x00006e17
+ thumb_func_end sub_80EE9C0
+
+ thumb_func_start sub_80EEA0C
+sub_80EEA0C: @ 80EEA0C
+ push {r4,lr}
+ ldr r1, _080EEA28 @ =0x02000000
+ ldr r2, _080EEA2C @ =0x00006e16
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x8
+ bls _080EEA1E
+ b _080EEBFA
+_080EEA1E:
+ lsls r0, 2
+ ldr r1, _080EEA30 @ =_080EEA34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEA28: .4byte 0x02000000
+_080EEA2C: .4byte 0x00006e16
+_080EEA30: .4byte _080EEA34
+ .align 2, 0
+_080EEA34:
+ .4byte _080EEA58
+ .4byte _080EEA98
+ .4byte _080EEAAE
+ .4byte _080EEAD4
+ .4byte _080EEB3E
+ .4byte _080EEB68
+ .4byte _080EEB88
+ .4byte _080EEBAC
+ .4byte _080EEBE4
+_080EEA58:
+ bl sub_80F1F10
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEA64
+ b _080EEC08
+_080EEA64:
+ ldr r1, _080EEA7C @ =0x02000000
+ ldr r4, _080EEA80 @ =0x00006e17
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _080EEA88
+ ldr r0, _080EEA84 @ =0x00006e16
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA7C: .4byte 0x02000000
+_080EEA80: .4byte 0x00006e17
+_080EEA84: .4byte 0x00006e16
+_080EEA88:
+ ldr r2, _080EEA94 @ =0x00006e16
+ adds r1, r2
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEA94: .4byte 0x00006e16
+_080EEA98:
+ ldr r4, _080EEAC8 @ =0x02000000
+ ldr r1, _080EEACC @ =0x00006e17
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2C80
+ ldr r2, _080EEAD0 @ =0x00006e16
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEAAE:
+ ldr r4, _080EEAC8 @ =0x02000000
+ ldr r1, _080EEACC @ =0x00006e17
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EEAC2
+ b _080EEC08
+_080EEAC2:
+ ldr r2, _080EEAD0 @ =0x00006e16
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEAC8: .4byte 0x02000000
+_080EEACC: .4byte 0x00006e17
+_080EEAD0: .4byte 0x00006e16
+_080EEAD4:
+ adds r2, r3, 0
+ ldr r4, _080EEAF8 @ =0x00006e15
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ subs r4, 0x68
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldr r1, _080EEAFC @ =0x00006e14
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080EEB14
+ cmp r0, 0x1
+ bgt _080EEB00
+ cmp r0, 0
+ beq _080EEB06
+ b _080EEB28
+ .align 2, 0
+_080EEAF8: .4byte 0x00006e15
+_080EEAFC: .4byte 0x00006e14
+_080EEB00:
+ cmp r0, 0x2
+ beq _080EEB20
+ b _080EEB28
+_080EEB06:
+ ldr r4, _080EEB10 @ =0x00006dae
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080EEB26
+ .align 2, 0
+_080EEB10: .4byte 0x00006dae
+_080EEB14:
+ ldr r0, _080EEB1C @ =0x00006dae
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _080EEB26
+ .align 2, 0
+_080EEB1C: .4byte 0x00006dae
+_080EEB20:
+ ldr r2, _080EEB58 @ =0x00006dae
+ adds r1, r3, r2
+ movs r0, 0x6
+_080EEB26:
+ strb r0, [r1]
+_080EEB28:
+ ldr r4, _080EEB5C @ =0x02000000
+ ldr r1, _080EEB60 @ =0x00006e14
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1B8C
+ ldr r2, _080EEB64 @ =0x00006e16
+ adds r4, r2
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080EEB3E:
+ ldr r4, _080EEB5C @ =0x02000000
+ ldr r1, _080EEB60 @ =0x00006e14
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r2, _080EEB64 @ =0x00006e16
+ adds r1, r4, r2
+ b _080EEB76
+ .align 2, 0
+_080EEB58: .4byte 0x00006dae
+_080EEB5C: .4byte 0x02000000
+_080EEB60: .4byte 0x00006e14
+_080EEB64: .4byte 0x00006e16
+_080EEB68:
+ bl sub_8055870
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEB80 @ =0x02000000
+ ldr r4, _080EEB84 @ =0x00006e16
+ adds r1, r4
+_080EEB76:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080EEC08
+ .align 2, 0
+_080EEB80: .4byte 0x02000000
+_080EEB84: .4byte 0x00006e16
+_080EEB88:
+ bl sub_80F1DF0
+ ldr r4, _080EEBA0 @ =0x02000000
+ ldr r1, _080EEBA4 @ =0x00006e14
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80EF490
+ ldr r2, _080EEBA8 @ =0x00006e16
+ adds r4, r2
+ b _080EEBCC
+ .align 2, 0
+_080EEBA0: .4byte 0x02000000
+_080EEBA4: .4byte 0x00006e14
+_080EEBA8: .4byte 0x00006e16
+_080EEBAC:
+ bl sub_80F1E50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r4, _080EEBD4 @ =0x02000000
+ ldr r1, _080EEBD8 @ =0x00006e14
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080EEBDC @ =0x00006dad
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80EF428
+ ldr r0, _080EEBE0 @ =0x00006e16
+ adds r4, r0
+_080EEBCC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080EEC08
+ .align 2, 0
+_080EEBD4: .4byte 0x02000000
+_080EEBD8: .4byte 0x00006e14
+_080EEBDC: .4byte 0x00006dad
+_080EEBE0: .4byte 0x00006e16
+_080EEBE4:
+ bl sub_80EF4F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEC08
+ ldr r1, _080EEC00 @ =0x02000000
+ ldr r2, _080EEC04 @ =0x00006e16
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EEBFA:
+ movs r0, 0
+ b _080EEC0A
+ .align 2, 0
+_080EEC00: .4byte 0x02000000
+_080EEC04: .4byte 0x00006e16
+_080EEC08:
+ movs r0, 0x1
+_080EEC0A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEA0C
+
+ thumb_func_start sub_80EEC10
+sub_80EEC10: @ 80EEC10
+ push {r4,lr}
+ ldr r0, _080EEC48 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC50
+ ldr r1, _080EEC4C @ =0x02006dad
+ adds r3, r1, 0x1
+ adds r2, r1, 0x5
+_080EEC24:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EEC36
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r1]
+_080EEC36:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC24
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC48: .4byte gMain
+_080EEC4C: .4byte 0x02006dad
+_080EEC50:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEC88
+ ldr r1, _080EEC84 @ =0x02006dad
+ movs r4, 0
+ movs r2, 0x1
+ ldrsb r2, [r1, r2]
+ adds r3, r1, 0x5
+_080EEC62:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r2
+ blt _080EEC72
+ strb r4, [r1]
+_080EEC72:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EEC62
+ movs r0, 0x1
+ b _080EEC8A
+ .align 2, 0
+_080EEC84: .4byte 0x02006dad
+_080EEC88:
+ movs r0, 0
+_080EEC8A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC10
+
+ thumb_func_start sub_80EEC90
+sub_80EEC90: @ 80EEC90
+ push {r4,lr}
+ ldr r0, _080EECC0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080EECD0
+ ldr r2, _080EECC4 @ =0x02000000
+ ldr r0, _080EECC8 @ =0x00006dad
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080EECF8
+ ldr r3, _080EECCC @ =0x00006dae
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r1]
+ b _080EECF8
+ .align 2, 0
+_080EECC0: .4byte gMain
+_080EECC4: .4byte 0x02000000
+_080EECC8: .4byte 0x00006dad
+_080EECCC: .4byte 0x00006dae
+_080EECD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080EED04
+ ldr r0, _080EECFC @ =0x02000000
+ ldr r4, _080EED00 @ =0x00006dad
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ adds r1, 0x1
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r0, r4
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080EECF8
+ strb r3, [r2]
+_080EECF8:
+ movs r0, 0x1
+ b _080EED06
+ .align 2, 0
+_080EECFC: .4byte 0x02000000
+_080EED00: .4byte 0x00006dad
+_080EED04:
+ movs r0, 0
+_080EED06:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EEC90
+
+ thumb_func_start sub_80EED0C
+sub_80EED0C: @ 80EED0C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED0C
+
+ thumb_func_start sub_80EED1C
+sub_80EED1C: @ 80EED1C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x92
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ thumb_func_end sub_80EED1C
+
+ thumb_func_start sub_80EED2C
+sub_80EED2C: @ 80EED2C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080EED98
+ lsls r0, 2
+ ldr r1, _080EED40 @ =_080EED44
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EED40: .4byte _080EED44
+ .align 2, 0
+_080EED44:
+ .4byte _080EED5C
+ .4byte _080EED66
+ .4byte _080EED7E
+ .4byte _080EED74
+ .4byte _080EED74
+ .4byte _080EED8C
+_080EED5C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED66:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED70 @ =0x00001741
+ b _080EED94
+ .align 2, 0
+_080EED70: .4byte 0x00001741
+_080EED74:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ b _080EED94
+_080EED7E:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080EED88 @ =0x00007b40
+ b _080EED94
+ .align 2, 0
+_080EED88: .4byte 0x00007b40
+_080EED8C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+_080EED94:
+ adds r0, r2, 0
+ strh r0, [r1]
+_080EED98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EED2C
+
+ thumb_func_start sub_80EED9C
+sub_80EED9C: @ 80EED9C
+ push {lr}
+ ldr r2, _080EEDB8 @ =gUnknown_03000744
+ ldr r0, _080EEDBC @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r1, _080EEDC0 @ =sub_80EEDC4
+ str r1, [r0]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDB8: .4byte gUnknown_03000744
+_080EEDBC: .4byte 0x02000000
+_080EEDC0: .4byte sub_80EEDC4
+ thumb_func_end sub_80EED9C
+
+ thumb_func_start sub_80EEDC4
+sub_80EEDC4: @ 80EEDC4
+ push {lr}
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _080EEDDC
+ ldr r0, _080EEDE0 @ =0x02000000
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, _080EEDE4 @ =gUnknown_03000744
+ ldr r1, [r1]
+ str r1, [r0]
+_080EEDDC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEDE0: .4byte 0x02000000
+_080EEDE4: .4byte gUnknown_03000744
+ thumb_func_end sub_80EEDC4
+
+ thumb_func_start sub_80EEDE8
+sub_80EEDE8: @ 80EEDE8
+ ldr r0, _080EEE04 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE04: .4byte REG_BG0HOFS
+ thumb_func_end sub_80EEDE8
+
+ thumb_func_start sub_80EEE08
+sub_80EEE08: @ 80EEE08
+ ldr r0, _080EEE18 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EEE1C @ =0x0000d160
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080EEE18: .4byte gUnknown_083DFEC4
+_080EEE1C: .4byte 0x0000d160
+ thumb_func_end sub_80EEE08
+
+ thumb_func_start sub_80EEE20
+sub_80EEE20: @ 80EEE20
+ push {lr}
+ ldr r0, _080EEE48 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EEE4C @ =0x0000d160
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EEE50 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EEE42
+_080EEE38:
+ bl sub_80EEE54
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EEE38
+_080EEE42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEE48: .4byte gUnknown_083DFEC4
+_080EEE4C: .4byte 0x0000d160
+_080EEE50: .4byte 0x00006dac
+ thumb_func_end sub_80EEE20
+
+ thumb_func_start sub_80EEE54
+sub_80EEE54: @ 80EEE54
+ push {lr}
+ ldr r1, _080EEE70 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080EEE74 @ =0x0000d160
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _080EEF02
+ lsls r0, 2
+ ldr r1, _080EEE78 @ =_080EEE7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEE70: .4byte gUnknown_083DFEC4
+_080EEE74: .4byte 0x0000d160
+_080EEE78: .4byte _080EEE7C
+ .align 2, 0
+_080EEE7C:
+ .4byte _080EEE90
+ .4byte _080EEEA4
+ .4byte _080EEEB8
+ .4byte _080EEEC8
+ .4byte _080EEEDC
+_080EEE90:
+ ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx
+ ldr r1, _080EEEA0 @ =0x0600c000
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
+_080EEEA0: .4byte 0x0600c000
+_080EEEA4:
+ ldr r0, _080EEEB0 @ =gUnknown_08E99FB0
+ ldr r1, _080EEEB4 @ =0x0600d800
+ bl LZ77UnCompVram
+ b _080EEF18
+ .align 2, 0
+_080EEEB0: .4byte gUnknown_08E99FB0
+_080EEEB4: .4byte 0x0600d800
+_080EEEB8:
+ ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ b _080EEF18
+ .align 2, 0
+_080EEEC4: .4byte gPokenavHoennMap1_Pal
+_080EEEC8:
+ movs r0, 0
+ bl sub_80EF58C
+ movs r0, 0x1
+ bl sub_80EF58C
+ movs r0, 0x2
+ bl sub_80EF58C
+ b _080EEF18
+_080EEEDC:
+ ldr r2, [r2]
+ movs r3, 0xC3
+ lsls r3, 2
+ adds r0, r2, r3
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080EEF08 @ =REG_BG1HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080EEF0C @ =REG_BG1CNT
+ ldr r3, _080EEF10 @ =0x00001b0c
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080EEF14 @ =0x0000d160
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EEF02:
+ movs r0, 0
+ b _080EEF28
+ .align 2, 0
+_080EEF08: .4byte REG_BG1HOFS
+_080EEF0C: .4byte REG_BG1CNT
+_080EEF10: .4byte 0x00001b0c
+_080EEF14: .4byte 0x0000d160
+_080EEF18:
+ ldr r0, _080EEF2C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EEF30 @ =0x0000d160
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080EEF28:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF2C: .4byte gUnknown_083DFEC4
+_080EEF30: .4byte 0x0000d160
+ thumb_func_end sub_80EEE54
+
+ thumb_func_start sub_80EEF34
+sub_80EEF34: @ 80EEF34
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF50 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x20
+ bne _080EEF54
+ movs r0, 0
+ b _080EEF6E
+ .align 2, 0
+_080EEF50: .4byte gUnknown_083DFEC4
+_080EEF54:
+ adds r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ ble _080EEF66
+ movs r0, 0x20
+ strh r0, [r2]
+ movs r3, 0
+_080EEF66:
+ ldr r1, _080EEF74 @ =REG_BG1VOFS
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEF6E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEF74: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF34
+
+ thumb_func_start sub_80EEF78
+sub_80EEF78: @ 80EEF78
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r0, _080EEF94 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bne _080EEF98
+ movs r0, 0
+ b _080EEFB0
+ .align 2, 0
+_080EEF94: .4byte gUnknown_083DFEC4
+_080EEF98:
+ subs r0, r1, 0x2
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080EEFA8
+ movs r0, 0
+ strh r0, [r2]
+ movs r3, 0
+_080EEFA8:
+ ldr r1, _080EEFB8 @ =REG_BG1VOFS
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r0, r3, 0
+_080EEFB0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EEFB8: .4byte REG_BG1VOFS
+ thumb_func_end sub_80EEF78
+
+ thumb_func_start sub_80EEFBC
+sub_80EEFBC: @ 80EEFBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EEFF4 @ =0x0600d800
+ ldr r3, _080EEFF8 @ =gUnknown_08E9A100
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0
+ movs r2, 0x16
+ bl sub_809D104
+ cmp r4, 0xB
+ bls _080EEFE8
+ b _080EF234
+_080EEFE8:
+ lsls r0, r4, 2
+ ldr r1, _080EEFFC @ =_080EF000
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EEFF4: .4byte 0x0600d800
+_080EEFF8: .4byte gUnknown_08E9A100
+_080EEFFC: .4byte _080EF000
+ .align 2, 0
+_080EF000:
+ .4byte _080EF030
+ .4byte _080EF234
+ .4byte _080EF08C
+ .4byte _080EF100
+ .4byte _080EF13C
+ .4byte _080EF1D4
+ .4byte _080EF234
+ .4byte _080EF178
+ .4byte _080EF190
+ .4byte _080EF1D4
+ .4byte _080EF218
+ .4byte _080EF06C
+_080EF030:
+ ldr r6, _080EF064 @ =0x0600d800
+ ldr r0, _080EF068 @ =gUnknown_08E9A100
+ mov r8, r0
+ movs r0, 0x11
+ str r0, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r4, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF064: .4byte 0x0600d800
+_080EF068: .4byte gUnknown_08E9A100
+_080EF06C:
+ ldr r0, _080EF084 @ =0x0600d800
+ ldr r3, _080EF088 @ =gUnknown_08E9A100
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ b _080EF0EE
+ .align 2, 0
+_080EF084: .4byte 0x0600d800
+_080EF088: .4byte gUnknown_08E9A100
+_080EF08C:
+ ldr r0, _080EF0C8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF0CC @ =0x00006dac
+ adds r0, r1
+ ldrb r7, [r0]
+ cmp r7, 0
+ bne _080EF0D8
+ ldr r5, _080EF0D0 @ =0x0600d800
+ ldr r6, _080EF0D4 @ =gUnknown_08E9A100
+ movs r0, 0xA
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ str r7, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF0C8: .4byte gUnknown_083DFEC4
+_080EF0CC: .4byte 0x00006dac
+_080EF0D0: .4byte 0x0600d800
+_080EF0D4: .4byte gUnknown_08E9A100
+_080EF0D8:
+ ldr r0, _080EF0F8 @ =0x0600d800
+ ldr r3, _080EF0FC @ =gUnknown_08E9A100
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0xA
+_080EF0EE:
+ movs r2, 0x16
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF0F8: .4byte 0x0600d800
+_080EF0FC: .4byte gUnknown_08E9A100
+_080EF100:
+ ldr r6, _080EF134 @ =0x0600d800
+ ldr r0, _080EF138 @ =gUnknown_08E9A100
+ mov r8, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0xA
+ b _080EF204
+ .align 2, 0
+_080EF134: .4byte 0x0600d800
+_080EF138: .4byte gUnknown_08E9A100
+_080EF13C:
+ ldr r5, _080EF170 @ =0x0600d800
+ ldr r6, _080EF174 @ =gUnknown_08E9A100
+ movs r0, 0x14
+ str r0, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _080EF1C2
+ .align 2, 0
+_080EF170: .4byte 0x0600d800
+_080EF174: .4byte gUnknown_08E9A100
+_080EF178:
+ ldr r5, _080EF188 @ =0x0600d800
+ ldr r6, _080EF18C @ =gUnknown_08E9A100
+ movs r1, 0xA
+ str r1, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ b _080EF1A0
+ .align 2, 0
+_080EF188: .4byte 0x0600d800
+_080EF18C: .4byte gUnknown_08E9A100
+_080EF190:
+ ldr r5, _080EF1CC @ =0x0600d800
+ ldr r6, _080EF1D0 @ =gUnknown_08E9A100
+ movs r0, 0x14
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+_080EF1A0:
+ movs r4, 0x2
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0x7
+_080EF1C2:
+ movs r2, 0x16
+ adds r3, r6, 0
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF1CC: .4byte 0x0600d800
+_080EF1D0: .4byte gUnknown_08E9A100
+_080EF1D4:
+ ldr r6, _080EF210 @ =0x0600d800
+ ldr r1, _080EF214 @ =gUnknown_08E9A100
+ mov r8, r1
+ movs r5, 0
+ str r5, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r0, 0xA
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ str r5, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x8
+_080EF204:
+ movs r2, 0x16
+ mov r3, r8
+ bl sub_809D104
+ b _080EF234
+ .align 2, 0
+_080EF210: .4byte 0x0600d800
+_080EF214: .4byte gUnknown_08E9A100
+_080EF218:
+ ldr r0, _080EF240 @ =0x0600d800
+ ldr r3, _080EF244 @ =gUnknown_08E9A100
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x6
+ str r1, [sp, 0x4]
+ movs r1, 0x7
+ str r1, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ movs r1, 0x8
+ movs r2, 0x16
+ bl sub_809D104
+_080EF234:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF240: .4byte 0x0600d800
+_080EF244: .4byte gUnknown_08E9A100
+ thumb_func_end sub_80EEFBC
+
+ thumb_func_start sub_80EF248
+sub_80EF248: @ 80EF248
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080EF278 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF27C @ =0x0000d160
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF280 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF270
+_080EF264:
+ adds r0, r4, 0
+ bl sub_80EF284
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF264
+_080EF270:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF278: .4byte gUnknown_083DFEC4
+_080EF27C: .4byte 0x0000d160
+_080EF280: .4byte 0x00006dac
+ thumb_func_end sub_80EF248
+
+ thumb_func_start sub_80EF284
+sub_80EF284: @ 80EF284
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080EF2A8 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r3, _080EF2AC @ =0x0000d160
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080EF29C
+ b _080EF3F6
+_080EF29C:
+ lsls r0, 2
+ ldr r1, _080EF2B0 @ =_080EF2B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF2A8: .4byte gUnknown_083DFEC4
+_080EF2AC: .4byte 0x0000d160
+_080EF2B0: .4byte _080EF2B4
+ .align 2, 0
+_080EF2B4:
+ .4byte _080EF2E4
+ .4byte _080EF2EA
+ .4byte _080EF2F8
+ .4byte _080EF304
+ .4byte _080EF310
+ .4byte _080EF330
+ .4byte _080EF344
+ .4byte _080EF368
+ .4byte _080EF37C
+ .4byte _080EF390
+ .4byte _080EF3A4
+ .4byte _080EF3CC
+_080EF2E4:
+ bl sub_80EEDE8
+ b _080EF40C
+_080EF2EA:
+ ldr r0, _080EF2F4 @ =gWindowConfig_81E7224
+ bl SetUpWindowConfig
+ b _080EF40C
+ .align 2, 0
+_080EF2F4: .4byte gWindowConfig_81E7224
+_080EF2F8:
+ ldr r0, _080EF300 @ =gWindowConfig_81E7224
+ bl MultistepInitMenuWindowBegin
+ b _080EF40C
+ .align 2, 0
+_080EF300: .4byte gWindowConfig_81E7224
+_080EF304:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080EF30E
+ b _080EF40C
+_080EF30E:
+ b _080EF41A
+_080EF310:
+ ldr r1, _080EF320 @ =gUnknown_083DFEEC
+ ldr r2, _080EF324 @ =0x06005000
+ ldr r0, _080EF328 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF32C @ =0x80000050
+ b _080EF350
+ .align 2, 0
+_080EF320: .4byte gUnknown_083DFEEC
+_080EF324: .4byte 0x06005000
+_080EF328: .4byte 0x040000d4
+_080EF32C: .4byte 0x80000050
+_080EF330:
+ ldr r0, _080EF33C @ =gUnknown_083DFF8C
+ ldr r1, _080EF340 @ =0x0600f800
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF33C: .4byte gUnknown_083DFF8C
+_080EF340: .4byte 0x0600f800
+_080EF344:
+ ldr r1, _080EF358 @ =gUnknown_083E005C
+ ldr r2, _080EF35C @ =0x06008000
+ ldr r0, _080EF360 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080EF364 @ =0x80000010
+_080EF350:
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080EF40C
+ .align 2, 0
+_080EF358: .4byte gUnknown_083E005C
+_080EF35C: .4byte 0x06008000
+_080EF360: .4byte 0x040000d4
+_080EF364: .4byte 0x80000010
+_080EF368:
+ ldr r0, _080EF374 @ =gUnknown_083E007C
+ ldr r1, _080EF378 @ =0x0600e000
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF374: .4byte gUnknown_083E007C
+_080EF378: .4byte 0x0600e000
+_080EF37C:
+ ldr r0, _080EF388 @ =gPokenavOutlineTilemap
+ ldr r1, _080EF38C @ =0x0600e800
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF388: .4byte gPokenavOutlineTilemap
+_080EF38C: .4byte 0x0600e800
+_080EF390:
+ ldr r0, _080EF39C @ =gPokenavOutlineTiles
+ ldr r1, _080EF3A0 @ =0x06008020
+ bl LZ77UnCompVram
+ b _080EF40C
+ .align 2, 0
+_080EF39C: .4byte gPokenavOutlineTiles
+_080EF3A0: .4byte 0x06008020
+_080EF3A4:
+ adds r0, r2, 0
+ bl sub_80EF54C
+ ldr r0, _080EF3C4 @ =gUnknown_083DFECC
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080EF3C8 @ =gPokenavOutlinePalette
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EF7D4
+ b _080EF40C
+ .align 2, 0
+_080EF3C4: .4byte gUnknown_083DFECC
+_080EF3C8: .4byte gPokenavOutlinePalette
+_080EF3CC:
+ ldr r1, _080EF3FC @ =REG_BG0CNT
+ ldr r2, _080EF400 @ =0x00001f01
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080EF404 @ =0x00001d0a
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ ldr r3, _080EF408 @ =0x0000d160
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF3F6:
+ movs r0, 0
+ b _080EF41C
+ .align 2, 0
+_080EF3FC: .4byte REG_BG0CNT
+_080EF400: .4byte 0x00001f01
+_080EF404: .4byte 0x00001d0a
+_080EF408: .4byte 0x0000d160
+_080EF40C:
+ ldr r0, _080EF420 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080EF424 @ =0x0000d160
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF41A:
+ movs r0, 0x1
+_080EF41C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF420: .4byte gUnknown_083DFEC4
+_080EF424: .4byte 0x0000d160
+ thumb_func_end sub_80EF284
+
+ thumb_func_start sub_80EF428
+sub_80EF428: @ 80EF428
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ movs r1, 0
+ cmp r0, 0x1
+ beq _080EF454
+ cmp r0, 0x1
+ bgt _080EF444
+ cmp r0, 0
+ beq _080EF44A
+ b _080EF464
+_080EF444:
+ cmp r3, 0x2
+ beq _080EF45C
+ b _080EF464
+_080EF44A:
+ ldr r1, _080EF450 @ =gUnknown_083E31B0
+ b _080EF45E
+ .align 2, 0
+_080EF450: .4byte gUnknown_083E31B0
+_080EF454:
+ ldr r1, _080EF458 @ =gUnknown_083E31CC
+ b _080EF45E
+ .align 2, 0
+_080EF458: .4byte gUnknown_083E31CC
+_080EF45C:
+ ldr r1, _080EF488 @ =gUnknown_083E31D8
+_080EF45E:
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+_080EF464:
+ ldr r0, _080EF48C @ =gUnknown_083DFEC8
+ ldr r4, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0xC0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF488: .4byte gUnknown_083E31D8
+_080EF48C: .4byte gUnknown_083DFEC8
+ thumb_func_end sub_80EF428
+
+ thumb_func_start sub_80EF490
+sub_80EF490: @ 80EF490
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF49C
+ movs r2, 0x1
+_080EF49C:
+ ldr r0, _080EF4C4 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r2, r1, 1
+ ldr r4, _080EF4C8 @ =0x0000ce4e
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldr r2, _080EF4CC @ =0x0000ce4c
+ adds r0, r3, r2
+ ldrh r2, [r0]
+ lsls r1, 17
+ lsrs r0, r1, 16
+ cmp r2, r0
+ bcs _080EF4D0
+ adds r4, 0x2
+ adds r1, r3, r4
+ movs r0, 0x2
+ b _080EF4EA
+ .align 2, 0
+_080EF4C4: .4byte gUnknown_083DFEC4
+_080EF4C8: .4byte 0x0000ce4e
+_080EF4CC: .4byte 0x0000ce4c
+_080EF4D0:
+ cmp r2, r0
+ bls _080EF4E4
+ ldr r0, _080EF4DC @ =0x0000ce50
+ adds r1, r3, r0
+ ldr r0, _080EF4E0 @ =0x0000fffe
+ b _080EF4EA
+ .align 2, 0
+_080EF4DC: .4byte 0x0000ce50
+_080EF4E0: .4byte 0x0000fffe
+_080EF4E4:
+ ldr r2, _080EF4F4 @ =0x0000ce50
+ adds r1, r3, r2
+ movs r0, 0
+_080EF4EA:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF4F4: .4byte 0x0000ce50
+ thumb_func_end sub_80EF490
+
+ thumb_func_start sub_80EF4F8
+sub_80EF4F8: @ 80EF4F8
+ push {r4,lr}
+ ldr r0, _080EF530 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080EF534 @ =0x0000ce4c
+ adds r2, r1, r0
+ ldr r3, _080EF538 @ =0x0000ce4e
+ adds r0, r1, r3
+ ldrh r3, [r2]
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080EF544
+ ldr r4, _080EF53C @ =0x0000ce50
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ strh r0, [r2]
+ ldr r3, _080EF540 @ =0x0000ce52
+ adds r0, r1, r3
+ ldrh r1, [r2]
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ movs r0, 0x1
+ b _080EF546
+ .align 2, 0
+_080EF530: .4byte gUnknown_083DFEC4
+_080EF534: .4byte 0x0000ce4c
+_080EF538: .4byte 0x0000ce4e
+_080EF53C: .4byte 0x0000ce50
+_080EF540: .4byte 0x0000ce52
+_080EF544:
+ movs r0, 0
+_080EF546:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EF4F8
+
+ thumb_func_start sub_80EF54C
+sub_80EF54C: @ 80EF54C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _080EF558
+ movs r2, 0x1
+_080EF558:
+ ldr r0, _080EF580 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 1
+ ldr r3, _080EF584 @ =0x0000ce4c
+ adds r2, r0, r3
+ strh r1, [r2]
+ ldrh r1, [r2]
+ lsls r1, 1
+ ldr r2, _080EF588 @ =0x0000ce52
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x31
+ movs r2, 0x4
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF580: .4byte gUnknown_083DFEC4
+_080EF584: .4byte 0x0000ce4c
+_080EF588: .4byte 0x0000ce52
+ thumb_func_end sub_80EF54C
+
+ thumb_func_start sub_80EF58C
+sub_80EF58C: @ 80EF58C
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080EF5D0
+ cmp r0, 0x1
+ bgt _080EF5A4
+ cmp r0, 0
+ beq _080EF5AA
+ b _080EF610
+_080EF5A4:
+ cmp r1, 0x2
+ beq _080EF5F8
+ b _080EF610
+_080EF5AA:
+ movs r1, 0
+ ldr r0, _080EF5C8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080EF5CC @ =0x0000ce52
+ adds r2, r0, r3
+ movs r3, 0
+_080EF5B6:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3D
+ bls _080EF5B6
+ b _080EF610
+ .align 2, 0
+_080EF5C8: .4byte gUnknown_083DFEC4
+_080EF5CC: .4byte 0x0000ce52
+_080EF5D0:
+ ldr r0, _080EF5EC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF5F0 @ =0x0000ce52
+ adds r2, r0, r1
+ ldr r1, _080EF5F4 @ =gUnknown_083E003C
+ adds r0, r1, 0x2
+ adds r1, 0x6
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+ b _080EF610
+ .align 2, 0
+_080EF5EC: .4byte gUnknown_083DFEC4
+_080EF5F0: .4byte 0x0000ce52
+_080EF5F4: .4byte gUnknown_083E003C
+_080EF5F8:
+ ldr r0, _080EF618 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080EF61C @ =0x0000ce8e
+ adds r2, r0, r3
+ ldr r1, _080EF620 @ =gUnknown_083E003C
+ adds r0, r1, 0x6
+ adds r1, 0xE
+ str r2, [sp]
+ movs r2, 0x10
+ movs r3, 0x2
+ bl sub_80EF624
+_080EF610:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF618: .4byte gUnknown_083DFEC4
+_080EF61C: .4byte 0x0000ce8e
+_080EF620: .4byte gUnknown_083E003C
+ thumb_func_end sub_80EF58C
+
+ thumb_func_start sub_80EF624
+sub_80EF624: @ 80EF624
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x58]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x8]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ lsls r0, r3, 16
+ ldr r1, [sp, 0x10]
+ cmp r1, r3
+ bcs _080EF72E
+ subs r2, 0x1
+ str r2, [sp, 0x20]
+ str r0, [sp, 0x2C]
+_080EF654:
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r7, r0, 8
+ lsls r1, 16
+ lsrs r0, r1, 21
+ movs r2, 0x1F
+ ands r0, r2
+ lsls r6, r0, 8
+ lsrs r1, 26
+ ands r1, r2
+ lsls r5, r1, 8
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0x14]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp, 0x18]
+ lsrs r1, 26
+ ands r1, r2
+ lsls r1, 8
+ str r1, [sp, 0x1C]
+ ldr r1, [sp, 0x14]
+ subs r0, r1, r7
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r10, r0
+ ldr r2, [sp, 0x18]
+ subs r0, r2, r6
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r9, r0
+ ldr r1, [sp, 0x1C]
+ subs r0, r1, r5
+ ldr r1, [sp, 0x8]
+ bl __divsi3
+ mov r8, r0
+ adds r3, r4, 0
+ movs r4, 0
+ ldr r2, [sp]
+ adds r2, 0x2
+ str r2, [sp, 0x30]
+ ldr r0, [sp, 0x4]
+ adds r0, 0x2
+ str r0, [sp, 0x34]
+ adds r1, r3, 0x2
+ str r1, [sp, 0x24]
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x28]
+ ldr r0, [sp, 0x20]
+ cmp r4, r0
+ bge _080EF700
+ ldr r1, [sp, 0xC]
+ lsls r1, 1
+ mov r12, r1
+_080EF6D6:
+ lsls r0, r7, 8
+ lsrs r2, r0, 16
+ lsls r0, r6, 8
+ lsrs r1, r0, 16
+ lsls r0, r5, 8
+ lsrs r0, 16
+ lsls r0, 10
+ lsls r1, 5
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ add r3, r12
+ add r7, r10
+ add r6, r9
+ add r5, r8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x20]
+ cmp r4, r2
+ blt _080EF6D6
+_080EF700:
+ ldr r4, [sp, 0x14]
+ lsrs r2, r4, 8
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 2
+ ldr r4, [sp, 0x18]
+ lsrs r1, r4, 3
+ orrs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ ldr r0, [sp, 0x30]
+ str r0, [sp]
+ ldr r1, [sp, 0x34]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x2C]
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x10]
+ cmp r2, r0
+ bcc _080EF654
+_080EF72E:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF624
+
+ thumb_func_start sub_80EF740
+sub_80EF740: @ 80EF740
+ push {lr}
+ ldr r0, _080EF770 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080EF774 @ =0x00006da0
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2]
+ cmp r0, 0
+ beq _080EF762
+ ldr r2, _080EF778 @ =0x00006da2
+ adds r1, r3, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF762:
+ ldr r0, _080EF77C @ =REG_BG3HOFS
+ ldr r2, _080EF778 @ =0x00006da2
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF770: .4byte gUnknown_083DFEC4
+_080EF774: .4byte 0x00006da0
+_080EF778: .4byte 0x00006da2
+_080EF77C: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF740
+
+ thumb_func_start sub_80EF780
+sub_80EF780: @ 80EF780
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080EF7B0 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080EF7AA
+ ldr r0, _080EF7B4 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080EF7B8 @ =0x00006da2
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080EF7BC
+_080EF7AA:
+ bl sub_80EF740
+ b _080EF7C8
+ .align 2, 0
+_080EF7B0: .4byte gTasks
+_080EF7B4: .4byte gUnknown_083DFEC4
+_080EF7B8: .4byte 0x00006da2
+_080EF7BC:
+ strh r1, [r2]
+ ldr r2, _080EF7CC @ =0x00006da0
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r0, _080EF7D0 @ =REG_BG3HOFS
+ strh r1, [r0]
+_080EF7C8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF7CC: .4byte 0x00006da0
+_080EF7D0: .4byte REG_BG3HOFS
+ thumb_func_end sub_80EF780
+
+ thumb_func_start sub_80EF7D4
+sub_80EF7D4: @ 80EF7D4
+ push {r4,lr}
+ ldr r0, _080EF800 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080EF804 @ =0x00006da2
+ adds r0, r4, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _080EF808 @ =0x00006da0
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080EF80C @ =sub_80EF780
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080EF810 @ =0x00006da4
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF800: .4byte gUnknown_083DFEC4
+_080EF804: .4byte 0x00006da2
+_080EF808: .4byte 0x00006da0
+_080EF80C: .4byte sub_80EF780
+_080EF810: .4byte 0x00006da4
+ thumb_func_end sub_80EF7D4
+
+ thumb_func_start sub_80EF814
+sub_80EF814: @ 80EF814
+ push {lr}
+ ldr r0, _080EF834 @ =sub_80EF780
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF830
+ ldr r0, _080EF838 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF83C @ =0x00006da4
+ adds r0, r1
+ ldrb r0, [r0]
+ bl DestroyTask
+_080EF830:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF834: .4byte sub_80EF780
+_080EF838: .4byte gUnknown_083DFEC4
+_080EF83C: .4byte 0x00006da4
+ thumb_func_end sub_80EF814
+
+ thumb_func_start sub_80EF840
+sub_80EF840: @ 80EF840
+ push {lr}
+ ldr r0, _080EF868 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF86C @ =0x0000d160
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EF870 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF862
+_080EF858:
+ bl sub_80EF874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EF858
+_080EF862:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EF868: .4byte gUnknown_083DFEC4
+_080EF86C: .4byte 0x0000d160
+_080EF870: .4byte 0x00006dac
+ thumb_func_end sub_80EF840
+
+ thumb_func_start sub_80EF874
+sub_80EF874: @ 80EF874
+ push {lr}
+ ldr r0, _080EF890 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EF894 @ =0x0000d160
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xB
+ bls _080EF886
+ b _080EF9D8
+_080EF886:
+ lsls r0, 2
+ ldr r1, _080EF898 @ =_080EF89C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EF890: .4byte gUnknown_083DFEC4
+_080EF894: .4byte 0x0000d160
+_080EF898: .4byte _080EF89C
+ .align 2, 0
+_080EF89C:
+ .4byte _080EF8CC
+ .4byte _080EF8D2
+ .4byte _080EF8E0
+ .4byte _080EF8EC
+ .4byte _080EF8F6
+ .4byte _080EF8FC
+ .4byte _080EF920
+ .4byte _080EF92C
+ .4byte _080EF940
+ .4byte _080EF954
+ .4byte _080EF960
+ .4byte _080EF972
+_080EF8CC:
+ bl sub_80EEDE8
+ b _080EF9DC
+_080EF8D2:
+ ldr r0, _080EF8DC @ =gWindowConfig_81E7224
+ bl SetUpWindowConfig
+ b _080EF9DC
+ .align 2, 0
+_080EF8DC: .4byte gWindowConfig_81E7224
+_080EF8E0:
+ ldr r0, _080EF8E8 @ =gWindowConfig_81E7224
+ bl MultistepInitMenuWindowBegin
+ b _080EF9DC
+ .align 2, 0
+_080EF8E8: .4byte gWindowConfig_81E7224
+_080EF8EC:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _080EF9DC
+ b _080EF9EA
+_080EF8F6:
+ bl MenuZeroFillScreen
+ b _080EF9DC
+_080EF8FC:
+ ldr r0, _080EF914 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080EF918 @ =0x00006e18
+ adds r0, r2
+ ldr r1, _080EF91C @ =gSaveBlock2
+ ldrb r1, [r1, 0x15]
+ lsrs r1, 3
+ movs r2, 0x1
+ ands r1, r2
+ bl sub_80FA904
+ b _080EF9DC
+ .align 2, 0
+_080EF914: .4byte gUnknown_083DFEC4
+_080EF918: .4byte 0x00006e18
+_080EF91C: .4byte gSaveBlock2
+_080EF920:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF92C:
+ ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx
+ ldr r1, _080EF93C @ =0x06005000
+ bl LZ77UnCompVram
+ b _080EF9DC
+ .align 2, 0
+_080EF938: .4byte gPokenavHoennMapSquares_Gfx
+_080EF93C: .4byte 0x06005000
+_080EF940:
+ ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_80EFC3C
+ b _080EF9DC
+ .align 2, 0
+_080EF950: .4byte gPokenavHoennMapSquares_Pal
+_080EF954:
+ bl sub_80EFC64
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EF9DC
+ b _080EF9EA
+_080EF960:
+ movs r0, 0xD
+ movs r1, 0x3
+ movs r2, 0x1D
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ bl sub_80EF9F8
+ b _080EF9DC
+_080EF972:
+ ldr r0, _080EF990 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EF994 @ =0x00006e90
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EF9A0
+ ldr r2, _080EF998 @ =0x00007698
+ adds r0, r1, r2
+ movs r1, 0xA0
+ strh r1, [r0]
+ ldr r0, _080EF99C @ =REG_BG0VOFS
+ strh r1, [r0]
+ b _080EF9B0
+ .align 2, 0
+_080EF990: .4byte gUnknown_083DFEC4
+_080EF994: .4byte 0x00006e90
+_080EF998: .4byte 0x00007698
+_080EF99C: .4byte REG_BG0VOFS
+_080EF9A0:
+ ldr r0, _080EF9C8 @ =0x00007698
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r0, _080EF9CC @ =REG_BG0VOFS
+ strh r2, [r0]
+_080EF9B0:
+ ldr r2, _080EF9D0 @ =REG_BG0CNT
+ ldrh r0, [r2]
+ strh r0, [r2]
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080EF9D4 @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ b _080EF9DC
+ .align 2, 0
+_080EF9C8: .4byte 0x00007698
+_080EF9CC: .4byte REG_BG0VOFS
+_080EF9D0: .4byte REG_BG0CNT
+_080EF9D4: .4byte REG_BLDCNT
+_080EF9D8:
+ movs r0, 0
+ b _080EF9EC
+_080EF9DC:
+ ldr r0, _080EF9F0 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EF9F4 @ =0x0000d160
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EF9EA:
+ movs r0, 0x1
+_080EF9EC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EF9F0: .4byte gUnknown_083DFEC4
+_080EF9F4: .4byte 0x0000d160
+ thumb_func_end sub_80EF874
+
+ thumb_func_start sub_80EF9F8
+sub_80EF9F8: @ 80EF9F8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ movs r5, 0x4
+ ldr r0, _080EFA18 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFA1C @ =0x00006e2e
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _080EFA0E
+ b _080EFB6A
+_080EFA0E:
+ lsls r0, 2
+ ldr r1, _080EFA20 @ =_080EFA24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFA18: .4byte gUnknown_083DFEC4
+_080EFA1C: .4byte 0x00006e2e
+_080EFA20: .4byte _080EFA24
+ .align 2, 0
+_080EFA24:
+ .4byte _080EFB6A
+ .4byte _080EFA38
+ .4byte _080EFAC0
+ .4byte _080EFB4C
+ .4byte _080EFA38
+_080EFA38:
+ ldr r0, _080EFA64 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080EFA68 @ =0x00006e18
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080EFA6C @ =gLinkOpen
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080EFA70
+ bl sub_80F1A80
+ b _080EFB82
+ .align 2, 0
+_080EFA64: .4byte gUnknown_083DFEC4
+_080EFA68: .4byte 0x00006e18
+_080EFA6C: .4byte gLinkOpen
+_080EFA70:
+ movs r4, 0
+ b _080EFA92
+_080EFA74:
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080EFA92:
+ cmp r4, 0x3
+ bhi _080EFB6A
+ ldr r0, _080EFAB8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EFABC @ =0x00006e2c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_811A8CC
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080EFA74
+ b _080EFB6A
+ .align 2, 0
+_080EFAB8: .4byte gUnknown_083DFEC4
+_080EFABC: .4byte 0x00006e2c
+_080EFAC0:
+ ldr r0, _080EFB38 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080EFB3C @ =0x00006e18
+ adds r0, r4, r1
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _080EFB40 @ =0x00006e2c
+ adds r0, r4, r2
+ ldrh r1, [r0]
+ adds r2, 0x3
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, _080EFB44 @ =0x0000cdcc
+ adds r4, r1
+ adds r6, r4, r0
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _080EFB6A
+ lsls r4, r5, 24
+ lsrs r4, 24
+ movs r0, 0xE
+ adds r1, r4, 0
+ movs r2, 0xF
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0x1A
+ adds r1, r4, 0
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080EFB48 @ =0x0600f800
+ ldr r3, [r6]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0xA
+ str r1, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x10
+ movs r2, 0x6
+ bl sub_8095C8C
+ adds r0, r5, 0
+ adds r0, 0xB
+ b _080EFB66
+ .align 2, 0
+_080EFB38: .4byte gUnknown_083DFEC4
+_080EFB3C: .4byte 0x00006e18
+_080EFB40: .4byte 0x00006e2c
+_080EFB44: .4byte 0x0000cdcc
+_080EFB48: .4byte 0x0600f800
+_080EFB4C:
+ ldr r0, _080EFB98 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080EFB9C @ =0x00006e18
+ adds r0, r2
+ lsls r2, r5, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ adds r0, r5, 0x2
+_080EFB66:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EFB6A:
+ movs r0, 0
+ cmp r0, 0
+ bne _080EFB82
+ cmp r5, 0xF
+ bhi _080EFB82
+ lsls r1, r5, 24
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+_080EFB82:
+ ldr r0, _080EFB98 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFBA0 @ =0x00006e2e
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080EFBA4
+ bl sub_80EFD74
+ b _080EFBA8
+ .align 2, 0
+_080EFB98: .4byte gUnknown_083DFEC4
+_080EFB9C: .4byte 0x00006e18
+_080EFBA0: .4byte 0x00006e2e
+_080EFBA4:
+ bl sub_80EFDA0
+_080EFBA8:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EF9F8
+
+ thumb_func_start sub_80EFBB0
+sub_80EFBB0: @ 80EFBB0
+ push {lr}
+ ldr r0, _080EFBC8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFBCC @ =0x00006e90
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFBD0
+ movs r0, 0x8
+ bl sub_80EEFBC
+ b _080EFBD6
+ .align 2, 0
+_080EFBC8: .4byte gUnknown_083DFEC4
+_080EFBCC: .4byte 0x00006e90
+_080EFBD0:
+ movs r0, 0x7
+ bl sub_80EEFBC
+_080EFBD6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFBB0
+
+ thumb_func_start sub_80EFBDC
+sub_80EFBDC: @ 80EFBDC
+ push {r4,lr}
+ lsls r0, 24
+ movs r4, 0x1
+ ldr r2, _080EFBFC @ =gUnknown_083DFEC4
+ ldr r1, [r2]
+ ldr r3, _080EFC00 @ =0x00007698
+ adds r1, r3
+ ldrh r3, [r1]
+ cmp r0, 0
+ beq _080EFC08
+ cmp r3, 0xA8
+ bls _080EFC04
+ adds r0, r3, 0
+ subs r0, 0x8
+ b _080EFC10
+ .align 2, 0
+_080EFBFC: .4byte gUnknown_083DFEC4
+_080EFC00: .4byte 0x00007698
+_080EFC04:
+ movs r3, 0xA0
+ b _080EFC1A
+_080EFC08:
+ cmp r3, 0xF7
+ bhi _080EFC16
+ adds r0, r3, 0
+ adds r0, 0x8
+_080EFC10:
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080EFC1C
+_080EFC16:
+ movs r3, 0x80
+ lsls r3, 1
+_080EFC1A:
+ movs r4, 0
+_080EFC1C:
+ ldr r0, [r2]
+ ldr r1, _080EFC34 @ =0x00007698
+ adds r0, r1
+ strh r3, [r0]
+ ldr r1, _080EFC38 @ =REG_BG0VOFS
+ movs r0, 0xFF
+ ands r3, r0
+ strh r3, [r1]
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EFC34: .4byte 0x00007698
+_080EFC38: .4byte REG_BG0VOFS
+ thumb_func_end sub_80EFBDC
+
+ thumb_func_start sub_80EFC3C
+sub_80EFC3C: @ 80EFC3C
+ push {lr}
+ ldr r0, _080EFC58 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080EFC5C @ =0x0000bc9a
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080EFC60 @ =0x0000bc9b
+ adds r0, r1
+ strb r2, [r0]
+ bl sub_80EFD3C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFC58: .4byte gUnknown_083DFEC4
+_080EFC5C: .4byte 0x0000bc9a
+_080EFC60: .4byte 0x0000bc9b
+ thumb_func_end sub_80EFC3C
+
+ thumb_func_start sub_80EFC64
+sub_80EFC64: @ 80EFC64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, _080EFCD0 @ =gUnknown_083DFEC4
+ ldr r2, [r4]
+ ldr r0, _080EFCD4 @ =0x0000bc9a
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldrb r1, [r1]
+ mov r8, r1
+ ldr r1, _080EFCD8 @ =0x0000bc9b
+ adds r0, r2, r1
+ ldrb r7, [r0]
+ movs r2, 0
+ ldr r0, _080EFCDC @ =gPokenavCityMaps
+ mov r9, r0
+ adds r3, r4, 0
+_080EFC8E:
+ lsls r0, r2, 2
+ mov r4, r8
+ lsls r1, r4, 3
+ adds r6, r0, r1
+ mov r1, r9
+ adds r0, r6, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080EFCE8
+ movs r0, 0xC8
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r4, _080EFCE0 @ =0x0000bc9c
+ adds r5, r4
+ ldr r4, [r3]
+ adds r5, r4, r5
+ adds r0, r1, 0
+ adds r1, r5, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl LZ77UnCompVram
+ ldr r0, _080EFCE4 @ =0x0000cdcc
+ adds r4, r0
+ adds r4, r6
+ str r5, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ b _080EFCF2
+ .align 2, 0
+_080EFCD0: .4byte gUnknown_083DFEC4
+_080EFCD4: .4byte 0x0000bc9a
+_080EFCD8: .4byte 0x0000bc9b
+_080EFCDC: .4byte gPokenavCityMaps
+_080EFCE0: .4byte 0x0000bc9c
+_080EFCE4: .4byte 0x0000cdcc
+_080EFCE8:
+ ldr r0, [r3]
+ ldr r4, _080EFD1C @ =0x0000cdcc
+ adds r0, r4
+ adds r0, r6
+ str r1, [r0]
+_080EFCF2:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x1
+ bls _080EFC8E
+ ldr r0, _080EFD20 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080EFD24 @ =0x0000bc9a
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bhi _080EFD2C
+ ldr r1, _080EFD28 @ =0x0000bc9b
+ adds r0, r2, r1
+ strb r7, [r0]
+ movs r0, 0x1
+ b _080EFD2E
+ .align 2, 0
+_080EFD1C: .4byte 0x0000cdcc
+_080EFD20: .4byte gUnknown_083DFEC4
+_080EFD24: .4byte 0x0000bc9a
+_080EFD28: .4byte 0x0000bc9b
+_080EFD2C:
+ movs r0, 0
+_080EFD2E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EFC64
+
+ thumb_func_start sub_80EFD3C
+sub_80EFD3C: @ 80EFD3C
+ ldr r0, _080EFD60 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EFD64 @ =0x0000769e
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, _080EFD68 @ =0x0000769c
+ adds r3, r1, r0
+ movs r0, 0x2F
+ strb r0, [r3]
+ ldr r3, _080EFD6C @ =0x0000769d
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080EFD70 @ =0x0000769a
+ adds r1, r0
+ strh r2, [r1]
+ bx lr
+ .align 2, 0
+_080EFD60: .4byte gUnknown_083DFEC4
+_080EFD64: .4byte 0x0000769e
+_080EFD68: .4byte 0x0000769c
+_080EFD6C: .4byte 0x0000769d
+_080EFD70: .4byte 0x0000769a
+ thumb_func_end sub_80EFD3C
+
+ thumb_func_start sub_80EFD74
+sub_80EFD74: @ 80EFD74
+ push {lr}
+ ldr r0, _080EFD94 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080EFD98 @ =0x0000769e
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080EFD9C @ =0x0000769d
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080EFD90
+ movs r0, 0x2
+ strb r0, [r2]
+_080EFD90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFD94: .4byte gUnknown_083DFEC4
+_080EFD98: .4byte 0x0000769e
+_080EFD9C: .4byte 0x0000769d
+ thumb_func_end sub_80EFD74
+
+ thumb_func_start sub_80EFDA0
+sub_80EFDA0: @ 80EFDA0
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFDD4 @ =0x0600f800
+ ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xF
+ str r2, [sp, 0x8]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ ldr r0, _080EFDDC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFDE0 @ =0x0000769e
+ adds r0, r1
+ strb r4, [r0]
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFDD4: .4byte 0x0600f800
+_080EFDD8: .4byte gUnknown_08E9AC2C
+_080EFDDC: .4byte gUnknown_083DFEC4
+_080EFDE0: .4byte 0x0000769e
+ thumb_func_end sub_80EFDA0
+
+ thumb_func_start sub_80EFDE4
+sub_80EFDE4: @ 80EFDE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EFE68 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080EFE6C @ =0x0000769c
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x3C
+ subs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080EFE06
+ movs r4, 0xF
+_080EFE06:
+ ldr r3, _080EFE70 @ =0x0000769e
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EFE58
+ ldr r0, _080EFE74 @ =0x0600f800
+ mov r8, r0
+ ldr r3, _080EFE78 @ =gUnknown_08E9ABB4
+ mov r9, r3
+ str r2, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r7, 0x1
+ str r7, [sp, 0xC]
+ movs r6, 0x3C
+ str r6, [sp, 0x10]
+ movs r1, 0xE
+ movs r2, 0x10
+ bl sub_8095C8C
+ cmp r4, 0xE
+ bhi _080EFE58
+ adds r1, r4, 0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0xF
+ subs r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+ str r6, [sp, 0x10]
+ mov r0, r8
+ movs r2, 0x10
+ mov r3, r9
+ bl sub_8095C8C
+_080EFE58:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFE68: .4byte gUnknown_083DFEC4
+_080EFE6C: .4byte 0x0000769c
+_080EFE70: .4byte 0x0000769e
+_080EFE74: .4byte 0x0600f800
+_080EFE78: .4byte gUnknown_08E9ABB4
+ thumb_func_end sub_80EFDE4
+
+ thumb_func_start sub_80EFE7C
+sub_80EFE7C: @ 80EFE7C
+ push {r4,lr}
+ ldr r0, _080EFE98 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080EFE9C @ =0x0000769d
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080EFF08
+ cmp r1, 0x1
+ bgt _080EFEA0
+ cmp r1, 0
+ beq _080EFEA6
+ b _080EFF2E
+ .align 2, 0
+_080EFE98: .4byte gUnknown_083DFEC4
+_080EFE9C: .4byte 0x0000769d
+_080EFEA0:
+ cmp r1, 0x2
+ beq _080EFF24
+ b _080EFF2E
+_080EFEA6:
+ ldr r0, _080EFED4 @ =0x0000769c
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bls _080EFEBA
+ strb r1, [r4]
+_080EFEBA:
+ ldr r1, _080EFED8 @ =0x0000769e
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ bl sub_80EFDE4
+ ldrb r0, [r4]
+ cmp r0, 0xF
+ beq _080EFEE4
+ cmp r0, 0xF
+ bgt _080EFEDC
+ cmp r0, 0
+ beq _080EFEE4
+ b _080EFF2E
+ .align 2, 0
+_080EFED4: .4byte 0x0000769c
+_080EFED8: .4byte 0x0000769e
+_080EFEDC:
+ cmp r0, 0x1E
+ beq _080EFEE4
+ cmp r0, 0x2D
+ bne _080EFF2E
+_080EFEE4:
+ ldr r0, _080EFEFC @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080EFF00 @ =0x0000769d
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, _080EFF04 @ =0x0000769a
+ adds r1, r0
+ strh r3, [r1]
+ b _080EFF2E
+ .align 2, 0
+_080EFEFC: .4byte gUnknown_083DFEC4
+_080EFF00: .4byte 0x0000769d
+_080EFF04: .4byte 0x0000769a
+_080EFF08:
+ ldr r0, _080EFF20 @ =0x0000769a
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x78
+ bls _080EFF2E
+ movs r0, 0
+ strh r0, [r1]
+ b _080EFF2C
+ .align 2, 0
+_080EFF20: .4byte 0x0000769a
+_080EFF24:
+ movs r0, 0x1
+ bl sub_80EFDE4
+ movs r0, 0x1
+_080EFF2C:
+ strb r0, [r4]
+_080EFF2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EFE7C
+
+ thumb_func_start sub_80EFF34
+sub_80EFF34: @ 80EFF34
+ push {lr}
+ ldr r0, _080EFF5C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFF60 @ =0x0000d160
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080EFF64 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EFF56
+_080EFF4C:
+ bl sub_80EFF68
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EFF4C
+_080EFF56:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EFF5C: .4byte gUnknown_083DFEC4
+_080EFF60: .4byte 0x0000d160
+_080EFF64: .4byte 0x00006dac
+ thumb_func_end sub_80EFF34
+
+ thumb_func_start sub_80EFF68
+sub_80EFF68: @ 80EFF68
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080EFF88 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080EFF8C @ =0x0000d160
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xD
+ bls _080EFF7C
+ b _080F0150
+_080EFF7C:
+ lsls r0, 2
+ ldr r1, _080EFF90 @ =_080EFF94
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EFF88: .4byte gUnknown_083DFEC4
+_080EFF8C: .4byte 0x0000d160
+_080EFF90: .4byte _080EFF94
+ .align 2, 0
+_080EFF94:
+ .4byte _080EFFCC
+ .4byte _080EFFE8
+ .4byte _080EFFF4
+ .4byte _080F0000
+ .4byte _080F000C
+ .4byte _080F0012
+ .4byte _080F0018
+ .4byte _080F0028
+ .4byte _080F003C
+ .4byte _080F005C
+ .4byte _080F0098
+ .4byte _080F00AC
+ .4byte _080F00F8
+ .4byte _080F0118
+_080EFFCC:
+ bl sub_80EEDE8
+ ldr r0, _080EFFE0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080EFFE4 @ =0x0000d162
+ adds r0, r2
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F0154
+ .align 2, 0
+_080EFFE0: .4byte gUnknown_083DFEC4
+_080EFFE4: .4byte 0x0000d162
+_080EFFE8:
+ ldr r0, _080EFFF0 @ =gWindowConfig_81E7080
+ bl SetUpWindowConfig
+ b _080F0154
+ .align 2, 0
+_080EFFF0: .4byte gWindowConfig_81E7080
+_080EFFF4:
+ ldr r0, _080EFFFC @ =gWindowConfig_81E7080
+ bl MultistepInitMenuWindowBegin
+ b _080F0154
+ .align 2, 0
+_080EFFFC: .4byte gWindowConfig_81E7080
+_080F0000:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F000A
+ b _080F0154
+_080F000A:
+ b _080F0162
+_080F000C:
+ bl MenuZeroFillScreen
+ b _080F0154
+_080F0012:
+ bl sub_80F1614
+ b _080F0154
+_080F0018:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0026
+ b _080F0154
+_080F0026:
+ b _080F0162
+_080F0028:
+ ldr r0, _080F0034 @ =gPokenavConditionView_Gfx
+ ldr r1, _080F0038 @ =0x06005000
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F0034: .4byte gPokenavConditionView_Gfx
+_080F0038: .4byte 0x06005000
+_080F003C:
+ ldr r0, _080F0050 @ =gUnknown_08E9AC4C
+ ldr r1, _080F0054 @ =0x0600f000
+ bl LZ77UnCompVram
+ ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F0154
+ .align 2, 0
+_080F0050: .4byte gUnknown_08E9AC4C
+_080F0054: .4byte 0x0600f000
+_080F0058: .4byte gPokenavConditionMenu2_Pal
+_080F005C:
+ ldr r0, _080F0088 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F008C @ =0x000076aa
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0154
+ ldr r0, _080F0090 @ =0x0600f000
+ ldr r3, _080F0094 @ =gUnknown_083E01AC
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0154
+ .align 2, 0
+_080F0088: .4byte gUnknown_083DFEC4
+_080F008C: .4byte 0x000076aa
+_080F0090: .4byte 0x0600f000
+_080F0094: .4byte gUnknown_083E01AC
+_080F0098:
+ ldr r0, _080F00A4 @ =gUnknown_08E9FEB4
+ ldr r1, _080F00A8 @ =0x0600b800
+ bl LZ77UnCompVram
+ b _080F0154
+ .align 2, 0
+_080F00A4: .4byte gUnknown_08E9FEB4
+_080F00A8: .4byte 0x0600b800
+_080F00AC:
+ ldr r0, _080F00EC @ =gUnknown_083E0254
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F00F0 @ =gUnknownPalette_81E6692
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F0154
+ .align 2, 0
+_080F00EC: .4byte gUnknown_083E0254
+_080F00F0: .4byte gUnknownPalette_81E6692
+_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F00F8:
+ ldr r0, _080F0110 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F0114 @ =0x00008fe9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F0154
+ .align 2, 0
+_080F0110: .4byte gUnknown_083DFEC4
+_080F0114: .4byte 0x00008fe9
+_080F0118:
+ ldr r1, _080F013C @ =REG_BG3CNT
+ ldr r2, _080F0140 @ =0x00001e03
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F0144 @ =0x00001702
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F0148 @ =0x00000844
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F014C @ =0x0000040b
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F0154
+ .align 2, 0
+_080F013C: .4byte REG_BG3CNT
+_080F0140: .4byte 0x00001e03
+_080F0144: .4byte 0x00001702
+_080F0148: .4byte 0x00000844
+_080F014C: .4byte 0x0000040b
+_080F0150:
+ movs r0, 0
+ b _080F0164
+_080F0154:
+ ldr r0, _080F016C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F0170 @ =0x0000d160
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0162:
+ movs r0, 0x1
+_080F0164:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F016C: .4byte gUnknown_083DFEC4
+_080F0170: .4byte 0x0000d160
+ thumb_func_end sub_80EFF68
+
+ thumb_func_start sub_80F0174
+sub_80F0174: @ 80F0174
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F018E
+ movs r0, 0x80
+ lsls r0, 19
+ ldrh r1, [r0]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r2, r3, 0
+ orrs r1, r2
+ strh r1, [r0]
+ b _080F019A
+_080F018E:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F01A0 @ =0x0000fbff
+ ands r0, r1
+ strh r0, [r2]
+_080F019A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F01A0: .4byte 0x0000fbff
+ thumb_func_end sub_80F0174
+
+ thumb_func_start sub_80F01A4
+sub_80F01A4: @ 80F01A4
+ ldr r1, _080F01CC @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _080F01D0 @ =REG_WIN0V
+ ldr r2, _080F01D4 @ =0x00003879
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _080F01D8 @ =REG_WININ
+ ldr r2, _080F01DC @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F01CC: .4byte REG_WIN0H
+_080F01D0: .4byte REG_WIN0V
+_080F01D4: .4byte 0x00003879
+_080F01D8: .4byte REG_WININ
+_080F01DC: .4byte 0x00003f3f
+ thumb_func_end sub_80F01A4
+
+ thumb_func_start sub_80F01E0
+sub_80F01E0: @ 80F01E0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080F0248 @ =gUnknown_083DFEC4
+ lsls r0, r4, 6
+ ldr r2, _080F024C @ =0x00008829
+ adds r0, r2
+ ldr r5, [r1]
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r1, _080F0250 @ =0x000076aa
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0242
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _080F0254 @ =0x000088e9
+ adds r0, r2
+ adds r0, r5, r0
+ movs r1, 0xD
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, _080F0258 @ =0x00008788
+ adds r4, r5, r0
+ ldr r1, _080F025C @ =0x000087dc
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r0, r5, r0
+ ldr r1, _080F0260 @ =0x0000893e
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 18
+ lsrs r1, 23
+ adds r0, r4, 0
+ bl sub_80F443C
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F0242:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0248: .4byte gUnknown_083DFEC4
+_080F024C: .4byte 0x00008829
+_080F0250: .4byte 0x000076aa
+_080F0254: .4byte 0x000088e9
+_080F0258: .4byte 0x00008788
+_080F025C: .4byte 0x000087dc
+_080F0260: .4byte 0x0000893e
+ thumb_func_end sub_80F01E0
+
+ thumb_func_start sub_80F0264
+sub_80F0264: @ 80F0264
+ push {lr}
+ ldr r1, _080F0290 @ =gUnknown_083DFEC4
+ ldr r2, [r1]
+ ldr r1, _080F0294 @ =0x00000306
+ adds r3, r2, r1
+ movs r1, 0
+ strh r1, [r3]
+ ldr r3, _080F0298 @ =0x000087ca
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldr r0, _080F029C @ =0x00006dac
+ adds r2, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F028C
+_080F0282:
+ bl sub_80F02A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0282
+_080F028C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0290: .4byte gUnknown_083DFEC4
+_080F0294: .4byte 0x00000306
+_080F0298: .4byte 0x000087ca
+_080F029C: .4byte 0x00006dac
+ thumb_func_end sub_80F0264
+
+ thumb_func_start sub_80F02A0
+sub_80F02A0: @ 80F02A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ ldr r1, _080F02C4 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080F02C8 @ =0x00000306
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F02BA
+ b _080F05FA
+_080F02BA:
+ lsls r0, 2
+ ldr r1, _080F02CC @ =_080F02D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F02C4: .4byte gUnknown_083DFEC4
+_080F02C8: .4byte 0x00000306
+_080F02CC: .4byte _080F02D0
+ .align 2, 0
+_080F02D0:
+ .4byte _080F030C
+ .4byte _080F0344
+ .4byte _080F0350
+ .4byte _080F035C
+ .4byte _080F0368
+ .4byte _080F036E
+ .4byte _080F0380
+ .4byte _080F0394
+ .4byte _080F04BC
+ .4byte _080F053C
+ .4byte _080F0550
+ .4byte _080F0574
+ .4byte _080F057A
+ .4byte _080F0586
+ .4byte _080F05BC
+_080F030C:
+ bl sub_80EEDE8
+ ldr r0, _080F0334 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ movs r2, 0
+ ldr r3, _080F0338 @ =0x000087ca
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F0322
+ movs r2, 0x1
+_080F0322:
+ ldr r3, _080F033C @ =0x000087c8
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F0340 @ =0x0000d162
+ adds r1, r0
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080F0618
+ .align 2, 0
+_080F0334: .4byte gUnknown_083DFEC4
+_080F0338: .4byte 0x000087ca
+_080F033C: .4byte 0x000087c8
+_080F0340: .4byte 0x0000d162
+_080F0344:
+ ldr r0, _080F034C @ =gWindowConfig_81E70D4
+ bl SetUpWindowConfig
+ b _080F0618
+ .align 2, 0
+_080F034C: .4byte gWindowConfig_81E70D4
+_080F0350:
+ ldr r0, _080F0358 @ =gWindowConfig_81E70D4
+ bl MultistepInitMenuWindowBegin
+ b _080F0618
+ .align 2, 0
+_080F0358: .4byte gWindowConfig_81E70D4
+_080F035C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F0366
+ b _080F0618
+_080F0366:
+ b _080F0626
+_080F0368:
+ bl MenuZeroFillScreen
+ b _080F0618
+_080F036E:
+ ldr r0, _080F0378 @ =gUnknown_08E9FC64
+ ldr r1, _080F037C @ =0x0600e800
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0378: .4byte gUnknown_08E9FC64
+_080F037C: .4byte 0x0600e800
+_080F0380:
+ ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx
+ ldr r1, _080F0390 @ =0x06008000
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F038C: .4byte gPokenavConditionSearch2_Gfx
+_080F0390: .4byte 0x06008000
+_080F0394:
+ ldr r6, _080F03FC @ =gUnknown_083E02B4
+ adds r0, r6, 0
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0400 @ =gUnknown_083E0334
+ movs r1, 0x40
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F0404 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0408 @ =0x000087ca
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F0418
+ ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F0410 @ =gPlttBufferUnfaded
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0414 @ =gUnknownPalette_81E6692
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F03FC: .4byte gUnknown_083E02B4
+_080F0400: .4byte gUnknown_083E0334
+_080F0404: .4byte gUnknown_083DFEC4
+_080F0408: .4byte 0x000087ca
+_080F040C: .4byte gPokenavConditionSearch2_Pal
+_080F0410: .4byte gPlttBufferUnfaded
+_080F0414: .4byte gUnknownPalette_81E6692
+_080F0418:
+ cmp r0, 0x1
+ bne _080F0464
+ ldr r4, _080F0458 @ =gUnknown_083E0274
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F045C @ =gPlttBufferUnfaded
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F0460 @ =gUnknownPalette_81E6692
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0xA
+ adds r0, r4, 0
+ movs r1, 0xBF
+ b _080F04A8
+ .align 2, 0
+_080F0458: .4byte gUnknown_083E0274
+_080F045C: .4byte gPlttBufferUnfaded
+_080F0460: .4byte gUnknownPalette_81E6692
+_080F0464:
+ ldr r4, _080F04B0 @ =gUnknown_08E9F9E8
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080F04B4 @ =gPlttBufferUnfaded
+ adds r5, r4, 0
+ adds r5, 0xA
+ ldrh r0, [r4, 0xA]
+ strh r0, [r1]
+ ldr r0, _080F04B8 @ =gUnknown_083E0314
+ movs r1, 0x50
+ movs r2, 0x20
+ bl LoadPalette
+ adds r0, r6, 0x2
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r6, 0
+ adds r0, 0x10
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r5, 0
+ movs r1, 0x5F
+_080F04A8:
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F0618
+ .align 2, 0
+_080F04B0: .4byte gUnknown_08E9F9E8
+_080F04B4: .4byte gPlttBufferUnfaded
+_080F04B8: .4byte gUnknown_083E0314
+_080F04BC:
+ ldr r0, _080F04E8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F04EC @ =0x000087ca
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F04F8
+ ldr r0, _080F04F0 @ =0x0600e800
+ ldr r3, _080F04F4 @ =gUnknown_08E9FD1C
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x9
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F04E8: .4byte gUnknown_083DFEC4
+_080F04EC: .4byte 0x000087ca
+_080F04F0: .4byte 0x0600e800
+_080F04F4: .4byte gUnknown_08E9FD1C
+_080F04F8:
+ ldr r3, _080F0530 @ =0x0600e800
+ mov r8, r3
+ ldr r3, _080F0534 @ =gUnknown_08E9FE54
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r5, 0xC
+ str r5, [sp, 0x8]
+ movs r6, 0xA
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_8095C8C
+ ldr r3, _080F0538 @ =gUnknown_08E9FD64
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ str r5, [sp, 0x10]
+ mov r0, r8
+ movs r1, 0
+ movs r2, 0x8
+ bl sub_8095C8C
+ b _080F0618
+ .align 2, 0
+_080F0530: .4byte 0x0600e800
+_080F0534: .4byte gUnknown_08E9FE54
+_080F0538: .4byte gUnknown_08E9FD64
+_080F053C:
+ ldr r0, _080F0548 @ =gUnknown_083E0354
+ ldr r1, _080F054C @ =0x06005000
+ bl LZ77UnCompVram
+ b _080F0618
+ .align 2, 0
+_080F0548: .4byte gUnknown_083E0354
+_080F054C: .4byte 0x06005000
+_080F0550:
+ ldr r2, _080F0568 @ =0x0600f800
+ add r1, sp, 0x14
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F056C @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F0570 @ =0x81000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F0618
+ .align 2, 0
+_080F0568: .4byte 0x0600f800
+_080F056C: .4byte 0x040000d4
+_080F0570: .4byte 0x81000400
+_080F0574:
+ bl sub_80F0900
+ b _080F0618
+_080F057A:
+ bl sub_80F0944
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F0618
+ b _080F0626
+_080F0586:
+ ldr r0, _080F059C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F05A0 @ =0x000087ca
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080F05A4
+ bl ShowMapNamePopUpWindow
+ b _080F0618
+ .align 2, 0
+_080F059C: .4byte gUnknown_083DFEC4
+_080F05A0: .4byte 0x000087ca
+_080F05A4:
+ movs r0, 0
+ bl sub_80F081C
+ ldr r2, _080F05B8 @ =0x0000876e
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80F0FFC
+ b _080F0618
+ .align 2, 0
+_080F05B8: .4byte 0x0000876e
+_080F05BC:
+ ldr r1, _080F0600 @ =REG_BG2CNT
+ ldr r3, _080F0604 @ =0x00001d0a
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0xF9
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x6
+ adds r3, 0xFE
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x16
+ movs r0, 0xF8
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F0608 @ =0x00008776
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xF8
+ strh r0, [r2]
+ ldr r2, _080F060C @ =0x00008778
+ adds r0, r1, r2
+ strh r3, [r0]
+ ldr r0, _080F0610 @ =REG_BLDCNT
+ strh r3, [r0]
+ ldr r3, _080F0614 @ =0x0000d160
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F05FA:
+ movs r0, 0
+ b _080F0628
+ .align 2, 0
+_080F0600: .4byte REG_BG2CNT
+_080F0604: .4byte 0x00001d0a
+_080F0608: .4byte 0x00008776
+_080F060C: .4byte 0x00008778
+_080F0610: .4byte REG_BLDCNT
+_080F0614: .4byte 0x0000d160
+_080F0618:
+ ldr r0, _080F0634 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F0638 @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0626:
+ movs r0, 0x1
+_080F0628:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0634: .4byte gUnknown_083DFEC4
+_080F0638: .4byte 0x00000306
+ thumb_func_end sub_80F02A0
+
+ thumb_func_start sub_80F063C
+sub_80F063C: @ 80F063C
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r3, _080F0664 @ =gUnknown_083DFEC4
+ ldr r2, [r3]
+ lsrs r5, r0, 16
+ asrs r4, r0, 16
+ lsls r1, r4, 4
+ ldr r6, _080F0668 @ =0x0000877c
+ adds r0, r2, r6
+ strh r1, [r0]
+ adds r7, r3, 0
+ cmp r4, 0x1
+ beq _080F065E
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _080F066C
+_080F065E:
+ movs r1, 0x4
+ b _080F066E
+ .align 2, 0
+_080F0664: .4byte gUnknown_083DFEC4
+_080F0668: .4byte 0x0000877c
+_080F066C:
+ movs r1, 0x8
+_080F066E:
+ ldr r3, _080F06C0 @ =0x0000877a
+ adds r0, r2, r3
+ strh r1, [r0]
+ lsls r0, r5, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bge _080F06CC
+ ldr r4, [r7]
+ ldr r6, _080F06C0 @ =0x0000877a
+ adds r1, r4, r6
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ negs r0, r0
+ strh r0, [r1]
+ subs r6, 0x2
+ adds r1, r4, r6
+ lsls r0, r3, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080F06C4 @ =0x00008770
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _080F06B8
+ ldr r2, _080F06C8 @ =0x00008774
+ adds r1, r4, r2
+ adds r0, 0x1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06B8:
+ negs r0, r3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080F06E6
+ .align 2, 0
+_080F06C0: .4byte 0x0000877a
+_080F06C4: .4byte 0x00008770
+_080F06C8: .4byte 0x00008774
+_080F06CC:
+ ldr r1, [r7]
+ ldr r3, _080F070C @ =0x00008778
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r0, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F0710 @ =0x00008772
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F06E6:
+ ldr r0, [r7]
+ ldr r1, _080F0714 @ =0x00008774
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ ble _080F06FA
+ movs r2, 0
+_080F06FA:
+ movs r1, 0x1F
+ adds r0, r2, 0
+ ands r1, r6
+ adds r2, r5, 0
+ bl sub_80F0954
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F070C: .4byte 0x00008778
+_080F0710: .4byte 0x00008772
+_080F0714: .4byte 0x00008774
+ thumb_func_end sub_80F063C
+
+ thumb_func_start sub_80F0718
+sub_80F0718: @ 80F0718
+ push {r4,r5,lr}
+ bl sub_80F098C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F0790
+ ldr r0, _080F073C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F0740 @ =0x0000877c
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0744
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F073C: .4byte gUnknown_083DFEC4
+_080F0740: .4byte 0x0000877c
+_080F0744:
+ ldr r0, _080F0780 @ =0x0000877a
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ subs r0, r2, r0
+ strh r0, [r3]
+ ldr r0, _080F0784 @ =0x00008776
+ adds r2, r4, r0
+ ldrh r0, [r1]
+ ldrh r1, [r2]
+ adds r0, r1
+ movs r5, 0xFF
+ ands r0, r5
+ strh r0, [r2]
+ ldr r1, _080F0788 @ =REG_BG3VOFS
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080F0790
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ adds r0, 0x8
+ ands r0, r5
+ asrs r1, r0, 3
+ ldr r2, _080F078C @ =0x00008778
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0
+ b _080F0792
+ .align 2, 0
+_080F0780: .4byte 0x0000877a
+_080F0784: .4byte 0x00008776
+_080F0788: .4byte REG_BG3VOFS
+_080F078C: .4byte 0x00008778
+_080F0790:
+ movs r0, 0x1
+_080F0792:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0718
+
+ thumb_func_start ShowMapNamePopUpWindow
+ShowMapNamePopUpWindow: @ 80F0798
+ push {lr}
+ ldr r0, _080F07B0 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F07B4 @ =0x000087ca
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F07B8
+ cmp r0, 0x1
+ beq _080F07E0
+ b _080F080A
+ .align 2, 0
+_080F07B0: .4byte gUnknown_083DFEC4
+_080F07B4: .4byte 0x000087ca
+_080F07B8:
+ ldr r3, _080F07D8 @ =0x00008788
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r1, r2, r1
+ ldr r2, _080F07DC @ =0x0000893e
+ adds r1, r2
+ ldrh r1, [r1]
+ lsls r1, 18
+ lsrs r1, 23
+ bl sub_80F443C
+ b _080F07F4
+ .align 2, 0
+_080F07D8: .4byte 0x00008788
+_080F07DC: .4byte 0x0000893e
+_080F07E0:
+ ldr r3, _080F0810 @ =0x00008788
+ adds r0, r2, r3
+ subs r3, 0x1A
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F445C
+_080F07F4:
+ ldr r0, _080F0814 @ =gWindowConfig_81E710C
+ bl BasicInitMenuWindow
+ ldr r0, _080F0818 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0810 @ =0x00008788
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x6
+ bl MenuPrint
+_080F080A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0810: .4byte 0x00008788
+_080F0814: .4byte gWindowConfig_81E710C
+_080F0818: .4byte gUnknown_083DFEC4
+ thumb_func_end ShowMapNamePopUpWindow
+
+ thumb_func_start sub_80F081C
+sub_80F081C: @ 80F081C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F0838 @ =gWindowConfig_81E710C
+ bl BasicInitMenuWindow
+ cmp r5, 0x4
+ bhi _080F08C6
+ lsls r0, r5, 2
+ ldr r1, _080F083C @ =_080F0840
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0838: .4byte gWindowConfig_81E710C
+_080F083C: .4byte _080F0840
+ .align 2, 0
+_080F0840:
+ .4byte _080F0854
+ .4byte _080F0854
+ .4byte _080F0862
+ .4byte _080F088C
+ .4byte _080F089A
+_080F0854:
+ ldr r0, _080F08CC @ =gOtherText_NumberRegistered
+ movs r1, 0xA
+ movs r2, 0x9
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F0862:
+ ldr r0, _080F08D0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F08D4 @ =0x00008788
+ adds r4, r0, r1
+ ldr r2, _080F08D8 @ =0x00008774
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xB
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F088C:
+ ldr r0, _080F08DC @ =gOtherText_NumberBattles
+ movs r1, 0xA
+ movs r2, 0xD
+ bl sub_8072B4C
+ cmp r5, 0
+ bne _080F08C6
+_080F089A:
+ movs r0, 0x9
+ bl sub_8053108
+ adds r1, r0, 0
+ ldr r0, _080F08E0 @ =0x0001869f
+ cmp r1, r0
+ bls _080F08AA
+ adds r1, r0, 0
+_080F08AA:
+ ldr r0, _080F08D0 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F08D4 @ =0x00008788
+ adds r4, r0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xF
+ bl sub_8072B4C
+_080F08C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08CC: .4byte gOtherText_NumberRegistered
+_080F08D0: .4byte gUnknown_083DFEC4
+_080F08D4: .4byte 0x00008788
+_080F08D8: .4byte 0x00008774
+_080F08DC: .4byte gOtherText_NumberBattles
+_080F08E0: .4byte 0x0001869f
+ thumb_func_end sub_80F081C
+
+ thumb_func_start sub_80F08E4
+sub_80F08E4: @ 80F08E4
+ push {lr}
+ ldr r0, _080F08FC @ =gWindowConfig_81E710C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0xB
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F08FC: .4byte gWindowConfig_81E710C
+ thumb_func_end sub_80F08E4
+
+ thumb_func_start sub_80F0900
+sub_80F0900: @ 80F0900
+ push {r4,r5,lr}
+ ldr r0, _080F093C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F0940 @ =0x00008772
+ adds r1, r0, r2
+ subs r2, 0x2
+ adds r5, r0, r2
+ ldrh r0, [r1]
+ ldrh r1, [r5]
+ subs r0, r1
+ adds r0, 0x1
+ lsls r4, r0, 16
+ asrs r0, r4, 16
+ cmp r0, 0x7
+ bgt _080F092A
+ movs r0, 0xC
+ movs r1, 0x1
+ movs r2, 0x1F
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080F092A:
+ ldrh r0, [r5]
+ lsrs r2, r4, 16
+ movs r1, 0
+ bl sub_80F0954
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F093C: .4byte gUnknown_083DFEC4
+_080F0940: .4byte 0x00008772
+ thumb_func_end sub_80F0900
+
+ thumb_func_start sub_80F0944
+sub_80F0944: @ 80F0944
+ push {lr}
+ bl sub_80F098C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0944
+
+ thumb_func_start sub_80F0954
+sub_80F0954: @ 80F0954
+ push {r4,r5,lr}
+ ldr r3, _080F097C @ =gUnknown_083DFEC4
+ ldr r3, [r3]
+ ldr r5, _080F0980 @ =0x0000877e
+ adds r4, r3, r5
+ movs r5, 0
+ strh r0, [r4]
+ ldr r4, _080F0984 @ =0x00008780
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, _080F0988 @ =0x00008784
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x6
+ adds r3, r4
+ strh r5, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F097C: .4byte gUnknown_083DFEC4
+_080F0980: .4byte 0x0000877e
+_080F0984: .4byte 0x00008780
+_080F0988: .4byte 0x00008784
+ thumb_func_end sub_80F0954
+
+ thumb_func_start sub_80F098C
+sub_80F098C: @ 80F098C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F09A4 @ =gUnknown_083DFEC4
+ ldr r6, [r0]
+ ldr r0, _080F09A8 @ =0x00008784
+ adds r7, r6, r0
+ ldrh r0, [r7]
+ cmp r0, 0
+ bne _080F09AC
+_080F09A0:
+ movs r0, 0
+ b _080F0A02
+ .align 2, 0
+_080F09A4: .4byte gUnknown_083DFEC4
+_080F09A8: .4byte 0x00008784
+_080F09AC:
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080F0A0C @ =gUnknown_083E3270
+ ldr r2, _080F0A10 @ =0x000087ca
+ adds r0, r6, r2
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r1
+ ldr r0, _080F0A14 @ =0x0000877e
+ adds r4, r6, r0
+ ldrh r0, [r4]
+ ldr r1, _080F0A18 @ =0x00008780
+ adds r5, r6, r1
+ ldrh r1, [r5]
+ ldr r2, [r2]
+ bl _call_via_r2
+ ldrh r0, [r7]
+ subs r0, 0x1
+ strh r0, [r7]
+ ldr r2, _080F0A1C @ =0x0000ffff
+ adds r1, r2, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _080F09A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ands r0, r1
+ ldr r2, _080F0A20 @ =0x00008774
+ adds r1, r6, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ ble _080F09F6
+ mov r0, r8
+ strh r0, [r4]
+_080F09F6:
+ ldrh r0, [r5]
+ adds r0, 0x2
+ movs r1, 0x1F
+ ands r0, r1
+ strh r0, [r5]
+ movs r0, 0x1
+_080F0A02:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0A0C: .4byte gUnknown_083E3270
+_080F0A10: .4byte 0x000087ca
+_080F0A14: .4byte 0x0000877e
+_080F0A18: .4byte 0x00008780
+_080F0A1C: .4byte 0x0000ffff
+_080F0A20: .4byte 0x00008774
+ thumb_func_end sub_80F098C
+
+ thumb_func_start sub_80F0A24
+sub_80F0A24: @ 80F0A24
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _080F0A64 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F0A68 @ =0x000087c8
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r2, 0x1
+ cmp r0, 0
+ bne _080F0A40
+ movs r2, 0x2
+_080F0A40:
+ ldr r0, _080F0A6C @ =0x00008788
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r3, 0
+ bl sub_80F4428
+ ldr r0, _080F0A70 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0A64: .4byte gUnknown_083DFEC4
+_080F0A68: .4byte 0x000087c8
+_080F0A6C: .4byte 0x00008788
+_080F0A70: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0A24
+
+ thumb_func_start sub_80F0A74
+sub_80F0A74: @ 80F0A74
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ ldr r0, _080F0ADC @ =gUnknown_083DFEC4
+ ldr r5, [r0]
+ ldr r0, _080F0AE0 @ =0x00008788
+ adds r4, r5, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80F700C
+ movs r0, 0x1F
+ ands r7, r0
+ ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ lsls r2, r7, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ ldr r1, _080F0AE8 @ =0x0000d158
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _080F0AF8
+ lsls r0, r6, 3
+ adds r0, r5, r0
+ ldr r1, _080F0AEC @ =0x0000ceed
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F0AF8
+ ldr r0, _080F0AF0 @ =0x0600f000
+ ldr r3, _080F0AF4 @ =gUnknown_083E039C
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+ b _080F0B14
+ .align 2, 0
+_080F0ADC: .4byte gUnknown_083DFEC4
+_080F0AE0: .4byte 0x00008788
+_080F0AE4: .4byte gWindowConfig_81E70D4
+_080F0AE8: .4byte 0x0000d158
+_080F0AEC: .4byte 0x0000ceed
+_080F0AF0: .4byte 0x0600f000
+_080F0AF4: .4byte gUnknown_083E039C
+_080F0AF8:
+ ldr r0, _080F0B1C @ =0x0600f000
+ ldr r3, _080F0B20 @ =gUnknown_083E03A0
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0x1
+ str r2, [sp, 0x8]
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0x1D
+ adds r2, r7, 0
+ bl sub_8095C8C
+_080F0B14:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0B1C: .4byte 0x0600f000
+_080F0B20: .4byte gUnknown_083E03A0
+ thumb_func_end sub_80F0A74
+
+ thumb_func_start sub_80F0B24
+sub_80F0B24: @ 80F0B24
+ ldr r0, _080F0B38 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F0B3C @ =0x0000d15c
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0B40 @ =0x00000306
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0B38: .4byte gUnknown_083DFEC4
+_080F0B3C: .4byte 0x0000d15c
+_080F0B40: .4byte 0x00000306
+ thumb_func_end sub_80F0B24
+
+ thumb_func_start sub_80F0B44
+sub_80F0B44: @ 80F0B44
+ push {r4-r6,lr}
+ ldr r0, _080F0B58 @ =gUnknown_083DFEC4
+ ldr r5, [r0]
+ ldr r0, _080F0B5C @ =0x0000d15c
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ cmp r0, 0x8
+ bls _080F0B60
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0B58: .4byte gUnknown_083DFEC4
+_080F0B5C: .4byte 0x0000d15c
+_080F0B60:
+ ldr r0, _080F0BBC @ =0x00000306
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0C20
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r6]
+ cmp r0, 0x7
+ bhi _080F0BCC
+ ldr r0, _080F0BC0 @ =0x00008778
+ adds r1, r5, r0
+ ldrh r2, [r6]
+ lsls r0, r2, 1
+ ldrh r1, [r1]
+ adds r4, r0, r1
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r1, _080F0BC4 @ =0x0000876c
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ beq _080F0BAA
+ ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ adds r1, r4, 0
+ adds r3, r1, 0x1
+ movs r0, 0xC
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+_080F0BAA:
+ ldrh r0, [r6]
+ cmp r0, 0
+ bne _080F0BB4
+ bl sub_80F08E4
+_080F0BB4:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _080F0C20
+ .align 2, 0
+_080F0BBC: .4byte 0x00000306
+_080F0BC0: .4byte 0x00008778
+_080F0BC4: .4byte 0x0000876c
+_080F0BC8: .4byte gWindowConfig_81E70D4
+_080F0BCC:
+ ldr r0, _080F0C10 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ ldr r1, _080F0C14 @ =0x00008778
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x10
+ movs r0, 0x1F
+ ands r4, r0
+ movs r5, 0
+_080F0BE2:
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ adds r4, 0x2
+ movs r0, 0x1F
+ ands r4, r0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _080F0BE2
+ ldr r0, _080F0C18 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F0C1C @ =0x0000d15c
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080F0C22
+ .align 2, 0
+_080F0C10: .4byte gWindowConfig_81E70D4
+_080F0C14: .4byte 0x00008778
+_080F0C18: .4byte gUnknown_083DFEC4
+_080F0C1C: .4byte 0x0000d15c
+_080F0C20:
+ movs r0, 0x1
+_080F0C22:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0B44
+
+ thumb_func_start sub_80F0C28
+sub_80F0C28: @ 80F0C28
+ ldr r0, _080F0C3C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F0C40 @ =0x0000d15c
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _080F0C44 @ =0x00000306
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080F0C3C: .4byte gUnknown_083DFEC4
+_080F0C40: .4byte 0x0000d15c
+_080F0C44: .4byte 0x00000306
+ thumb_func_end sub_80F0C28
+
+ thumb_func_start sub_80F0C48
+sub_80F0C48: @ 80F0C48
+ push {r4-r6,lr}
+ ldr r0, _080F0C5C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F0C60 @ =0x0000d15c
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bls _080F0C64
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0C5C: .4byte gUnknown_083DFEC4
+_080F0C60: .4byte 0x0000d15c
+_080F0C64:
+ ldr r2, _080F0CBC @ =0x00000306
+ adds r1, r4, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r2, _080F0CC0 @ =0x0000ffff
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0CD0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ ldr r0, _080F0CC8 @ =0x00008770
+ adds r1, r4, r0
+ ldrh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080F0CCC @ =0x00008778
+ adds r2, r4, r1
+ ldrh r1, [r5]
+ lsls r1, 1
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80F0A74
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ ands r0, r6
+ cmp r0, 0x7
+ bls _080F0CD0
+ movs r0, 0
+ bl sub_80F081C
+ movs r0, 0
+ b _080F0CD2
+ .align 2, 0
+_080F0CBC: .4byte 0x00000306
+_080F0CC0: .4byte 0x0000ffff
+_080F0CC4: .4byte gWindowConfig_81E70D4
+_080F0CC8: .4byte 0x00008770
+_080F0CCC: .4byte 0x00008778
+_080F0CD0:
+ movs r0, 0x1
+_080F0CD2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0C48
+
+ thumb_func_start sub_80F0CD8
+sub_80F0CD8: @ 80F0CD8
+ push {r4,r5,lr}
+ ldr r4, _080F0D40 @ =gUnknown_083DFEC4
+ ldr r1, [r4]
+ ldr r2, _080F0D44 @ =0x00000306
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _080F0D48 @ =0x0000d15c
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r2, _080F0D4C @ =0x0000876e
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ adds r0, r1, r0
+ ldr r2, _080F0D50 @ =0x0000ceec
+ adds r0, r2
+ ldrb r0, [r0]
+ ldr r3, _080F0D54 @ =0x0000d110
+ adds r1, r3
+ ldr r2, _080F0D58 @ =gTrainerEyeDescriptions
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r2, r0, 0
+ movs r1, 0
+ adds r5, r4, 0
+ adds r4, r3, 0
+_080F0D14:
+ ldrb r0, [r2]
+ adds r3, r1, 0x1
+ cmp r0, 0xFF
+ beq _080F0D24
+_080F0D1C:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080F0D1C
+_080F0D24:
+ ldr r0, [r5]
+ lsls r1, r3, 2
+ adds r0, r4
+ adds r0, r1
+ adds r2, 0x1
+ str r2, [r0]
+ lsls r0, r3, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x2
+ bls _080F0D14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0D40: .4byte gUnknown_083DFEC4
+_080F0D44: .4byte 0x00000306
+_080F0D48: .4byte 0x0000d15c
+_080F0D4C: .4byte 0x0000876e
+_080F0D50: .4byte 0x0000ceec
+_080F0D54: .4byte 0x0000d110
+_080F0D58: .4byte gTrainerEyeDescriptions
+ thumb_func_end sub_80F0CD8
+
+ thumb_func_start sub_80F0D5C
+sub_80F0D5C: @ 80F0D5C
+ push {r4,r5,lr}
+ ldr r0, _080F0D70 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F0D74 @ =0x0000d15c
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ cmp r0, 0x7
+ bne _080F0D78
+_080F0D6C:
+ movs r0, 0
+ b _080F0EB0
+ .align 2, 0
+_080F0D70: .4byte gUnknown_083DFEC4
+_080F0D74: .4byte 0x0000d15c
+_080F0D78:
+ ldr r0, _080F0DB8 @ =0x00000306
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080F0D8C
+ b _080F0EAE
+_080F0D8C:
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080F0DBC @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ ldr r0, _080F0DC0 @ =0x00008778
+ adds r1, r4, r0
+ ldrh r3, [r5]
+ lsls r0, r3, 1
+ adds r0, 0x2
+ ldrh r1, [r1]
+ adds r5, r0, r1
+ movs r0, 0x1F
+ ands r5, r0
+ cmp r3, 0x6
+ bhi _080F0D6C
+ lsls r0, r3, 2
+ ldr r1, _080F0DC4 @ =_080F0DC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F0DB8: .4byte 0x00000306
+_080F0DBC: .4byte gWindowConfig_81E70D4
+_080F0DC0: .4byte 0x00008778
+_080F0DC4: .4byte _080F0DC8
+ .align 2, 0
+_080F0DC8:
+ .4byte _080F0DE4
+ .4byte _080F0DF0
+ .4byte _080F0E08
+ .4byte _080F0E14
+ .4byte _080F0E2C
+ .4byte _080F0E38
+ .4byte _080F0E6C
+_080F0DE4:
+ ldr r0, _080F0DEC @ =gOtherText_Strategy
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0DEC: .4byte gOtherText_Strategy
+_080F0DF0:
+ ldr r0, _080F0DFC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0E00 @ =0x00008788
+ adds r4, r0, r1
+ ldr r1, _080F0E04 @ =0x0000d110
+ b _080F0E42
+ .align 2, 0
+_080F0DFC: .4byte gUnknown_083DFEC4
+_080F0E00: .4byte 0x00008788
+_080F0E04: .4byte 0x0000d110
+_080F0E08:
+ ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E10: .4byte gOtherText_TrainersPokemon
+_080F0E14:
+ ldr r0, _080F0E20 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0E24 @ =0x00008788
+ adds r4, r0, r1
+ ldr r1, _080F0E28 @ =0x0000d114
+ b _080F0E42
+ .align 2, 0
+_080F0E20: .4byte gUnknown_083DFEC4
+_080F0E24: .4byte 0x00008788
+_080F0E28: .4byte 0x0000d114
+_080F0E2C:
+ ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction
+ lsls r2, r5, 3
+ b _080F0E54
+ .align 2, 0
+_080F0E34: .4byte gOtherText_SelfIntroduction
+_080F0E38:
+ ldr r0, _080F0E60 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0E64 @ =0x00008788
+ adds r4, r0, r1
+ ldr r1, _080F0E68 @ =0x0000d118
+_080F0E42:
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+_080F0E54:
+ movs r1, 0x61
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ b _080F0EA0
+ .align 2, 0
+_080F0E60: .4byte gUnknown_083DFEC4
+_080F0E64: .4byte 0x00008788
+_080F0E68: .4byte 0x0000d118
+_080F0E6C:
+ ldr r0, _080F0E94 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F0E98 @ =0x00008788
+ adds r4, r0, r1
+ ldr r1, _080F0E9C @ =0x0000d11c
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x88
+ movs r3, 0
+ bl sub_8072C74
+ lsls r2, r5, 3
+ adds r0, r4, 0
+ movs r1, 0x61
+ movs r3, 0
+ bl MenuPrint_PixelCoords
+ b _080F0D6C
+ .align 2, 0
+_080F0E94: .4byte gUnknown_083DFEC4
+_080F0E98: .4byte 0x00008788
+_080F0E9C: .4byte 0x0000d11c
+_080F0EA0:
+ ldr r0, _080F0EB8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F0EBC @ =0x0000d15c
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F0EAE:
+ movs r0, 0x1
+_080F0EB0:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0EB8: .4byte gUnknown_083DFEC4
+_080F0EBC: .4byte 0x0000d15c
+ thumb_func_end sub_80F0D5C
+
+ thumb_func_start sub_80F0EC0
+sub_80F0EC0: @ 80F0EC0
+ push {lr}
+ ldr r0, _080F0EE4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F0EE8 @ =0x00000306
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r3, _080F0EEC @ =0x0000d15c
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _080F0EF0 @ =0x00008788
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0EE4: .4byte gUnknown_083DFEC4
+_080F0EE8: .4byte 0x00000306
+_080F0EEC: .4byte 0x0000d15c
+_080F0EF0: .4byte 0x00008788
+ thumb_func_end sub_80F0EC0
+
+ thumb_func_start sub_80F0EF4
+sub_80F0EF4: @ 80F0EF4
+ push {r4,r5,lr}
+ ldr r0, _080F0F08 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080F0F0C @ =0x0000d15c
+ adds r5, r2, r0
+ ldrh r0, [r5]
+ cmp r0, 0x6
+ bls _080F0F10
+ movs r0, 0
+ b _080F0F52
+ .align 2, 0
+_080F0F08: .4byte gUnknown_083DFEC4
+_080F0F0C: .4byte 0x0000d15c
+_080F0F10:
+ ldr r0, _080F0F58 @ =0x00000306
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080F0F50
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080F0F5C @ =0x00008778
+ adds r0, r2, r1
+ ldrh r4, [r5]
+ lsls r4, 1
+ adds r4, 0x2
+ ldrh r0, [r0]
+ adds r4, r0
+ movs r0, 0x1F
+ ands r4, r0
+ ldr r0, _080F0F60 @ =gWindowConfig_81E70D4
+ bl BasicInitMenuWindow
+ adds r3, r4, 0x1
+ movs r0, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1F
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F0F50:
+ movs r0, 0x1
+_080F0F52:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F0F58: .4byte 0x00000306
+_080F0F5C: .4byte 0x00008778
+_080F0F60: .4byte gWindowConfig_81E70D4
+ thumb_func_end sub_80F0EF4
+
+ thumb_func_start sub_80F0F64
+sub_80F0F64: @ 80F0F64
+ push {r4,lr}
+ ldr r0, _080F0F90 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r1, _080F0F94 @ =0x0000876c
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r1, r2, 4
+ ldr r4, _080F0F98 @ =0x0000877c
+ adds r0, r3, r4
+ strh r1, [r0]
+ movs r1, 0x8
+ cmp r2, 0x1
+ bne _080F0F82
+ movs r1, 0x4
+_080F0F82:
+ ldr r2, _080F0F9C @ =0x0000877a
+ adds r0, r3, r2
+ strh r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0F90: .4byte gUnknown_083DFEC4
+_080F0F94: .4byte 0x0000876c
+_080F0F98: .4byte 0x0000877c
+_080F0F9C: .4byte 0x0000877a
+ thumb_func_end sub_80F0F64
+
+ thumb_func_start sub_80F0FA0
+sub_80F0FA0: @ 80F0FA0
+ push {r4,lr}
+ ldr r0, _080F0FDC @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r1, _080F0FE0 @ =0x0000876c
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ negs r0, r0
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ ldr r4, _080F0FE4 @ =0x0000877c
+ adds r1, r3, r4
+ strh r2, [r1]
+ movs r1, 0x1
+ negs r1, r1
+ movs r4, 0x8
+ negs r4, r4
+ adds r2, r4, 0
+ cmp r0, r1
+ bne _080F0FD0
+ movs r0, 0x4
+ negs r0, r0
+ adds r2, r0, 0
+_080F0FD0:
+ ldr r1, _080F0FE8 @ =0x0000877a
+ adds r0, r3, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F0FDC: .4byte gUnknown_083DFEC4
+_080F0FE0: .4byte 0x0000876c
+_080F0FE4: .4byte 0x0000877c
+_080F0FE8: .4byte 0x0000877a
+ thumb_func_end sub_80F0FA0
+
+ thumb_func_start sub_80F0FEC
+sub_80F0FEC: @ 80F0FEC
+ push {lr}
+ bl sub_80F0718
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F0FEC
+
+ thumb_func_start sub_80F0FFC
+sub_80F0FFC: @ 80F0FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ ldr r1, _080F1048 @ =gUnknown_083DFEC4
+ ldr r4, [r1]
+ ldr r1, _080F104C @ =0x00008788
+ adds r5, r4, r1
+ lsrs r0, 21
+ adds r0, r4, r0
+ ldr r1, _080F1050 @ =0x0000ceea
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080F1054 @ =gWindowConfig_81E710C
+ bl BasicInitMenuWindow
+ adds r0, r5, 0
+ bl sub_80F19DC
+ ldr r0, _080F1058 @ =0x0000d138
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x58
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1048: .4byte gUnknown_083DFEC4
+_080F104C: .4byte 0x00008788
+_080F1050: .4byte 0x0000ceea
+_080F1054: .4byte gWindowConfig_81E710C
+_080F1058: .4byte 0x0000d138
+ thumb_func_end sub_80F0FFC
+
+ thumb_func_start sub_80F105C
+sub_80F105C: @ 80F105C
+ push {lr}
+ ldr r0, _080F1078 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F107C @ =0x0000876e
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0xA
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_80F0A74
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1078: .4byte gUnknown_083DFEC4
+_080F107C: .4byte 0x0000876e
+ thumb_func_end sub_80F105C
+
+ thumb_func_start sub_80F1080
+sub_80F1080: @ 80F1080
+ push {r4,lr}
+ ldr r1, _080F10A0 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080F10A4 @ =0x0000d160
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xE
+ bls _080F1094
+ b _080F1204
+_080F1094:
+ lsls r0, 2
+ ldr r1, _080F10A8 @ =_080F10AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F10A0: .4byte gUnknown_083DFEC4
+_080F10A4: .4byte 0x0000d160
+_080F10A8: .4byte _080F10AC
+ .align 2, 0
+_080F10AC:
+ .4byte _080F10E8
+ .4byte _080F1104
+ .4byte _080F1110
+ .4byte _080F111C
+ .4byte _080F1128
+ .4byte _080F112E
+ .4byte _080F1134
+ .4byte _080F1142
+ .4byte _080F1160
+ .4byte _080F1166
+ .4byte _080F116C
+ .4byte _080F1180
+ .4byte _080F1194
+ .4byte _080F11DC
+ .4byte _080F11E2
+_080F10E8:
+ bl sub_80EEDE8
+ ldr r0, _080F10FC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080F1100 @ =0x0000d162
+ adds r0, r3
+ movs r1, 0xB
+ strb r1, [r0]
+ b _080F1218
+ .align 2, 0
+_080F10FC: .4byte gUnknown_083DFEC4
+_080F1100: .4byte 0x0000d162
+_080F1104:
+ ldr r0, _080F110C @ =gWindowConfig_81E70B8
+ bl SetUpWindowConfig
+ b _080F1218
+ .align 2, 0
+_080F110C: .4byte gWindowConfig_81E70B8
+_080F1110:
+ ldr r0, _080F1118 @ =gWindowConfig_81E70B8
+ bl MultistepInitMenuWindowBegin
+ b _080F1218
+ .align 2, 0
+_080F1118: .4byte gWindowConfig_81E70B8
+_080F111C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ beq _080F1126
+ b _080F1218
+_080F1126:
+ b _080F1226
+_080F1128:
+ bl MenuZeroFillScreen
+ b _080F1218
+_080F112E:
+ bl sub_80F1614
+ b _080F1218
+_080F1134:
+ movs r0, 0x1
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1218
+ b _080F1226
+_080F1142:
+ ldr r0, _080F1154 @ =gUnknown_08E9FBA0
+ ldr r1, _080F1158 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F115C @ =0x0000934c
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1218
+ .align 2, 0
+_080F1154: .4byte gUnknown_08E9FBA0
+_080F1158: .4byte gUnknown_083DFEC4
+_080F115C: .4byte 0x0000934c
+_080F1160:
+ bl sub_80F1238
+ b _080F1218
+_080F1166:
+ bl sub_80F13FC
+ b _080F1218
+_080F116C:
+ ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx
+ ldr r1, _080F117C @ =0x06008000
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F1178: .4byte gPokenavRibbonView_Gfx
+_080F117C: .4byte 0x06008000
+_080F1180:
+ ldr r0, _080F118C @ =gUnknown_083E040C
+ ldr r1, _080F1190 @ =0x06008200
+ bl LZ77UnCompVram
+ b _080F1218
+ .align 2, 0
+_080F118C: .4byte gUnknown_083E040C
+_080F1190: .4byte 0x06008200
+_080F1194:
+ ldr r0, _080F11CC @ =gPokenavRibbonView_Pal
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F11D0 @ =gUnknown_083E03A8
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F11D4 @ =gUnknown_083E3C60
+ movs r1, 0x30
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _080F11D8 @ =gUnknownPalette_81E6692
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r4, 0x1E
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ b _080F1218
+ .align 2, 0
+_080F11CC: .4byte gPokenavRibbonView_Pal
+_080F11D0: .4byte gUnknown_083E03A8
+_080F11D4: .4byte gUnknown_083E3C60
+_080F11D8: .4byte gUnknownPalette_81E6692
+_080F11DC:
+ bl sub_80F1438
+ b _080F1218
+_080F11E2:
+ ldr r1, _080F1208 @ =REG_BG2CNT
+ ldr r3, _080F120C @ =0x00001e02
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080F1210 @ =0x0000170b
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x42
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ ldr r0, _080F1214 @ =0x0000d160
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1204:
+ movs r0, 0
+ b _080F1228
+ .align 2, 0
+_080F1208: .4byte REG_BG2CNT
+_080F120C: .4byte 0x00001e02
+_080F1210: .4byte 0x0000170b
+_080F1214: .4byte 0x0000d160
+_080F1218:
+ ldr r0, _080F1230 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F1234 @ =0x0000d160
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1226:
+ movs r0, 0x1
+_080F1228:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1230: .4byte gUnknown_083DFEC4
+_080F1234: .4byte 0x0000d160
+ thumb_func_end sub_80F1080
+
+ thumb_func_start sub_80F1238
+sub_80F1238: @ 80F1238
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r6, 0x8B
+ ldr r0, _080F1318 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F131C @ =0x0000bc8e
+ adds r0, r2, r1
+ ldr r3, _080F1320 @ =0x0000bc8f
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r7, 0
+ mov r5, sp
+ adds r4, r2, 0
+_080F1264:
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ strh r0, [r5]
+ lsls r1, r7, 5
+ adds r1, r6, r1
+ lsls r1, 1
+ ldr r2, _080F1324 @ =0x0000934c
+ adds r1, r2
+ adds r1, r4, r1
+ mov r0, sp
+ ldr r2, _080F1328 @ =0x01000012
+ bl CpuSet
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x7
+ bls _080F1264
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ movs r7, 0
+ mov r9, r0
+ cmp r0, 0
+ beq _080F1342
+ ldr r0, _080F1318 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r1, _080F132C @ =gUnknown_083E4698
+ mov r10, r1
+ ldr r5, _080F1324 @ =0x0000934c
+ add r5, r8
+_080F12A4:
+ ldr r0, _080F1330 @ =0x0000bc4c
+ add r0, r8
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r10
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r10
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r3, 0x80
+ lsls r3, 21
+ adds r0, r3
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r4, r7, 0x1
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl __modsi3
+ cmp r0, 0
+ bne _080F1334
+ adds r0, r6, 0
+ adds r0, 0x30
+ b _080F1336
+ .align 2, 0
+_080F1318: .4byte gUnknown_083DFEC4
+_080F131C: .4byte 0x0000bc8e
+_080F1320: .4byte 0x0000bc8f
+_080F1324: .4byte 0x0000934c
+_080F1328: .4byte 0x01000012
+_080F132C: .4byte gUnknown_083E4698
+_080F1330: .4byte 0x0000bc4c
+_080F1334:
+ adds r0, r6, 0x2
+_080F1336:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r4, 16
+ lsrs r7, r0, 16
+ cmp r0, r9
+ bcc _080F12A4
+_080F1342:
+ ldr r6, _080F13E8 @ =0x0000014b
+ movs r7, 0
+ ldr r1, _080F13EC @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080F13F0 @ =0x0000bc8f
+ adds r1, r0, r2
+ ldrb r3, [r1]
+ cmp r7, r3
+ bcs _080F13D8
+ subs r2, 0x43
+ adds r2, r0
+ mov r10, r2
+ ldr r3, _080F13F4 @ =gUnknown_083E4698
+ mov r8, r3
+ ldr r2, _080F13F8 @ =0x0000934c
+ adds r5, r0, r2
+ mov r9, r1
+_080F1364:
+ ldr r3, [sp, 0x4]
+ adds r0, r3, r7
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r1, 2
+ mov r0, r8
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ adds r2, 0x3
+ lsls r2, 24
+ add r1, r8
+ ldrh r0, [r1]
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 21
+ adds r0, r1
+ lsrs r4, r0, 24
+ lsls r1, r6, 1
+ adds r1, r5, r1
+ lsrs r2, 12
+ adds r0, r2, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r1, r6, 0x1
+ lsls r1, 1
+ adds r1, r5, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ adds r3, r2, 0
+ orrs r3, r0
+ adds r0, r3, 0
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r1, r4, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ adds r0, r6, 0
+ adds r0, 0x21
+ lsls r0, 1
+ adds r0, r5, r0
+ orrs r3, r1
+ strh r3, [r0]
+ adds r0, r6, 0x2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r9
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080F1364
+_080F13D8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F13E8: .4byte 0x0000014b
+_080F13EC: .4byte gUnknown_083DFEC4
+_080F13F0: .4byte 0x0000bc8f
+_080F13F4: .4byte gUnknown_083E4698
+_080F13F8: .4byte 0x0000934c
+ thumb_func_end sub_80F1238
+
+ thumb_func_start sub_80F13FC
+sub_80F13FC: @ 80F13FC
+ ldr r0, _080F141C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F1420 @ =0x0000934c
+ adds r0, r1
+ ldr r2, _080F1424 @ =0x0600b800
+ ldr r1, _080F1428 @ =0x040000d4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F142C @ =0x84000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _080F1430 @ =gPlttBufferUnfaded
+ ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080F141C: .4byte gUnknown_083DFEC4
+_080F1420: .4byte 0x0000934c
+_080F1424: .4byte 0x0600b800
+_080F1428: .4byte 0x040000d4
+_080F142C: .4byte 0x84000140
+_080F1430: .4byte gPlttBufferUnfaded
+_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C
+ thumb_func_end sub_80F13FC
+
+ thumb_func_start sub_80F1438
+sub_80F1438: @ 80F1438
+ push {r4,r5,lr}
+ ldr r0, _080F1470 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F1474 @ =0x00008829
+ adds r0, r4, r1
+ movs r1, 0xD
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, _080F1478 @ =0x00008788
+ adds r5, r4, r0
+ ldr r1, _080F147C @ =0x0000876e
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_80F445C
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1470: .4byte gUnknown_083DFEC4
+_080F1474: .4byte 0x00008829
+_080F1478: .4byte 0x00008788
+_080F147C: .4byte 0x0000876e
+ thumb_func_end sub_80F1438
+
+ thumb_func_start sub_80F1480
+sub_80F1480: @ 80F1480
+ push {lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F1480
+
+ thumb_func_start sub_80F1494
+sub_80F1494: @ 80F1494
+ push {r4-r7,lr}
+ ldr r0, _080F14D4 @ =gUnknown_083DFEC8
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 4
+ adds r6, r0, r1
+ ldr r2, _080F14D8 @ =0x00000a98
+ adds r7, r0, r2
+ ldr r0, _080F14DC @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r4, _080F14E0 @ =0x0000bc91
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _080F14F0
+ ldr r5, _080F14E4 @ =gUnknown_020388B4
+ adds r1, r0, 0
+ lsls r0, r1, 3
+ subs r4, 0x1
+ adds r2, r3, r4
+ adds r0, r1
+ ldrb r2, [r2]
+ adds r0, r2
+ strh r0, [r5]
+ ldr r1, _080F14E8 @ =0x0000bc4c
+ adds r0, r3, r1
+ ldrh r2, [r5]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r4, _080F14EC @ =gRibbonDescriptions
+ b _080F152E
+ .align 2, 0
+_080F14D4: .4byte gUnknown_083DFEC8
+_080F14D8: .4byte 0x00000a98
+_080F14DC: .4byte gUnknown_083DFEC4
+_080F14E0: .4byte 0x0000bc91
+_080F14E4: .4byte gUnknown_020388B4
+_080F14E8: .4byte 0x0000bc4c
+_080F14EC: .4byte gRibbonDescriptions
+_080F14F0:
+ ldr r5, _080F1558 @ =gUnknown_020388B4
+ ldr r4, _080F155C @ =0x0000bc8e
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ ldr r2, _080F1560 @ =0x0000bc8f
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ subs r0, r1
+ strh r0, [r5]
+ ldrh r1, [r5]
+ adds r4, 0x2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ adds r1, r0
+ subs r2, 0x43
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _080F1564 @ =gSaveBlock1
+ ldrh r1, [r5]
+ adds r0, r1
+ ldr r4, _080F1568 @ =0x000030f7
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r5]
+ cmp r0, 0
+ beq _080F1570
+ subs r0, 0x1
+ strh r0, [r5]
+ ldr r4, _080F156C @ =gGiftRibbonDescriptions
+_080F152E:
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ b _080F158A
+ .align 2, 0
+_080F1558: .4byte gUnknown_020388B4
+_080F155C: .4byte 0x0000bc8e
+_080F1560: .4byte 0x0000bc8f
+_080F1564: .4byte gSaveBlock1
+_080F1568: .4byte 0x000030f7
+_080F156C: .4byte gGiftRibbonDescriptions
+_080F1570:
+ ldr r4, _080F15A4 @ =gEmptyString_81E72B0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ movs r3, 0
+ bl sub_8072C74
+_080F158A:
+ adds r0, r6, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F15A4: .4byte gEmptyString_81E72B0
+ thumb_func_end sub_80F1494
+
+ thumb_func_start sub_80F15A8
+sub_80F15A8: @ 80F15A8
+ push {r4,r5,lr}
+ movs r0, 0xC
+ movs r1, 0xD
+ movs r2, 0x1B
+ movs r3, 0x10
+ bl MenuZeroFillWindowRect
+ ldr r0, _080F1600 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F1604 @ =0x00008788
+ adds r5, r4, r0
+ ldr r1, _080F1608 @ =gOtherText_Ribbons
+ adds r0, r5, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ ldr r1, _080F160C @ =0x000087dc
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, _080F1610 @ =0x0000893c
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0xC
+ movs r2, 0xD
+ bl MenuPrint
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1600: .4byte gUnknown_083DFEC4
+_080F1604: .4byte 0x00008788
+_080F1608: .4byte gOtherText_Ribbons
+_080F160C: .4byte 0x000087dc
+_080F1610: .4byte 0x0000893c
+ thumb_func_end sub_80F15A8
+
+ thumb_func_start sub_80F1614
+sub_80F1614: @ 80F1614
+ ldr r0, _080F1624 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F1628 @ =0x00008764
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F1624: .4byte gUnknown_083DFEC4
+_080F1628: .4byte 0x00008764
+ thumb_func_end sub_80F1614
+
+ thumb_func_start sub_80F162C
+sub_80F162C: @ 80F162C
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F164C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F1650 @ =0x00008764
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F165E
+ cmp r0, 0x1
+ bgt _080F1654
+ cmp r0, 0
+ beq _080F16F0
+ b _080F16D0
+ .align 2, 0
+_080F164C: .4byte gUnknown_083DFEC4
+_080F1650: .4byte 0x00008764
+_080F1654:
+ cmp r0, 0x2
+ beq _080F1670
+ cmp r0, 0x3
+ beq _080F1694
+ b _080F16D0
+_080F165E:
+ ldr r0, _080F1668 @ =gUnknown_08E9FF58
+ ldr r1, _080F166C @ =0x0600e800
+ bl LZ77UnCompVram
+ b _080F16F0
+ .align 2, 0
+_080F1668: .4byte gUnknown_08E9FF58
+_080F166C: .4byte 0x0600e800
+_080F1670:
+ ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx
+ ldr r2, _080F1688 @ =0x0600e000
+ ldr r0, _080F168C @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _080F1690 @ =0x80000070
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _080F16F0
+ .align 2, 0
+_080F1684: .4byte gPokenavRibbonPokeView_Gfx
+_080F1688: .4byte 0x0600e000
+_080F168C: .4byte 0x040000d4
+_080F1690: .4byte 0x80000070
+_080F1694:
+ cmp r1, 0
+ bne _080F16A8
+ ldr r0, _080F16A4 @ =gUnknown_083E0124
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F16B2
+ .align 2, 0
+_080F16A4: .4byte gUnknown_083E0124
+_080F16A8:
+ ldr r0, _080F16D4 @ =gUnknown_083E0144
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+_080F16B2:
+ ldr r0, _080F16D8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r3, _080F16DC @ =0x00008766
+ adds r2, r1, r3
+ ldr r0, _080F16E0 @ =0x0000ffb0
+ strh r0, [r2]
+ ldr r2, _080F16E4 @ =REG_BG0CNT
+ ldr r3, _080F16E8 @ =0x00001d0d
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _080F16EC @ =0x00008764
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F16D0:
+ movs r0, 0
+ b _080F1700
+ .align 2, 0
+_080F16D4: .4byte gUnknown_083E0144
+_080F16D8: .4byte gUnknown_083DFEC4
+_080F16DC: .4byte 0x00008766
+_080F16E0: .4byte 0x0000ffb0
+_080F16E4: .4byte REG_BG0CNT
+_080F16E8: .4byte 0x00001d0d
+_080F16EC: .4byte 0x00008764
+_080F16F0:
+ ldr r0, _080F1704 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F1708 @ =0x00008764
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1700:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1704: .4byte gUnknown_083DFEC4
+_080F1708: .4byte 0x00008764
+ thumb_func_end sub_80F162C
+
+ thumb_func_start sub_80F170C
+sub_80F170C: @ 80F170C
+ push {lr}
+ ldr r0, _080F1734 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F1738 @ =0x00008766
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080F1726
+ movs r0, 0
+ strh r0, [r1]
+_080F1726:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1734: .4byte gUnknown_083DFEC4
+_080F1738: .4byte 0x00008766
+ thumb_func_end sub_80F170C
+
+ thumb_func_start sub_80F173C
+sub_80F173C: @ 80F173C
+ push {lr}
+ ldr r0, _080F176C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F1770 @ =0x00008766
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ subs r0, 0x10
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x50
+ negs r2, r2
+ cmp r0, r2
+ bge _080F175C
+ ldr r0, _080F1774 @ =0x0000ffb0
+ strh r0, [r1]
+_080F175C:
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ eors r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F176C: .4byte gUnknown_083DFEC4
+_080F1770: .4byte 0x00008766
+_080F1774: .4byte 0x0000ffb0
+ thumb_func_end sub_80F173C
+
+ thumb_func_start sub_80F1778
+sub_80F1778: @ 80F1778
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r0, _080F1798 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F179C @ =0x0000d160
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x9
+ bls _080F178C
+ b _080F1910
+_080F178C:
+ lsls r0, 2
+ ldr r1, _080F17A0 @ =_080F17A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F1798: .4byte gUnknown_083DFEC4
+_080F179C: .4byte 0x0000d160
+_080F17A0: .4byte _080F17A4
+ .align 2, 0
+_080F17A4:
+ .4byte _080F17CC
+ .4byte _080F17E8
+ .4byte _080F17EE
+ .4byte _080F17FE
+ .4byte _080F1810
+ .4byte _080F1830
+ .4byte _080F1858
+ .4byte _080F186C
+ .4byte _080F18B8
+ .4byte _080F18D8
+_080F17CC:
+ bl sub_80EEDE8
+ ldr r0, _080F17E0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F17E4 @ =0x0000d162
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ b _080F1914
+ .align 2, 0
+_080F17E0: .4byte gUnknown_083DFEC4
+_080F17E4: .4byte 0x0000d162
+_080F17E8:
+ bl sub_80F1614
+ b _080F1914
+_080F17EE:
+ movs r0, 0
+ bl sub_80F162C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F17FC
+ b _080F1914
+_080F17FC:
+ b _080F1922
+_080F17FE:
+ ldr r0, _080F1808 @ =gPokenavConditionView_Gfx
+ ldr r1, _080F180C @ =0x06005000
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1808: .4byte gPokenavConditionView_Gfx
+_080F180C: .4byte 0x06005000
+_080F1810:
+ ldr r0, _080F1824 @ =gUnknown_08E9AC4C
+ ldr r1, _080F1828 @ =0x0600f000
+ bl LZ77UnCompVram
+ ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _080F1914
+ .align 2, 0
+_080F1824: .4byte gUnknown_08E9AC4C
+_080F1828: .4byte 0x0600f000
+_080F182C: .4byte gPokenavConditionMenu2_Pal
+_080F1830:
+ ldr r0, _080F1850 @ =0x0600f000
+ ldr r3, _080F1854 @ =gUnknown_083E01F4
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r2, 0xC
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xD
+ bl sub_8095C8C
+ b _080F1914
+ .align 2, 0
+_080F1850: .4byte 0x0600f000
+_080F1854: .4byte gUnknown_083E01F4
+_080F1858:
+ ldr r0, _080F1864 @ =gUnknown_08E9FEB4
+ ldr r1, _080F1868 @ =0x0600b800
+ bl LZ77UnCompVram
+ b _080F1914
+ .align 2, 0
+_080F1864: .4byte gUnknown_08E9FEB4
+_080F1868: .4byte 0x0600b800
+_080F186C:
+ ldr r0, _080F18AC @ =gUnknown_083E0254
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080F18B0 @ =gUnknownPalette_81E6692
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2
+ adds r0, r4, 0
+ movs r1, 0xB1
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ adds r0, 0xE
+ movs r1, 0xB5
+ movs r2, 0x2
+ bl LoadPalette
+ adds r4, 0x1C
+ adds r0, r4, 0
+ movs r1, 0xBF
+ movs r2, 0x2
+ bl LoadPalette
+ bl sub_80F01A4
+ b _080F1914
+ .align 2, 0
+_080F18AC: .4byte gUnknown_083E0254
+_080F18B0: .4byte gUnknownPalette_81E6692
+_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2
+_080F18B8:
+ ldr r0, _080F18D0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F18D4 @ =0x00008fe9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F1914
+ .align 2, 0
+_080F18D0: .4byte gUnknown_083DFEC4
+_080F18D4: .4byte 0x00008fe9
+_080F18D8:
+ ldr r1, _080F18FC @ =REG_BG3CNT
+ ldr r2, _080F1900 @ =0x00001e03
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _080F1904 @ =0x00001702
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ ldr r2, _080F1908 @ =0x00000844
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F190C @ =0x0000040b
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080F1914
+ .align 2, 0
+_080F18FC: .4byte REG_BG3CNT
+_080F1900: .4byte 0x00001e03
+_080F1904: .4byte 0x00001702
+_080F1908: .4byte 0x00000844
+_080F190C: .4byte 0x0000040b
+_080F1910:
+ movs r0, 0
+ b _080F1924
+_080F1914:
+ ldr r0, _080F192C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F1930 @ =0x0000d160
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F1922:
+ movs r0, 0x1
+_080F1924:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F192C: .4byte gUnknown_083DFEC4
+_080F1930: .4byte 0x0000d160
+ thumb_func_end sub_80F1778
+
+ thumb_func_start sub_80F1934
+sub_80F1934: @ 80F1934
+ push {r4,r5,lr}
+ ldr r0, _080F1990 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F1994 @ =0x00008788
+ adds r5, r1, r0
+ ldr r3, _080F1998 @ =0x000087dc
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _080F199C @ =0x0000893f
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F19AC
+ ldrb r0, [r2]
+ bl sub_8137124
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F19A0 @ =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080F19A4 @ =gOtherText_Nature2
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ ldr r0, _080F19A8 @ =gNatureNames
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+ b _080F19B8
+ .align 2, 0
+_080F1990: .4byte gUnknown_083DFEC4
+_080F1994: .4byte 0x00008788
+_080F1998: .4byte 0x000087dc
+_080F199C: .4byte 0x0000893f
+_080F19A0: .4byte gPlayerParty
+_080F19A4: .4byte gOtherText_Nature2
+_080F19A8: .4byte gNatureNames
+_080F19AC:
+ ldr r1, _080F19D0 @ =gEmptyString_81E72B0
+ adds r0, r5, 0
+ movs r2, 0x57
+ movs r3, 0
+ bl sub_8072C74
+_080F19B8:
+ ldr r0, _080F19D4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F19D8 @ =0x00008788
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x70
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F19D0: .4byte gEmptyString_81E72B0
+_080F19D4: .4byte gUnknown_083DFEC4
+_080F19D8: .4byte 0x00008788
+ thumb_func_end sub_80F1934
+
+ thumb_func_start sub_80F19DC
+sub_80F19DC: @ 80F19DC
+ push {lr}
+ adds r1, r0, 0
+ b _080F19E4
+_080F19E2:
+ adds r1, 0x1
+_080F19E4:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _080F19F8
+ cmp r0, 0xFC
+ bne _080F19E2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080F19E2
+ movs r0, 0xFF
+ strb r0, [r1]
+_080F19F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F19DC
+
+ thumb_func_start sub_80F19FC
+sub_80F19FC: @ 80F19FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080F1A68 @ =gUnknown_020388B0
+ ldrb r4, [r5]
+ cmp r4, 0x1
+ bne _080F1A60
+ ldr r0, _080F1A6C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F1A70 @ =0x00006e2c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r1, [r1]
+ ldrb r2, [r5, 0x1]
+ bl sub_811A8CC
+ cmp r0, 0
+ beq _080F1A46
+ ldrb r2, [r5, 0x1]
+ lsls r2, 20
+ movs r1, 0xC0
+ lsls r1, 14
+ adds r2, r1
+ lsrs r2, 16
+ str r4, [sp]
+ movs r1, 0x70
+ movs r3, 0x78
+ bl sub_8072A18
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080F1A60
+_080F1A46:
+ ldrb r1, [r5, 0x1]
+ lsls r1, 25
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ movs r0, 0xE
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl MenuFillWindowRectWithBlankTile
+ movs r0, 0
+ strb r0, [r5]
+_080F1A60:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1A68: .4byte gUnknown_020388B0
+_080F1A6C: .4byte gUnknown_083DFEC4
+_080F1A70: .4byte 0x00006e2c
+ thumb_func_end sub_80F19FC
+
+ thumb_func_start sub_80F1A74
+sub_80F1A74: @ 80F1A74
+ ldr r1, _080F1A7C @ =gUnknown_020388B0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080F1A7C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A74
+
+ thumb_func_start sub_80F1A80
+sub_80F1A80: @ 80F1A80
+ ldr r0, _080F1A8C @ =gUnknown_020388B0
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_080F1A8C: .4byte gUnknown_020388B0
+ thumb_func_end sub_80F1A80
+
+ thumb_func_start sub_80F1A90
+sub_80F1A90: @ 80F1A90
+ push {lr}
+ ldr r0, _080F1AB8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F1ABC @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1AC0 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1AB2
+_080F1AA8:
+ bl sub_80F1AC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1AA8
+_080F1AB2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1AB8: .4byte gUnknown_083DFEC4
+_080F1ABC: .4byte 0x00000306
+_080F1AC0: .4byte 0x00006dac
+ thumb_func_end sub_80F1A90
+
+ thumb_func_start sub_80F1AC4
+sub_80F1AC4: @ 80F1AC4
+ push {r4,r5,lr}
+ ldr r0, _080F1AE0 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F1AE4 @ =0x00000306
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F1B34
+ cmp r0, 0x1
+ bgt _080F1AE8
+ cmp r0, 0
+ beq _080F1AF2
+ b _080F1B6C
+ .align 2, 0
+_080F1AE0: .4byte gUnknown_083DFEC4
+_080F1AE4: .4byte 0x00000306
+_080F1AE8:
+ cmp r0, 0x2
+ beq _080F1B40
+ cmp r0, 0x3
+ beq _080F1B54
+ b _080F1B6C
+_080F1AF2:
+ movs r0, 0
+ movs r2, 0xC8
+ lsls r2, 2
+ adds r4, r1, r2
+ movs r5, 0
+_080F1AFC:
+ movs r2, 0
+ adds r1, r0, 0x1
+ lsls r3, r0, 4
+_080F1B02:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r4, r0
+ str r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F1B02
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _080F1AFC
+ ldr r0, _080F1B2C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F1B30 @ =0x00000311
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _080F1B6C
+ .align 2, 0
+_080F1B2C: .4byte gUnknown_083DFEC4
+_080F1B30: .4byte 0x00000311
+_080F1B34:
+ ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx
+ movs r2, 0xE2
+ lsls r2, 2
+ b _080F1B44
+ .align 2, 0
+_080F1B3C: .4byte gPokenavMenuOptions_Gfx
+_080F1B40:
+ ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx
+ ldr r2, _080F1B50 @ =0x00001788
+_080F1B44:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F1B6C
+ .align 2, 0
+_080F1B4C: .4byte gPokenavConditionMenu_Gfx
+_080F1B50: .4byte 0x00001788
+_080F1B54:
+ ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx
+ ldr r2, _080F1B68 @ =0x00002388
+ adds r1, r2
+ bl LZ77UnCompWram
+ movs r0, 0
+ b _080F1B7C
+ .align 2, 0
+_080F1B64: .4byte gPokenavConditionSearch_Gfx
+_080F1B68: .4byte 0x00002388
+_080F1B6C:
+ ldr r0, _080F1B84 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F1B88 @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1B7C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1B84: .4byte gUnknown_083DFEC4
+_080F1B88: .4byte 0x00000306
+ thumb_func_end sub_80F1AC4
+
+ thumb_func_start sub_80F1B8C
+sub_80F1B8C: @ 80F1B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F1BBC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F1BC0 @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F1BC4 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F1BB4
+_080F1BA8:
+ adds r0, r4, 0
+ bl sub_80F1BC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1BA8
+_080F1BB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1BBC: .4byte gUnknown_083DFEC4
+_080F1BC0: .4byte 0x00000306
+_080F1BC4: .4byte 0x00006dac
+ thumb_func_end sub_80F1B8C
+
+ thumb_func_start sub_80F1BC8
+sub_80F1BC8: @ 80F1BC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080F1BF4 @ =gUnknown_083DFEC4
+ ldr r2, [r1]
+ ldr r3, _080F1BF8 @ =0x00000306
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x1
+ beq _080F1C0A
+ cmp r0, 0x1
+ bgt _080F1BFC
+ cmp r0, 0
+ beq _080F1C02
+ b _080F1DC4
+ .align 2, 0
+_080F1BF4: .4byte gUnknown_083DFEC4
+_080F1BF8: .4byte 0x00000306
+_080F1BFC:
+ cmp r0, 0x2
+ beq _080F1C12
+ b _080F1DC4
+_080F1C02:
+ mov r0, r9
+ bl sub_80F2458
+ b _080F1DC8
+_080F1C0A:
+ mov r0, r9
+ bl sub_80F2514
+ b _080F1DC8
+_080F1C12:
+ mov r4, r9
+ cmp r4, 0x1
+ beq _080F1C40
+ cmp r4, 0x1
+ bgt _080F1C22
+ cmp r4, 0
+ beq _080F1C2A
+ b _080F1DC4
+_080F1C22:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _080F1C54
+ b _080F1DC4
+_080F1C2A:
+ movs r0, 0x2A
+ str r0, [sp, 0x4]
+ movs r1, 0x14
+ str r1, [sp, 0x8]
+ ldr r4, _080F1C3C @ =0x0000030e
+ adds r1, r2, r4
+ movs r0, 0x5
+ b _080F1C62
+ .align 2, 0
+_080F1C3C: .4byte 0x0000030e
+_080F1C40:
+ movs r5, 0x38
+ str r5, [sp, 0x4]
+ movs r0, 0x14
+ str r0, [sp, 0x8]
+ ldr r4, _080F1C50 @ =0x0000030e
+ adds r1, r2, r4
+ movs r0, 0x3
+ b _080F1C62
+ .align 2, 0
+_080F1C50: .4byte 0x0000030e
+_080F1C54:
+ movs r5, 0x28
+ str r5, [sp, 0x4]
+ movs r0, 0x10
+ str r0, [sp, 0x8]
+ ldr r4, _080F1CDC @ =0x0000030e
+ adds r1, r2, r4
+ movs r0, 0x6
+_080F1C62:
+ strb r0, [r1]
+ movs r5, 0
+ str r5, [sp]
+ mov r8, r5
+ adds r1, r3, 0
+ ldr r0, [r1]
+ ldr r2, _080F1CDC @ =0x0000030e
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ blt _080F1C7E
+ b _080F1DC8
+_080F1C7E:
+ ldr r4, [sp, 0x8]
+ mov r3, r8
+ muls r3, r4
+ ldr r5, [sp, 0x4]
+ adds r0, r5, r3
+ subs r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, [r1]
+ mov r2, r8
+ lsls r1, r2, 1
+ movs r5, 0xC5
+ lsls r5, 2
+ adds r2, r4, r5
+ adds r2, r1
+ lsls r1, r0, 8
+ adds r0, 0x11
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r9
+ cmp r0, 0
+ bne _080F1CF2
+ ldr r1, _080F1CE0 @ =0x00006db2
+ adds r0, r4, r1
+ mov r2, r8
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F1CE8
+ movs r5, 0
+ ldr r0, _080F1CE4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r2, 4
+ movs r3, 0xC8
+ lsls r3, 2
+ adds r1, r0, r3
+ movs r3, 0
+_080F1CC8:
+ lsls r0, r5, 2
+ adds r0, r2
+ adds r0, r1, r0
+ str r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CC8
+ b _080F1D92
+ .align 2, 0
+_080F1CDC: .4byte 0x0000030e
+_080F1CE0: .4byte 0x00006db2
+_080F1CE4: .4byte gUnknown_083DFEC4
+_080F1CE8:
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 18
+ lsrs r0, 16
+ str r0, [sp]
+_080F1CF2:
+ movs r5, 0
+ ldr r4, [sp, 0x4]
+ adds r0, r4, r3
+ lsls r0, 16
+ mov r10, r0
+_080F1CFC:
+ lsls r6, r5, 5
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r6, r0
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F1DC4
+ ldr r0, _080F1DB8 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ lsls r1, r5, 2
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r4, r2, r1
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080F1DBC @ =gSprites
+ adds r0, r1
+ str r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldr r0, [r4]
+ strh r5, [r0, 0x30]
+ ldr r1, [r4]
+ adds r0, r6, 0
+ adds r0, 0x98
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ strh r7, [r0, 0x34]
+ ldr r0, [r4]
+ ldr r1, [sp]
+ adds r2, r1, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ mov r2, r9
+ cmp r2, 0x2
+ beq _080F1D6E
+ cmp r2, 0
+ bne _080F1D88
+_080F1D6E:
+ mov r3, r8
+ cmp r3, 0x2
+ bls _080F1D88
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r3, [r4]
+ lsls r0, 4
+ ldrb r2, [r3, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x5]
+_080F1D88:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080F1CFC
+_080F1D92:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080F1DB8 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r4, _080F1DC0 @ =0x0000030e
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080F1DB0
+ b _080F1C7E
+_080F1DB0:
+ b _080F1DC8
+ .align 2, 0
+_080F1DB4: .4byte gSpriteTemplate_83E4454
+_080F1DB8: .4byte gUnknown_083DFEC4
+_080F1DBC: .4byte gSprites
+_080F1DC0: .4byte 0x0000030e
+_080F1DC4:
+ movs r0, 0
+ b _080F1DD8
+_080F1DC8:
+ ldr r0, _080F1DE8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r5, _080F1DEC @ =0x00000306
+ adds r1, r5
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F1DD8:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F1DE8: .4byte gUnknown_083DFEC4
+_080F1DEC: .4byte 0x00000306
+ thumb_func_end sub_80F1BC8
+
+ thumb_func_start sub_80F1DF0
+sub_80F1DF0: @ 80F1DF0
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r0, _080F1E44 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080F1E48 @ =0x0000030e
+ adds r1, r3, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1E38
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r3, r0
+ adds r6, r1, 0
+ ldr r5, _080F1E4C @ =sub_80F2218
+_080F1E0E:
+ movs r1, 0
+ adds r3, r2, 0x1
+ lsls r2, 4
+_080F1E14:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1E22
+ str r5, [r0, 0x1C]
+_080F1E22:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1E14
+ lsls r0, r3, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1E0E
+_080F1E38:
+ movs r0, 0x6
+ bl PlaySE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1E44: .4byte gUnknown_083DFEC4
+_080F1E48: .4byte 0x0000030e
+_080F1E4C: .4byte sub_80F2218
+ thumb_func_end sub_80F1DF0
+
+ thumb_func_start sub_80F1E50
+sub_80F1E50: @ 80F1E50
+ push {lr}
+ bl sub_80F22F8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E60
+ movs r0, 0x1
+ b _080F1E66
+_080F1E60:
+ bl sub_80F2108
+ movs r0, 0
+_080F1E66:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E50
+
+ thumb_func_start sub_80F1E6C
+sub_80F1E6C: @ 80F1E6C
+ push {lr}
+ bl sub_80F22F8
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F1E7C
+ movs r1, 0x1
+_080F1E7C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1E6C
+
+ thumb_func_start sub_80F1E84
+sub_80F1E84: @ 80F1E84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _080F1EFC @ =gUnknown_083DFEC4
+ ldr r4, [r5]
+ ldr r1, _080F1F00 @ =0x0000030f
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80F2148
+ movs r2, 0
+ ldr r3, _080F1F04 @ =0x0000030e
+ adds r1, r4, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bge _080F1EF2
+ ldr r0, _080F1F08 @ =0x00006dad
+ adds r7, r4, r0
+ adds r6, r1, 0
+ mov r8, r5
+ ldr r1, _080F1F0C @ =sub_80F2240
+ mov r12, r1
+_080F1EB4:
+ movs r0, 0
+ ldrsb r0, [r7, r0]
+ adds r5, r2, 0x1
+ cmp r2, r0
+ beq _080F1EE6
+ movs r1, 0
+ mov r3, r8
+ ldr r0, [r3]
+ lsls r3, r2, 4
+ movs r4, 0xC8
+ lsls r4, 2
+ adds r2, r0, r4
+ mov r4, r12
+_080F1ECE:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F1EDC
+ str r4, [r0, 0x1C]
+_080F1EDC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F1ECE
+_080F1EE6:
+ lsls r0, r5, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080F1EB4
+_080F1EF2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F1EFC: .4byte gUnknown_083DFEC4
+_080F1F00: .4byte 0x0000030f
+_080F1F04: .4byte 0x0000030e
+_080F1F08: .4byte 0x00006dad
+_080F1F0C: .4byte sub_80F2240
+ thumb_func_end sub_80F1E84
+
+ thumb_func_start sub_80F1F10
+sub_80F1F10: @ 80F1F10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _080F1F2C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F1F30 @ =0x0000030f
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F1F34
+ cmp r0, 0x1
+ beq _080F1FC0
+ b _080F1FE4
+ .align 2, 0
+_080F1F2C: .4byte gUnknown_083DFEC4
+_080F1F30: .4byte 0x0000030f
+_080F1F34:
+ bl sub_80F2360
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ movs r6, 0
+ adds r7, r4, 0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r0, r7
+ mov r8, r0
+_080F1F4A:
+ lsls r5, r6, 2
+ ldr r1, _080F1FAC @ =0x00006dad
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ adds r0, r5, r0
+ add r0, r8
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, _080F1FB0 @ =gUnknown_083E4450
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ subs r5, 0x6
+ strh r5, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x36]
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ lsls r0, 3
+ strh r0, [r4, 0x38]
+ ldr r0, _080F1FB4 @ =sub_80F2240
+ str r0, [r4, 0x1C]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _080F1F4A
+ bl sub_80F2170
+ ldr r0, _080F1FB8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F1FBC @ =0x0000030f
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F1FE4
+ .align 2, 0
+_080F1FAC: .4byte 0x00006dad
+_080F1FB0: .4byte gUnknown_083E4450
+_080F1FB4: .4byte sub_80F2240
+_080F1FB8: .4byte gUnknown_083DFEC4
+_080F1FBC: .4byte 0x0000030f
+_080F1FC0:
+ bl sub_80F23C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F1FE4
+ bl sub_80F21F8
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ b _080F1FE6
+_080F1FE4:
+ movs r0, 0x1
+_080F1FE6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F1F10
+
+ thumb_func_start sub_80F1FF0
+sub_80F1FF0: @ 80F1FF0
+ push {r4,lr}
+ ldr r0, _080F203C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F2040 @ =0x00000311
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080F2058
+ ldr r2, _080F2044 @ =REG_WIN0V
+ ldr r3, _080F2048 @ =0x00006dad
+ adds r0, r4, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r0, r4, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r3, _080F204C @ =REG_BLDY
+ ldr r1, _080F2050 @ =gSineTable
+ ldr r0, _080F2054 @ =0x00000312
+ adds r2, r4, r0
+ ldrh r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r3]
+ ldrh r0, [r2]
+ adds r0, 0x3
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r2]
+ b _080F2078
+ .align 2, 0
+_080F203C: .4byte gUnknown_083DFEC4
+_080F2040: .4byte 0x00000311
+_080F2044: .4byte REG_WIN0V
+_080F2048: .4byte 0x00006dad
+_080F204C: .4byte REG_BLDY
+_080F2050: .4byte gSineTable
+_080F2054: .4byte 0x00000312
+_080F2058:
+ cmp r0, 0x2
+ bne _080F2078
+ ldr r2, _080F2080 @ =REG_BLDALPHA
+ ldr r1, _080F2084 @ =gUnknown_083E42F8
+ ldr r0, _080F2088 @ =0x00000312
+ adds r3, r4, r0
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r3]
+ cmp r0, 0xE
+ bhi _080F2078
+ adds r0, 0x1
+ strh r0, [r3]
+_080F2078:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2080: .4byte REG_BLDALPHA
+_080F2084: .4byte gUnknown_083E42F8
+_080F2088: .4byte 0x00000312
+ thumb_func_end sub_80F1FF0
+
+ thumb_func_start sub_80F208C
+sub_80F208C: @ 80F208C
+ push {lr}
+ bl sub_80F2148
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F208C
+
+ thumb_func_start sub_80F2098
+sub_80F2098: @ 80F2098
+ ldr r1, _080F20DC @ =REG_WIN0H
+ ldr r2, _080F20E0 @ =0x000077f0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _080F20E4 @ =REG_WIN0V
+ ldr r0, _080F20E8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r3, _080F20EC @ =0x00006dad
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ movs r3, 0xC5
+ lsls r3, 2
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldr r1, _080F20F0 @ =REG_WININ
+ movs r0, 0x3F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1F
+ strh r0, [r1]
+ subs r2, 0x44
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F20DC: .4byte REG_WIN0H
+_080F20E0: .4byte 0x000077f0
+_080F20E4: .4byte REG_WIN0V
+_080F20E8: .4byte gUnknown_083DFEC4
+_080F20EC: .4byte 0x00006dad
+_080F20F0: .4byte REG_WININ
+ thumb_func_end sub_80F2098
+
+ thumb_func_start sub_80F20F4
+sub_80F20F4: @ 80F20F4
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F2104 @ =0x0000dfff
+ ands r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080F2104: .4byte 0x0000dfff
+ thumb_func_end sub_80F20F4
+
+ thumb_func_start sub_80F2108
+sub_80F2108: @ 80F2108
+ push {lr}
+ ldr r0, _080F2134 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080F2138 @ =0x00000311
+ adds r1, r3, r0
+ ldrb r2, [r1]
+ cmp r2, 0
+ bne _080F2130
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080F213C @ =0x00000312
+ adds r0, r3, r1
+ strh r2, [r0]
+ ldr r1, _080F2140 @ =REG_BLDCNT
+ movs r0, 0x90
+ strh r0, [r1]
+ ldr r0, _080F2144 @ =REG_BLDY
+ strh r2, [r0]
+ bl sub_80F2098
+_080F2130:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2134: .4byte gUnknown_083DFEC4
+_080F2138: .4byte 0x00000311
+_080F213C: .4byte 0x00000312
+_080F2140: .4byte REG_BLDCNT
+_080F2144: .4byte REG_BLDY
+ thumb_func_end sub_80F2108
+
+ thumb_func_start sub_80F2148
+sub_80F2148: @ 80F2148
+ push {lr}
+ ldr r0, _080F2164 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2168 @ =0x00000311
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F216C @ =REG_BLDCNT
+ strh r1, [r0]
+ bl sub_80F20F4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2164: .4byte gUnknown_083DFEC4
+_080F2168: .4byte 0x00000311
+_080F216C: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2148
+
+ thumb_func_start sub_80F2170
+sub_80F2170: @ 80F2170
+ push {r4-r7,lr}
+ ldr r7, _080F21E4 @ =gUnknown_083DFEC4
+ ldr r4, [r7]
+ ldr r1, _080F21E8 @ =0x00000311
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F21DC
+ bl sub_80F20F4
+ movs r3, 0
+ ldr r2, _080F21EC @ =0x00006dad
+ adds r5, r4, r2
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r4, r0
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r6, 0x4
+_080F2198:
+ lsls r1, r3, 2
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r4, r1
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ mov r0, r12
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080F2198
+ ldr r1, [r7]
+ ldr r0, _080F21E8 @ =0x00000311
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r2]
+ ldr r2, _080F21F0 @ =0x00000312
+ adds r1, r2
+ strh r3, [r1]
+ ldr r1, _080F21F4 @ =REG_BLDCNT
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+_080F21DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F21E4: .4byte gUnknown_083DFEC4
+_080F21E8: .4byte 0x00000311
+_080F21EC: .4byte 0x00006dad
+_080F21F0: .4byte 0x00000312
+_080F21F4: .4byte REG_BLDCNT
+ thumb_func_end sub_80F2170
+
+ thumb_func_start sub_80F21F8
+sub_80F21F8: @ 80F21F8
+ ldr r0, _080F220C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2210 @ =0x00000311
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080F2214 @ =REG_BLDCNT
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F220C: .4byte gUnknown_083DFEC4
+_080F2210: .4byte 0x00000311
+_080F2214: .4byte REG_BLDCNT
+ thumb_func_end sub_80F21F8
+
+ thumb_func_start sub_80F2218
+sub_80F2218: @ 80F2218
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r2, 0x32]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bgt _080F2236
+ strh r3, [r2, 0x20]
+ ldr r0, _080F223C @ =sub_80F22B0
+ str r0, [r2, 0x1C]
+_080F2236:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F223C: .4byte sub_80F22B0
+ thumb_func_end sub_80F2218
+
+ thumb_func_start sub_80F2240
+sub_80F2240: @ 80F2240
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080F2288 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F228C @ =0x00006dad
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F2290
+ ldrh r3, [r2, 0x38]
+ movs r4, 0x38
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ beq _080F2270
+ ldrh r0, [r2, 0x36]
+ ldrh r4, [r2, 0x20]
+ adds r1, r0, r4
+ strh r1, [r2, 0x20]
+ subs r0, r3, r0
+ strh r0, [r2, 0x38]
+_080F2270:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+ b _080F22A8
+ .align 2, 0
+_080F2288: .4byte gUnknown_083DFEC4
+_080F228C: .4byte 0x00006dad
+_080F2290:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _080F22A8
+ adds r0, r2, 0
+ bl sub_80F240C
+_080F22A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2240
+
+ thumb_func_start sub_80F22B0
+sub_80F22B0: @ 80F22B0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F22DC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F22E0 @ =0x00006dad
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080F22E4
+ ldrh r3, [r2, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r2, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _080F22F2
+ subs r0, r3, 0x4
+ b _080F22F0
+ .align 2, 0
+_080F22DC: .4byte gUnknown_083DFEC4
+_080F22E0: .4byte 0x00006dad
+_080F22E4:
+ ldrh r1, [r2, 0x24]
+ movs r3, 0x24
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _080F22F2
+ adds r0, r1, 0x4
+_080F22F0:
+ strh r0, [r2, 0x24]
+_080F22F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F22B0
+
+ thumb_func_start sub_80F22F8
+sub_80F22F8: @ 80F22F8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _080F233C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F2340 @ =0x00006dae
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080F2358
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r4, r1, r7
+ movs r5, 0x10
+ negs r5, r5
+ adds r6, r0, 0
+_080F231A:
+ movs r1, 0
+ lsls r2, r3, 4
+_080F231E:
+ lsls r0, r1, 2
+ adds r0, r2
+ adds r0, r4, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F2358
+ movs r7, 0x24
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ beq _080F2344
+ cmp r0, r5
+ beq _080F2344
+ movs r0, 0
+ b _080F235A
+ .align 2, 0
+_080F233C: .4byte gUnknown_083DFEC4
+_080F2340: .4byte 0x00006dae
+_080F2344:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F231E
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r6
+ blt _080F231A
+_080F2358:
+ movs r0, 0x1
+_080F235A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F22F8
+
+ thumb_func_start sub_80F2360
+sub_80F2360: @ 80F2360
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _080F23A0 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F23A4 @ =0x0000030e
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ cmp r4, r1
+ bge _080F23C0
+ ldr r3, _080F23A8 @ =0x00006dad
+ adds r0, r2, r3
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r5, r1, 0
+_080F237E:
+ cmp r4, r6
+ beq _080F23B6
+ movs r1, 0
+ ldr r0, _080F23A0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r3, r4, 4
+ movs r7, 0xC8
+ lsls r7, 2
+ adds r2, r0, r7
+_080F2390:
+ lsls r0, r1, 2
+ adds r0, r3
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23AC
+ movs r0, 0
+ b _080F23C2
+ .align 2, 0
+_080F23A0: .4byte gUnknown_083DFEC4
+_080F23A4: .4byte 0x0000030e
+_080F23A8: .4byte 0x00006dad
+_080F23AC:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080F2390
+_080F23B6:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ blt _080F237E
+_080F23C0:
+ movs r0, 0x1
+_080F23C2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2360
+
+ thumb_func_start sub_80F23C8
+sub_80F23C8: @ 80F23C8
+ push {lr}
+ movs r2, 0
+ ldr r0, _080F23F4 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r3, _080F23F8 @ =0x00006dad
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r3, r0, 4
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r1, r0
+_080F23E2:
+ lsls r0, r2, 2
+ adds r0, r3
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F23FC
+ movs r0, 0
+ b _080F2408
+ .align 2, 0
+_080F23F4: .4byte gUnknown_083DFEC4
+_080F23F8: .4byte 0x00006dad
+_080F23FC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080F23E2
+ movs r0, 0x1
+_080F2408:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F23C8
+
+ thumb_func_start sub_80F240C
+sub_80F240C: @ 80F240C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F2454 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 2
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0xC8
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r1
+ movs r0, 0
+ str r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F2446
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080F2446:
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2454: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F240C
+
+ thumb_func_start sub_80F2458
+sub_80F2458: @ 80F2458
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ beq _080F24A0
+ cmp r4, 0x1
+ bgt _080F246C
+ cmp r4, 0
+ beq _080F2472
+ b _080F2502
+_080F246C:
+ cmp r4, 0x2
+ beq _080F24D0
+ b _080F2502
+_080F2472:
+ ldr r2, _080F2498 @ =gUnknown_083DFEC4
+ ldr r3, [r2]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r5, 0xE2
+ lsls r5, 2
+ adds r0, r3, r5
+ str r0, [r1]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r3, r0
+ movs r0, 0xA0
+ lsls r0, 5
+ strh r0, [r1]
+ ldr r1, _080F249C @ =0x00000386
+ adds r0, r3, r1
+ strh r4, [r0]
+ b _080F24F6
+ .align 2, 0
+_080F2498: .4byte gUnknown_083DFEC4
+_080F249C: .4byte 0x00000386
+_080F24A0:
+ ldr r4, _080F24C4 @ =gUnknown_083DFEC4
+ ldr r1, [r4]
+ movs r3, 0xE0
+ lsls r3, 2
+ adds r2, r1, r3
+ ldr r5, _080F24C8 @ =0x00001788
+ adds r0, r1, r5
+ str r0, [r2]
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 4
+ strh r0, [r2]
+ ldr r5, _080F24CC @ =0x00000386
+ adds r1, r5
+ b _080F24F2
+ .align 2, 0
+_080F24C4: .4byte gUnknown_083DFEC4
+_080F24C8: .4byte 0x00001788
+_080F24CC: .4byte 0x00000386
+_080F24D0:
+ ldr r4, _080F2508 @ =gUnknown_083DFEC4
+ ldr r1, [r4]
+ movs r0, 0xE0
+ lsls r0, 2
+ adds r2, r1, r0
+ ldr r3, _080F250C @ =0x00002388
+ adds r0, r1, r3
+ str r0, [r2]
+ movs r5, 0xE1
+ lsls r5, 2
+ adds r2, r1, r5
+ movs r3, 0
+ movs r0, 0xC0
+ lsls r0, 5
+ strh r0, [r2]
+ ldr r0, _080F2510 @ =0x00000386
+ adds r1, r0
+_080F24F2:
+ strh r3, [r1]
+ adds r2, r4, 0
+_080F24F6:
+ ldr r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 2
+ adds r0, r1
+ bl LoadSpriteSheet
+_080F2502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2508: .4byte gUnknown_083DFEC4
+_080F250C: .4byte 0x00002388
+_080F2510: .4byte 0x00000386
+ thumb_func_end sub_80F2458
+
+ thumb_func_start sub_80F2514
+sub_80F2514: @ 80F2514
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080F2558
+ cmp r0, 0x1
+ bgt _080F252C
+ cmp r0, 0
+ beq _080F2532
+ b _080F2586
+_080F252C:
+ cmp r1, 0x2
+ beq _080F2568
+ b _080F2586
+_080F2532:
+ ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal
+ str r0, [sp]
+ ldr r1, _080F2550 @ =0xffff0000
+ mov r4, sp
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal
+ b _080F257A
+ .align 2, 0
+_080F254C: .4byte gPokenavMenuOptions1_Pal
+_080F2550: .4byte 0xffff0000
+_080F2554: .4byte gPokenavMenuOptions2_Pal
+_080F2558:
+ ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal
+ str r0, [sp]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ b _080F2580
+ .align 2, 0
+_080F2564: .4byte gPokenavConditionMenu_Pal
+_080F2568:
+ ldr r0, _080F2590 @ =gPokenavCondition6_Pal
+ str r0, [sp]
+ mov r4, sp
+ movs r0, 0
+ strh r0, [r4, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ ldr r0, _080F2594 @ =gPokenavCondition7_Pal
+_080F257A:
+ str r0, [sp]
+ movs r0, 0x1
+ strh r0, [r4, 0x4]
+_080F2580:
+ mov r0, sp
+ bl LoadSpritePalette
+_080F2586:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2590: .4byte gPokenavCondition6_Pal
+_080F2594: .4byte gPokenavCondition7_Pal
+ thumb_func_end sub_80F2514
+
+ thumb_func_start sub_80F2598
+sub_80F2598: @ 80F2598
+ push {r4,lr}
+ ldr r0, _080F25F0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F25F4 @ =0x00006d9c
+ adds r4, r0, r1
+ movs r0, 0
+ str r0, [r4]
+ ldr r1, _080F25F8 @ =gSaveBlock1
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8082C0C
+ cmp r0, 0x1
+ bne _080F2618
+ ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight
+ bl LoadSpriteSheet
+ ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight
+ bl LoadSpritePalette
+ ldr r0, _080F2604 @ =gSpriteTemplate_83E4484
+ movs r1, 0xC
+ movs r2, 0x60
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F260C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2608 @ =gSprites
+ adds r0, r1
+ str r0, [r4]
+ b _080F2618
+ .align 2, 0
+_080F25F0: .4byte gUnknown_083DFEC4
+_080F25F4: .4byte 0x00006d9c
+_080F25F8: .4byte gSaveBlock1
+_080F25FC: .4byte gSpriteSheet_PokenavBlueLight
+_080F2600: .4byte gSpritePalette_PokenavBlueLight
+_080F2604: .4byte gSpriteTemplate_83E4484
+_080F2608: .4byte gSprites
+_080F260C:
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+_080F2618:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2598
+
+ thumb_func_start sub_80F2620
+sub_80F2620: @ 80F2620
+ push {r4,lr}
+ ldr r0, _080F264C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2650 @ =0x00006d9c
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2644
+ bl DestroySprite
+ movs r0, 0x19
+ bl FreeSpriteTilesByTag
+ movs r0, 0x11
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2644:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F264C: .4byte gUnknown_083DFEC4
+_080F2650: .4byte 0x00006d9c
+ thumb_func_end sub_80F2620
+
+ thumb_func_start sub_80F2654
+sub_80F2654: @ 80F2654
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080F2682
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080F2682:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2654
+
+ thumb_func_start sub_80F2688
+sub_80F2688: @ 80F2688
+ push {lr}
+ ldr r0, _080F26B0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F26B4 @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F26B8 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F26AA
+_080F26A0:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F26A0
+_080F26AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F26B0: .4byte gUnknown_083DFEC4
+_080F26B4: .4byte 0x00000306
+_080F26B8: .4byte 0x00006dac
+ thumb_func_end sub_80F2688
+
+ thumb_func_start sub_80F26BC
+sub_80F26BC: @ 80F26BC
+ push {lr}
+ ldr r0, _080F26D8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F26DC @ =0x00000306
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bls _080F26CE
+ b _080F27BC
+_080F26CE:
+ lsls r0, 2
+ ldr r1, _080F26E0 @ =_080F26E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F26D8: .4byte gUnknown_083DFEC4
+_080F26DC: .4byte 0x00000306
+_080F26E0: .4byte _080F26E4
+ .align 2, 0
+_080F26E4:
+ .4byte _080F2704
+ .4byte _080F271C
+ .4byte _080F2734
+ .4byte _080F274C
+ .4byte _080F2764
+ .4byte _080F277C
+ .4byte _080F2794
+ .4byte _080F27B0
+_080F2704:
+ ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx
+ ldr r1, _080F2714 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2718 @ =0x00003b98
+ b _080F279C
+ .align 2, 0
+_080F2710: .4byte gPokenavMainMenu_Gfx
+_080F2714: .4byte gUnknown_083DFEC4
+_080F2718: .4byte 0x00003b98
+_080F271C:
+ ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx
+ ldr r1, _080F272C @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2730 @ =0x00004198
+ b _080F279C
+ .align 2, 0
+_080F2728: .4byte gPokenavConditionMenuHeader_Gfx
+_080F272C: .4byte gUnknown_083DFEC4
+_080F2730: .4byte 0x00004198
+_080F2734:
+ ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx
+ ldr r1, _080F2744 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2748 @ =0x00004d98
+ b _080F279C
+ .align 2, 0
+_080F2740: .4byte gPokenavRibbonsHeader_Gfx
+_080F2744: .4byte gUnknown_083DFEC4
+_080F2748: .4byte 0x00004d98
+_080F274C:
+ ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx
+ ldr r1, _080F275C @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2760 @ =0x00005398
+ b _080F279C
+ .align 2, 0
+_080F2758: .4byte gPokenavHoennMapHeader_Gfx
+_080F275C: .4byte gUnknown_083DFEC4
+_080F2760: .4byte 0x00005398
+_080F2764:
+ ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx
+ ldr r1, _080F2774 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2778 @ =0x00005f98
+ b _080F279C
+ .align 2, 0
+_080F2770: .4byte gPokenavConditionMenuOptions_Gfx
+_080F2774: .4byte gUnknown_083DFEC4
+_080F2778: .4byte 0x00005f98
+_080F277C:
+ ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx
+ ldr r1, _080F278C @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2790 @ =0x00006798
+ b _080F279C
+ .align 2, 0
+_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx
+_080F278C: .4byte gUnknown_083DFEC4
+_080F2790: .4byte 0x00006798
+_080F2794:
+ ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx
+ ldr r1, _080F27A8 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F27AC @ =0x00004798
+_080F279C:
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F27C0
+ .align 2, 0
+_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx
+_080F27A8: .4byte gUnknown_083DFEC4
+_080F27AC: .4byte 0x00004798
+_080F27B0:
+ ldr r0, _080F27B8 @ =gUnknown_083E449C
+ bl LoadSpritePalettes
+ b _080F27C0
+ .align 2, 0
+_080F27B8: .4byte gUnknown_083E449C
+_080F27BC:
+ movs r0, 0
+ b _080F27D0
+_080F27C0:
+ ldr r0, _080F27D4 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F27D8 @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F27D0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F27D4: .4byte gUnknown_083DFEC4
+_080F27D8: .4byte 0x00000306
+ thumb_func_end sub_80F26BC
+
+ thumb_func_start sub_80F27DC
+sub_80F27DC: @ 80F27DC
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bls _080F27EA
+ b _080F29A0
+_080F27EA:
+ lsls r0, 2
+ ldr r1, _080F27F4 @ =_080F27F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F27F4: .4byte _080F27F8
+ .align 2, 0
+_080F27F8:
+ .4byte _080F2828
+ .4byte _080F2858
+ .4byte _080F28B8
+ .4byte _080F2888
+ .4byte _080F28E8
+ .4byte _080F2918
+ .4byte _080F2928
+ .4byte _080F2978
+ .4byte _080F2938
+ .4byte _080F2948
+ .4byte _080F2968
+ .4byte _080F2958
+_080F2828:
+ ldr r0, _080F2848 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F284C @ =0x00003b98
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2850 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2854 @ =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2848: .4byte gUnknown_083DFEC4
+_080F284C: .4byte 0x00003b98
+_080F2850: .4byte 0xffff0000
+_080F2854: .4byte 0x0000ffff
+_080F2858:
+ ldr r0, _080F2878 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F287C @ =0x00004198
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2880 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F2884 @ =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2878: .4byte gUnknown_083DFEC4
+_080F287C: .4byte 0x00004198
+_080F2880: .4byte 0xffff0000
+_080F2884: .4byte 0x0000ffff
+_080F2888:
+ ldr r0, _080F28A8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F28AC @ =0x00004798
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28B0 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28B4 @ =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28A8: .4byte gUnknown_083DFEC4
+_080F28AC: .4byte 0x00004798
+_080F28B0: .4byte 0xffff0000
+_080F28B4: .4byte 0x0000ffff
+_080F28B8:
+ ldr r0, _080F28D8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F28DC @ =0x00004d98
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F28E0 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _080F28E4 @ =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F28D8: .4byte gUnknown_083DFEC4
+_080F28DC: .4byte 0x00004d98
+_080F28E0: .4byte 0xffff0000
+_080F28E4: .4byte 0x0000ffff
+_080F28E8:
+ ldr r0, _080F2908 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F290C @ =0x00005398
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F2910 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, _080F2914 @ =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ b _080F2996
+ .align 2, 0
+_080F2908: .4byte gUnknown_083DFEC4
+_080F290C: .4byte 0x00005398
+_080F2910: .4byte 0xffff0000
+_080F2914: .4byte 0x0000ffff
+_080F2918:
+ ldr r0, _080F2920 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2924 @ =0x00005f98
+ b _080F297E
+ .align 2, 0
+_080F2920: .4byte gUnknown_083DFEC4
+_080F2924: .4byte 0x00005f98
+_080F2928:
+ ldr r0, _080F2930 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2934 @ =0x00006198
+ b _080F297E
+ .align 2, 0
+_080F2930: .4byte gUnknown_083DFEC4
+_080F2934: .4byte 0x00006198
+_080F2938:
+ ldr r0, _080F2940 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2944 @ =0x00006398
+ b _080F297E
+ .align 2, 0
+_080F2940: .4byte gUnknown_083DFEC4
+_080F2944: .4byte 0x00006398
+_080F2948:
+ ldr r0, _080F2950 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2954 @ =0x00006598
+ b _080F297E
+ .align 2, 0
+_080F2950: .4byte gUnknown_083DFEC4
+_080F2954: .4byte 0x00006598
+_080F2958:
+ ldr r0, _080F2960 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2964 @ =0x00006998
+ b _080F297E
+ .align 2, 0
+_080F2960: .4byte gUnknown_083DFEC4
+_080F2964: .4byte 0x00006998
+_080F2968:
+ ldr r0, _080F2970 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2974 @ =0x00006798
+ b _080F297E
+ .align 2, 0
+_080F2970: .4byte gUnknown_083DFEC4
+_080F2974: .4byte 0x00006798
+_080F2978:
+ ldr r0, _080F29A8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F29AC @ =0x00006b98
+_080F297E:
+ adds r0, r1
+ str r0, [sp]
+ ldr r1, _080F29B0 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ ldr r1, _080F29B4 @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+_080F2996:
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+_080F29A0:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F29A8: .4byte gUnknown_083DFEC4
+_080F29AC: .4byte 0x00006b98
+_080F29B0: .4byte 0xffff0000
+_080F29B4: .4byte 0x0000ffff
+ thumb_func_end sub_80F27DC
+
+ thumb_func_start sub_80F29B8
+sub_80F29B8: @ 80F29B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ cmp r7, 0xB
+ bls _080F29D2
+ b _080F2BA6
+_080F29D2:
+ lsls r0, r7, 2
+ ldr r1, _080F29DC @ =_080F29E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F29DC: .4byte _080F29E0
+ .align 2, 0
+_080F29E0:
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A10
+ .4byte _080F2A58
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A94
+ .4byte _080F2A94
+ .4byte _080F2A98
+ .4byte _080F2A98
+_080F2A10:
+ ldr r3, _080F2A44 @ =0x0000ffa0
+ ldr r0, _080F2A48 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0x8
+ str r4, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A4C @ =0x00003b88
+ adds r4, r2
+ mov r9, r4
+ ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8
+ mov r8, r2
+ cmp r7, 0x3
+ beq _080F2AC8
+ ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0
+ mov r8, r4
+ b _080F2AC8
+ .align 2, 0
+_080F2A44: .4byte 0x0000ffa0
+_080F2A48: .4byte gUnknown_083DFEC4
+_080F2A4C: .4byte 0x00003b88
+_080F2A50: .4byte gSpriteTemplate_83E44F8
+_080F2A54: .4byte gSpriteTemplate_83E44E0
+_080F2A58:
+ movs r3, 0x88
+ lsls r3, 1
+ ldr r0, _080F2A84 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ movs r0, 0x31
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080F2A88 @ =0x0000fff8
+ str r4, [sp]
+ movs r1, 0x98
+ str r1, [sp, 0x4]
+ movs r1, 0x40
+ ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0
+ mov r8, r4
+ ldr r4, _080F2A90 @ =0x00003b88
+ b _080F2AC4
+ .align 2, 0
+_080F2A84: .4byte gUnknown_083DFEC4
+_080F2A88: .4byte 0x0000fff8
+_080F2A8C: .4byte gSpriteTemplate_83E44E0
+_080F2A90: .4byte 0x00003b88
+_080F2A94:
+ ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530
+ mov r8, r0
+_080F2A98:
+ mov r1, r8
+ cmp r1, 0
+ bne _080F2AA2
+ ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548
+ mov r8, r2
+_080F2AA2:
+ ldr r3, _080F2B48 @ =0x0000ffa0
+ ldr r0, _080F2B4C @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ movs r4, 0xC3
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x44
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x8
+ str r1, [sp]
+ movs r4, 0x10
+ str r4, [sp, 0x4]
+ movs r1, 0x20
+ ldr r4, _080F2B50 @ =0x00003b90
+_080F2AC4:
+ adds r4, r2
+ mov r9, r4
+_080F2AC8:
+ movs r6, 0
+ lsls r1, 16
+ str r1, [sp, 0x10]
+ lsls r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ str r0, [sp, 0xC]
+ ldr r0, _080F2B54 @ =gSprites
+ mov r10, r0
+_080F2ADA:
+ ldr r1, [sp, 0x10]
+ asrs r0, r1, 16
+ adds r5, r6, 0
+ muls r5, r0
+ ldr r2, [sp, 0x8]
+ asrs r1, r2, 16
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, r8
+ ldr r3, [sp, 0xC]
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _080F2B9C
+ lsls r0, r4, 4
+ adds r1, r0, r4
+ lsls r1, 2
+ mov r2, r10
+ adds r3, r1, r2
+ mov r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ strh r1, [r3, 0x30]
+ strh r6, [r3, 0x32]
+ strh r7, [r3, 0x34]
+ adds r5, r0, 0
+ cmp r7, 0x4
+ bne _080F2B5C
+ cmp r6, 0x1
+ bne _080F2B5C
+ ldr r0, _080F2B4C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2B58 @ =0x00006e90
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2B36
+ movs r1, 0x1
+_080F2B36:
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F2B6A
+ .align 2, 0
+_080F2B40: .4byte gSpriteTemplate_83E4530
+_080F2B44: .4byte gSpriteTemplate_83E4548
+_080F2B48: .4byte 0x0000ffa0
+_080F2B4C: .4byte gUnknown_083DFEC4
+_080F2B50: .4byte 0x00003b90
+_080F2B54: .4byte gSprites
+_080F2B58: .4byte 0x00006e90
+_080F2B5C:
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r10
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+_080F2B6A:
+ ldr r2, _080F2BB8 @ =gSprites
+ mov r12, r2
+ cmp r7, 0x3
+ bhi _080F2B90
+ cmp r6, 0x1
+ bne _080F2B90
+ adds r2, r5, r4
+ lsls r2, 2
+ add r2, r10
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+_080F2B90:
+ lsls r1, r6, 2
+ add r1, r9
+ adds r0, r5, r4
+ lsls r0, 2
+ add r0, r12
+ str r0, [r1]
+_080F2B9C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _080F2ADA
+_080F2BA6:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2BB8: .4byte gSprites
+ thumb_func_end sub_80F29B8
+
+ thumb_func_start sub_80F2BBC
+sub_80F2BBC: @ 80F2BBC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x2E]
+ adds r3, r0, r1
+ strh r3, [r2, 0x20]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r4, r1
+ bgt _080F2BE0
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bge _080F2BE8
+ cmp r4, r1
+ blt _080F2C08
+_080F2BE0:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bgt _080F2C08
+_080F2BE8:
+ ldrh r0, [r2, 0x30]
+ strh r0, [r2, 0x20]
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4
+ bne _080F2C04
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F2C04
+ ldr r0, _080F2C00 @ =sub_80F2C58
+ b _080F2C06
+ .align 2, 0
+_080F2C00: .4byte sub_80F2C58
+_080F2C04:
+ ldr r0, _080F2C10 @ =SpriteCallbackDummy
+_080F2C06:
+ str r0, [r2, 0x1C]
+_080F2C08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C10: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F2BBC
+
+ thumb_func_start sub_80F2C14
+sub_80F2C14: @ 80F2C14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r4, 0x2E]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ adds r0, 0x20
+ lsls r0, 16
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bls _080F2C50
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080F2C4A
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _080F2C44
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ b _080F2C4A
+_080F2C44:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+_080F2C4A:
+ adds r0, r4, 0
+ bl DestroySprite
+_080F2C50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2C14
+
+ thumb_func_start sub_80F2C58
+sub_80F2C58: @ 80F2C58
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F2C78 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2C7C @ =0x00006e90
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _080F2C6E
+ movs r1, 0x1
+_080F2C6E:
+ adds r0, r2, 0
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2C78: .4byte gUnknown_083DFEC4
+_080F2C7C: .4byte 0x00006e90
+ thumb_func_end sub_80F2C58
+
+ thumb_func_start sub_80F2C80
+sub_80F2C80: @ 80F2C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F2CB0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2CB4 @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F2CB8 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F2CA8
+_080F2C9C:
+ adds r0, r4, 0
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F2C9C
+_080F2CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2CB0: .4byte gUnknown_083DFEC4
+_080F2CB4: .4byte 0x00000306
+_080F2CB8: .4byte 0x00006dac
+ thumb_func_end sub_80F2C80
+
+ thumb_func_start sub_80F2CBC
+sub_80F2CBC: @ 80F2CBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080F2CD8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F2CDC @ =0x00000306
+ adds r4, r0, r2
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080F2CE0
+ cmp r0, 0x1
+ beq _080F2CF0
+ b _080F2CFC
+ .align 2, 0
+_080F2CD8: .4byte gUnknown_083DFEC4
+_080F2CDC: .4byte 0x00000306
+_080F2CE0:
+ adds r0, r1, 0
+ bl sub_80F27DC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080F2CFE
+_080F2CF0:
+ adds r0, r1, 0
+ bl sub_80F29B8
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F2CFC:
+ movs r0, 0
+_080F2CFE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F2CBC
+
+ thumb_func_start sub_80F2D04
+sub_80F2D04: @ 80F2D04
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2D3C
+ movs r1, 0
+ ldr r0, _080F2D30 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080F2D34 @ =0x00003b88
+ adds r2, r0, r3
+ ldr r3, _080F2D38 @ =sub_80F2C14
+_080F2D1A:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D1A
+ b _080F2D5A
+ .align 2, 0
+_080F2D30: .4byte gUnknown_083DFEC4
+_080F2D34: .4byte 0x00003b88
+_080F2D38: .4byte sub_80F2C14
+_080F2D3C:
+ movs r1, 0
+ ldr r0, _080F2D60 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080F2D64 @ =0x00003b90
+ adds r2, r0, r3
+ ldr r3, _080F2D68 @ =sub_80F2C14
+_080F2D48:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ str r3, [r0, 0x1C]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F2D48
+_080F2D5A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2D60: .4byte gUnknown_083DFEC4
+_080F2D64: .4byte 0x00003b90
+_080F2D68: .4byte sub_80F2C14
+ thumb_func_end sub_80F2D04
+
+ thumb_func_start sub_80F2D6C
+sub_80F2D6C: @ 80F2D6C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F2DA4
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2D9C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2DA0 @ =0x00003b88
+ adds r5, r0, r1
+_080F2D86:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2D86
+ b _080F2DC8
+ .align 2, 0
+_080F2D9C: .4byte gUnknown_083DFEC4
+_080F2DA0: .4byte 0x00003b88
+_080F2DA4:
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r4, 0
+ ldr r0, _080F2DD0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2DD4 @ =0x00003b90
+ adds r5, r0, r1
+_080F2DB4:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F2DB4
+_080F2DC8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2DD0: .4byte gUnknown_083DFEC4
+_080F2DD4: .4byte 0x00003b90
+ thumb_func_end sub_80F2D6C
+
+ thumb_func_start sub_80F2DD8
+sub_80F2DD8: @ 80F2DD8
+ push {lr}
+ movs r0, 0x7
+ movs r1, 0x7
+ bl sub_80FBB3C
+ movs r0, 0x8
+ movs r1, 0x8
+ bl sub_80FBCF0
+ bl sub_80FBF94
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DD8
+
+ thumb_func_start sub_80F2DF4
+sub_80F2DF4: @ 80F2DF4
+ push {lr}
+ bl sub_80FAB10
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F2DF4
+
+ thumb_func_start sub_80F2E00
+sub_80F2E00: @ 80F2E00
+ ldr r1, _080F2E10 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F2E14 @ =0x00008766
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x26
+ strh r1, [r0, 0x20]
+ bx lr
+ .align 2, 0
+_080F2E10: .4byte gUnknown_083DFEC4
+_080F2E14: .4byte 0x00008766
+ thumb_func_end sub_80F2E00
+
+ thumb_func_start sub_80F2E18
+sub_80F2E18: @ 80F2E18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080F2EA8 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F2EAC @ =0x00008768
+ adds r7, r4, r0
+ ldr r1, [r7]
+ mov r8, r1
+ cmp r1, 0
+ bne _080F2EFC
+ ldr r0, _080F2EB0 @ =gUnknown_083E4568
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x20]
+ str r1, [sp, 0x24]
+ mov r1, sp
+ ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, _080F2EB8 @ =gUnknown_083E4588
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ lsls r0, r3, 13
+ ldr r1, _080F2EBC @ =0x0000d1e4
+ adds r0, r1
+ adds r0, r4, r0
+ str r0, [sp, 0x20]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ str r0, [sp, 0x18]
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F2EC0 @ =0x0000d1dc
+ adds r5, r4, r2
+ strh r0, [r5]
+ add r0, sp, 0x20
+ bl LoadSpriteSheet
+ ldr r1, _080F2EC4 @ =0x0000d1de
+ adds r6, r4, r1
+ strh r0, [r6]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F2EC8
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ mov r2, r8
+ str r2, [r7]
+ b _080F2F26
+ .align 2, 0
+_080F2EA8: .4byte gUnknown_083DFEC4
+_080F2EAC: .4byte 0x00008768
+_080F2EB0: .4byte gUnknown_083E4568
+_080F2EB4: .4byte gSpriteTemplate_83E4570
+_080F2EB8: .4byte gUnknown_083E4588
+_080F2EBC: .4byte 0x0000d1e4
+_080F2EC0: .4byte 0x0000d1dc
+_080F2EC4: .4byte 0x0000d1de
+_080F2EC8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F2EF0 @ =gSprites
+ adds r0, r1
+ str r0, [r7]
+ ldr r0, _080F2EF4 @ =0x0000d1e0
+ adds r1, r4, r0
+ ldrh r0, [r6]
+ lsls r0, 5
+ ldr r2, _080F2EF8 @ =0x06010000
+ adds r0, r2
+ str r0, [r1]
+ ldrh r0, [r5]
+ lsls r0, 4
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6
+ strh r0, [r5]
+ b _080F2F26
+ .align 2, 0
+_080F2EF0: .4byte gSprites
+_080F2EF4: .4byte 0x0000d1e0
+_080F2EF8: .4byte 0x06010000
+_080F2EFC:
+ lsls r0, r3, 13
+ ldr r1, _080F2F34 @ =0x0000d1e4
+ adds r0, r1
+ adds r0, r4, r0
+ ldr r2, _080F2F38 @ =0x0000d1e0
+ adds r1, r4, r2
+ ldr r2, [r1]
+ ldr r1, _080F2F3C @ =0x040000d4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _080F2F40 @ =0x80000400
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ lsls r0, r3, 7
+ adds r0, r4, r0
+ ldr r5, _080F2F44 @ =0x0000d1dc
+ adds r1, r4, r5
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_080F2F26:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F34: .4byte 0x0000d1e4
+_080F2F38: .4byte 0x0000d1e0
+_080F2F3C: .4byte 0x040000d4
+_080F2F40: .4byte 0x80000400
+_080F2F44: .4byte 0x0000d1dc
+ thumb_func_end sub_80F2E18
+
+ thumb_func_start sub_80F2F48
+sub_80F2F48: @ 80F2F48
+ push {r4,lr}
+ ldr r0, _080F2F74 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2F78 @ =0x00008768
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2F6C
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F2F6C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2F74: .4byte gUnknown_083DFEC4
+_080F2F78: .4byte 0x00008768
+ thumb_func_end sub_80F2F48
+
+ thumb_func_start sub_80F2F7C
+sub_80F2F7C: @ 80F2F7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F2E18
+ ldr r0, _080F2FA0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F2FA4 @ =0x0000ced0
+ adds r2, r0, r1
+ ldr r1, _080F2FA8 @ =0x00008768
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ ldr r0, _080F2FAC @ =sub_80F2FEC
+ str r0, [r1, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FA0: .4byte gUnknown_083DFEC4
+_080F2FA4: .4byte 0x0000ced0
+_080F2FA8: .4byte 0x00008768
+_080F2FAC: .4byte sub_80F2FEC
+ thumb_func_end sub_80F2F7C
+
+ thumb_func_start sub_80F2FB0
+sub_80F2FB0: @ 80F2FB0
+ push {r4,r5,lr}
+ ldr r0, _080F2FE0 @ =gUnknown_083DFEC4
+ ldr r5, [r0]
+ ldr r0, _080F2FE4 @ =0x0000ced0
+ adds r4, r5, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F2FDA
+ bl DestroySprite
+ movs r0, 0x6
+ bl FreeSpriteTilesByTag
+ movs r0, 0x6
+ bl FreeSpritePaletteByTag
+ movs r1, 0
+ str r1, [r4]
+ ldr r2, _080F2FE8 @ =0x00008768
+ adds r0, r5, r2
+ str r1, [r0]
+_080F2FDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F2FE0: .4byte gUnknown_083DFEC4
+_080F2FE4: .4byte 0x0000ced0
+_080F2FE8: .4byte 0x00008768
+ thumb_func_end sub_80F2FB0
+
+ thumb_func_start sub_80F2FEC
+sub_80F2FEC: @ 80F2FEC
+ ldr r1, _080F3000 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F3004 @ =0x0000d15a
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x28
+ strh r1, [r0, 0x20]
+ movs r1, 0x68
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F3000: .4byte gUnknown_083DFEC4
+_080F3004: .4byte 0x0000d15a
+ thumb_func_end sub_80F2FEC
+
+ thumb_func_start sub_80F3008
+sub_80F3008: @ 80F3008
+ push {r4,r5,lr}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r2, r0, 24
+ mov r1, sp
+ ldr r0, _080F3060 @ =gUnknown_083E4590
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, _080F3064 @ =gUnknown_083E45A8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ cmp r2, 0x2
+ bgt _080F3032
+ cmp r2, 0x1
+ blt _080F3032
+ ldr r0, _080F3068 @ =gUnknown_08E9F988
+ str r0, [sp, 0x18]
+_080F3032:
+ mov r0, sp
+ bl LoadSpriteSheets
+ add r0, sp, 0x18
+ bl LoadSpritePalette
+ ldr r0, _080F306C @ =gSpriteTemplate_83E45B8
+ movs r1, 0x5F
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3078
+ ldr r0, _080F3070 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3074 @ =0x000087cc
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _080F3120
+ .align 2, 0
+_080F3060: .4byte gUnknown_083E4590
+_080F3064: .4byte gUnknown_083E45A8
+_080F3068: .4byte gUnknown_08E9F988
+_080F306C: .4byte gSpriteTemplate_83E45B8
+_080F3070: .4byte gUnknown_083DFEC4
+_080F3074: .4byte 0x000087cc
+_080F3078:
+ ldr r0, _080F30F4 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r3, _080F30F8 @ =0x000087cc
+ adds r2, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ movs r4, 0
+ movs r5, 0
+_080F3090:
+ lsls r2, r4, 7
+ adds r2, 0x8
+ lsls r2, 16
+ asrs r2, 16
+ ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0
+ movs r1, 0xA8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3108
+ ldr r0, _080F30F4 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ ldr r3, _080F3104 @ =0x000087d0
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F30FC @ =gSprites
+ adds r3, r0, r1
+ str r3, [r2]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r3, 0x2E]
+ strh r5, [r3, 0x30]
+ movs r0, 0x1
+ cmp r4, 0
+ bne _080F30DE
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r1, 0
+_080F30DE:
+ strh r0, [r3, 0x32]
+ strh r4, [r3, 0x34]
+ movs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r0, r3, 0
+ bl StartSpriteAnim
+ b _080F3116
+ .align 2, 0
+_080F30F4: .4byte gUnknown_083DFEC4
+_080F30F8: .4byte 0x000087cc
+_080F30FC: .4byte gSprites
+_080F3100: .4byte gSpriteTemplate_83E45F0
+_080F3104: .4byte 0x000087d0
+_080F3108:
+ ldr r0, _080F3128 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F312C @ =0x000087d0
+ adds r0, r2
+ adds r0, r1
+ str r5, [r0]
+_080F3116:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080F3090
+_080F3120:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3128: .4byte gUnknown_083DFEC4
+_080F312C: .4byte 0x000087d0
+ thumb_func_end sub_80F3008
+
+ thumb_func_start sub_80F3130
+sub_80F3130: @ 80F3130
+ push {r4-r6,lr}
+ ldr r0, _080F3184 @ =gUnknown_083DFEC4
+ ldr r6, [r0]
+ ldr r0, _080F3188 @ =0x000087cc
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3154
+ bl DestroySprite
+ movs r0, 0x9
+ bl FreeSpriteTilesByTag
+ movs r0, 0x9
+ bl FreeSpritePaletteByTag
+ movs r0, 0
+ str r0, [r4]
+_080F3154:
+ movs r5, 0
+ ldr r0, _080F318C @ =0x000087d0
+ adds r6, r0
+_080F315A:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F316C
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F316C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080F315A
+ movs r0, 0xA
+ bl FreeSpriteTilesByTag
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3184: .4byte gUnknown_083DFEC4
+_080F3188: .4byte 0x000087cc
+_080F318C: .4byte 0x000087d0
+ thumb_func_end sub_80F3130
+
+ thumb_func_start sub_80F3190
+sub_80F3190: @ 80F3190
+ ldr r1, _080F31A4 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r2, _080F31A8 @ =0x0000876c
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 4
+ adds r1, 0x10
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_080F31A4: .4byte gUnknown_083DFEC4
+_080F31A8: .4byte 0x0000876c
+ thumb_func_end sub_80F3190
+
+ thumb_func_start sub_80F31AC
+sub_80F31AC: @ 80F31AC
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F31E8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F31EC @ =0x000087c9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F325C
+ movs r4, 0x36
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _080F3226
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r0, 0
+ bne _080F31F4
+ movs r2, 0
+ ldr r4, _080F31F0 @ =0x00008770
+ adds r0, r1, r4
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F31DE
+ movs r2, 0x1
+_080F31DE:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, 2
+ b _080F3214
+ .align 2, 0
+_080F31E8: .4byte gUnknown_083DFEC4
+_080F31EC: .4byte 0x000087c9
+_080F31F0: .4byte 0x00008770
+_080F31F4:
+ movs r4, 0
+ ldr r2, _080F3250 @ =0x00008772
+ adds r0, r1, r2
+ ldr r5, _080F3254 @ =0x00008774
+ adds r1, r5
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r2, r0
+ bne _080F320C
+ movs r4, 0x1
+_080F320C:
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r2, r4, 2
+_080F3214:
+ ldrb r1, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ strh r0, [r3, 0x36]
+_080F3226:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080F325C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080F3258
+ ldrh r0, [r3, 0x32]
+ ldrh r2, [r3, 0x26]
+ adds r0, r2
+ strh r0, [r3, 0x26]
+ b _080F325C
+ .align 2, 0
+_080F3250: .4byte 0x00008772
+_080F3254: .4byte 0x00008774
+_080F3258:
+ strh r1, [r3, 0x30]
+ strh r1, [r3, 0x26]
+_080F325C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F31AC
+
+ thumb_func_start sub_80F3264
+sub_80F3264: @ 80F3264
+ push {lr}
+ movs r1, 0
+ ldr r0, _080F328C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080F3290 @ =0x000087d0
+ adds r2, r0, r3
+ movs r3, 0x1
+_080F3272:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F327E
+ strh r3, [r0, 0x36]
+_080F327E:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bls _080F3272
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F328C: .4byte gUnknown_083DFEC4
+_080F3290: .4byte 0x000087d0
+ thumb_func_end sub_80F3264
+
+ thumb_func_start sub_80F3294
+sub_80F3294: @ 80F3294
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F32F4 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F32F8 @ =0x000087cc
+ adds r0, r4, r1
+ ldr r2, [r0]
+ adds r2, 0x3E
+ movs r0, 0x1
+ adds r1, r6, 0
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080F32FC @ =0x000087c9
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F331A
+ cmp r6, 0x1
+ bne _080F3308
+ ldr r1, _080F3300 @ =0x000087d0
+ adds r0, r4, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r2, _080F3304 @ =0x000087d4
+ adds r0, r4, r2
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1]
+ b _080F331A
+ .align 2, 0
+_080F32F4: .4byte gUnknown_083DFEC4
+_080F32F8: .4byte 0x000087cc
+_080F32FC: .4byte 0x000087c9
+_080F3300: .4byte 0x000087d0
+_080F3304: .4byte 0x000087d4
+_080F3308:
+ ldr r1, _080F3320 @ =0x000087d0
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ strh r1, [r0, 0x36]
+ ldr r2, _080F3324 @ =0x000087d4
+ adds r0, r4, r2
+ ldr r0, [r0]
+ strh r1, [r0, 0x36]
+_080F331A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3320: .4byte 0x000087d0
+_080F3324: .4byte 0x000087d4
+ thumb_func_end sub_80F3294
+
+ thumb_func_start sub_80F3328
+sub_80F3328: @ 80F3328
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F334C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3350 @ =0x000087dc
+ adds r0, r1
+ movs r3, 0x2E
+ ldrsh r1, [r2, r3]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bne _080F3354
+ adds r0, r2, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _080F335C
+ .align 2, 0
+_080F334C: .4byte gUnknown_083DFEC4
+_080F3350: .4byte 0x000087dc
+_080F3354:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_080F335C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3328
+
+ thumb_func_start sub_80F3360
+sub_80F3360: @ 80F3360
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080F3384 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F3388 @ =0x000087dc
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _080F338C @ =0x000087da
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _080F3390
+ movs r0, 0x4
+ b _080F3392
+ .align 2, 0
+_080F3384: .4byte gUnknown_083DFEC4
+_080F3388: .4byte 0x000087dc
+_080F338C: .4byte 0x000087da
+_080F3390:
+ movs r0, 0x5
+_080F3392:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3360
+
+ thumb_func_start sub_80F33A8
+sub_80F33A8: @ 80F33A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x50
+ mov r1, sp
+ ldr r0, _080F3440 @ =gUnknown_083E4628
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ add r4, sp, 0x20
+ adds r1, r4, 0
+ ldr r0, _080F3444 @ =gUnknown_083E4648
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ add r5, sp, 0x38
+ adds r1, r5, 0
+ ldr r0, _080F3448 @ =gSpriteTemplate_83E4660
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ movs r6, 0
+ ldr r2, _080F344C @ =gUnknown_083DFEC4
+ ldr r1, [r2]
+ ldr r3, _080F3450 @ =0x000087da
+ adds r0, r1, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ subs r0, 0x1
+ adds r7, r5, 0
+ cmp r6, r0
+ bge _080F347A
+ adds r5, r2, 0
+ adds r0, r3, 0
+ adds r0, r1
+ mov r8, r0
+_080F3406:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ lsls r2, 18
+ movs r1, 0x80
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE2
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F345C
+ ldr r0, [r5]
+ ldr r2, _080F3454 @ =0x000087e4
+ adds r0, r2
+ adds r0, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r2, _080F3458 @ =gSprites
+ adds r1, r2
+ str r1, [r0]
+ strh r6, [r1, 0x2E]
+ b _080F3468
+ .align 2, 0
+_080F3440: .4byte gUnknown_083E4628
+_080F3444: .4byte gUnknown_083E4648
+_080F3448: .4byte gSpriteTemplate_83E4660
+_080F344C: .4byte gUnknown_083DFEC4
+_080F3450: .4byte 0x000087da
+_080F3454: .4byte 0x000087e4
+_080F3458: .4byte gSprites
+_080F345C:
+ ldr r0, [r5]
+ ldr r3, _080F34C8 @ =0x000087e4
+ adds r0, r3
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F3468:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r4, r8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080F3406
+_080F347A:
+ movs r0, 0x4
+ strh r0, [r7]
+ ldr r0, _080F34CC @ =SpriteCallbackDummy
+ str r0, [r7, 0x14]
+ cmp r6, 0x5
+ bhi _080F34EE
+ ldr r5, _080F34D0 @ =gUnknown_083DFEC4
+_080F3488:
+ lsls r4, r6, 2
+ adds r2, r4, r6
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xE6
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F34D8
+ ldr r2, [r5]
+ ldr r0, _080F34C8 @ =0x000087e4
+ adds r2, r0
+ adds r2, r4
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F34D4 @ =gSprites
+ adds r1, r0
+ str r1, [r2]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _080F34E4
+ .align 2, 0
+_080F34C8: .4byte 0x000087e4
+_080F34CC: .4byte SpriteCallbackDummy
+_080F34D0: .4byte gUnknown_083DFEC4
+_080F34D4: .4byte gSprites
+_080F34D8:
+ ldr r0, [r5]
+ ldr r1, _080F3548 @ =0x000087e4
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0
+ str r1, [r0]
+_080F34E4:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F3488
+_080F34EE:
+ movs r0, 0x5
+ strh r0, [r7]
+ ldr r0, _080F354C @ =sub_80F3360
+ str r0, [r7, 0x14]
+ lsls r5, r6, 2
+ adds r2, r5, r6
+ lsls r2, 18
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r1, 0xDE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _080F3558
+ ldr r0, _080F3550 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r6, _080F3548 @ =0x000087e4
+ adds r4, r6
+ adds r4, r5
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ ldr r0, _080F3554 @ =gSprites
+ adds r1, r0
+ str r1, [r4]
+ ldrb r3, [r1, 0x1]
+ movs r2, 0x3F
+ adds r0, r2, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ ands r2, r0
+ movs r0, 0x80
+ orrs r2, r0
+ strb r2, [r1, 0x3]
+ b _080F3566
+ .align 2, 0
+_080F3548: .4byte 0x000087e4
+_080F354C: .4byte sub_80F3360
+_080F3550: .4byte gUnknown_083DFEC4
+_080F3554: .4byte gSprites
+_080F3558:
+ ldr r0, _080F3574 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3578 @ =0x000087e4
+ adds r0, r1
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_080F3566:
+ add sp, 0x50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3574: .4byte gUnknown_083DFEC4
+_080F3578: .4byte 0x000087e4
+ thumb_func_end sub_80F33A8
+
+ thumb_func_start sub_80F357C
+sub_80F357C: @ 80F357C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F35AC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F35B0 @ =0x000087e4
+ adds r6, r0, r1
+_080F3588:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F359A
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F359A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080F3588
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35AC: .4byte gUnknown_083DFEC4
+_080F35B0: .4byte 0x000087e4
+ thumb_func_end sub_80F357C
+
+ thumb_func_start sub_80F35B4
+sub_80F35B4: @ 80F35B4
+ push {r4,lr}
+ ldr r0, _080F35FC @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F3600 @ =0x000076b0
+ adds r0, r4, r1
+ movs r1, 0x1C
+ strh r1, [r0]
+ ldr r1, _080F3604 @ =0x000076b2
+ adds r2, r4, r1
+ movs r1, 0x13
+ strh r1, [r2]
+ bl sub_80F727C
+ bl sub_80F7404
+ ldr r2, _080F3608 @ =gUnknown_083E4678
+ movs r0, 0x1B
+ movs r1, 0x15
+ bl sub_80F7920
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0xC0
+ strh r1, [r0, 0x20]
+ movs r1, 0x20
+ strh r1, [r0, 0x22]
+ ldr r1, _080F360C @ =sub_80F363C
+ str r1, [r0, 0x1C]
+ ldr r1, _080F3610 @ =0x000076ac
+ adds r4, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F35FC: .4byte gUnknown_083DFEC4
+_080F3600: .4byte 0x000076b0
+_080F3604: .4byte 0x000076b2
+_080F3608: .4byte gUnknown_083E4678
+_080F360C: .4byte sub_80F363C
+_080F3610: .4byte 0x000076ac
+ thumb_func_end sub_80F35B4
+
+ thumb_func_start sub_80F3614
+sub_80F3614: @ 80F3614
+ push {lr}
+ ldr r0, _080F3634 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3638 @ =0x000076ac
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ movs r0, 0x1B
+ bl FreeSpriteTilesByTag
+ movs r0, 0x15
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3634: .4byte gUnknown_083DFEC4
+_080F3638: .4byte 0x000076ac
+ thumb_func_end sub_80F3614
+
+ thumb_func_start sub_80F363C
+sub_80F363C: @ 80F363C
+ push {lr}
+ ldr r1, _080F365C @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r3, _080F3660 @ =0x00008fe9
+ adds r2, r1, r3
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ ldr r3, _080F3664 @ =0x00008934
+ adds r1, r3
+ adds r1, r2
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F365C: .4byte gUnknown_083DFEC4
+_080F3660: .4byte 0x00008fe9
+_080F3664: .4byte 0x00008934
+ thumb_func_end sub_80F363C
+
+ thumb_func_start sub_80F3668
+sub_80F3668: @ 80F3668
+ push {lr}
+ ldr r0, _080F368C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F3690 @ =0x00008fe9
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r2, _080F3694 @ =0x00008934
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl sub_80F7418
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F368C: .4byte gUnknown_083DFEC4
+_080F3690: .4byte 0x00008fe9
+_080F3694: .4byte 0x00008934
+ thumb_func_end sub_80F3668
+
+ thumb_func_start sub_80F3698
+sub_80F3698: @ 80F3698
+ push {r4,lr}
+ ldr r0, _080F36DC @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r1, _080F36E0 @ =0x000087dc
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r1, 2
+ ldr r4, _080F36E4 @ =0x0000893c
+ adds r1, r4
+ adds r1, r3, r1
+ ldr r2, _080F36E8 @ =0x00008fe9
+ adds r0, r3, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r4, 0x8
+ adds r0, r3, r4
+ adds r0, r2
+ ldr r2, _080F36EC @ =0x000076b4
+ adds r3, r2
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r1, 0x1]
+ ldr r1, [r1]
+ lsls r1, 11
+ lsrs r1, 27
+ ldrb r2, [r3]
+ bl sub_80F4548
+ bl sub_80F7470
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F36DC: .4byte gUnknown_083DFEC4
+_080F36E0: .4byte 0x000087dc
+_080F36E4: .4byte 0x0000893c
+_080F36E8: .4byte 0x00008fe9
+_080F36EC: .4byte 0x000076b4
+ thumb_func_end sub_80F3698
+
+ thumb_func_start sub_80F36F0
+sub_80F36F0: @ 80F36F0
+ push {lr}
+ ldr r0, _080F3718 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F371C @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F3720 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3712
+_080F3708:
+ bl sub_80F3724
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3708
+_080F3712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3718: .4byte gUnknown_083DFEC4
+_080F371C: .4byte 0x00000306
+_080F3720: .4byte 0x00006dac
+ thumb_func_end sub_80F36F0
+
+ thumb_func_start sub_80F3724
+sub_80F3724: @ 80F3724
+ push {r4,lr}
+ ldr r0, _080F3740 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F3744 @ =0x00000306
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080F3764
+ cmp r0, 0x1
+ bgt _080F3748
+ cmp r0, 0
+ beq _080F374E
+ b _080F377A
+ .align 2, 0
+_080F3740: .4byte gUnknown_083DFEC4
+_080F3744: .4byte 0x00000306
+_080F3748:
+ cmp r0, 0x2
+ beq _080F376E
+ b _080F377A
+_080F374E:
+ ldr r0, _080F375C @ =gUnknown_083E3D00
+ ldr r2, _080F3760 @ =0x0000984c
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080F377E
+ .align 2, 0
+_080F375C: .4byte gUnknown_083E3D00
+_080F3760: .4byte 0x0000984c
+_080F3764:
+ bl sub_80F379C
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F376E:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F377E
+ b _080F378C
+_080F377A:
+ movs r0, 0
+ b _080F378E
+_080F377E:
+ ldr r0, _080F3794 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F3798 @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F378C:
+ movs r0, 0x1
+_080F378E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3794: .4byte gUnknown_083DFEC4
+_080F3798: .4byte 0x00000306
+ thumb_func_end sub_80F3724
+
+ thumb_func_start sub_80F379C
+sub_80F379C: @ 80F379C
+ push {lr}
+ ldr r0, _080F37C4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F37C8 @ =0x0000bc93
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F37CC @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F37BE
+_080F37B4:
+ bl sub_80F37D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F37B4
+_080F37BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F37C4: .4byte gUnknown_083DFEC4
+_080F37C8: .4byte 0x0000bc93
+_080F37CC: .4byte 0x00006dac
+ thumb_func_end sub_80F379C
+
+ thumb_func_start sub_80F37D0
+sub_80F37D0: @ 80F37D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F3898 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F389C @ =0x0000bc93
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0xB
+ bhi _080F38A8
+ movs r3, 0
+ mov r8, r3
+ movs r7, 0xF
+ mov r9, r7
+_080F37F0:
+ ldr r2, [r2]
+ ldr r1, _080F389C @ =0x0000bc93
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 8
+ ldr r3, _080F38A0 @ =0x0000984c
+ adds r0, r3
+ adds r4, r2, r0
+ lsls r1, 9
+ ldr r7, _080F38A4 @ =0x0000a44c
+ adds r1, r7
+ adds r5, r2, r1
+ movs r6, 0
+_080F380A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl CpuFastSet
+ adds r5, 0x40
+ adds r4, 0x20
+ movs r1, 0
+ adds r6, 0x1
+ mov r12, r6
+_080F381E:
+ movs r0, 0
+ adds r6, r1, 0x1
+_080F3822:
+ adds r4, 0x4
+ movs r2, 0
+ adds r3, r0, 0x1
+_080F3828:
+ subs r4, 0x1
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ lsrs r0, 4
+ mov r7, r9
+ ands r0, r7
+ orrs r1, r0
+ strb r1, [r5]
+ adds r5, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080F3828
+ adds r4, 0x4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bls _080F3822
+ subs r4, 0x40
+ lsls r0, r6, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bls _080F381E
+ adds r4, 0x60
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080F380A
+ ldr r2, _080F3898 @ =gUnknown_083DFEC4
+ ldr r3, [r2]
+ ldr r7, _080F389C @ =0x0000bc93
+ adds r1, r3, r7
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F38A8
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x1
+ bls _080F37F0
+ adds r1, r7, 0
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ bhi _080F38A8
+ movs r0, 0x1
+ b _080F38AA
+ .align 2, 0
+_080F3898: .4byte gUnknown_083DFEC4
+_080F389C: .4byte 0x0000bc93
+_080F38A0: .4byte 0x0000984c
+_080F38A4: .4byte 0x0000a44c
+_080F38A8:
+ movs r0, 0
+_080F38AA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F37D0
+
+ thumb_func_start sub_80F38B8
+sub_80F38B8: @ 80F38B8
+ push {lr}
+ ldr r0, _080F38E0 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F38E4 @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F38E8 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F38DA
+_080F38D0:
+ bl sub_80F38EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F38D0
+_080F38DA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F38E0: .4byte gUnknown_083DFEC4
+_080F38E4: .4byte 0x00000306
+_080F38E8: .4byte 0x00006dac
+ thumb_func_end sub_80F38B8
+
+ thumb_func_start sub_80F38EC
+sub_80F38EC: @ 80F38EC
+ push {r4,lr}
+ ldr r0, _080F3908 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080F390C @ =0x00000306
+ adds r4, r2, r0
+ ldrh r1, [r4]
+ cmp r1, 0x1
+ beq _080F3930
+ cmp r1, 0x1
+ bgt _080F3910
+ cmp r1, 0
+ beq _080F391A
+ b _080F394E
+ .align 2, 0
+_080F3908: .4byte gUnknown_083DFEC4
+_080F390C: .4byte 0x00000306
+_080F3910:
+ cmp r1, 0x2
+ beq _080F3938
+ cmp r1, 0x3
+ beq _080F3942
+ b _080F394E
+_080F391A:
+ ldr r3, _080F3928 @ =0x00009348
+ adds r0, r2, r3
+ str r1, [r0]
+ ldr r3, _080F392C @ =0x0000bc92
+ adds r0, r2, r3
+ strb r1, [r0]
+ b _080F3952
+ .align 2, 0
+_080F3928: .4byte 0x00009348
+_080F392C: .4byte 0x0000bc92
+_080F3930:
+ movs r0, 0
+ bl sub_80F2E18
+ b _080F3952
+_080F3938:
+ bl sub_80F3970
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080F3942:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F3952
+ b _080F3960
+_080F394E:
+ movs r0, 0
+ b _080F3962
+_080F3952:
+ ldr r0, _080F3968 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F396C @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F3960:
+ movs r0, 0x1
+_080F3962:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3968: .4byte gUnknown_083DFEC4
+_080F396C: .4byte 0x00000306
+ thumb_func_end sub_80F38EC
+
+ thumb_func_start sub_80F3970
+sub_80F3970: @ 80F3970
+ push {lr}
+ ldr r0, _080F3998 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F399C @ =0x0000bc93
+ adds r2, r0, r1
+ movs r1, 0
+ strb r1, [r2]
+ ldr r1, _080F39A0 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F3992
+_080F3988:
+ bl sub_80F39A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F3988
+_080F3992:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3998: .4byte gUnknown_083DFEC4
+_080F399C: .4byte 0x0000bc93
+_080F39A0: .4byte 0x00006dac
+ thumb_func_end sub_80F3970
+
+ thumb_func_start sub_80F39A4
+sub_80F39A4: @ 80F39A4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r0, _080F3A18 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F3A1C @ =0x0000bc93
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xB
+ bhi _080F3A30
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r2, _080F3A20 @ =0x0000a44c
+ adds r0, r2
+ adds r0, r1, r0
+ str r0, [sp]
+ ldr r5, _080F3A24 @ =0xffff0000
+ ldr r2, [sp, 0x4]
+ ands r2, r5
+ movs r0, 0x80
+ lsls r0, 2
+ orrs r2, r0
+ str r2, [sp, 0x4]
+ ldrb r1, [r4]
+ adds r1, 0xB
+ lsls r1, 16
+ ldr r0, _080F3A28 @ =0x0000ffff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bhi _080F3A04
+ lsls r0, 5
+ ldr r1, _080F3A2C @ =gUnknown_083E3C60
+ adds r0, r1
+ str r0, [sp, 0x8]
+ ldrb r2, [r4]
+ adds r2, 0xA
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_080F3A04:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xB
+ bhi _080F3A30
+ movs r0, 0x1
+ b _080F3A32
+ .align 2, 0
+_080F3A18: .4byte gUnknown_083DFEC4
+_080F3A1C: .4byte 0x0000bc93
+_080F3A20: .4byte 0x0000a44c
+_080F3A24: .4byte 0xffff0000
+_080F3A28: .4byte 0x0000ffff
+_080F3A2C: .4byte gUnknown_083E3C60
+_080F3A30:
+ movs r0, 0
+_080F3A32:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F39A4
+
+ thumb_func_start sub_80F3A3C
+sub_80F3A3C: @ 80F3A3C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, 0x2
+ bhi _080F3A60
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080F3A5C @ =gUnknown_083DFEC4
+ b _080F3A78
+ .align 2, 0
+_080F3A5C: .4byte gUnknown_083DFEC4
+_080F3A60:
+ ldr r2, _080F3AD0 @ =gUnknown_083DFEC4
+ ldr r1, [r2]
+ ldr r3, _080F3AD4 @ =0x0000bc8e
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ ldr r6, _080F3AD8 @ =0x0000bc8f
+ adds r1, r6
+ ldrb r1, [r1]
+ subs r0, r1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r1, r0, 16
+_080F3A78:
+ ldr r0, [r2]
+ ldr r7, _080F3ADC @ =0x0000bc4c
+ adds r0, r7
+ adds r0, r1
+ ldrb r2, [r0]
+ mov r1, sp
+ ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ mov r3, sp
+ ldr r1, _080F3AE4 @ =gUnknown_083E4698
+ lsls r2, 2
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ adds r0, 0xB
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r0, [r2]
+ adds r0, 0xA
+ strh r0, [r3, 0x2]
+ lsls r1, r5, 20
+ movs r0, 0xC0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r4, 20
+ movs r3, 0xA0
+ lsls r3, 14
+ adds r2, r3
+ asrs r2, 16
+ mov r0, sp
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ bne _080F3AE8
+ movs r0, 0
+ b _080F3AF2
+ .align 2, 0
+_080F3AD0: .4byte gUnknown_083DFEC4
+_080F3AD4: .4byte 0x0000bc8e
+_080F3AD8: .4byte 0x0000bc8f
+_080F3ADC: .4byte 0x0000bc4c
+_080F3AE0: .4byte gSpriteTemplate_83E476C
+_080F3AE4: .4byte gUnknown_083E4698
+_080F3AE8:
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3AFC @ =gSprites
+ adds r0, r1
+_080F3AF2:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3AFC: .4byte gSprites
+ thumb_func_end sub_80F3A3C
+
+ thumb_func_start sub_80F3B00
+sub_80F3B00: @ 80F3B00
+ push {r4,lr}
+ ldr r0, _080F3B34 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F3B38 @ =0x0000bc90
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F3B3C @ =0x0000bc91
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F3A3C
+ adds r2, r0, 0
+ ldr r1, _080F3B40 @ =0x00009348
+ adds r0, r4, r1
+ str r2, [r0]
+ cmp r2, 0
+ beq _080F3B48
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r2, _080F3B44 @ =0x0000bc92
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3B4E
+ .align 2, 0
+_080F3B34: .4byte gUnknown_083DFEC4
+_080F3B38: .4byte 0x0000bc90
+_080F3B3C: .4byte 0x0000bc91
+_080F3B40: .4byte 0x00009348
+_080F3B44: .4byte 0x0000bc92
+_080F3B48:
+ ldr r1, _080F3B54 @ =0x0000bc92
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3B4E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3B54: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B00
+
+ thumb_func_start sub_80F3B58
+sub_80F3B58: @ 80F3B58
+ push {lr}
+ ldr r0, _080F3B6C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F3B70 @ =0x0000bc92
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080F3B74
+ movs r0, 0
+ b _080F3B8A
+ .align 2, 0
+_080F3B6C: .4byte gUnknown_083DFEC4
+_080F3B70: .4byte 0x0000bc92
+_080F3B74:
+ ldr r3, _080F3B90 @ =0x00009348
+ adds r0, r1, r3
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r2]
+_080F3B8A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F3B90: .4byte 0x00009348
+ thumb_func_end sub_80F3B58
+
+ thumb_func_start sub_80F3B94
+sub_80F3B94: @ 80F3B94
+ push {r4,lr}
+ ldr r0, _080F3BB8 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F3BBC @ =0x00009348
+ adds r0, r4, r1
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _080F3BC4
+ adds r0, r2, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, _080F3BC0 @ =0x0000bc92
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080F3BCA
+ .align 2, 0
+_080F3BB8: .4byte gUnknown_083DFEC4
+_080F3BBC: .4byte 0x00009348
+_080F3BC0: .4byte 0x0000bc92
+_080F3BC4:
+ ldr r1, _080F3BD0 @ =0x0000bc92
+ adds r0, r4, r1
+ strb r2, [r0]
+_080F3BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3BD0: .4byte 0x0000bc92
+ thumb_func_end sub_80F3B94
+
+ thumb_func_start sub_80F3BD4
+sub_80F3BD4: @ 80F3BD4
+ push {r4-r6,lr}
+ ldr r0, _080F3C18 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F3C1C @ =0x0000bc92
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F3C24
+ ldr r0, _080F3C20 @ =0x00009348
+ adds r4, r1, r0
+ ldr r0, [r4]
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsrs r0, 5
+ movs r1, 0x1
+ eors r0, r1
+ ands r0, r1
+ strb r0, [r5]
+ adds r6, r0, 0
+ cmp r6, 0
+ bne _080F3C12
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ str r6, [r4]
+_080F3C12:
+ ldrb r0, [r5]
+ b _080F3C26
+ .align 2, 0
+_080F3C18: .4byte gUnknown_083DFEC4
+_080F3C1C: .4byte 0x0000bc92
+_080F3C20: .4byte 0x00009348
+_080F3C24:
+ movs r0, 0
+_080F3C26:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F3BD4
+
+ thumb_func_start sub_80F3C2C
+sub_80F3C2C: @ 80F3C2C
+ push {r4,lr}
+ ldr r0, _080F3C8C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3C90 @ =0x00009348
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3C50
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+_080F3C50:
+ movs r4, 0
+_080F3C52:
+ adds r0, r4, 0
+ adds r0, 0xB
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xB
+ bls _080F3C52
+ movs r4, 0
+_080F3C6A:
+ adds r0, r4, 0
+ adds r0, 0xA
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F3C6A
+ bl sub_80F2F48
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3C8C: .4byte gUnknown_083DFEC4
+_080F3C90: .4byte 0x00009348
+ thumb_func_end sub_80F3C2C
+
+ thumb_func_start sub_80F3C94
+sub_80F3C94: @ 80F3C94
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080F3CDC @ =gUnknown_083E4784
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _080F3CE0 @ =gUnknown_083E478C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r0, sp
+ bl LoadSpriteSheet
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r1, 0
+ ldr r0, _080F3CE4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r0, r3
+ movs r3, 0
+_080F3CC6:
+ lsls r0, r1, 2
+ adds r0, r2, r0
+ str r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9
+ bls _080F3CC6
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3CDC: .4byte gUnknown_083E4784
+_080F3CE0: .4byte gUnknown_083E478C
+_080F3CE4: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3C94
+
+ thumb_func_start sub_80F3CE8
+sub_80F3CE8: @ 80F3CE8
+ push {lr}
+ bl move_anim_execute
+ movs r0, 0x17
+ bl FreeSpriteTilesByTag
+ movs r0, 0xF
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3CE8
+
+ thumb_func_start sub_80F3D00
+sub_80F3D00: @ 80F3D00
+ push {r4,r5,lr}
+ ldr r0, _080F3D34 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F3D38 @ =0x000087dc
+ adds r0, r2, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 2
+ ldr r1, _080F3D3C @ =0x0000893c
+ adds r0, r1
+ adds r0, r2, r0
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3D94
+ ldr r3, _080F3D40 @ =0x00008fe9
+ adds r0, r2, r3
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldr r3, _080F3D44 @ =0x00008931
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r5, [r0]
+ movs r4, 0
+ b _080F3D86
+ .align 2, 0
+_080F3D34: .4byte gUnknown_083DFEC4
+_080F3D38: .4byte 0x000087dc
+_080F3D3C: .4byte 0x0000893c
+_080F3D40: .4byte 0x00008fe9
+_080F3D44: .4byte 0x00008931
+_080F3D48:
+ ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F3D8C
+ ldr r0, _080F3DA0 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ lsls r0, r4, 2
+ movs r3, 0x88
+ lsls r3, 8
+ adds r2, r3
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F3DA4 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F3D86:
+ adds r0, r5, 0x1
+ cmp r4, r0
+ blt _080F3D48
+_080F3D8C:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80F3F20
+_080F3D94:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3D9C: .4byte gSpriteTemplate_83E4800
+_080F3DA0: .4byte gUnknown_083DFEC4
+_080F3DA4: .4byte gSprites
+ thumb_func_end sub_80F3D00
+
+ thumb_func_start move_anim_execute
+move_anim_execute: @ 80F3DA8
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r0, _080F3DD8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+_080F3DB6:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3DD2
+ bl DestroySprite
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3DB6
+_080F3DD2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3DD8: .4byte gUnknown_083DFEC4
+ thumb_func_end move_anim_execute
+
+ thumb_func_start sub_80F3DDC
+sub_80F3DDC: @ 80F3DDC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080F3DFE
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ ldrh r0, [r1, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_80F3F20
+_080F3DFE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F3DDC
+
+ thumb_func_start sub_80F3E04
+sub_80F3E04: @ 80F3E04
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3E1C
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldr r0, _080F3E20 @ =sub_80F3DDC
+ str r0, [r2, 0x1C]
+_080F3E1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E20: .4byte sub_80F3DDC
+ thumb_func_end sub_80F3E04
+
+ thumb_func_start sub_80F3E24
+sub_80F3E24: @ 80F3E24
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _080F3E64 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F3E68 @ =0x00008768
+ adds r4, r0, r1
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3E70
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r1, r0
+ ldr r2, _080F3E6C @ =gUnknown_083E4794
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 2
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r0, r1
+ b _080F3E8E
+ .align 2, 0
+_080F3E64: .4byte gUnknown_083DFEC4
+_080F3E68: .4byte 0x00008768
+_080F3E6C: .4byte gUnknown_083E4794
+_080F3E70:
+ ldr r1, _080F3E98 @ =gUnknown_083E4794
+ movs r5, 0x2E
+ ldrsh r0, [r3, r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x28
+ strh r0, [r3, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x68
+_080F3E8E:
+ strh r0, [r3, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3E98: .4byte gUnknown_083E4794
+ thumb_func_end sub_80F3E24
+
+ thumb_func_start sub_80F3E9C
+sub_80F3E9C: @ 80F3E9C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080F3ECA
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080F3F14
+ adds r0, r4, 0
+ movs r1, 0
+ bl SeekSpriteAnim
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080F3ECA:
+ adds r0, r4, 0
+ bl sub_80F3E24
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080F3F14
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080F3F10
+ cmp r1, 0x9
+ bne _080F3F08
+ bl sub_80F3FAC
+ ldr r0, _080F3F04 @ =sub_80F3E04
+ b _080F3F12
+ .align 2, 0
+_080F3F04: .4byte sub_80F3E04
+_080F3F08:
+ ldr r0, _080F3F0C @ =sub_80F3DDC
+ b _080F3F12
+ .align 2, 0
+_080F3F0C: .4byte sub_80F3DDC
+_080F3F10:
+ ldr r0, _080F3F1C @ =SpriteCallbackDummy
+_080F3F12:
+ str r0, [r4, 0x1C]
+_080F3F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3F1C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80F3E9C
+
+ thumb_func_start sub_80F3F20
+sub_80F3F20: @ 80F3F20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080F3F6C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r7, r0, r1
+_080F3F3C:
+ lsls r0, r5, 2
+ adds r4, r7, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3F92
+ strh r5, [r0, 0x2E]
+ ldr r1, [r4]
+ lsls r0, r5, 4
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ ldr r0, [r4]
+ strh r6, [r0, 0x32]
+ ldr r0, [r4]
+ strh r5, [r0, 0x34]
+ mov r3, r8
+ cmp r3, 0
+ beq _080F3F62
+ cmp r6, 0x9
+ beq _080F3F74
+_080F3F62:
+ ldr r1, [r4]
+ ldr r0, _080F3F70 @ =sub_80F3E9C
+ str r0, [r1, 0x1C]
+ b _080F3F92
+ .align 2, 0
+_080F3F6C: .4byte gUnknown_083DFEC4
+_080F3F70: .4byte sub_80F3E9C
+_080F3F74:
+ ldr r0, [r4]
+ bl sub_80F3E24
+ bl sub_80F3FAC
+ ldr r2, [r4]
+ ldr r0, _080F3FA8 @ =sub_80F3E04
+ str r0, [r2, 0x1C]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x5
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+_080F3F92:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FA8: .4byte sub_80F3E04
+ thumb_func_end sub_80F3F20
+
+ thumb_func_start sub_80F3FAC
+sub_80F3FAC: @ 80F3FAC
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r0, _080F3FEC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 8
+ adds r6, r0, r1
+ movs r0, 0x5
+ negs r0, r0
+ adds r7, r0, 0
+_080F3FC0:
+ lsls r0, r5, 2
+ adds r4, r6, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080F3FDA
+ movs r1, 0
+ bl SeekSpriteAnim
+ ldr r1, [r4]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ ands r0, r7
+ strb r0, [r1]
+_080F3FDA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080F3FC0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F3FEC: .4byte gUnknown_083DFEC4
+ thumb_func_end sub_80F3FAC
+
+ thumb_func_start sub_80F3FF0
+sub_80F3FF0: @ 80F3FF0
+ push {lr}
+ ldr r0, _080F4018 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F401C @ =0x00000306
+ adds r2, r0, r1
+ movs r1, 0
+ strh r1, [r2]
+ ldr r1, _080F4020 @ =0x00006dac
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4012
+_080F4008:
+ bl sub_80F4024
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4008
+_080F4012:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4018: .4byte gUnknown_083DFEC4
+_080F401C: .4byte 0x00000306
+_080F4020: .4byte 0x00006dac
+ thumb_func_end sub_80F3FF0
+
+ thumb_func_start sub_80F4024
+sub_80F4024: @ 80F4024
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r0, _080F4040 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F4044 @ =0x00000306
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080F4068
+ cmp r0, 0x1
+ bgt _080F4048
+ cmp r0, 0
+ beq _080F4052
+ b _080F4106
+ .align 2, 0
+_080F4040: .4byte gUnknown_083DFEC4
+_080F4044: .4byte 0x00000306
+_080F4048:
+ cmp r0, 0x2
+ beq _080F4084
+ cmp r0, 0x3
+ beq _080F40B8
+ b _080F4106
+_080F4052:
+ ldr r0, _080F4060 @ =gUnknown_083E329C
+ ldr r2, _080F4064 @ =0x000131e4
+ adds r1, r4, r2
+ bl LZ77UnCompWram
+ b _080F4118
+ .align 2, 0
+_080F4060: .4byte gUnknown_083E329C
+_080F4064: .4byte 0x000131e4
+_080F4068:
+ ldr r1, _080F407C @ =0x000131e4
+ adds r0, r4, r1
+ str r0, [sp]
+ ldr r0, _080F4080 @ =0x00181000
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ b _080F4118
+ .align 2, 0
+_080F407C: .4byte 0x000131e4
+_080F4080: .4byte 0x00181000
+_080F4084:
+ ldr r0, _080F40B4 @ =gUnknown_083E4818
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ movs r0, 0x10
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC2
+ lsls r1, 2
+ adds r2, r4, r1
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ movs r0, 0x3
+ negs r0, r0
+ bics r0, r1
+ str r0, [r2]
+ b _080F4118
+ .align 2, 0
+_080F40B4: .4byte gUnknown_083E4818
+_080F40B8:
+ ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850
+ movs r1, 0xDA
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080F40F0
+ ldr r0, _080F40E8 @ =0x00006d98
+ adds r2, r4, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F40EC @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _080F40F8
+ .align 2, 0
+_080F40E4: .4byte gSpriteTemplate_83E4850
+_080F40E8: .4byte 0x00006d98
+_080F40EC: .4byte gSprites
+_080F40F0:
+ ldr r2, _080F410C @ =0x00006d98
+ adds r1, r4, r2
+ movs r0, 0
+ str r0, [r1]
+_080F40F8:
+ ldr r0, _080F4110 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F4114 @ =0x00000306
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080F4106:
+ movs r0, 0
+ b _080F4128
+ .align 2, 0
+_080F410C: .4byte 0x00006d98
+_080F4110: .4byte gUnknown_083DFEC4
+_080F4114: .4byte 0x00000306
+_080F4118:
+ ldr r0, _080F4130 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F4134 @ =0x00000306
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_080F4128:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4130: .4byte gUnknown_083DFEC4
+_080F4134: .4byte 0x00000306
+ thumb_func_end sub_80F4024
+
+ thumb_func_start sub_80F4138
+sub_80F4138: @ 80F4138
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080F4170 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ movs r1, 0xC3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _080F4174
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x1
+ b _080F418C
+ .align 2, 0
+_080F4170: .4byte gUnknown_083DFEC4
+_080F4174:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F418E
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r3]
+ movs r0, 0
+_080F418C:
+ strh r0, [r2, 0x2E]
+_080F418E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4138
+
+ thumb_func_start sub_80F4194
+sub_80F4194: @ 80F4194
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r7, r0, 0
+ adds r2, r1, 0
+ ldr r0, _080F42A4 @ =gUnknown_083DFEC8
+ ldr r6, [r0]
+ mov r0, sp
+ ldr r1, _080F42A8 @ =0x00001111
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r4, _080F42AC @ =0x040000d4
+ str r0, [r4]
+ str r6, [r4, 0x4]
+ ldr r3, _080F42B0 @ =0x81000140
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0x80
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r5, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r3, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080F42B4 @ =gWindowConfig_81E70F0
+ adds r1, r6, 0
+ bl sub_8004E3C
+ movs r3, 0x88
+ lsls r3, 2
+ adds r1, r6, r3
+ mov r0, sp
+ movs r3, 0
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r2, _080F42B8 @ =0x81000030
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r0, 0xC4
+ lsls r0, 3
+ adds r1, r6, r0
+ mov r0, sp
+ strh r3, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ movs r1, 0x80
+ lsls r1, 2
+ adds r2, r6, r1
+ ldr r0, [r2]
+ ldr r1, _080F42BC @ =0x0fffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r3, 0xC0
+ lsls r3, 3
+ adds r2, r6, r3
+ ldr r0, [r2]
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, [r2, 0x4]
+ ands r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, [r2, 0x8]
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0xC]
+ ands r0, r1
+ str r0, [r2, 0xC]
+ ldr r0, [r2, 0x10]
+ ands r0, r1
+ str r0, [r2, 0x10]
+ ldr r0, [r2, 0x14]
+ ands r0, r1
+ str r0, [r2, 0x14]
+ ldr r0, [r2, 0x18]
+ ands r0, r1
+ str r0, [r2, 0x18]
+ ldr r0, [r2, 0x1C]
+ ands r0, r1
+ str r0, [r2, 0x1C]
+ movs r1, 0
+ ldr r2, _080F42C0 @ =0x80000040
+_080F4268:
+ lsls r0, r1, 7
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 8
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ lsls r0, r1, 7
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r6, r0
+ str r0, [r4]
+ lsls r0, r1, 3
+ adds r0, 0x4
+ lsls r0, 5
+ adds r0, r7, r0
+ str r0, [r4, 0x4]
+ str r2, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080F4268
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F42A4: .4byte gUnknown_083DFEC8
+_080F42A8: .4byte 0x00001111
+_080F42AC: .4byte 0x040000d4
+_080F42B0: .4byte 0x81000140
+_080F42B4: .4byte gWindowConfig_81E70F0
+_080F42B8: .4byte 0x81000030
+_080F42BC: .4byte 0x0fffffff
+_080F42C0: .4byte 0x80000040
+ thumb_func_end sub_80F4194
+
+ thumb_func_start sub_80F42C4
+sub_80F42C4: @ 80F42C4
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r1, r0, 0
+ ldr r0, _080F433C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F4340 @ =0x0000d1e4
+ adds r0, r2
+ str r0, [sp]
+ ldr r2, _080F4344 @ =0x001a0500
+ str r2, [sp, 0x4]
+ bl sub_80F4194
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080F4348 @ =gUnknown_083E4868
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r4, 0
+ ldr r6, _080F434C @ =gSprites
+_080F42EE:
+ lsls r1, r4, 21
+ movs r7, 0xE2
+ lsls r7, 15
+ adds r1, r7
+ asrs r1, 16
+ ldr r0, _080F4350 @ =gSpriteTemplate_83E4878
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080F4360
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r6
+ ldrh r2, [r3, 0x4]
+ lsls r0, r2, 22
+ lsrs r0, 22
+ adds r0, r5, r0
+ ldr r7, _080F4354 @ =0x000003ff
+ adds r1, r7, 0
+ ands r0, r1
+ ldr r7, _080F4358 @ =0xfffffc00
+ adds r1, r7, 0
+ ands r2, r1
+ orrs r2, r0
+ strh r2, [r3, 0x4]
+ ldr r0, _080F433C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _080F435C @ =0x0000ced4
+ adds r0, r2
+ adds r0, r1
+ str r3, [r0]
+ b _080F4370
+ .align 2, 0
+_080F433C: .4byte gUnknown_083DFEC4
+_080F4340: .4byte 0x0000d1e4
+_080F4344: .4byte 0x001a0500
+_080F4348: .4byte gUnknown_083E4868
+_080F434C: .4byte gSprites
+_080F4350: .4byte gSpriteTemplate_83E4878
+_080F4354: .4byte 0x000003ff
+_080F4358: .4byte 0xfffffc00
+_080F435C: .4byte 0x0000ced4
+_080F4360:
+ ldr r0, _080F438C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ lsls r0, r4, 2
+ ldr r7, _080F4390 @ =0x0000ced4
+ adds r1, r7
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_080F4370:
+ adds r0, r5, 0
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F42EE
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F438C: .4byte gUnknown_083DFEC4
+_080F4390: .4byte 0x0000ced4
+ thumb_func_end sub_80F42C4
+
+ thumb_func_start sub_80F4394
+sub_80F4394: @ 80F4394
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080F43CC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F43D0 @ =0x0000ced4
+ adds r5, r0, r1
+_080F43A0:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080F43AE
+ bl DestroySprite
+_080F43AE:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _080F43A0
+ movs r0, 0x1A
+ bl FreeSpriteTilesByTag
+ movs r0, 0x12
+ bl FreeSpritePaletteByTag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F43CC: .4byte gUnknown_083DFEC4
+_080F43D0: .4byte 0x0000ced4
+ thumb_func_end sub_80F4394
+
+ thumb_func_start sub_80F43D4
+sub_80F43D4: @ 80F43D4
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r0, _080F4410 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F4414 @ =0x0000d1e4
+ adds r4, r0, r2
+ adds r0, r4, 0
+ bl sub_80F4194
+ movs r0, 0x1A
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080F4418 @ =0x0000ffff
+ cmp r1, r0
+ beq _080F4408
+ lsls r0, r1, 5
+ ldr r1, _080F441C @ =0x06010000
+ adds r0, r1
+ ldr r1, _080F4420 @ =0x040000d4
+ str r4, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _080F4424 @ =0x84000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080F4408:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4410: .4byte gUnknown_083DFEC4
+_080F4414: .4byte 0x0000d1e4
+_080F4418: .4byte 0x0000ffff
+_080F441C: .4byte 0x06010000
+_080F4420: .4byte 0x040000d4
+_080F4424: .4byte 0x84000140
+ thumb_func_end sub_80F43D4
+
+ thumb_func_start sub_80F4428
+sub_80F4428: @ 80F4428
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80F6514
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4428
+
+ thumb_func_start sub_80F443C
+sub_80F443C: @ 80F443C
+ push {r4,lr}
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r1, _080F4458 @ =gOtherText_Number
+ bl StringCopy
+ adds r1, r4, 0
+ movs r2, 0x38
+ movs r3, 0x1
+ bl sub_8072C14
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4458: .4byte gOtherText_Number
+ thumb_func_end sub_80F443C
+
+ thumb_func_start sub_80F445C
+sub_80F445C: @ 80F445C
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x17
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ movs r3, 0xFC
+ strb r3, [r4]
+ movs r2, 0x11
+ strb r2, [r4, 0x1]
+ movs r1, 0x1
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ movs r0, 0xBA
+ strb r0, [r4]
+ adds r4, 0x1
+ strb r3, [r4]
+ strb r2, [r4, 0x1]
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _080F44A8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F44AC @ =0x00008774
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, 0x1
+ adds r0, r4, 0
+ movs r2, 0x32
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r4, r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F44A8: .4byte gUnknown_083DFEC4
+_080F44AC: .4byte 0x00008774
+ thumb_func_end sub_80F445C
+
+ thumb_func_start sub_80F44B0
+sub_80F44B0: @ 80F44B0
+ push {r4,lr}
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r0, 0xE
+ bne _080F44F4
+ cmp r4, 0x2
+ beq _080F44C8
+ cmp r4, 0x7
+ bne _080F44E0
+_080F44C8:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44DC @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44DC: .4byte gPlayerParty
+_080F44E0:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _080F44F0 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetMonData
+ b _080F453C
+ .align 2, 0
+_080F44F0: .4byte gPlayerParty
+_080F44F4:
+ cmp r4, 0x2
+ beq _080F44FC
+ cmp r4, 0x7
+ bne _080F4520
+_080F44FC:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F451C @ =gUnknown_020300A4
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl GetBoxMonData
+ b _080F453C
+ .align 2, 0
+_080F451C: .4byte gUnknown_020300A4
+_080F4520:
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F4544 @ =gUnknown_020300A4
+ adds r1, r2
+ adds r0, r1
+ adds r1, r4, 0
+ bl GetBoxMonData
+_080F453C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F4544: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F44B0
+
+ thumb_func_start sub_80F4548
+sub_80F4548: @ 80F4548
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ mov r0, sp
+ strb r2, [r0]
+ cmp r3, 0xE
+ bne _080F4574
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F4570 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ b _080F4592
+ .align 2, 0
+_080F4570: .4byte gPlayerParty
+_080F4574:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 4
+ ldr r2, _080F459C @ =gUnknown_020300A4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x8
+ mov r2, sp
+ bl SetBoxMonData
+_080F4592:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F459C: .4byte gUnknown_020300A4
+ thumb_func_end sub_80F4548
+
+ thumb_func_start sub_80F45A0
+sub_80F45A0: @ 80F45A0
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080F45F0 @ =gUnknown_083DFEC4
+ ldr r5, [r1]
+ lsls r1, r0, 16
+ asrs r0, r1, 14
+ adds r4, r5, r0
+ ldr r2, _080F45F4 @ =0x0000893f
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r7, r0, 31
+ cmp r7, 0
+ beq _080F4644
+ lsls r0, r6, 6
+ ldr r2, _080F45F8 @ =0x00008829
+ adds r0, r2
+ adds r0, r5, r0
+ lsrs r1, 16
+ movs r2, 0
+ bl sub_80F4428
+ ldr r1, _080F45FC @ =0x0000893d
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0xE
+ bne _080F4608
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4600 @ =0x000088e9
+ adds r0, r2
+ adds r0, r5, r0
+ ldr r1, _080F4604 @ =gOtherText_InParty
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ b _080F4624
+ .align 2, 0
+_080F45F0: .4byte gUnknown_083DFEC4
+_080F45F4: .4byte 0x0000893f
+_080F45F8: .4byte 0x00008829
+_080F45FC: .4byte 0x0000893d
+_080F4600: .4byte 0x000088e9
+_080F4604: .4byte gOtherText_InParty
+_080F4608:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _080F4634 @ =0x000088e9
+ adds r0, r1
+ adds r0, r5, r0
+ lsls r1, r2, 3
+ adds r1, r2
+ ldr r2, _080F4638 @ =gUnknown_020383E4
+ adds r1, r2
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+_080F4624:
+ ldr r0, _080F463C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F4640 @ =0x00008937
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+ b _080F4676
+ .align 2, 0
+_080F4634: .4byte 0x000088e9
+_080F4638: .4byte gUnknown_020383E4
+_080F463C: .4byte gUnknown_083DFEC4
+_080F4640: .4byte 0x00008937
+_080F4644:
+ lsls r0, r6, 6
+ ldr r1, _080F467C @ =0x00008829
+ adds r0, r1
+ adds r0, r5, r0
+ ldr r4, _080F4680 @ =gEmptyString_81E72B0
+ adds r1, r4, 0
+ movs r2, 0x68
+ movs r3, 0
+ bl sub_8072C74
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _080F4684 @ =0x000088e9
+ adds r0, r2
+ adds r0, r5, r0
+ adds r1, r4, 0
+ movs r2, 0x40
+ movs r3, 0
+ bl sub_8072C74
+ ldr r1, _080F4688 @ =0x00008937
+ adds r0, r5, r1
+ adds r0, r6
+ strb r7, [r0]
+_080F4676:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F467C: .4byte 0x00008829
+_080F4680: .4byte gEmptyString_81E72B0
+_080F4684: .4byte 0x000088e9
+_080F4688: .4byte 0x00008937
+ thumb_func_end sub_80F45A0
+
+ thumb_func_start sub_80F468C
+sub_80F468C: @ 80F468C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F475C @ =gUnknown_083DFEC4
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F4760 @ =0x0000893f
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080F46B2
+ b _080F47C4
+_080F46B2:
+ ldr r3, _080F4764 @ =0x0000893d
+ adds r0, r1, r3
+ ldrb r5, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r6, r0, 27
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x16
+ movs r3, 0
+ bl sub_80F44B0
+ mov r3, r9
+ lsls r3, 2
+ mov r8, r3
+ mov r4, r8
+ add r4, r9
+ ldr r2, _080F4768 @ =0x00008ff0
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x2F
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F476C @ =0x00008ff1
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x21
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4770 @ =0x00008ff2
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x18
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r3, _080F4774 @ =0x00008ff3
+ adds r1, r7, r3
+ adds r1, r4
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r2, _080F4778 @ =0x00008ff4
+ adds r1, r7, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldr r3, _080F477C @ =0x00008931
+ adds r0, r7, r3
+ mov r7, r9
+ adds r4, r0, r7
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0xFF
+ beq _080F4780
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_80F44B0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F4782
+ .align 2, 0
+_080F475C: .4byte gUnknown_083DFEC4
+_080F4760: .4byte 0x0000893f
+_080F4764: .4byte 0x0000893d
+_080F4768: .4byte 0x00008ff0
+_080F476C: .4byte 0x00008ff1
+_080F4770: .4byte 0x00008ff2
+_080F4774: .4byte 0x00008ff3
+_080F4778: .4byte 0x00008ff4
+_080F477C: .4byte 0x00008931
+_080F4780:
+ movs r0, 0x9
+_080F4782:
+ strb r0, [r4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_80F44B0
+ ldr r1, _080F47B4 @ =gUnknown_083DFEC4
+ ldr r1, [r1]
+ ldr r3, _080F47B8 @ =0x00008934
+ adds r2, r1, r3
+ add r2, r9
+ strb r0, [r2]
+ mov r2, r8
+ add r2, r9
+ ldr r7, _080F47BC @ =0x00008ff0
+ adds r0, r2, r7
+ adds r0, r1, r0
+ lsls r2, 2
+ ldr r3, _080F47C0 @ =0x00009004
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F55AC
+ b _080F480A
+ .align 2, 0
+_080F47B4: .4byte gUnknown_083DFEC4
+_080F47B8: .4byte 0x00008934
+_080F47BC: .4byte 0x00008ff0
+_080F47C0: .4byte 0x00009004
+_080F47C4:
+ movs r3, 0
+ mov r0, r9
+ lsls r0, 2
+ mov r8, r0
+ adds r4, r7, 0
+ mov r2, r8
+ add r2, r9
+ ldr r1, _080F4818 @ =0x00008ff0
+ adds r6, r4, r1
+ lsls r5, r2, 2
+ mov r9, r3
+ ldr r7, _080F481C @ =0x00009004
+ mov r8, r7
+ movs r0, 0x9B
+ mov r12, r0
+_080F47E2:
+ adds r0, r3, r2
+ adds r0, r6, r0
+ mov r1, r9
+ strb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r5
+ adds r0, r4, r0
+ mov r7, r8
+ adds r1, r0, r7
+ mov r7, r12
+ strh r7, [r1]
+ ldr r1, _080F4820 @ =0x00009006
+ adds r0, r1
+ movs r1, 0x5B
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _080F47E2
+_080F480A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4818: .4byte 0x00008ff0
+_080F481C: .4byte 0x00009004
+_080F4820: .4byte 0x00009006
+ thumb_func_end sub_80F468C
+
+ thumb_func_start sub_80F4824
+sub_80F4824: @ 80F4824
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, _080F48E0 @ =gUnknown_083DFEC4
+ ldr r7, [r1]
+ lsls r0, 16
+ asrs r0, 14
+ adds r1, r7, r0
+ ldr r2, _080F48E4 @ =0x0000893f
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080F48D0
+ ldr r6, _080F48E8 @ =0x0000893d
+ adds r0, r1, r6
+ ldrb r6, [r0]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ lsls r4, 27
+ lsrs r4, 27
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x41
+ movs r3, 0
+ bl sub_80F44B0
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_80F44B0
+ mov r8, r0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r4, r0, 0
+ lsls r0, r5, 3
+ ldr r1, _080F48EC @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r2, _080F48F0 @ =gMonFrontPicCoords
+ lsls r1, r5, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r6, _080F48F4 @ =0x000131e4
+ adds r3, r7, r6
+ mov r6, r9
+ lsls r2, r6, 13
+ ldr r6, _080F48F8 @ =0x0000d1e4
+ adds r2, r6
+ adds r2, r7, r2
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ bl sub_800D334
+ adds r0, r5, 0
+ mov r1, r8
+ adds r2, r4, 0
+ bl species_and_otid_get_pal
+ mov r2, r9
+ lsls r1, r2, 7
+ adds r1, r7, r1
+ bl LZ77UnCompWram
+ mov r6, r9
+ lsls r1, r6, 1
+ ldr r2, _080F48FC @ =0x0000d1d6
+ adds r0, r7, r2
+ adds r0, r1
+ strh r5, [r0]
+_080F48D0:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F48E0: .4byte gUnknown_083DFEC4
+_080F48E4: .4byte 0x0000893f
+_080F48E8: .4byte 0x0000893d
+_080F48EC: .4byte gMonFrontPicTable
+_080F48F0: .4byte gMonFrontPicCoords
+_080F48F4: .4byte 0x000131e4
+_080F48F8: .4byte 0x0000d1e4
+_080F48FC: .4byte 0x0000d1d6
+ thumb_func_end sub_80F4824
+
+ thumb_func_start sub_80F4900
+sub_80F4900: @ 80F4900
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F45A0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F468C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F4824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F4900
+
+ thumb_func_start sub_80F492C
+sub_80F492C: @ 80F492C
+ ldr r0, _080F493C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F4940 @ =0x00008fe4
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F493C: .4byte gUnknown_083DFEC4
+_080F4940: .4byte 0x00008fe4
+ thumb_func_end sub_80F492C
+
+ thumb_func_start sub_80F4944
+sub_80F4944: @ 80F4944
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ movs r2, 0
+ ldr r1, _080F4978 @ =gUnknown_083DFEC4
+ ldr r5, [r1]
+ ldr r3, _080F497C @ =0x00008fe4
+ adds r0, r5, r3
+ ldrh r4, [r0]
+ lsrs r3, r4, 1
+ mov r8, r1
+ cmp r4, r3
+ beq _080F499C
+ adds r6, r5, 0
+ mov r0, r12
+ ldrb r5, [r0]
+ ldr r7, _080F4980 @ =0x0000893c
+_080F4968:
+ lsls r0, r3, 2
+ adds r0, r6, r0
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r5, r0
+ bls _080F4984
+ adds r4, r3, 0
+ b _080F498A
+ .align 2, 0
+_080F4978: .4byte gUnknown_083DFEC4
+_080F497C: .4byte 0x00008fe4
+_080F4980: .4byte 0x0000893c
+_080F4984:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080F498A:
+ subs r0, r4, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, r3
+ bne _080F4968
+_080F499C:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r1, _080F49EC @ =0x00008fe4
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ lsls r6, r3, 2
+ cmp r4, r3
+ bls _080F49C6
+ ldr r0, _080F49F0 @ =0x0000893c
+ adds r5, r2, r0
+_080F49B0:
+ lsls r2, r4, 2
+ adds r2, r5, r2
+ subs r1, r4, 0x1
+ lsls r0, r1, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ str r0, [r2]
+ lsls r1, 16
+ lsrs r4, r1, 16
+ cmp r4, r3
+ bhi _080F49B0
+_080F49C6:
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r3, _080F49F0 @ =0x0000893c
+ adds r0, r2, r3
+ adds r0, r6
+ mov r3, r12
+ ldr r1, [r3]
+ str r1, [r0]
+ ldr r0, _080F49EC @ =0x00008fe4
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F49EC: .4byte 0x00008fe4
+_080F49F0: .4byte 0x0000893c
+ thumb_func_end sub_80F4944
+
+ thumb_func_start sub_80F49F4
+sub_80F49F4: @ 80F49F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r3, _080F4A64 @ =gUnknown_083DFEC4
+ ldr r4, [r3]
+ ldr r7, _080F4A68 @ =0x0000893e
+ adds r2, r4, r7
+ ldrh r1, [r2]
+ ldr r0, _080F4A6C @ =0xffffc01f
+ mov r12, r0
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+ movs r5, 0x1
+ ldr r1, _080F4A70 @ =0x00008fe4
+ adds r0, r4, r1
+ ldrh r3, [r0]
+ cmp r5, r3
+ bcs _080F4A9E
+ adds r6, r4, 0
+ ldr r1, _080F4A74 @ =0x0000893c
+ mov r8, r1
+ ldr r3, _080F4A78 @ =0x000001ff
+ mov r10, r3
+ mov r9, r0
+_080F4A2C:
+ lsls r0, r5, 2
+ adds r3, r6, r0
+ mov r0, r8
+ adds r2, r3, r0
+ subs r0, r5, 0x1
+ lsls r0, 2
+ adds r4, r6, r0
+ mov r0, r8
+ adds r1, r4, r0
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080F4A7C
+ adds r0, r4, r7
+ ldrh r0, [r0]
+ lsls r0, 18
+ lsrs r0, 23
+ adds r3, r7
+ ldr r1, _080F4A78 @ =0x000001ff
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, r5, 0x1
+ b _080F4A92
+ .align 2, 0
+_080F4A64: .4byte gUnknown_083DFEC4
+_080F4A68: .4byte 0x0000893e
+_080F4A6C: .4byte 0xffffc01f
+_080F4A70: .4byte 0x00008fe4
+_080F4A74: .4byte 0x0000893c
+_080F4A78: .4byte 0x000001ff
+_080F4A7C:
+ adds r4, r5, 0x1
+ adds r3, r7
+ adds r1, r4, 0
+ mov r0, r10
+ ands r1, r0
+ lsls r1, 5
+ ldrh r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+_080F4A92:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ mov r1, r9
+ ldrh r1, [r1]
+ cmp r5, r1
+ bcc _080F4A2C
+_080F4A9E:
+ ldr r3, _080F4AC4 @ =gUnknown_083DFEC4
+ ldr r2, [r3]
+ ldr r1, _080F4AC8 @ =0x0000876c
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r3, _080F4ACC @ =0x00008770
+ adds r0, r2, r3
+ strh r1, [r0]
+ subs r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r1, _080F4AD0 @ =0x00008fe4
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F4AD4
+ subs r1, r0, 0x1
+ b _080F4AD6
+ .align 2, 0
+_080F4AC4: .4byte gUnknown_083DFEC4
+_080F4AC8: .4byte 0x0000876c
+_080F4ACC: .4byte 0x00008770
+_080F4AD0: .4byte 0x00008fe4
+_080F4AD4:
+ movs r1, 0x7
+_080F4AD6:
+ ldr r3, _080F4B10 @ =0x00008772
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _080F4B14 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F4B18 @ =0x00008fe4
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ adds r3, 0x2
+ adds r1, r2, r3
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F4AFA
+ movs r1, 0x1
+_080F4AFA:
+ ldr r3, _080F4B1C @ =0x000087c9
+ adds r0, r2, r3
+ strb r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4B10: .4byte 0x00008772
+_080F4B14: .4byte gUnknown_083DFEC4
+_080F4B18: .4byte 0x00008fe4
+_080F4B1C: .4byte 0x000087c9
+ thumb_func_end sub_80F49F4
+
+ thumb_func_start sub_80F4B20
+sub_80F4B20: @ 80F4B20
+ push {r4-r6,lr}
+ ldr r0, _080F4B5C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F4B60 @ =0x000087dc
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0
+ bl sub_80F4900
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _080F4B64 @ =0x000087da
+ adds r2, r4, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _080F4B6C
+ ldr r2, _080F4B68 @ =0x00008fe9
+ adds r0, r4, r2
+ movs r1, 0
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r0, r4, r2
+ strb r1, [r0]
+ b _080F4BBE
+ .align 2, 0
+_080F4B5C: .4byte gUnknown_083DFEC4
+_080F4B60: .4byte 0x000087dc
+_080F4B64: .4byte 0x000087da
+_080F4B68: .4byte 0x00008fe9
+_080F4B6C:
+ ldr r0, _080F4BC4 @ =0x00008fe9
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080F4BC8 @ =0x00008fea
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080F4BCC @ =0x00008feb
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrh r3, [r5]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ ldrh r6, [r2]
+ movs r4, 0
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080F4B9A
+ movs r5, 0
+_080F4B9A:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r0, 0
+ bge _080F4BAA
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080F4BAA:
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r1, 0x1
+ bl sub_80F4900
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_80F4900
+_080F4BBE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4BC4: .4byte 0x00008fe9
+_080F4BC8: .4byte 0x00008fea
+_080F4BCC: .4byte 0x00008feb
+ thumb_func_end sub_80F4B20
+
+ thumb_func_start sub_80F4BD0
+sub_80F4BD0: @ 80F4BD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r7, 0
+ ldr r0, _080F4CC4 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r3, _080F4CC8 @ =0x00008828
+ adds r1, r2, r3
+ mov r9, r0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bcs _080F4C66
+ mov r10, r9
+ adds r4, r3, 0
+ adds r4, r2
+ mov r8, r4
+_080F4BF6:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F4CCC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4C58
+ mov r0, r10
+ ldr r3, [r0]
+ lsls r0, r7, 2
+ adds r3, r0
+ ldr r2, _080F4CD0 @ =0x0000893d
+ adds r1, r3, r2
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r4, _080F4CD4 @ =0x0000893e
+ adds r5, r3, r4
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r5]
+ movs r4, 0x20
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5]
+ adds r4, r7, 0x1
+ ldr r7, _080F4CD8 @ =0x000001ff
+ adds r0, r7, 0
+ adds r2, r4, 0
+ ands r2, r0
+ lsls r2, 5
+ ldrh r0, [r5]
+ ldr r7, _080F4CDC @ =0xffffc01f
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5]
+ ldr r0, _080F4CE0 @ =0x0000893f
+ adds r3, r0
+ ldrb r0, [r3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r4, 16
+ lsrs r7, r4, 16
+_080F4C58:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r6, r1
+ bcc _080F4BF6
+_080F4C66:
+ mov r2, r9
+ ldr r4, [r2]
+ lsls r1, r7, 2
+ adds r1, r4, r1
+ ldr r3, _080F4CD0 @ =0x0000893d
+ adds r0, r1, r3
+ movs r5, 0
+ strb r5, [r0]
+ ldr r0, _080F4CD4 @ =0x0000893e
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r2]
+ ldrh r3, [r2]
+ ldr r0, _080F4CDC @ =0xffffc01f
+ ands r0, r3
+ strh r0, [r2]
+ ldr r2, _080F4CE0 @ =0x0000893f
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r3, _080F4CE4 @ =0x000087dc
+ adds r0, r4, r3
+ strh r5, [r0]
+ adds r1, r7, 0x1
+ ldr r7, _080F4CE8 @ =0x000087da
+ adds r0, r4, r7
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r0, _080F4CEC @ =0x000087cb
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4CC4: .4byte gUnknown_083DFEC4
+_080F4CC8: .4byte 0x00008828
+_080F4CCC: .4byte gPlayerParty
+_080F4CD0: .4byte 0x0000893d
+_080F4CD4: .4byte 0x0000893e
+_080F4CD8: .4byte 0x000001ff
+_080F4CDC: .4byte 0xffffc01f
+_080F4CE0: .4byte 0x0000893f
+_080F4CE4: .4byte 0x000087dc
+_080F4CE8: .4byte 0x000087da
+_080F4CEC: .4byte 0x000087cb
+ thumb_func_end sub_80F4BD0
+
+ thumb_func_start sub_80F4CF0
+sub_80F4CF0: @ 80F4CF0
+ push {r4,lr}
+ ldr r0, _080F4D1C @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F4D20 @ =0x0000876e
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ ldr r2, _080F4D24 @ =0x000087dc
+ adds r0, r4, r2
+ strh r1, [r0]
+ bl sub_80F4B20
+ ldr r1, _080F4D28 @ =0x00008774
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _080F4D30
+ ldr r0, _080F4D2C @ =0x000087cb
+ adds r1, r4, r0
+ movs r0, 0
+ b _080F4D36
+ .align 2, 0
+_080F4D1C: .4byte gUnknown_083DFEC4
+_080F4D20: .4byte 0x0000876e
+_080F4D24: .4byte 0x000087dc
+_080F4D28: .4byte 0x00008774
+_080F4D2C: .4byte 0x000087cb
+_080F4D30:
+ ldr r2, _080F4D40 @ =0x000087cb
+ adds r1, r4, r2
+ movs r0, 0x1
+_080F4D36:
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D40: .4byte 0x000087cb
+ thumb_func_end sub_80F4CF0
+
+ thumb_func_start sub_80F4D44
+sub_80F4D44: @ 80F4D44
+ push {r4,lr}
+ ldr r0, _080F4D78 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F4D7C @ =0x00008fe6
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F4D80 @ =0x00008fe7
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F4D84 @ =0x00006dac
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F4D70
+_080F4D66:
+ bl sub_80F4D88
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F4D66
+_080F4D70:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4D78: .4byte gUnknown_083DFEC4
+_080F4D7C: .4byte 0x00008fe6
+_080F4D80: .4byte 0x00008fe7
+_080F4D84: .4byte 0x00006dac
+ thumb_func_end sub_80F4D44
+
+ thumb_func_start sub_80F4D88
+sub_80F4D88: @ 80F4D88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r6, _080F4E98 @ =gUnknown_083DFEC4
+ ldr r4, [r6]
+ ldr r1, _080F4E9C @ =0x00008fe6
+ adds r0, r4, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ bne _080F4DA4
+ b _080F4EB8
+_080F4DA4:
+ cmp r3, 0xF
+ bne _080F4DAA
+ b _080F4F60
+_080F4DAA:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r7, 0
+ mov r10, r6
+ ldr r2, _080F4E9C @ =0x00008fe6
+ adds r6, r4, r2
+ ldr r3, _080F4EA0 @ =0x00008fe7
+ adds r5, r4, r3
+ ldr r0, _080F4EA4 @ =0x000087d8
+ adds r0, r4
+ mov r9, r0
+ ldr r1, _080F4EA8 @ =gUnknown_020300A4
+ mov r8, r1
+_080F4DCA:
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _080F4E60
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F4E60
+ ldrb r1, [r6]
+ lsls r1, 8
+ ldr r2, _080F4EAC @ =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r5]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F4EB0 @ =0xffe0ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r5]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ mov r2, r9
+ ldrb r1, [r2]
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F4EB4 @ =0xffffff00
+ ldr r1, [sp]
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F4E60:
+ mov r3, r10
+ ldr r1, [r3]
+ ldr r0, _080F4EA0 @ =0x00008fe7
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r2]
+ movs r3, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F4E8C
+ strb r4, [r2]
+ ldr r2, _080F4E9C @ =0x00008fe6
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ands r0, r3
+ cmp r0, 0xE
+ beq _080F4F64
+_080F4E8C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0xE
+ bls _080F4DCA
+ b _080F4F64
+ .align 2, 0
+_080F4E98: .4byte gUnknown_083DFEC4
+_080F4E9C: .4byte 0x00008fe6
+_080F4EA0: .4byte 0x00008fe7
+_080F4EA4: .4byte 0x000087d8
+_080F4EA8: .4byte gUnknown_020300A4
+_080F4EAC: .4byte 0xffff00ff
+_080F4EB0: .4byte 0xffe0ffff
+_080F4EB4: .4byte 0xffffff00
+_080F4EB8:
+ mov r2, sp
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ strb r3, [r2, 0x1]
+ movs r7, 0
+ ldr r3, _080F4F44 @ =0x00008828
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080F4F24
+ mov r5, sp
+ mov r8, r6
+ adds r6, r4, r3
+_080F4ED6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080F4F48 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080F4F18
+ movs r0, 0x1F
+ adds r2, r7, 0
+ ands r2, r0
+ ldrb r0, [r5, 0x2]
+ movs r3, 0x20
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x2]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, _080F4F4C @ =0x000087d8
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ mov r0, sp
+ bl sub_80F4944
+_080F4F18:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r3, [r6]
+ cmp r7, r3
+ bcc _080F4ED6
+_080F4F24:
+ bl sub_80F49F4
+ ldr r0, _080F4F50 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F4F54 @ =0x00008fe4
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r3, _080F4F58 @ =0x000087da
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, _080F4F5C @ =0x00008fe6
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F4F64
+ .align 2, 0
+_080F4F44: .4byte 0x00008828
+_080F4F48: .4byte gPlayerParty
+_080F4F4C: .4byte 0x000087d8
+_080F4F50: .4byte gUnknown_083DFEC4
+_080F4F54: .4byte 0x00008fe4
+_080F4F58: .4byte 0x000087da
+_080F4F5C: .4byte 0x00008fe6
+_080F4F60:
+ movs r0, 0
+ b _080F4F66
+_080F4F64:
+ movs r0, 0x1
+_080F4F66:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4D88
+
+ thumb_func_start sub_80F4F78
+sub_80F4F78: @ 80F4F78
+ push {lr}
+ ldr r0, _080F4FA4 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F4FA8 @ =0x00009040
+ adds r0, r1, r2
+ ldr r3, _080F4FAC @ =0x00008fe9
+ adds r2, r1, r3
+ movs r3, 0
+ ldrsb r3, [r2, r3]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _080F4FB0 @ =0x00009004
+ adds r2, r3
+ adds r1, r2
+ bl sub_80F53EC
+ bl sub_80F5504
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F4FA4: .4byte gUnknown_083DFEC4
+_080F4FA8: .4byte 0x00009040
+_080F4FAC: .4byte 0x00008fe9
+_080F4FB0: .4byte 0x00009004
+ thumb_func_end sub_80F4F78
+
+ thumb_func_start sub_80F4FB4
+sub_80F4FB4: @ 80F4FB4
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F170C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F4FD2
+ cmp r0, 0
+ beq _080F4FD4
+_080F4FD2:
+ movs r1, 0x1
+_080F4FD4:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F4FB4
+
+ thumb_func_start sub_80F4FDC
+sub_80F4FDC: @ 80F4FDC
+ push {lr}
+ ldr r0, _080F5020 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F5024 @ =0x000076aa
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F4FFE
+ ldr r3, _080F5028 @ =0x000087dc
+ adds r0, r2, r3
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r3, _080F502C @ =0x00008828
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _080F501A
+_080F4FFE:
+ ldr r1, _080F5030 @ =0x00008fe9
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080F5034 @ =0x00009004
+ adds r0, r3
+ adds r0, r2, r0
+ adds r3, 0x3C
+ adds r1, r2, r3
+ bl sub_80F53EC
+_080F501A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5020: .4byte gUnknown_083DFEC4
+_080F5024: .4byte 0x000076aa
+_080F5028: .4byte 0x000087dc
+_080F502C: .4byte 0x00008828
+_080F5030: .4byte 0x00008fe9
+_080F5034: .4byte 0x00009004
+ thumb_func_end sub_80F4FDC
+
+ thumb_func_start sub_80F5038
+sub_80F5038: @ 80F5038
+ push {r4,lr}
+ bl sub_80F5504
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F173C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0
+ bne _080F5056
+ cmp r0, 0
+ beq _080F5058
+_080F5056:
+ movs r1, 0x1
+_080F5058:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5038
+
+ thumb_func_start sub_80F5060
+sub_80F5060: @ 80F5060
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _080F507C
+ ldr r0, _080F5074 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5078 @ =0x00008feb
+ adds r0, r1
+ b _080F5084
+ .align 2, 0
+_080F5074: .4byte gUnknown_083DFEC4
+_080F5078: .4byte 0x00008feb
+_080F507C:
+ ldr r0, _080F50FC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F5100 @ =0x00008fea
+ adds r0, r2
+_080F5084:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F50FC @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r3, _080F5104 @ =0x00008fe9
+ adds r5, r4, r3
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080F5108 @ =0x00009004
+ adds r0, r2
+ adds r0, r4, r0
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r2
+ adds r1, r4, r1
+ bl sub_80F53EC
+ ldr r0, _080F510C @ =0x000087dc
+ adds r3, r4, r0
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 2
+ adds r0, r4, r0
+ ldr r2, _080F5110 @ =0x0000893f
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r12, r0
+ cmp r7, 0
+ beq _080F5158
+ ldr r7, _080F5100 @ =0x00008fea
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ adds r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5114 @ =0x00008fec
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r5, r4, 0
+ ldrh r1, [r3]
+ movs r7, 0
+ ldrsh r0, [r3, r7]
+ cmp r0, 0
+ beq _080F5118
+ subs r2, r1, 0x1
+ b _080F5120
+ .align 2, 0
+_080F50FC: .4byte gUnknown_083DFEC4
+_080F5100: .4byte 0x00008fea
+_080F5104: .4byte 0x00008fe9
+_080F5108: .4byte 0x00009004
+_080F510C: .4byte 0x000087dc
+_080F5110: .4byte 0x0000893f
+_080F5114: .4byte 0x00008fec
+_080F5118:
+ ldr r1, _080F513C @ =0x000087da
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ subs r2, r0, 0x1
+_080F5120:
+ ldr r1, _080F5140 @ =0x000087dc
+ adds r0, r5, r1
+ strh r2, [r0]
+ ldr r2, _080F5144 @ =gUnknown_083DFEC4
+ ldr r3, [r2]
+ adds r1, r3, r1
+ ldrh r4, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _080F5148
+ subs r1, r4, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F513C: .4byte 0x000087da
+_080F5140: .4byte 0x000087dc
+_080F5144: .4byte gUnknown_083DFEC4
+_080F5148:
+ ldr r7, _080F5154 @ =0x000087da
+ adds r0, r3, r7
+ ldrh r0, [r0]
+ subs r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F5154: .4byte 0x000087da
+_080F5158:
+ ldr r7, _080F518C @ =0x00008feb
+ adds r1, r4, r7
+ ldrb r0, [r1]
+ subs r7, 0x1
+ adds r2, r4, r7
+ strb r0, [r2]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r6, [r5]
+ ldrb r1, [r2]
+ ldr r2, _080F5190 @ =0x00008fec
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, r4, 0
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ ldr r5, _080F5194 @ =0x000087da
+ adds r0, r2, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F5198
+ ldrh r0, [r3]
+ adds r3, r0, 0x1
+ b _080F519A
+ .align 2, 0
+_080F518C: .4byte 0x00008feb
+_080F5190: .4byte 0x00008fec
+_080F5194: .4byte 0x000087da
+_080F5198:
+ movs r3, 0
+_080F519A:
+ ldr r1, _080F51C0 @ =0x000087dc
+ adds r0, r2, r1
+ strh r3, [r0]
+ ldr r2, _080F51C4 @ =gUnknown_083DFEC4
+ ldr r3, [r2]
+ adds r4, r3, r1
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r5, _080F51C8 @ =0x000087da
+ adds r0, r3, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080F51CC
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ b _080F51CE
+ .align 2, 0
+_080F51C0: .4byte 0x000087dc
+_080F51C4: .4byte gUnknown_083DFEC4
+_080F51C8: .4byte 0x000087da
+_080F51CC:
+ movs r1, 0
+_080F51CE:
+ ldr r4, _080F51FC @ =0x00008fee
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldr r5, _080F5200 @ =0x000087dc
+ adds r0, r1, r5
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r3, _080F5204 @ =0x0000893f
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 31
+ mov r4, r12
+ cmp r4, 0
+ bne _080F520C
+ adds r5, 0x4
+ adds r1, r5
+ ldr r0, _080F5208 @ =sub_80F5264
+ b _080F5226
+ .align 2, 0
+_080F51FC: .4byte 0x00008fee
+_080F5200: .4byte 0x000087dc
+_080F5204: .4byte 0x0000893f
+_080F5208: .4byte sub_80F5264
+_080F520C:
+ cmp r0, 0
+ bne _080F5220
+ ldr r7, _080F5218 @ =0x000087e0
+ adds r1, r7
+ ldr r0, _080F521C @ =sub_80F52F8
+ b _080F5226
+ .align 2, 0
+_080F5218: .4byte 0x000087e0
+_080F521C: .4byte sub_80F52F8
+_080F5220:
+ ldr r0, _080F5238 @ =0x000087e0
+ adds r1, r0
+ ldr r0, _080F523C @ =sub_80F5364
+_080F5226:
+ str r0, [r1]
+ ldr r0, [r2]
+ ldr r1, _080F5240 @ =0x000087de
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5238: .4byte 0x000087e0
+_080F523C: .4byte sub_80F5364
+_080F5240: .4byte 0x000087de
+ thumb_func_end sub_80F5060
+
+ thumb_func_start gpu_sync_bg_show
+gpu_sync_bg_show: @ 80F5244
+ push {lr}
+ ldr r0, _080F525C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5260 @ =0x000087e0
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F525C: .4byte gUnknown_083DFEC4
+_080F5260: .4byte 0x000087e0
+ thumb_func_end gpu_sync_bg_show
+
+ thumb_func_start sub_80F5264
+sub_80F5264: @ 80F5264
+ push {r4,r5,lr}
+ ldr r0, _080F5280 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5284 @ =0x000087de
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ cmp r1, 0x1
+ beq _080F52AA
+ cmp r1, 0x1
+ bgt _080F5288
+ cmp r1, 0
+ beq _080F528E
+ b _080F52F0
+ .align 2, 0
+_080F5280: .4byte gUnknown_083DFEC4
+_080F5284: .4byte 0x000087de
+_080F5288:
+ cmp r1, 0x2
+ beq _080F52EC
+ b _080F52F0
+_080F528E:
+ ldr r2, _080F52D8 @ =0x00008fe9
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_080F52AA:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F52F0
+ ldr r0, _080F52DC @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F52E0 @ =0x00008fee
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ ldr r2, _080F52E4 @ =0x00008fec
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldr r0, _080F52E8 @ =0x000087de
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F52F0
+ .align 2, 0
+_080F52D8: .4byte 0x00008fe9
+_080F52DC: .4byte gUnknown_083DFEC4
+_080F52E0: .4byte 0x00008fee
+_080F52E4: .4byte 0x00008fec
+_080F52E8: .4byte 0x000087de
+_080F52EC:
+ movs r0, 0
+ b _080F52F2
+_080F52F0:
+ movs r0, 0x1
+_080F52F2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5264
+
+ thumb_func_start sub_80F52F8
+sub_80F52F8: @ 80F52F8
+ push {r4,r5,lr}
+ ldr r0, _080F5310 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F5314 @ =0x000087de
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080F5318
+ cmp r0, 0x1
+ beq _080F5358
+ b _080F535C
+ .align 2, 0
+_080F5310: .4byte gUnknown_083DFEC4
+_080F5314: .4byte 0x000087de
+_080F5318:
+ bl sub_80F5038
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F535C
+ ldr r1, _080F5350 @ =0x00008fe9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ ldr r2, _080F5354 @ =0x00008fee
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F535C
+ .align 2, 0
+_080F5350: .4byte 0x00008fe9
+_080F5354: .4byte 0x00008fee
+_080F5358:
+ movs r0, 0
+ b _080F535E
+_080F535C:
+ movs r0, 0x1
+_080F535E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F52F8
+
+ thumb_func_start sub_80F5364
+sub_80F5364: @ 80F5364
+ push {r4,r5,lr}
+ ldr r0, _080F5380 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F5384 @ =0x000087de
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _080F53B8
+ cmp r0, 0x1
+ bgt _080F5388
+ cmp r0, 0
+ beq _080F538E
+ b _080F53E4
+ .align 2, 0
+_080F5380: .4byte gUnknown_083DFEC4
+_080F5384: .4byte 0x000087de
+_080F5388:
+ cmp r0, 0x2
+ beq _080F53CA
+ b _080F53E4
+_080F538E:
+ bl sub_80F5504
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+ ldr r1, _080F53B4 @ =0x00008fe9
+ adds r4, r1
+ ldrb r0, [r4]
+ bl sub_80F2E18
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80F01E0
+ b _080F53C2
+ .align 2, 0
+_080F53B4: .4byte 0x00008fe9
+_080F53B8:
+ bl sub_80F4FB4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F53E4
+_080F53C2:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080F53E4
+_080F53CA:
+ ldr r2, _080F53E0 @ =0x00008fee
+ adds r0, r4, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ subs r2, 0x2
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ bl sub_80F4900
+ movs r0, 0
+ b _080F53E6
+ .align 2, 0
+_080F53E0: .4byte 0x00008fee
+_080F53E4:
+ movs r0, 0x1
+_080F53E6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5364
+
+ thumb_func_start sub_80F53EC
+sub_80F53EC: @ 80F53EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ mov r9, r1
+ movs r7, 0
+ ldr r0, _080F54F4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+_080F5404:
+ lsls r4, r7, 2
+ ldr r1, [sp]
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ lsls r5, r1, 8
+ mov r2, r9
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ adds r7, 0x1
+ mov r10, r7
+ mov r8, r4
+_080F5428:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ add r0, r8
+ ldr r7, [sp, 0x4]
+ adds r0, r7, r0
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ movs r7, 0x1
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54F8 @ =0x00009054
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F5428
+ ldr r2, _080F54F4 @ =gUnknown_083DFEC4
+ ldr r1, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r1, r0
+ mov r3, r9
+ adds r2, r4, r3
+ ldrh r0, [r2]
+ ldr r7, _080F54F8 @ =0x00009054
+ adds r1, r7
+ strh r0, [r1]
+ ldr r1, [sp]
+ adds r0, r4, r1
+ ldrh r1, [r0, 0x2]
+ lsls r5, r1, 8
+ ldrh r0, [r2, 0x2]
+ subs r0, r1
+ lsls r0, 8
+ movs r1, 0xA
+ bl __divsi3
+ adds r6, r0, 0
+ movs r3, 0
+ ldr r0, _080F54F4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ mov r12, r0
+ str r4, [sp, 0x8]
+ movs r2, 0x1
+ mov r8, r2
+_080F548E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ ldr r7, [sp, 0x8]
+ adds r0, r7, r0
+ add r0, r12
+ asrs r2, r5, 8
+ asrs r1, r5, 7
+ mov r7, r8
+ ands r1, r7
+ adds r2, r1
+ ldr r1, _080F54FC @ =0x00009056
+ adds r0, r1
+ strh r2, [r0]
+ adds r5, r6
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _080F548E
+ ldr r7, _080F54F4 @ =gUnknown_083DFEC4
+ ldr r2, [r7]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r2, r0
+ mov r3, r9
+ adds r1, r4, r3
+ ldrh r1, [r1, 0x2]
+ ldr r7, _080F54FC @ =0x00009056
+ adds r0, r7
+ strh r1, [r0]
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _080F5404
+ ldr r3, _080F5500 @ =0x00009342
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F54F4: .4byte gUnknown_083DFEC4
+_080F54F8: .4byte 0x00009054
+_080F54FC: .4byte 0x00009056
+_080F5500: .4byte 0x00009342
+ thumb_func_end sub_80F53EC
+
+ thumb_func_start sub_80F5504
+sub_80F5504: @ 80F5504
+ push {r4,lr}
+ ldr r0, _080F551C @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080F5520 @ =0x00009342
+ adds r4, r2, r0
+ ldrh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0x9
+ bls _080F5524
+ movs r0, 0
+ b _080F5544
+ .align 2, 0
+_080F551C: .4byte gUnknown_083DFEC4
+_080F5520: .4byte 0x00009342
+_080F5524:
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080F554C @ =0x00009054
+ adds r0, r1
+ adds r0, r2, r0
+ bl sub_80F556C
+ ldrh r1, [r4]
+ movs r0, 0xA
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_080F5544:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F554C: .4byte 0x00009054
+ thumb_func_end sub_80F5504
+
+ thumb_func_start sub_80F5550
+sub_80F5550: @ 80F5550
+ push {lr}
+ bl sub_80F53EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5550
+
+ thumb_func_start sub_80F555C
+sub_80F555C: @ 80F555C
+ push {lr}
+ bl sub_80F5504
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F555C
+
+ thumb_func_start sub_80F556C
+sub_80F556C: @ 80F556C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _080F55A0 @ =gUnknown_083DFEC4
+ ldr r0, [r5]
+ ldr r1, _080F55A4 @ =0x0000911c
+ adds r3, r0, r1
+_080F557A:
+ lsls r0, r2, 2
+ adds r1, r3, r0
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _080F557A
+ ldr r0, [r5]
+ ldr r1, _080F55A8 @ =0x00009344
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F55A0: .4byte gUnknown_083DFEC4
+_080F55A4: .4byte 0x0000911c
+_080F55A8: .4byte 0x00009344
+ thumb_func_end sub_80F556C
+
+ thumb_func_start sub_80F55AC
+sub_80F55AC: @ 80F55AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ mov r8, r1
+ ldr r1, _080F5674 @ =gUnknown_083E4890
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r6, 0x1
+ movs r0, 0x9B
+ mov r3, r8
+ strh r0, [r3]
+ movs r0, 0x5B
+ subs r0, r2
+ strh r0, [r3, 0x2]
+ movs r7, 0x40
+ movs r0, 0
+ mov r12, r0
+ movs r2, 0x1
+ mov r9, r2
+ ldr r3, _080F5678 @ =gSineTable
+ mov r10, r3
+_080F55DE:
+ adds r0, r7, 0
+ adds r0, 0x33
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, r12
+ lsls r0, r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r0, r2
+ lsrs r3, r0, 24
+ mov r12, r3
+ cmp r0, 0
+ bge _080F55FC
+ movs r0, 0x4
+ mov r12, r0
+_080F55FC:
+ mov r1, r12
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0x2
+ bne _080F560C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_080F560C:
+ ldrb r0, [r6]
+ ldr r2, _080F5674 @ =gUnknown_083E4890
+ adds r0, r2
+ ldrb r2, [r0]
+ adds r6, 0x1
+ lsls r0, r4, 2
+ mov r1, r8
+ adds r3, r0, r1
+ adds r0, r7, 0
+ adds r0, 0x40
+ lsls r0, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r2
+ asrs r5, r0, 8
+ adds r0, r5, 0
+ adds r0, 0x9B
+ strh r0, [r3]
+ lsls r0, r7, 1
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ asrs r1, 8
+ movs r0, 0x5B
+ subs r0, r1
+ strh r0, [r3, 0x2]
+ cmp r4, 0x2
+ bgt _080F5658
+ cmp r2, 0x20
+ bne _080F5652
+ cmp r4, 0x2
+ beq _080F5658
+_080F5652:
+ adds r0, r5, 0
+ adds r0, 0x9C
+ strh r0, [r3]
+_080F5658:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x4
+ bls _080F55DE
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5674: .4byte gUnknown_083E4890
+_080F5678: .4byte gSineTable
+ thumb_func_end sub_80F55AC
+
+ thumb_func_start sub_80F567C
+sub_80F567C: @ 80F567C
+ push {lr}
+ bl sub_80F55AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F567C
+
+ thumb_func_start sub_80F5688
+sub_80F5688: @ 80F5688
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ str r2, [sp]
+ ldr r7, [sp, 0x34]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _080F56D0
+ adds r2, r0, 0
+ str r2, [sp, 0x4]
+ ldr r3, [sp]
+ ldrh r0, [r3, 0x2]
+ ldrh r1, [r5]
+ lsls r4, r1, 10
+ ldrh r2, [r3]
+ mov r10, r2
+ ldr r3, [sp, 0x4]
+ subs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r2, r1
+ b _080F56F2
+_080F56D0:
+ ldrh r0, [r5, 0x2]
+ ldr r1, [sp]
+ ldrh r1, [r1, 0x2]
+ str r1, [sp, 0x4]
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ lsls r4, r1, 10
+ ldrh r3, [r5]
+ mov r10, r3
+ ldr r2, [sp, 0x4]
+ subs r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0
+ beq _080F56FC
+ subs r0, r3, r1
+_080F56F2:
+ lsls r0, 10
+ mov r1, r8
+ bl __divsi3
+ str r0, [sp, 0x8]
+_080F56FC:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r7, 0
+ bne _080F5746
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r7, r8
+ bcs _080F57D4
+ movs r7, 0x1
+_080F5726:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r1, [sp, 0x8]
+ adds r4, r1
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5726
+ b _080F57D4
+_080F5746:
+ ldr r2, [sp, 0x8]
+ cmp r2, 0
+ ble _080F57E4
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ movs r5, 0
+ mov r3, r9
+ lsls r3, 1
+ mov r12, r3
+ mov r0, r10
+ add r0, r9
+ str r0, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5798
+ ldr r0, _080F57D8 @ =0x00026bff
+ cmp r4, r0
+ bgt _080F5798
+ mov r1, r12
+ str r1, [sp, 0x10]
+ mov r10, r0
+_080F5772:
+ ldr r3, [sp, 0x10]
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r3, 0x1
+ ands r0, r3
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5798
+ cmp r4, r10
+ ble _080F5772
+_080F5798:
+ ldr r1, _080F57DC @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r5
+ ldr r3, _080F57E0 @ =0x00009340
+ adds r0, r3
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ cmp r5, r8
+ bcs _080F57D4
+ mov r3, r12
+ movs r7, 0x1
+_080F57B6:
+ adds r2, r3, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r7
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F57B6
+_080F57D4:
+ subs r0, r6, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F57D8: .4byte 0x00026bff
+_080F57DC: .4byte gUnknown_083DFEC4
+_080F57E0: .4byte 0x00009340
+_080F57E4:
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bge _080F5890
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ movs r5, 0
+ mov r2, r9
+ lsls r2, 1
+ mov r12, r2
+ mov r3, r10
+ add r3, r9
+ str r3, [sp, 0xC]
+ cmp r5, r8
+ bcs _080F5842
+ adds r3, r2, r6
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ movs r2, 0x1
+ ands r0, r2
+ adds r1, r0
+ add r1, r9
+ strh r1, [r3]
+ b _080F5838
+_080F5816:
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r6, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcs _080F5842
+ mov r1, r12
+ adds r3, r1, r6
+ asrs r2, r4, 10
+ asrs r0, r4, 9
+ movs r1, 0x1
+ ands r0, r1
+ adds r2, r0
+ add r2, r9
+ strh r2, [r3]
+_080F5838:
+ ldr r0, _080F5884 @ =0x00026bff
+ cmp r4, r0
+ bgt _080F5816
+ movs r0, 0x9B
+ strh r0, [r3]
+_080F5842:
+ ldr r2, _080F5888 @ =gUnknown_083DFEC4
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r5
+ ldr r2, _080F588C @ =0x00009340
+ adds r0, r2
+ strh r1, [r0]
+ ldrh r0, [r0]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r7, r0
+ cmp r5, r8
+ bcs _080F587E
+ mov r3, r12
+ movs r6, 0x1
+_080F5860:
+ adds r2, r3, r7
+ asrs r1, r4, 10
+ asrs r0, r4, 9
+ ands r0, r6
+ adds r1, r0
+ add r1, r9
+ strh r1, [r2]
+ ldr r0, [sp, 0x8]
+ adds r4, r0
+ adds r7, 0x4
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ bcc _080F5860
+_080F587E:
+ subs r0, r7, 0x4
+ b _080F58C4
+ .align 2, 0
+_080F5884: .4byte 0x00026bff
+_080F5888: .4byte gUnknown_083DFEC4
+_080F588C: .4byte 0x00009340
+_080F5890:
+ ldr r0, _080F58BC @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F58C0 @ =0x00009340
+ adds r0, r1
+ mov r2, sp
+ ldrh r2, [r2, 0x4]
+ strh r2, [r0]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x38
+ lsls r0, 2
+ adds r6, r0
+ adds r7, r0
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ ldr r3, [sp]
+ ldrh r0, [r3]
+ strh r0, [r7]
+ movs r0, 0x9B
+ strh r0, [r7, 0x2]
+ b _080F58CC
+ .align 2, 0
+_080F58BC: .4byte gUnknown_083DFEC4
+_080F58C0: .4byte 0x00009340
+_080F58C4:
+ add r0, r12
+ mov r1, sp
+ ldrh r1, [r1, 0xC]
+ strh r1, [r0]
+_080F58CC:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F5688
+
+ thumb_func_start sub_80F58DC
+sub_80F58DC: @ 80F58DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x6]
+ cmp r0, r1
+ bcs _080F5914
+ adds r4, r0, 0
+ mov r8, r4
+ ldr r0, _080F590C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5910 @ =0x00009130
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ b _080F5930
+ .align 2, 0
+_080F590C: .4byte gUnknown_083DFEC4
+_080F5910: .4byte 0x00009130
+_080F5914:
+ ldrh r4, [r5, 0x6]
+ mov r8, r4
+ ldr r0, _080F5A08 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5A0C @ =0x00009130
+ adds r0, r1
+ adds r4, r5, 0x4
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80F5688
+_080F5930:
+ adds r1, r4, 0
+ ldr r0, _080F5A08 @ =gUnknown_083DFEC4
+ ldr r6, [r0]
+ ldr r0, _080F5A0C @ =0x00009130
+ adds r4, r6, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl sub_80F5688
+ movs r3, 0
+ ldrh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xE]
+ cmp r0, r1
+ bhi _080F5958
+ movs r3, 0x1
+_080F5958:
+ adds r2, r5, 0
+ adds r2, 0xC
+ ldr r1, _080F5A10 @ =0x00009238
+ adds r0, r6, r1
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r8
+ bcs _080F5990
+ adds r7, r4, 0
+ movs r3, 0
+ ldr r0, _080F5A14 @ =0x00009132
+ adds r4, r6, r0
+_080F5978:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r7, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r8
+ bcc _080F5978
+_080F5990:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5A08 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r4, _080F5A18 @ =0x00009340
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F59BE
+ ldr r4, _080F5A0C @ =0x00009130
+ adds r3, r4
+ movs r4, 0x9B
+_080F59A8:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F59A8
+_080F59BE:
+ ldr r4, [r6]
+ ldr r1, _080F5A18 @ =0x00009340
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldrh r1, [r5, 0xA]
+ cmp r0, r1
+ bcs _080F59CE
+ adds r0, r1, 0
+_080F59CE:
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F59FA
+ ldr r0, _080F5A0C @ =0x00009130
+ adds r5, r4, r0
+ movs r3, 0
+ ldr r1, _080F5A14 @ =0x00009132
+ adds r4, r1
+_080F59E2:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F59E2
+_080F59FA:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5A08: .4byte gUnknown_083DFEC4
+_080F5A0C: .4byte 0x00009130
+_080F5A10: .4byte 0x00009238
+_080F5A14: .4byte 0x00009132
+_080F5A18: .4byte 0x00009340
+ thumb_func_end sub_80F58DC
+
+ thumb_func_start sub_80F5A1C
+sub_80F5A1C: @ 80F5A1C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r5, 0x12]
+ cmp r0, r1
+ bcs _080F5A54
+ adds r7, r0, 0
+ ldr r0, _080F5A4C @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F5A50 @ =0x00009238
+ adds r0, r2
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ b _080F5A70
+ .align 2, 0
+_080F5A4C: .4byte gUnknown_083DFEC4
+_080F5A50: .4byte 0x00009238
+_080F5A54:
+ ldrh r7, [r5, 0x12]
+ ldr r0, _080F5B28 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r4, _080F5B2C @ =0x00009238
+ adds r0, r4
+ adds r4, r5, 0
+ adds r4, 0x10
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80F5688
+_080F5A70:
+ adds r1, r4, 0
+ ldr r0, _080F5B28 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r4, _080F5B2C @ =0x00009238
+ add r4, r8
+ adds r2, r5, 0
+ adds r2, 0xC
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0
+ bl sub_80F5688
+ movs r2, 0x38
+ cmp r2, r7
+ bcs _080F5AB2
+ adds r6, r4, 0
+ movs r3, 0
+ ldr r4, _080F5B30 @ =0x0000923a
+ add r4, r8
+_080F5A9A:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r6, r0
+ strh r3, [r1]
+ adds r0, r4, r0
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r7
+ bcc _080F5A9A
+_080F5AB2:
+ ldrh r2, [r5, 0x2]
+ ldr r0, _080F5B28 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r4, _080F5B34 @ =0x00009340
+ adds r1, r3, r4
+ adds r6, r0, 0
+ ldrh r0, [r1]
+ cmp r2, r0
+ bhi _080F5AE0
+ ldr r4, _080F5B30 @ =0x0000923a
+ adds r3, r4
+ movs r4, 0x9B
+_080F5ACA:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _080F5ACA
+_080F5AE0:
+ ldrh r0, [r5, 0xE]
+ adds r1, r0, 0x1
+ ldr r3, [r6]
+ ldr r2, _080F5B34 @ =0x00009340
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ cmp r0, r1
+ bge _080F5AF2
+ adds r0, r1, 0
+_080F5AF2:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bhi _080F5B1C
+ ldr r4, _080F5B2C @ =0x00009238
+ adds r5, r3, r4
+ movs r4, 0
+ ldr r0, _080F5B30 @ =0x0000923a
+ adds r3, r0
+_080F5B04:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 2
+ adds r1, r5, r0
+ strh r4, [r1]
+ adds r0, r3, r0
+ strh r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x79
+ bls _080F5B04
+_080F5B1C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5B28: .4byte gUnknown_083DFEC4
+_080F5B2C: .4byte 0x00009238
+_080F5B30: .4byte 0x0000923a
+_080F5B34: .4byte 0x00009340
+ thumb_func_end sub_80F5A1C
+
+ thumb_func_start sub_80F5B38
+sub_80F5B38: @ 80F5B38
+ ldr r0, _080F5B48 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5B4C @ =0x00009345
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080F5B48: .4byte gUnknown_083DFEC4
+_080F5B4C: .4byte 0x00009345
+ thumb_func_end sub_80F5B38
+
+ thumb_func_start sub_80F5B50
+sub_80F5B50: @ 80F5B50
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080F5B68 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F5B6C @ =0x00009345
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080F5B70
+ cmp r0, 0x1
+ beq _080F5BB4
+ b _080F5BCC
+ .align 2, 0
+_080F5B68: .4byte gUnknown_083DFEC4
+_080F5B6C: .4byte 0x00009345
+_080F5B70:
+ bl dp12_8087EA4
+ ldr r0, _080F5BA8 @ =gUnknown_03004DE0
+ movs r2, 0xEF
+ movs r3, 0xF4
+ lsls r3, 3
+ adds r1, r0, r3
+ adds r0, 0x20
+ movs r3, 0xF
+_080F5B82:
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r1]
+ strh r2, [r1, 0x2]
+ adds r1, 0x4
+ adds r0, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080F5B82
+ ldr r0, _080F5BAC @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r5, _080F5BB0 @ =0x00009345
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080F5BCE
+ .align 2, 0
+_080F5BA8: .4byte gUnknown_03004DE0
+_080F5BAC: .4byte gUnknown_083DFEC4
+_080F5BB0: .4byte 0x00009345
+_080F5BB4:
+ mov r0, sp
+ ldr r1, _080F5BD8 @ =gUnknown_083E4990
+ ldm r1!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_080F5BCC:
+ movs r0, 0
+_080F5BCE:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5BD8: .4byte gUnknown_083E4990
+ thumb_func_end sub_80F5B50
+
+ thumb_func_start sub_80F5BDC
+sub_80F5BDC: @ 80F5BDC
+ push {lr}
+ ldr r1, _080F5BEC @ =gUnknown_03004DC0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5BEC: .4byte gUnknown_03004DC0
+ thumb_func_end sub_80F5BDC
+
+ thumb_func_start sub_80F5BF0
+sub_80F5BF0: @ 80F5BF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r0, _080F5CB8 @ =gUnknown_083DFEC4
+ ldr r5, [r0]
+ ldr r1, _080F5CBC @ =0x00009344
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5CA6
+ ldr r0, _080F5CC0 @ =0x0000911c
+ adds r4, r5, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r6, 0
+ ldr r1, _080F5CC4 @ =gUnknown_03004DE0
+ mov r12, r1
+ movs r0, 0xF0
+ lsls r0, 3
+ add r0, r12
+ mov r9, r0
+ adds r7, r5, 0
+ ldr r1, _080F5CC8 @ =0x0000ffff
+ mov r8, r1
+ ldr r5, _080F5CCC @ =0x00009130
+ adds r5, r7, r5
+ str r5, [sp]
+ ldr r0, _080F5CD0 @ =0x00009132
+ adds r0, r7, r0
+ str r0, [sp, 0x4]
+ ldr r1, _080F5CD4 @ =0x00009238
+ adds r1, r7
+ mov r10, r1
+_080F5C40:
+ adds r2, r6, 0
+ adds r2, 0x37
+ lsls r3, r2, 2
+ mov r5, r9
+ adds r5, r3, r5
+ str r5, [sp, 0x8]
+ add r3, r12
+ lsls r4, r6, 2
+ ldr r1, [sp]
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r5, [sp, 0x4]
+ adds r1, r5, r4
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r3]
+ mov r1, r8
+ ands r0, r1
+ ldr r5, [sp, 0x8]
+ strh r0, [r5]
+ lsls r2, 1
+ adds r2, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r3, r2, r0
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r5, _080F5CD8 @ =0x0000923a
+ adds r0, r7, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ strh r1, [r3]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080F5CB8 @ =gUnknown_083DFEC4
+ cmp r6, 0x41
+ bls _080F5C40
+ ldr r0, [r0]
+ ldr r1, _080F5CBC @ =0x00009344
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5CA6:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5CB8: .4byte gUnknown_083DFEC4
+_080F5CBC: .4byte 0x00009344
+_080F5CC0: .4byte 0x0000911c
+_080F5CC4: .4byte gUnknown_03004DE0
+_080F5CC8: .4byte 0x0000ffff
+_080F5CCC: .4byte 0x00009130
+_080F5CD0: .4byte 0x00009132
+_080F5CD4: .4byte 0x00009238
+_080F5CD8: .4byte 0x0000923a
+ thumb_func_end sub_80F5BF0
+
+ thumb_func_start sub_80F5CDC
+sub_80F5CDC: @ 80F5CDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080F5DB0 @ =gUnknown_083DFEC4
+ ldr r6, [r0]
+ ldr r1, _080F5DB4 @ =0x00009344
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5DA0
+ ldr r0, _080F5DB8 @ =0x0000911c
+ adds r4, r6, r0
+ adds r0, r4, 0
+ bl sub_80F58DC
+ adds r0, r4, 0
+ bl sub_80F5A1C
+ movs r0, 0x37
+ subs r0, r5
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r7, 0
+ ldr r1, _080F5DBC @ =gUnknown_03004DE0
+ mov r12, r1
+ movs r4, 0xF0
+ lsls r4, 3
+ add r4, r12
+ mov r9, r4
+ ldr r0, _080F5DC0 @ =0x0000ffff
+ mov r8, r0
+ ldr r1, _080F5DC4 @ =0x00009130
+ adds r1, r6, r1
+ str r1, [sp]
+ ldr r4, _080F5DC8 @ =0x00009132
+ adds r4, r6, r4
+ str r4, [sp, 0x4]
+ ldr r0, _080F5DCC @ =0x00009238
+ adds r0, r6
+ mov r10, r0
+_080F5D36:
+ lsls r2, r5, 1
+ mov r1, r9
+ adds r1, r2, r1
+ str r1, [sp, 0x8]
+ add r2, r12
+ lsls r3, r7, 2
+ ldr r4, [sp]
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ lsls r0, 8
+ ldr r4, [sp, 0x4]
+ adds r1, r4, r3
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r8
+ ands r0, r1
+ ldr r4, [sp, 0x8]
+ strh r0, [r4]
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r0, r9
+ adds r0, r2, r0
+ str r0, [sp, 0x8]
+ add r2, r12
+ mov r1, r10
+ adds r0, r1, r3
+ ldrh r1, [r0]
+ lsls r1, 8
+ ldr r4, _080F5DD0 @ =0x0000923a
+ adds r0, r6, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ orrs r1, r0
+ strh r1, [r2]
+ mov r0, r8
+ ands r1, r0
+ ldr r4, [sp, 0x8]
+ strh r1, [r4]
+ adds r0, r5, 0x2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, _080F5DB0 @ =gUnknown_083DFEC4
+ cmp r7, 0x41
+ bls _080F5D36
+ ldr r0, [r0]
+ ldr r1, _080F5DB4 @ =0x00009344
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080F5DA0:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F5DB0: .4byte gUnknown_083DFEC4
+_080F5DB4: .4byte 0x00009344
+_080F5DB8: .4byte 0x0000911c
+_080F5DBC: .4byte gUnknown_03004DE0
+_080F5DC0: .4byte 0x0000ffff
+_080F5DC4: .4byte 0x00009130
+_080F5DC8: .4byte 0x00009132
+_080F5DCC: .4byte 0x00009238
+_080F5DD0: .4byte 0x0000923a
+ thumb_func_end sub_80F5CDC
+
+ thumb_func_start sub_80F5DD4
+sub_80F5DD4: @ 80F5DD4
+ push {lr}
+ ldr r0, _080F5DE8 @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DEC
+ bl sub_80F5E20
+ b _080F5E18
+ .align 2, 0
+_080F5DE8: .4byte gMain
+_080F5DEC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5DFA
+ bl sub_80F5EE4
+ b _080F5E18
+_080F5DFA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080F5E08
+ bl sub_80F5FB4
+ b _080F5E18
+_080F5E08:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080F5E14
+ movs r0, 0
+ b _080F5E1C
+_080F5E14:
+ bl sub_80F6010
+_080F5E18:
+ lsls r0, 24
+ lsrs r0, 24
+_080F5E1C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F5DD4
+
+ thumb_func_start sub_80F5E20
+sub_80F5E20: @ 80F5E20
+ push {r4,r5,lr}
+ ldr r0, _080F5E38 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r3, _080F5E3C @ =0x0000876e
+ adds r1, r2, r3
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r4, r0, 0
+ cmp r1, 0
+ bne _080F5E40
+ movs r0, 0
+ b _080F5EC8
+ .align 2, 0
+_080F5E38: .4byte gUnknown_083DFEC4
+_080F5E3C: .4byte 0x0000876e
+_080F5E40:
+ ldr r1, _080F5E6C @ =0x000087c9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5E74
+ ldr r3, _080F5E70 @ =0x0000876c
+ adds r0, r2, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0
+ bne _080F5E74
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5EC8
+ .align 2, 0
+_080F5E6C: .4byte 0x000087c9
+_080F5E70: .4byte 0x0000876c
+_080F5E74:
+ ldr r1, [r4]
+ ldr r0, _080F5ED0 @ =0x0000876c
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ subs r3, r0, 0x1
+ strh r3, [r2]
+ ldr r5, _080F5ED4 @ =0x000087c9
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5E98
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080F5E98
+ ldr r3, _080F5ED8 @ =0x00008772
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F5E98:
+ ldr r0, [r4]
+ ldr r5, _080F5EDC @ =0x00008770
+ adds r2, r0, r5
+ ldr r3, _080F5ED0 @ =0x0000876c
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ subs r5, 0x2
+ adds r4, r0, r5
+ strh r2, [r4]
+ ldr r1, _080F5EE0 @ =0x00008774
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5EC6
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5EC6:
+ movs r0, 0x1
+_080F5EC8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5ED0: .4byte 0x0000876c
+_080F5ED4: .4byte 0x000087c9
+_080F5ED8: .4byte 0x00008772
+_080F5EDC: .4byte 0x00008770
+_080F5EE0: .4byte 0x00008774
+ thumb_func_end sub_80F5E20
+
+ thumb_func_start sub_80F5EE4
+sub_80F5EE4: @ 80F5EE4
+ push {r4-r6,lr}
+ ldr r3, _080F5F04 @ =gUnknown_083DFEC4
+ ldr r4, [r3]
+ ldr r1, _080F5F08 @ =0x0000876e
+ adds r0, r4, r1
+ ldr r2, _080F5F0C @ =0x00008774
+ adds r1, r4, r2
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ adds r5, r3, 0
+ cmp r2, r0
+ bne _080F5F10
+ movs r0, 0
+ b _080F5F98
+ .align 2, 0
+_080F5F04: .4byte gUnknown_083DFEC4
+_080F5F08: .4byte 0x0000876e
+_080F5F0C: .4byte 0x00008774
+_080F5F10:
+ ldr r1, _080F5F38 @ =0x000087c9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F5F40
+ ldr r2, _080F5F3C @ =0x0000876c
+ adds r0, r4, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x7
+ bne _080F5F40
+ movs r0, 0x1
+ bl sub_80F063C
+ movs r0, 0x1
+ bl sub_80F6074
+ movs r0, 0x2
+ b _080F5F98
+ .align 2, 0
+_080F5F38: .4byte 0x000087c9
+_080F5F3C: .4byte 0x0000876c
+_080F5F40:
+ ldr r2, [r5]
+ ldr r6, _080F5FA0 @ =0x0000876c
+ adds r4, r2, r6
+ ldrh r0, [r4]
+ adds r1, r0, 0x1
+ strh r1, [r4]
+ ldr r3, _080F5FA4 @ =0x000087c9
+ adds r0, r2, r3
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080F5F68
+ adds r6, 0x6
+ adds r0, r2, r6
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _080F5F68
+ strh r3, [r4]
+_080F5F68:
+ ldr r0, [r5]
+ ldr r3, _080F5FA8 @ =0x00008770
+ adds r2, r0, r3
+ ldr r5, _080F5FA0 @ =0x0000876c
+ adds r1, r0, r5
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ adds r2, r1, r2
+ ldr r6, _080F5FAC @ =0x0000876e
+ adds r4, r0, r6
+ strh r2, [r4]
+ ldr r1, _080F5FB0 @ =0x00008774
+ adds r0, r1
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F5F96
+ subs r0, r2, 0x1
+ subs r0, r3
+ strh r0, [r4]
+_080F5F96:
+ movs r0, 0x1
+_080F5F98:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F5FA0: .4byte 0x0000876c
+_080F5FA4: .4byte 0x000087c9
+_080F5FA8: .4byte 0x00008770
+_080F5FAC: .4byte 0x0000876e
+_080F5FB0: .4byte 0x00008774
+ thumb_func_end sub_80F5EE4
+
+ thumb_func_start sub_80F5FB4
+sub_80F5FB4: @ 80F5FB4
+ push {r4,lr}
+ ldr r0, _080F5FD8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F5FDC @ =0x00008770
+ adds r0, r1, r2
+ ldrh r3, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ cmp r2, 0
+ beq _080F5FD2
+ ldr r4, _080F5FE0 @ =0x000087c9
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F5FE4
+_080F5FD2:
+ movs r0, 0
+ b _080F6004
+ .align 2, 0
+_080F5FD8: .4byte gUnknown_083DFEC4
+_080F5FDC: .4byte 0x00008770
+_080F5FE0: .4byte 0x000087c9
+_080F5FE4:
+ cmp r2, 0x7
+ bgt _080F5FF0
+ negs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ b _080F5FF2
+_080F5FF0:
+ ldr r0, _080F600C @ =0x0000fff8
+_080F5FF2:
+ lsls r4, r0, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F6004:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080F600C: .4byte 0x0000fff8
+ thumb_func_end sub_80F5FB4
+
+ thumb_func_start sub_80F6010
+sub_80F6010: @ 80F6010
+ push {r4-r6,lr}
+ ldr r0, _080F603C @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r1, _080F6040 @ =0x00008772
+ adds r0, r3, r1
+ ldr r2, _080F6044 @ =0x00008774
+ adds r1, r3, r2
+ ldrh r5, [r0]
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ ldrh r4, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r2, r0
+ beq _080F6038
+ ldr r1, _080F6048 @ =0x000087c9
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080F604C
+_080F6038:
+ movs r0, 0
+ b _080F606C
+ .align 2, 0
+_080F603C: .4byte gUnknown_083DFEC4
+_080F6040: .4byte 0x00008772
+_080F6044: .4byte 0x00008774
+_080F6048: .4byte 0x000087c9
+_080F604C:
+ subs r0, r4, r5
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080F605A
+ movs r4, 0x8
+_080F605A:
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl sub_80F063C
+ adds r0, r4, 0
+ bl sub_80F6074
+ movs r0, 0x2
+_080F606C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6010
+
+ thumb_func_start sub_80F6074
+sub_80F6074: @ 80F6074
+ push {r4-r7,lr}
+ ldr r1, _080F6120 @ =gUnknown_083DFEC4
+ ldr r6, [r1]
+ ldr r1, _080F6124 @ =0x00008770
+ adds r3, r6, r1
+ ldrh r1, [r3]
+ lsls r0, 16
+ asrs r7, r0, 16
+ adds r2, r7, r1
+ strh r2, [r3]
+ ldr r5, _080F6128 @ =0x00008774
+ adds r4, r6, r5
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60A4
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60A4:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60B6
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60B6:
+ ldr r0, _080F612C @ =0x00008772
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ mov r12, r1
+ movs r5, 0
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ ble _080F60D8
+ subs r0, r2, 0x1
+ mov r1, r12
+ subs r0, r1
+ strh r0, [r3]
+_080F60D8:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F60EA
+ adds r0, r1, 0x1
+ ldrh r5, [r4]
+ adds r0, r5
+ strh r0, [r3]
+_080F60EA:
+ ldr r0, _080F6130 @ =0x0000876e
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ adds r2, r7, r0
+ strh r2, [r3]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r5, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F6108
+ subs r0, r2, 0x1
+ subs r0, r5
+ strh r0, [r3]
+_080F6108:
+ ldrh r1, [r3]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080F611A
+ adds r0, r1, 0x1
+ ldrh r4, [r4]
+ adds r0, r4
+ strh r0, [r3]
+_080F611A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6120: .4byte gUnknown_083DFEC4
+_080F6124: .4byte 0x00008770
+_080F6128: .4byte 0x00008774
+_080F612C: .4byte 0x00008772
+_080F6130: .4byte 0x0000876e
+ thumb_func_end sub_80F6074
+
+ thumb_func_start sub_80F6134
+sub_80F6134: @ 80F6134
+ push {r4-r6,lr}
+ ldr r0, _080F6194 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r1, _080F6198 @ =0x000087c9
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080F61E0
+ ldr r2, _080F619C @ =0x000087dc
+ adds r5, r3, r2
+ movs r4, 0
+ ldrsh r1, [r5, r4]
+ ldr r6, _080F61A0 @ =0x00008774
+ adds r4, r3, r6
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ subs r0, 0x7
+ cmp r1, r0
+ bge _080F61AC
+ subs r6, 0x8
+ adds r1, r3, r6
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r5]
+ ldr r1, _080F61A4 @ =0x00008770
+ adds r2, r3, r1
+ strh r0, [r2]
+ ldrh r1, [r5]
+ ldr r5, _080F61A8 @ =0x0000876e
+ adds r0, r3, r5
+ strh r1, [r0]
+ ldrh r5, [r2]
+ adds r0, r5, 0x7
+ adds r6, 0x6
+ adds r2, r3, r6
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r3, [r4]
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ cmp r0, r1
+ ble _080F61F4
+ adds r0, r5, 0x6
+ subs r0, r3
+ strh r0, [r2]
+ b _080F61F4
+ .align 2, 0
+_080F6194: .4byte gUnknown_083DFEC4
+_080F6198: .4byte 0x000087c9
+_080F619C: .4byte 0x000087dc
+_080F61A0: .4byte 0x00008774
+_080F61A4: .4byte 0x00008770
+_080F61A8: .4byte 0x0000876e
+_080F61AC:
+ ldrh r0, [r4]
+ subs r0, 0x7
+ ldr r2, _080F61D4 @ =0x00008770
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldrh r1, [r4]
+ ldr r6, _080F61D8 @ =0x00008772
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r5]
+ subs r2, 0x2
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldrh r0, [r4]
+ subs r0, r1
+ movs r1, 0x7
+ subs r1, r0
+ ldr r4, _080F61DC @ =0x0000876c
+ adds r0, r3, r4
+ b _080F61F2
+ .align 2, 0
+_080F61D4: .4byte 0x00008770
+_080F61D8: .4byte 0x00008772
+_080F61DC: .4byte 0x0000876c
+_080F61E0:
+ ldr r5, _080F61FC @ =0x000087dc
+ adds r2, r3, r5
+ ldrh r1, [r2]
+ ldr r6, _080F6200 @ =0x0000876c
+ adds r0, r3, r6
+ strh r1, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6204 @ =0x0000876e
+ adds r0, r3, r2
+_080F61F2:
+ strh r1, [r0]
+_080F61F4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F61FC: .4byte 0x000087dc
+_080F6200: .4byte 0x0000876c
+_080F6204: .4byte 0x0000876e
+ thumb_func_end sub_80F6134
+
+ thumb_func_start sub_80F6208
+sub_80F6208: @ 80F6208
+ push {lr}
+ ldr r0, _080F623C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F6240 @ =0x00008fe6
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _080F6244 @ =0x00008fe7
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _080F6248 @ =0x00008fe8
+ adds r2, r1, r0
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r2, _080F624C @ =0x00006dac
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F6238
+_080F622E:
+ bl sub_80F6250
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F622E
+_080F6238:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F623C: .4byte gUnknown_083DFEC4
+_080F6240: .4byte 0x00008fe6
+_080F6244: .4byte 0x00008fe7
+_080F6248: .4byte 0x00008fe8
+_080F624C: .4byte 0x00006dac
+ thumb_func_end sub_80F6208
+
+ thumb_func_start sub_80F6250
+sub_80F6250: @ 80F6250
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6270 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080F6274 @ =0x00008fe8
+ adds r3, r2, r0
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080F6278
+_080F626C:
+ movs r0, 0
+ b _080F637E
+ .align 2, 0
+_080F6270: .4byte gUnknown_083DFEC4
+_080F6274: .4byte 0x00008fe8
+_080F6278:
+ ldr r1, _080F630C @ =0x00008fe6
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080F631C
+ cmp r0, 0x8
+ beq _080F626C
+ movs r6, 0
+ adds r7, r2, 0
+ adds r5, r7, r1
+ ldr r0, _080F6310 @ =0x00008fe7
+ adds r4, r7, r0
+ ldr r1, _080F6314 @ =gUnknown_020300A4
+ mov r8, r1
+ ldr r0, _080F6318 @ =0x000041a0
+ add r0, r8
+ mov r9, r0
+_080F629A:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r8
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _080F636C
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ add r1, r9
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _080F636C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r2, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1D
+ bls _080F62FE
+ strb r1, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r2
+ cmp r0, 0x6
+ bhi _080F637C
+_080F62FE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _080F629A
+ b _080F637C
+ .align 2, 0
+_080F630C: .4byte 0x00008fe6
+_080F6310: .4byte 0x00008fe7
+_080F6314: .4byte gUnknown_020300A4
+_080F6318: .4byte 0x000041a0
+_080F631C:
+ movs r0, 0
+ strb r0, [r3]
+ movs r6, 0
+ b _080F632A
+_080F6324:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080F632A:
+ cmp r6, 0x5
+ bhi _080F634C
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F635C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ cmp r0, 0
+ beq _080F6324
+ ldr r0, _080F6360 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F6364 @ =0x00008fe8
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080F634C:
+ ldr r0, _080F6360 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F6368 @ =0x00008fe6
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _080F6372
+ .align 2, 0
+_080F635C: .4byte gPlayerParty
+_080F6360: .4byte gUnknown_083DFEC4
+_080F6364: .4byte 0x00008fe8
+_080F6368: .4byte 0x00008fe6
+_080F636C:
+ ldr r0, _080F6378 @ =0x00008fe8
+ adds r1, r7, r0
+ movs r0, 0x1
+_080F6372:
+ strb r0, [r1]
+ b _080F626C
+ .align 2, 0
+_080F6378: .4byte 0x00008fe8
+_080F637C:
+ movs r0, 0x1
+_080F637E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6250
+
+ thumb_func_start sub_80F638C
+sub_80F638C: @ 80F638C
+ push {r4,lr}
+ ldr r0, _080F63C0 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r1, _080F63C4 @ =0x00008fe6
+ adds r0, r4, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080F63C8 @ =0x00008fe7
+ adds r0, r4, r2
+ strb r1, [r0]
+ bl sub_80F492C
+ ldr r0, _080F63CC @ =0x00006dac
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080F63B8
+_080F63AE:
+ bl sub_80F63D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F63AE
+_080F63B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F63C0: .4byte gUnknown_083DFEC4
+_080F63C4: .4byte 0x00008fe6
+_080F63C8: .4byte 0x00008fe7
+_080F63CC: .4byte 0x00006dac
+ thumb_func_end sub_80F638C
+
+ thumb_func_start sub_80F63D0
+sub_80F63D0: @ 80F63D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080F647C @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r1, _080F6480 @ =0x00008fe6
+ adds r0, r2, r1
+ ldrb r3, [r0]
+ cmp r3, 0xE
+ beq _080F6498
+ cmp r3, 0xF
+ bne _080F63E8
+ b _080F64F6
+_080F63E8:
+ movs r1, 0x80
+ lsls r1, 23
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+ movs r6, 0
+ ldr r0, _080F6480 @ =0x00008fe6
+ adds r5, r2, r0
+ ldr r1, _080F6484 @ =0x00008fe7
+ adds r4, r2, r1
+_080F63FC:
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 4
+ ldr r2, _080F6488 @ =gUnknown_020300A4
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0x51
+ bl GetBoxMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F644E
+ ldrb r1, [r5]
+ lsls r1, 8
+ ldr r2, _080F648C @ =0xffff00ff
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ ldrb r2, [r4]
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 16
+ ldr r1, _080F6490 @ =0xffe0ffff
+ ands r0, r1
+ orrs r0, r2
+ ldr r1, _080F6494 @ =0xffffff00
+ ands r0, r1
+ orrs r0, r3
+ str r0, [sp]
+ mov r0, sp
+ bl sub_80F4944
+_080F644E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r4]
+ movs r1, 0xFF
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bne _080F646E
+ strb r2, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ands r0, r1
+ cmp r0, 0xE
+ beq _080F6508
+_080F646E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xE
+ bls _080F63FC
+ b _080F6508
+ .align 2, 0
+_080F647C: .4byte gUnknown_083DFEC4
+_080F6480: .4byte 0x00008fe6
+_080F6484: .4byte 0x00008fe7
+_080F6488: .4byte gUnknown_020300A4
+_080F648C: .4byte 0xffff00ff
+_080F6490: .4byte 0xffe0ffff
+_080F6494: .4byte 0xffffff00
+_080F6498:
+ mov r0, sp
+ ldrb r1, [r0, 0x3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0, 0x3]
+ strb r3, [r0, 0x1]
+ movs r6, 0
+ mov r4, sp
+_080F64A8:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _080F64FC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x51
+ bl GetMonData
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _080F64DA
+ movs r0, 0x1F
+ adds r2, r6, 0
+ ands r2, r0
+ ldrb r0, [r4, 0x2]
+ movs r5, 0x20
+ negs r5, r5
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x2]
+ strb r3, [r4]
+ mov r0, sp
+ bl sub_80F4944
+_080F64DA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080F64A8
+ bl sub_80F49F4
+ ldr r0, _080F6500 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F6504 @ =0x00008fe6
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F64F6:
+ movs r0, 0
+ b _080F650A
+ .align 2, 0
+_080F64FC: .4byte gPlayerParty
+_080F6500: .4byte gUnknown_083DFEC4
+_080F6504: .4byte 0x00008fe6
+_080F6508:
+ movs r0, 0x1
+_080F650A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F63D0
+
+ thumb_func_start sub_80F6514
+sub_80F6514: @ 80F6514
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r10, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ mov r5, r10
+ ldr r0, _080F65A4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, _080F65A8 @ =0x0000893d
+ adds r1, r0, r2
+ ldrb r6, [r1]
+ mov r8, r6
+ ldr r1, _080F65AC @ =0x0000893e
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r4, r0, 27
+ adds r7, r4, 0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2D
+ movs r3, 0
+ bl sub_80F44B0
+ cmp r0, 0
+ beq _080F655E
+ b _080F66CA
+_080F655E:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x2
+ adds r3, r5, 0
+ bl sub_80F44B0
+ adds r0, r5, 0
+ bl StringGetEnd10
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_80F44B0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r6, 0xE
+ bne _080F65B4
+ movs r0, 0x64
+ muls r4, r0
+ ldr r0, _080F65B0 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ bl GetMonGender
+ b _080F65EA
+ .align 2, 0
+_080F65A4: .4byte gUnknown_083DFEC4
+_080F65A8: .4byte 0x0000893d
+_080F65AC: .4byte 0x0000893e
+_080F65B0: .4byte gPlayerParty
+_080F65B4:
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 4
+ ldr r2, _080F6620 @ =gUnknown_020300A4
+ adds r1, r2
+ adds r0, r1
+ bl GetLevelFromBoxMonExp
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F44B0
+ adds r1, r0, 0
+ mov r0, r9
+ bl GetGenderFromSpeciesAndPersonality
+_080F65EA:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r9
+ mov r1, r10
+ bl sub_8040D8C
+ cmp r0, 0
+ beq _080F65FC
+ movs r4, 0xFF
+_080F65FC:
+ adds r0, r5, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+ movs r1, 0xFC
+ strb r1, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r0, 0x3F
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _080F6624
+ cmp r4, 0xFE
+ beq _080F663C
+ b _080F6656
+ .align 2, 0
+_080F6620: .4byte gUnknown_020300A4
+_080F6624:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xC
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xD
+ strb r0, [r5, 0x5]
+ movs r0, 0xB5
+ b _080F6652
+_080F663C:
+ strb r1, [r5]
+ movs r0, 0x1
+ strb r0, [r5, 0x1]
+ movs r0, 0xA
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0xB
+ strb r0, [r5, 0x5]
+ movs r0, 0xB6
+_080F6652:
+ strb r0, [r5, 0x6]
+ adds r5, 0x7
+_080F6656:
+ movs r4, 0xFC
+ strb r4, [r5]
+ movs r1, 0x1
+ strb r1, [r5, 0x1]
+ strb r1, [r5, 0x2]
+ strb r4, [r5, 0x3]
+ movs r0, 0x3
+ strb r0, [r5, 0x4]
+ movs r0, 0x5
+ strb r0, [r5, 0x5]
+ adds r5, 0x6
+ strb r4, [r5]
+ movs r6, 0x13
+ strb r6, [r5, 0x1]
+ movs r0, 0x46
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xBA
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0x11
+ strb r0, [r5, 0x2]
+ strb r1, [r5, 0x3]
+ movs r0, 0x34
+ strb r0, [r5, 0x4]
+ adds r5, 0x5
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ bl ConvertIntToDecimalString
+ adds r5, r0, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x1
+ bne _080F66C0
+ ldr r0, _080F66B8 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, [sp]
+ lsls r1, r2, 2
+ adds r0, r1
+ ldr r1, _080F66BC @ =0x0000893c
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ movs r2, 0x80
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r5, r0, 0
+ b _080F66CE
+ .align 2, 0
+_080F66B8: .4byte gUnknown_083DFEC4
+_080F66BC: .4byte 0x0000893c
+_080F66C0:
+ strb r4, [r5]
+ strb r6, [r5, 0x1]
+ movs r0, 0x67
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+_080F66CA:
+ movs r0, 0xFF
+ strb r0, [r5]
+_080F66CE:
+ adds r0, r5, 0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6514
+
+ thumb_func_start sub_80F66E0
+sub_80F66E0: @ 80F66E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080F676C @ =gUnknown_083DFEC4
+ mov r8, r0
+ ldr r4, [r0]
+ ldr r1, _080F6770 @ =0x00008829
+ adds r0, r4, r1
+ ldr r2, _080F6774 @ =0x0000876e
+ adds r5, r4, r2
+ ldrh r1, [r5]
+ movs r2, 0
+ bl sub_80F6514
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ movs r1, 0
+ bl sub_80F4824
+ ldrh r1, [r5]
+ ldr r6, _080F6778 @ =0x000087dc
+ adds r0, r4, r6
+ movs r6, 0
+ strh r1, [r0]
+ ldr r1, _080F677C @ =0x0000bc8e
+ adds r0, r4, r1
+ strb r6, [r0]
+ movs r2, 0
+ mov r9, r2
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ lsls r1, 2
+ adds r1, r4, r1
+ ldr r5, _080F6780 @ =0x0000893d
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _080F6784 @ =0x0000893e
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x52
+ movs r3, 0
+ bl sub_80F44B0
+ adds r7, r0, 0
+ ldr r3, _080F6788 @ =0x0000bc8f
+ adds r4, r3
+ strb r6, [r4]
+ movs r5, 0
+ mov r12, r5
+ mov r10, r8
+_080F674E:
+ ldr r1, _080F678C @ =gUnknown_083E499C
+ mov r6, r12
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x36
+ bgt _080F6790
+ cmp r0, 0x32
+ blt _080F6790
+ movs r0, 0x7
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 3
+ movs r0, 0x4
+ b _080F679A
+ .align 2, 0
+_080F676C: .4byte gUnknown_083DFEC4
+_080F6770: .4byte 0x00008829
+_080F6774: .4byte 0x0000876e
+_080F6778: .4byte 0x000087dc
+_080F677C: .4byte 0x0000bc8e
+_080F6780: .4byte 0x0000893d
+_080F6784: .4byte 0x0000893e
+_080F6788: .4byte 0x0000bc8f
+_080F678C: .4byte gUnknown_083E499C
+_080F6790:
+ movs r0, 0x1
+ adds r2, r7, 0
+ ands r2, r0
+ lsrs r7, 1
+ movs r0, 0x1
+_080F679A:
+ movs r4, 0
+ adds r1, r2, 0
+ add r0, r9
+ mov r8, r0
+ cmp r4, r1
+ bcs _080F67D4
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r5, _080F6828 @ =0x0000bc8e
+ adds r3, r0, r5
+ ldr r6, _080F682C @ =0x0000bc4c
+ adds r6, r0, r6
+ str r6, [sp]
+ adds r5, r1, 0
+_080F67B6:
+ ldrb r0, [r3]
+ adds r1, r0, 0x1
+ strb r1, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ adds r0, r1, r0
+ mov r6, r9
+ adds r1, r6, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080F67B6
+_080F67D4:
+ cmp r2, 0
+ beq _080F67EC
+ mov r0, r9
+ cmp r0, 0x18
+ bls _080F67EC
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r3, _080F6830 @ =0x0000bc8f
+ adds r1, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F67EC:
+ mov r5, r8
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x10
+ bls _080F674E
+ ldr r6, _080F6834 @ =gUnknown_083DFEC4
+ ldr r2, [r6]
+ ldr r1, _080F6828 @ =0x0000bc8e
+ adds r0, r2, r1
+ ldr r3, _080F6830 @ =0x0000bc8f
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6840
+ ldr r5, _080F6838 @ =0x0000bc90
+ adds r0, r2, r5
+ movs r1, 0
+ strb r1, [r0]
+ ldr r6, _080F683C @ =0x0000bc91
+ adds r0, r2, r6
+ strb r1, [r0]
+ b _080F6850
+ .align 2, 0
+_080F6828: .4byte 0x0000bc8e
+_080F682C: .4byte 0x0000bc4c
+_080F6830: .4byte 0x0000bc8f
+_080F6834: .4byte gUnknown_083DFEC4
+_080F6838: .4byte 0x0000bc90
+_080F683C: .4byte 0x0000bc91
+_080F6840:
+ ldr r0, _080F6888 @ =0x0000bc90
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080F688C @ =0x0000bc91
+ adds r1, r2, r3
+ movs r0, 0x3
+ strb r0, [r1]
+_080F6850:
+ ldr r5, _080F6890 @ =gUnknown_083DFEC4
+ ldr r1, [r5]
+ ldr r6, _080F6894 @ =0x0000bc8e
+ adds r0, r1, r6
+ ldr r2, _080F6898 @ =0x0000bc8f
+ adds r1, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0
+ mov r12, r3
+ adds r3, r5, 0
+ ldr r1, _080F689C @ =0x0000bc96
+ movs r4, 0x9
+_080F6870:
+ cmp r2, 0x8
+ bls _080F68A0
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r4, [r0]
+ adds r0, r2, 0
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _080F68AA
+ .align 2, 0
+_080F6888: .4byte 0x0000bc90
+_080F688C: .4byte 0x0000bc91
+_080F6890: .4byte gUnknown_083DFEC4
+_080F6894: .4byte 0x0000bc8e
+_080F6898: .4byte 0x0000bc8f
+_080F689C: .4byte 0x0000bc96
+_080F68A0:
+ ldr r0, [r3]
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ movs r2, 0
+_080F68AA:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ cmp r0, 0x2
+ bls _080F6870
+ ldr r5, _080F68DC @ =gUnknown_083DFEC4
+ ldr r0, [r5]
+ ldr r6, _080F68E0 @ =0x0000bc96
+ adds r1, r0, r6
+ add r1, r12
+ ldr r2, _080F68E4 @ =0x0000bc8f
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F68DC: .4byte gUnknown_083DFEC4
+_080F68E0: .4byte 0x0000bc96
+_080F68E4: .4byte 0x0000bc8f
+ thumb_func_end sub_80F66E0
+
+ thumb_func_start sub_80F68E8
+sub_80F68E8: @ 80F68E8
+ push {r4-r7,lr}
+ ldr r3, _080F6918 @ =gUnknown_083DFEC4
+ ldr r0, [r3]
+ ldr r2, _080F691C @ =0x0000bc90
+ adds r1, r0, r2
+ ldrb r5, [r1]
+ ldr r6, _080F6920 @ =0x0000bc91
+ adds r0, r6
+ ldrb r4, [r0]
+ movs r0, 0x1
+ mov r12, r0
+ ldr r2, _080F6924 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r7, r2, 0
+ cmp r0, 0
+ beq _080F692E
+ lsls r0, r4, 24
+ cmp r0, 0
+ ble _080F692E
+ b _080F69BC
+ .align 2, 0
+_080F6918: .4byte gUnknown_083DFEC4
+_080F691C: .4byte 0x0000bc90
+_080F6920: .4byte 0x0000bc91
+_080F6924: .4byte gMain
+_080F6928:
+ ldr r1, _080F69B0 @ =0x0000bc91
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F692E:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080F6978
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6978
+ ldr r3, _080F69B4 @ =gUnknown_083DFEC4
+ ldr r2, _080F69B8 @ =0x0000bc96
+_080F6944:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bgt _080F6960
+ adds r0, 0x1
+ lsls r0, 24
+ ldr r1, [r3]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6944
+_080F6960:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8 @ =0x0000bc96
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080F69EC
+ ldr r1, _080F69B0 @ =0x0000bc91
+ adds r0, r2, r1
+ ldrb r4, [r0]
+_080F6978:
+ ldrh r2, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _080F698A
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0
+ bgt _080F6A3C
+_080F698A:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080F69AA
+ lsls r0, r5, 24
+ asrs r2, r0, 24
+ ldr r1, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F69B8 @ =0x0000bc96
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _080F6A38
+_080F69AA:
+ movs r0, 0
+ mov r12, r0
+ b _080F69FC
+ .align 2, 0
+_080F69B0: .4byte 0x0000bc91
+_080F69B4: .4byte gUnknown_083DFEC4
+_080F69B8: .4byte 0x0000bc96
+_080F69BC:
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080F69DA
+ subs r0, 0x1
+ lsls r0, 24
+ ldr r1, [r6]
+ lsrs r4, r0, 24
+ asrs r0, 24
+ ldr r2, _080F6A2C @ =0x0000bc96
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F69BC
+_080F69DA:
+ ldr r2, [r6]
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r3, _080F6A2C @ =0x0000bc96
+ adds r1, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080F6928
+_080F69EC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ blt _080F69FC
+ subs r0, r1, 0x1
+_080F69F8:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080F69FC:
+ mov r0, r12
+ cmp r0, 0
+ beq _080F6A44
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldr r3, [r6]
+ ldr r1, _080F6A30 @ =0x0000bc90
+ adds r2, r3, r1
+ ldrb r6, [r2]
+ cmp r0, r6
+ bne _080F6A20
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldr r6, _080F6A34 @ =0x0000bc91
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080F6A40
+_080F6A20:
+ strb r5, [r2]
+ ldr r1, _080F6A34 @ =0x0000bc91
+ adds r0, r3, r1
+ strb r4, [r0]
+ b _080F6A44
+ .align 2, 0
+_080F6A2C: .4byte 0x0000bc96
+_080F6A30: .4byte 0x0000bc90
+_080F6A34: .4byte 0x0000bc91
+_080F6A38:
+ adds r0, r2, 0x1
+ b _080F69F8
+_080F6A3C:
+ subs r0, 0x1
+ b _080F69F8
+_080F6A40:
+ movs r2, 0
+ mov r12, r2
+_080F6A44:
+ mov r0, r12
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F68E8
+
+ thumb_func_start sub_80F6A4C
+sub_80F6A4C: @ 80F6A4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F6AC4 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080F6AC8 @ =0x0000876e
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6A74
+ ldr r5, _080F6ACC @ =0x00008774
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F6A74:
+ ldr r1, _080F6ACC @ =0x00008774
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F6A88
+ movs r0, 0
+ strh r0, [r2]
+_080F6A88:
+ ldr r1, _080F6AD0 @ =0x0000bc94
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F6AD4 @ =0x000087dc
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r1, _080F6AD8 @ =REG_WININ
+ ldr r5, _080F6ADC @ =0x00003f37
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6AE0 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r5, _080F6AE4 @ =0x000058f0
+ adds r0, r5, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6AE8 @ =0x00002060
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r5, _080F6AEC @ =0x000087de
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6AC4: .4byte gUnknown_083DFEC4
+_080F6AC8: .4byte 0x0000876e
+_080F6ACC: .4byte 0x00008774
+_080F6AD0: .4byte 0x0000bc94
+_080F6AD4: .4byte 0x000087dc
+_080F6AD8: .4byte REG_WININ
+_080F6ADC: .4byte 0x00003f37
+_080F6AE0: .4byte 0x00003f3f
+_080F6AE4: .4byte 0x000058f0
+_080F6AE8: .4byte 0x00002060
+_080F6AEC: .4byte 0x000087de
+ thumb_func_end sub_80F6A4C
+
+ thumb_func_start sub_80F6AF0
+sub_80F6AF0: @ 80F6AF0
+ push {r4,lr}
+ ldr r1, _080F6B10 @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080F6B14 @ =0x000087de
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F6B04
+ b _080F6C08
+_080F6B04:
+ lsls r0, 2
+ ldr r1, _080F6B18 @ =_080F6B1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F6B10: .4byte gUnknown_083DFEC4
+_080F6B14: .4byte 0x000087de
+_080F6B18: .4byte _080F6B1C
+ .align 2, 0
+_080F6B1C:
+ .4byte _080F6B38
+ .4byte _080F6B54
+ .4byte _080F6B6E
+ .4byte _080F6B84
+ .4byte _080F6B9C
+ .4byte _080F6BC0
+ .4byte _080F6BE0
+_080F6B38:
+ bl sub_80F173C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ ldr r0, _080F6B4C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r3, _080F6B50 @ =0x000087de
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B4C: .4byte gUnknown_083DFEC4
+_080F6B50: .4byte 0x000087de
+_080F6B54:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_80F1480
+ bl sub_80F66E0
+ b _080F6BC6
+_080F6B6E:
+ bl sub_80F1238
+ ldr r0, _080F6B7C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F6B80 @ =0x000087de
+ adds r1, r2
+ b _080F6BCE
+ .align 2, 0
+_080F6B7C: .4byte gUnknown_083DFEC4
+_080F6B80: .4byte 0x000087de
+_080F6B84:
+ bl sub_80F13FC
+ ldr r0, _080F6B94 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r3, _080F6B98 @ =0x000087de
+ adds r1, r3
+ b _080F6BCE
+ .align 2, 0
+_080F6B94: .4byte gUnknown_083DFEC4
+_080F6B98: .4byte 0x000087de
+_080F6B9C:
+ ldr r4, [r4]
+ ldr r1, _080F6BB8 @ =0x0000876e
+ adds r0, r4, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0
+ bl sub_80F4824
+ ldr r3, _080F6BBC @ =0x000087de
+ adds r4, r3
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F6C18
+ .align 2, 0
+_080F6BB8: .4byte 0x0000876e
+_080F6BBC: .4byte 0x000087de
+_080F6BC0:
+ movs r0, 0
+ bl sub_80F2E18
+_080F6BC6:
+ ldr r0, _080F6BD8 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F6BDC @ =0x000087de
+ adds r1, r0
+_080F6BCE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F6C18
+ .align 2, 0
+_080F6BD8: .4byte gUnknown_083DFEC4
+_080F6BDC: .4byte 0x000087de
+_080F6BE0:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6C18
+ bl sub_80F1438
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _080F6C0C @ =0x0000dfff
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080F6C10 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F6C14 @ =0x000087de
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F6C08:
+ movs r0, 0
+ b _080F6C1A
+ .align 2, 0
+_080F6C0C: .4byte 0x0000dfff
+_080F6C10: .4byte gUnknown_083DFEC4
+_080F6C14: .4byte 0x000087de
+_080F6C18:
+ movs r0, 0x1
+_080F6C1A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6AF0
+
+ thumb_func_start sub_80F6C20
+sub_80F6C20: @ 80F6C20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080F6D44 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r1, _080F6D48 @ =0x0000d158
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ mov r8, r1
+ ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A
+ mov r9, r2
+_080F6C3A:
+ ldr r1, _080F6D50 @ =gTrainerEyeTrainers
+ mov r4, r8
+ lsls r0, r4, 4
+ adds r6, r0, r1
+ ldrh r7, [r6]
+ adds r0, r7, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6CA0
+ ldr r0, _080F6D44 @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r0, _080F6D48 @ =0x0000d158
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r1, _080F6D54 @ =0x0000cee8
+ adds r0, r1
+ strh r7, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldr r2, _080F6D58 @ =0x0000ceec
+ adds r0, r2
+ mov r1, r8
+ strb r1, [r0]
+ ldrh r0, [r5]
+ lsls r0, 3
+ adds r0, r4, r0
+ mov r1, r8
+ add r1, r9
+ ldrb r1, [r1]
+ adds r2, 0x1
+ adds r0, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0xA]
+ ldrh r1, [r6, 0xC]
+ bl get_mapheader_by_bank_and_number
+ ldrh r1, [r5]
+ lsls r1, 3
+ adds r4, r1
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080F6D5C @ =0x0000ceea
+ adds r4, r1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F6CA0:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x37
+ bls _080F6C3A
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+_080F6CB4:
+ ldr r1, _080F6D60 @ =gUnknown_083E49C0
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r5, r0, r1
+ ldrh r4, [r5]
+ adds r0, r4, 0
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _080F6D0E
+ ldr r0, _080F6D44 @ =gUnknown_083DFEC4
+ ldr r2, [r0]
+ ldr r0, _080F6D48 @ =0x0000d158
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D54 @ =0x0000cee8
+ adds r0, r1
+ strh r4, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2]
+ ldr r4, _080F6D5C @ =0x0000ceea
+ adds r0, r4
+ strh r1, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldr r1, _080F6D64 @ =0x0000ceed
+ adds r0, r1
+ strb r6, [r0]
+ ldrh r0, [r3]
+ lsls r0, 3
+ adds r2, r0
+ mov r0, r8
+ adds r0, 0x38
+ adds r4, 0x2
+ adds r2, r4
+ strb r0, [r2]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080F6D0E:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0xC
+ bls _080F6CB4
+ ldr r3, _080F6D44 @ =gUnknown_083DFEC4
+ ldr r2, [r3]
+ ldr r1, _080F6D68 @ =0x0000876c
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080F6D6C @ =0x00008770
+ adds r0, r2, r4
+ strh r1, [r0]
+ subs r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r1, _080F6D48 @ =0x0000d158
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _080F6D70
+ subs r4, r0, 0x1
+ b _080F6D72
+ .align 2, 0
+_080F6D44: .4byte gUnknown_083DFEC4
+_080F6D48: .4byte 0x0000d158
+_080F6D4C: .4byte gSaveBlock1 + 0x97A
+_080F6D50: .4byte gTrainerEyeTrainers
+_080F6D54: .4byte 0x0000cee8
+_080F6D58: .4byte 0x0000ceec
+_080F6D5C: .4byte 0x0000ceea
+_080F6D60: .4byte gUnknown_083E49C0
+_080F6D64: .4byte 0x0000ceed
+_080F6D68: .4byte 0x0000876c
+_080F6D6C: .4byte 0x00008770
+_080F6D70:
+ movs r4, 0x7
+_080F6D72:
+ ldr r1, _080F6DA8 @ =0x00008772
+ adds r0, r2, r1
+ strh r4, [r0]
+ ldr r3, [r3]
+ ldr r2, _080F6DAC @ =0x0000d158
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ subs r0, 0x1
+ ldr r4, _080F6DB0 @ =0x00008774
+ adds r1, r3, r4
+ strh r0, [r1]
+ movs r1, 0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _080F6D94
+ movs r1, 0x1
+_080F6D94:
+ ldr r2, _080F6DB4 @ =0x000087c9
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DA8: .4byte 0x00008772
+_080F6DAC: .4byte 0x0000d158
+_080F6DB0: .4byte 0x00008774
+_080F6DB4: .4byte 0x000087c9
+ thumb_func_end sub_80F6C20
+
+ thumb_func_start sub_80F6DB8
+sub_80F6DB8: @ 80F6DB8
+ push {r4,lr}
+ movs r1, 0
+ ldr r0, _080F6DEC @ =gUnknown_083DFEC4
+ ldr r4, [r0]
+ ldr r2, _080F6DF0 @ =0x00008fe9
+ adds r0, r4, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F6DF4 @ =0x0000d15a
+ adds r1, r4, r0
+ ldr r0, _080F6DF8 @ =0x0000ffb8
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F2F7C
+ ldr r1, _080F6DFC @ =0x0000876e
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldr r2, _080F6E00 @ =0x000087dc
+ adds r4, r2
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6DEC: .4byte gUnknown_083DFEC4
+_080F6DF0: .4byte 0x00008fe9
+_080F6DF4: .4byte 0x0000d15a
+_080F6DF8: .4byte 0x0000ffb8
+_080F6DFC: .4byte 0x0000876e
+_080F6E00: .4byte 0x000087dc
+ thumb_func_end sub_80F6DB8
+
+ thumb_func_start sub_80F6E04
+sub_80F6E04: @ 80F6E04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080F6E78 @ =gUnknown_083DFEC4
+ ldr r5, [r0]
+ ldr r1, _080F6E7C @ =0x0000876e
+ adds r0, r5, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 3
+ adds r0, r5, r0
+ ldr r7, _080F6E80 @ =0x0000cee8
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r2, _080F6E84 @ =gTrainers
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r6, [r0, 0x3]
+ lsls r0, r6, 3
+ mov r8, r0
+ ldr r0, _080F6E88 @ =gTrainerFrontPicTable
+ add r0, r8
+ ldr r2, _080F6E8C @ =gTrainerFrontPicCoords
+ lsls r1, r6, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ ldr r2, _080F6E90 @ =0x000131e4
+ adds r3, r5, r2
+ lsls r2, r4, 13
+ ldr r7, _080F6E94 @ =0x0000d1e4
+ adds r2, r7
+ adds r2, r5, r2
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ movs r2, 0x1
+ bl DecompressPicFromTable_2
+ ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable
+ add r8, r0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r4, 7
+ adds r5, r4
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6E78: .4byte gUnknown_083DFEC4
+_080F6E7C: .4byte 0x0000876e
+_080F6E80: .4byte 0x0000cee8
+_080F6E84: .4byte gTrainers
+_080F6E88: .4byte gTrainerFrontPicTable
+_080F6E8C: .4byte gTrainerFrontPicCoords
+_080F6E90: .4byte 0x000131e4
+_080F6E94: .4byte 0x0000d1e4
+_080F6E98: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_80F6E04
+
+ thumb_func_start sub_80F6E9C
+sub_80F6E9C: @ 80F6E9C
+ push {lr}
+ ldr r0, _080F6EB4 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F6EB8 @ =0x0000d15a
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080F6EBC
+ movs r0, 0
+ b _080F6ED0
+ .align 2, 0
+_080F6EB4: .4byte gUnknown_083DFEC4
+_080F6EB8: .4byte 0x0000d15a
+_080F6EBC:
+ adds r0, r2, 0
+ adds r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F6ECC
+ movs r0, 0x1
+ b _080F6ED0
+_080F6ECC:
+ movs r0, 0
+ strh r0, [r1]
+_080F6ED0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6E9C
+
+ thumb_func_start sub_80F6ED4
+sub_80F6ED4: @ 80F6ED4
+ push {lr}
+ ldr r0, _080F6F00 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F6F04 @ =0x0000d15a
+ adds r1, r0, r2
+ ldrh r3, [r1]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x48
+ negs r2, r2
+ cmp r0, r2
+ beq _080F6F0A
+ adds r0, r3, 0
+ subs r0, 0x8
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r2
+ ble _080F6F08
+ movs r0, 0x1
+ b _080F6F0C
+ .align 2, 0
+_080F6F00: .4byte gUnknown_083DFEC4
+_080F6F04: .4byte 0x0000d15a
+_080F6F08:
+ strh r2, [r1]
+_080F6F0A:
+ movs r0, 0
+_080F6F0C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F6ED4
+
+ thumb_func_start sub_80F6F10
+sub_80F6F10: @ 80F6F10
+ push {lr}
+ ldr r0, _080F6F48 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r2, _080F6F4C @ =0x0000d15e
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _080F6F50 @ =0x0000d15f
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _080F6F54 @ =REG_BLDCNT
+ movs r0, 0xC8
+ strh r0, [r1]
+ ldr r0, _080F6F58 @ =REG_BLDY
+ strh r2, [r0]
+ subs r1, 0x8
+ ldr r2, _080F6F5C @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080F6F60 @ =0x00001f1f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_80F6FB8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6F48: .4byte gUnknown_083DFEC4
+_080F6F4C: .4byte 0x0000d15e
+_080F6F50: .4byte 0x0000d15f
+_080F6F54: .4byte REG_BLDCNT
+_080F6F58: .4byte REG_BLDY
+_080F6F5C: .4byte 0x00003f3f
+_080F6F60: .4byte 0x00001f1f
+ thumb_func_end sub_80F6F10
+
+ thumb_func_start sub_80F6F64
+sub_80F6F64: @ 80F6F64
+ push {lr}
+ ldr r0, _080F6F9C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F6FA0 @ =0x0000d15e
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _080F6FB0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080F6FA4 @ =0x0000d15f
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080F6FAC
+ ldr r1, _080F6FA8 @ =REG_BLDY
+ movs r0, 0x6
+ strh r0, [r1]
+ b _080F6FB0
+ .align 2, 0
+_080F6F9C: .4byte gUnknown_083DFEC4
+_080F6FA0: .4byte 0x0000d15e
+_080F6FA4: .4byte 0x0000d15f
+_080F6FA8: .4byte REG_BLDY
+_080F6FAC:
+ ldr r0, _080F6FB4 @ =REG_BLDY
+ strh r1, [r0]
+_080F6FB0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FB4: .4byte REG_BLDY
+ thumb_func_end sub_80F6F64
+
+ thumb_func_start sub_80F6FB8
+sub_80F6FB8: @ 80F6FB8
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F6FDC
+ ldr r1, _080F6FD0 @ =REG_WIN0H
+ ldr r2, _080F6FD4 @ =0x0000e8f0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FD8 @ =0x00000888
+ b _080F6FE8
+ .align 2, 0
+_080F6FD0: .4byte REG_WIN0H
+_080F6FD4: .4byte 0x0000e8f0
+_080F6FD8: .4byte 0x00000888
+_080F6FDC:
+ ldr r1, _080F6FF0 @ =REG_WIN0H
+ ldr r2, _080F6FF4 @ =0x0000e8f0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080F6FF8 @ =0x00000818
+_080F6FE8:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F6FF0: .4byte REG_WIN0H
+_080F6FF4: .4byte 0x0000e8f0
+_080F6FF8: .4byte 0x00000818
+ thumb_func_end sub_80F6FB8
+
+ thumb_func_start sub_80F6FFC
+sub_80F6FFC: @ 80F6FFC
+ ldr r0, _080F7008 @ =REG_BLDCNT
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080F7008: .4byte REG_BLDCNT
+ thumb_func_end sub_80F6FFC
+
+ thumb_func_start sub_80F700C
+sub_80F700C: @ 80F700C
+ push {r4,r5,lr}
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080F7078 @ =gUnknown_083DFEC4
+ ldr r4, [r2]
+ lsls r2, r1, 3
+ adds r2, r4, r2
+ ldr r3, _080F707C @ =0x0000cee8
+ adds r2, r3
+ ldrh r3, [r2]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 3
+ ldr r3, _080F7080 @ =gTrainers
+ adds r5, r2, r3
+ adds r3, r0, 0
+ ldr r0, _080F7084 @ =0x0000d158
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcs _080F7060
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080F7088 @ =gTrainerClassNames
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x4B
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r1, r5, 0x4
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+_080F7060:
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0x80
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F7078: .4byte gUnknown_083DFEC4
+_080F707C: .4byte 0x0000cee8
+_080F7080: .4byte gTrainers
+_080F7084: .4byte 0x0000d158
+_080F7088: .4byte gTrainerClassNames
+ thumb_func_end sub_80F700C
+
+ thumb_func_start sub_80F708C
+sub_80F708C: @ 80F708C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080F70E4 @ =gUnknown_083DFEC4
+ ldr r3, [r0]
+ ldr r0, _080F70E8 @ =0x0000876e
+ adds r2, r3, r0
+ lsls r0, r4, 24
+ asrs r0, 24
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080F70B4
+ ldr r5, _080F70EC @ =0x00008774
+ adds r0, r3, r5
+ ldrh r0, [r0]
+ strh r0, [r2]
+_080F70B4:
+ ldr r1, _080F70EC @ =0x00008774
+ adds r0, r3, r1
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ ble _080F70C8
+ movs r0, 0
+ strh r0, [r2]
+_080F70C8:
+ ldr r1, _080F70F0 @ =0x0000bc94
+ adds r0, r3, r1
+ strb r4, [r0]
+ ldrh r1, [r2]
+ ldr r2, _080F70F4 @ =0x000087dc
+ adds r0, r3, r2
+ strh r1, [r0]
+ ldr r5, _080F70F8 @ =0x000087de
+ adds r1, r3, r5
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F70E4: .4byte gUnknown_083DFEC4
+_080F70E8: .4byte 0x0000876e
+_080F70EC: .4byte 0x00008774
+_080F70F0: .4byte 0x0000bc94
+_080F70F4: .4byte 0x000087dc
+_080F70F8: .4byte 0x000087de
+ thumb_func_end sub_80F708C
+
+ thumb_func_start sub_80F70FC
+sub_80F70FC: @ 80F70FC
+ push {r4-r6,lr}
+ ldr r1, _080F711C @ =gUnknown_083DFEC4
+ ldr r0, [r1]
+ ldr r2, _080F7120 @ =0x000087de
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _080F7110
+ b _080F7218
+_080F7110:
+ lsls r0, 2
+ ldr r1, _080F7124 @ =_080F7128
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F711C: .4byte gUnknown_083DFEC4
+_080F7120: .4byte 0x000087de
+_080F7124: .4byte _080F7128
+ .align 2, 0
+_080F7128:
+ .4byte _080F7144
+ .4byte _080F714A
+ .4byte _080F7164
+ .4byte _080F716C
+ .4byte _080F71A0
+ .4byte _080F71BA
+ .4byte _080F71EA
+_080F7144:
+ bl sub_80F6ED4
+ b _080F71F8
+_080F714A:
+ movs r0, 0
+ bl sub_80F6E04
+ ldr r0, _080F715C @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r2, _080F7160 @ =0x000087de
+ adds r1, r2
+ b _080F7206
+ .align 2, 0
+_080F715C: .4byte gUnknown_083DFEC4
+_080F7160: .4byte 0x000087de
+_080F7164:
+ movs r0, 0
+ bl sub_80F2F7C
+ b _080F71FE
+_080F716C:
+ ldr r4, [r4]
+ ldr r2, _080F7194 @ =0x00008788
+ adds r5, r4, r2
+ ldr r0, _080F7198 @ =0x0000876e
+ adds r6, r4, r0
+ ldrh r1, [r6]
+ adds r0, r5, 0
+ bl sub_80F700C
+ adds r0, r5, 0
+ bl sub_80F43D4
+ bl sub_80F105C
+ ldrb r0, [r6]
+ bl sub_80F0FFC
+ ldr r2, _080F719C @ =0x000087de
+ adds r4, r2
+ b _080F71CC
+ .align 2, 0
+_080F7194: .4byte 0x00008788
+_080F7198: .4byte 0x0000876e
+_080F719C: .4byte 0x000087de
+_080F71A0:
+ bl sub_80F0CD8
+ ldr r0, _080F71D4 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F71D8 @ =0x0000bc95
+ adds r2, r1, r0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r2, _080F71DC @ =0x000087de
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71BA:
+ ldr r0, _080F71D4 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F71D8 @ =0x0000bc95
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bhi _080F71E0
+ bl sub_80F0D5C
+_080F71CC:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080F721C
+ .align 2, 0
+_080F71D4: .4byte gUnknown_083DFEC4
+_080F71D8: .4byte 0x0000bc95
+_080F71DC: .4byte 0x000087de
+_080F71E0:
+ ldr r2, _080F7210 @ =0x000087de
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080F71EA:
+ bl sub_80F6E9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+ bl sub_80F0D5C
+_080F71F8:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F721C
+_080F71FE:
+ ldr r0, _080F7214 @ =gUnknown_083DFEC4
+ ldr r1, [r0]
+ ldr r0, _080F7210 @ =0x000087de
+ adds r1, r0
+_080F7206:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080F721C
+ .align 2, 0
+_080F7210: .4byte 0x000087de
+_080F7214: .4byte gUnknown_083DFEC4
+_080F7218:
+ movs r0, 0
+ b _080F721E
+_080F721C:
+ movs r0, 0x1
+_080F721E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F70FC
+
+ thumb_func_start sub_80F7224
+sub_80F7224: @ 80F7224
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080F7260 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080F7264 @ =gUnknown_083DFEC4
+ ldr r0, [r0]
+ ldr r3, _080F7268 @ =0x00008fe9
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldr r3, _080F726C @ =0x00008931
+ adds r0, r3
+ adds r4, r0, r1
+ cmp r2, 0xFF
+ beq _080F7270
+ adds r0, r2, 0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _080F7272
+ .align 2, 0
+_080F7260: .4byte gPlayerParty
+_080F7264: .4byte gUnknown_083DFEC4
+_080F7268: .4byte 0x00008fe9
+_080F726C: .4byte 0x00008931
+_080F7270:
+ movs r0, 0x9
+_080F7272:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80F7224
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/porthole.s b/asm/porthole.s
new file mode 100644
index 000000000..6c880748d
--- /dev/null
+++ b/asm/porthole.s
@@ -0,0 +1,297 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C7754
+sub_80C7754: @ 80C7754
+ push {r4-r6,lr}
+ sub sp, 0xC
+ mov r4, sp
+ adds r4, 0x5
+ mov r5, sp
+ adds r5, 0x6
+ add r6, sp, 0x8
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C7796
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r2, 0x1
+ negs r2, r2
+ movs r3, 0
+ ldrsb r3, [r5, r3]
+ movs r4, 0
+ ldrsb r4, [r6, r4]
+ str r4, [sp]
+ bl warp1_set
+ movs r0, 0x1
+ b _080C7798
+_080C7796:
+ movs r0, 0
+_080C7798:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7754
+
+ thumb_func_start sub_80C77A0
+sub_80C77A0: @ 80C77A0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C77CC @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r0, _080C77D0 @ =0x000040b4
+ bl GetVarPointer
+ adds r6, r0, 0
+ ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _080C77FC
+ cmp r2, 0x1
+ bgt _080C77D8
+ cmp r2, 0
+ beq _080C77E2
+ b _080C7896
+ .align 2, 0
+_080C77CC: .4byte gTasks + 0x8
+_080C77D0: .4byte 0x000040b4
+_080C77D4: .4byte gSaveBlock1 + 0x4
+_080C77D8:
+ cmp r2, 0x2
+ beq _080C783E
+ cmp r2, 0x3
+ beq _080C7878
+ b _080C7896
+_080C77E2:
+ ldr r0, _080C77F8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C7896
+ strh r2, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C77F8: .4byte gPaletteFade
+_080C77FC:
+ ldr r0, _080C7830 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C780A
+ strh r2, [r4, 0x2]
+_080C780A:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ movs r0, 0xFF
+ bl sub_80A212C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C7896
+ movs r0, 0x1
+ bl sub_810D9B0
+ cmp r0, 0x1
+ bne _080C783A
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7834
+ movs r0, 0x9
+ b _080C7836
+ .align 2, 0
+_080C7830: .4byte gMain
+_080C7834:
+ movs r0, 0xA
+_080C7836:
+ strh r0, [r6]
+ b _080C7846
+_080C783A:
+ movs r0, 0x2
+ strh r0, [r4]
+_080C783E:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C784C
+_080C7846:
+ movs r0, 0x3
+ strh r0, [r4]
+ b _080C7896
+_080C784C:
+ ldrh r0, [r6]
+ cmp r0, 0x2
+ bne _080C7860
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C785C @ =gUnknown_083D295F
+ b _080C7866
+ .align 2, 0
+_080C785C: .4byte gUnknown_083D295F
+_080C7860:
+ ldrb r1, [r7, 0x1]
+ ldrb r2, [r7]
+ ldr r3, _080C7874 @ =gUnknown_083D2961
+_080C7866:
+ movs r0, 0xFF
+ bl exec_movement
+ movs r0, 0x1
+ strh r0, [r4]
+ b _080C7896
+ .align 2, 0
+_080C7874: .4byte gUnknown_083D2961
+_080C7878:
+ ldr r0, _080C789C @ =0x00004001
+ bl FlagReset
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagReset
+ movs r0, 0
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl sp13E_warp_to_last_warp
+ adds r0, r5, 0
+ bl DestroyTask
+_080C7896:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C789C: .4byte 0x00004001
+ thumb_func_end sub_80C77A0
+
+ thumb_func_start sub_80C78A0
+sub_80C78A0: @ 80C78A0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _080C78F4 @ =SpriteCallbackDummy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8C
+ movs r2, 0x70
+ movs r3, 0x50
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C78F8 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _080C78FC @ =0x000040b4
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _080C7900
+ movs r0, 0x4
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ b _080C7912
+ .align 2, 0
+_080C78F4: .4byte SpriteCallbackDummy
+_080C78F8: .4byte gSprites
+_080C78FC: .4byte 0x000040b4
+_080C7900:
+ movs r0, 0x3
+ bl FieldObjectDirectionToImageAnimId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080C7912:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C78A0
+
+ thumb_func_start sub_80C791C
+sub_80C791C: @ 80C791C
+ push {lr}
+ bl sub_80C78A0
+ ldr r2, _080C794C @ =gMapObjects
+ ldr r0, _080C7950 @ =gPlayerAvatar
+ 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 pal_fill_black
+ ldr r0, _080C7954 @ =sub_80C77A0
+ movs r1, 0x50
+ bl CreateTask
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C794C: .4byte gMapObjects
+_080C7950: .4byte gPlayerAvatar
+_080C7954: .4byte sub_80C77A0
+ thumb_func_end sub_80C791C
+
+ thumb_func_start sub_80C7958
+sub_80C7958: @ 80C7958
+ push {lr}
+ ldr r0, _080C7990 @ =0x0000082d
+ bl FlagSet
+ ldr r0, _080C7994 @ =0x00004001
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 7
+ bl FlagSet
+ ldr r0, _080C7998 @ =gSaveBlock1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ bl sub_80C7754
+ bl sub_8080F9C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7990: .4byte 0x0000082d
+_080C7994: .4byte 0x00004001
+_080C7998: .4byte gSaveBlock1
+ thumb_func_end sub_80C7958
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
new file mode 100644
index 000000000..c00d6219b
--- /dev/null
+++ b/asm/record_mixing.s
@@ -0,0 +1,1780 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80B929C
+sub_80B929C: @ 80B929C
+ push {lr}
+ ldr r0, _080B92A8 @ =sub_80B9484
+ bl sub_8083A84
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B92A8: .4byte sub_80B9484
+ thumb_func_end sub_80B929C
+
+ thumb_func_start sub_80B92AC
+sub_80B92AC: @ 80B92AC
+ push {r4-r6,lr}
+ bl sub_80BC300
+ bl sub_80C045C
+ ldr r6, _080B9364 @ =0x02018000
+ ldr r0, _080B9368 @ =gUnknown_083D026C
+ ldr r1, [r0]
+ movs r2, 0xC8
+ lsls r2, 4
+ adds r0, r6, 0
+ bl memcpy
+ movs r1, 0xC8
+ lsls r1, 4
+ adds r0, r6, r1
+ ldr r1, _080B936C @ =gUnknown_083D0270
+ ldr r1, [r1]
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ ldr r2, _080B9370 @ =0x00001004
+ adds r0, r6, r2
+ ldr r1, _080B9374 @ =gUnknown_083D0274
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080B9378 @ =0x00001044
+ adds r0, r6, r1
+ ldr r1, _080B937C @ =gUnknown_083D0278
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r2, _080B9380 @ =0x00001084
+ adds r0, r6, r2
+ ldr r1, _080B9384 @ =gUnknown_083D027C
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r5, _080B9388 @ =gUnknown_02038738
+ ldr r4, _080B938C @ =gSaveBlock1
+ ldr r0, _080B9390 @ =0x0000303c
+ adds r1, r4, r0
+ adds r0, r5, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9394 @ =0x00003074
+ adds r1, r4, r2
+ adds r0, r5, 0
+ adds r0, 0x38
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, _080B9398 @ =0x00002f9c
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8041324
+ ldr r1, _080B939C @ =0x000010ac
+ adds r0, r6, r1
+ ldr r1, _080B93A0 @ =gUnknown_083D0280
+ ldr r1, [r1]
+ movs r2, 0x78
+ bl memcpy
+ ldr r2, _080B93A4 @ =0x00001124
+ adds r0, r6, r2
+ ldr r1, _080B93A8 @ =gUnknown_083D0284
+ ldr r1, [r1]
+ movs r2, 0xA4
+ bl memcpy
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B935C
+ bl sub_8126338
+ ldr r2, _080B93AC @ =0x000011c8
+ adds r1, r6, r2
+ strh r0, [r1]
+_080B935C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9364: .4byte 0x02018000
+_080B9368: .4byte gUnknown_083D026C
+_080B936C: .4byte gUnknown_083D0270
+_080B9370: .4byte 0x00001004
+_080B9374: .4byte gUnknown_083D0274
+_080B9378: .4byte 0x00001044
+_080B937C: .4byte gUnknown_083D0278
+_080B9380: .4byte 0x00001084
+_080B9384: .4byte gUnknown_083D027C
+_080B9388: .4byte gUnknown_02038738
+_080B938C: .4byte gSaveBlock1
+_080B9390: .4byte 0x0000303c
+_080B9394: .4byte 0x00003074
+_080B9398: .4byte 0x00002f9c
+_080B939C: .4byte 0x000010ac
+_080B93A0: .4byte gUnknown_083D0280
+_080B93A4: .4byte 0x00001124
+_080B93A8: .4byte gUnknown_083D0284
+_080B93AC: .4byte 0x000011c8
+ thumb_func_end sub_80B92AC
+
+ thumb_func_start sub_80B93B0
+sub_80B93B0: @ 80B93B0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ ldr r5, _080B9430 @ =0x02008000
+ ldr r6, _080B9434 @ =0x00001230
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BD674
+ movs r0, 0xC8
+ lsls r0, 4
+ adds r0, r5
+ mov r8, r0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80BFD44
+ ldr r1, _080B9438 @ =0x00001004
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80C0514
+ ldr r1, _080B943C @ =0x00001044
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B1C
+ ldr r1, _080B9440 @ =0x00001084
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80FA4E4
+ ldr r1, _080B9444 @ =0x000010ac
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ mov r3, r8
+ bl sub_80B9C6C
+ ldr r1, _080B9448 @ =0x00001124
+ adds r0, r5, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80B9B70
+ ldr r0, _080B944C @ =0x000011c8
+ adds r5, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80B9F3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9430: .4byte 0x02008000
+_080B9434: .4byte 0x00001230
+_080B9438: .4byte 0x00001004
+_080B943C: .4byte 0x00001044
+_080B9440: .4byte 0x00001084
+_080B9444: .4byte 0x000010ac
+_080B9448: .4byte 0x00001124
+_080B944C: .4byte 0x000011c8
+ thumb_func_end sub_80B93B0
+
+ thumb_func_start sub_80B9450
+sub_80B9450: @ 80B9450
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9480 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _080B9478
+ movs r0, 0xE2
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080B9478:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9480: .4byte gTasks
+ thumb_func_end sub_80B9450
+
+ thumb_func_start sub_80B9484
+sub_80B9484: @ 80B9484
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080B94A8 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080B949E
+ b _080B95E6
+_080B949E:
+ lsls r0, 2
+ ldr r1, _080B94AC @ =_080B94B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B94A8: .4byte gTasks + 0x8
+_080B94AC: .4byte _080B94B0
+ .align 2, 0
+_080B94B0:
+ .4byte _080B94C8
+ .4byte _080B951C
+ .4byte _080B9550
+ .4byte _080B9570
+ .4byte _080B95AC
+ .4byte _080B95C0
+_080B94C8:
+ ldr r0, _080B950C @ =gUnknown_0202E8CE
+ ldrb r0, [r0]
+ bl sub_8007270
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ bl VarSet
+ ldr r1, _080B9510 @ =gUnknown_03000718
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80B92AC
+ bl sub_80C71D8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080B9514 @ =sub_80B95F0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ ldr r0, _080B9518 @ =sub_80B9450
+ movs r1, 0x51
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x1E]
+ b _080B95E6
+ .align 2, 0
+_080B950C: .4byte gUnknown_0202E8CE
+_080B9510: .4byte gUnknown_03000718
+_080B9514: .4byte sub_80B95F0
+_080B9518: .4byte sub_80B9450
+_080B951C:
+ ldr r2, _080B9548 @ =gTasks
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ movs r0, 0x2
+ strh r0, [r4]
+ ldr r0, _080B954C @ =0x00000834
+ bl FlagSet
+ bl sub_80C7240
+ ldrb r0, [r4, 0x1E]
+ bl DestroyTask
+ b _080B95E6
+ .align 2, 0
+_080B9548: .4byte gTasks
+_080B954C: .4byte 0x00000834
+_080B9550:
+ ldr r0, _080B956C @ =sub_80BA00C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0xE0
+ bl PlaySE
+ b _080B95E6
+ .align 2, 0
+_080B956C: .4byte sub_80BA00C
+_080B9570:
+ ldr r2, _080B95A4 @ =gTasks
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080B95E6
+ movs r0, 0x4
+ strh r0, [r4]
+ bl sub_8083664
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ bl sub_80720B0
+ ldr r0, _080B95A8 @ =gOtherText_MixingComplete
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ strh r5, [r4, 0x10]
+ b _080B95E6
+ .align 2, 0
+_080B95A4: .4byte gTasks
+_080B95A8: .4byte gOtherText_MixingComplete
+_080B95AC:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B95E6
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080B95E6
+_080B95C0:
+ ldr r2, _080B95EC @ =gTasks
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B95E6
+ bl sub_8055588
+ bl MenuZeroFillScreen
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_080B95E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B95EC: .4byte gTasks
+ thumb_func_end sub_80B9484
+
+ thumb_func_start sub_80B95F0
+sub_80B95F0: @ 80B95F0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r7, _080B961C @ =gTasks
+ adds r5, r0, r7
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x64
+ beq _080B9678
+ cmp r1, 0x64
+ bgt _080B962E
+ cmp r1, 0x1
+ bne _080B9612
+ b _080B9734
+_080B9612:
+ cmp r1, 0x1
+ bgt _080B9620
+ cmp r1, 0
+ beq _080B9650
+ b _080B97D6
+ .align 2, 0
+_080B961C: .4byte gTasks
+_080B9620:
+ cmp r1, 0x2
+ bne _080B9626
+ b _080B9760
+_080B9626:
+ cmp r1, 0x5
+ bne _080B962C
+ b _080B97C0
+_080B962C:
+ b _080B97D6
+_080B962E:
+ cmp r1, 0xC9
+ beq _080B96D0
+ cmp r1, 0xC9
+ bgt _080B963C
+ cmp r1, 0x65
+ beq _080B9690
+ b _080B97D6
+_080B963C:
+ ldr r0, _080B964C @ =0x0000012d
+ cmp r1, r0
+ beq _080B9706
+ adds r0, 0x63
+ cmp r1, r0
+ beq _080B971C
+ b _080B97D6
+ .align 2, 0
+_080B964C: .4byte 0x0000012d
+_080B9650:
+ bl sub_80B9A78
+ bl MenuDisplayMessageBox
+ ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0xE1
+ lsls r0, 3
+ strh r0, [r5, 0x18]
+ movs r0, 0xC8
+ lsls r0, 1
+ strh r0, [r5, 0x8]
+ bl ClearLinkCallback_2
+ b _080B97D6
+ .align 2, 0
+_080B9674: .4byte gOtherText_MixingRecordsWithFriend
+_080B9678:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080B9688
+ b _080B97D6
+_080B9688:
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ movs r0, 0x65
+ b _080B97D4
+_080B9690:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsLinkMaster
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B96C2
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _080B96B2
+ b _080B97D6
+_080B96B2:
+ movs r0, 0x15
+ bl PlaySE
+ movs r1, 0
+ movs r0, 0xC9
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0x20]
+ b _080B97D6
+_080B96C2:
+ movs r0, 0x16
+ bl PlaySE
+ ldr r0, _080B96CC @ =0x0000012d
+ b _080B97D4
+ .align 2, 0
+_080B96CC: .4byte 0x0000012d
+_080B96D0:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ ldrh r4, [r5, 0x20]
+ adds r4, 0x1
+ strh r4, [r5, 0x20]
+ lsls r4, 16
+ asrs r4, 16
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ cmp r4, r1
+ ble _080B97D6
+ bl sub_8007F4C
+ movs r0, 0x1
+ b _080B97D4
+_080B9706:
+ bl sub_800820C
+ adds r4, r0, 0
+ bl GetLinkPlayerCount_2
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080B97D6
+ movs r0, 0x1
+ b _080B97D4
+_080B971C:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080B97D6
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ b _080B97D6
+_080B9734:
+ ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080B97D6
+ ldr r4, _080B975C @ =gStringVar1
+ bl sub_80B9A58
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x5
+ b _080B97D4
+ .align 2, 0
+_080B9758: .4byte gReceivedRemoteLinkPlayers
+_080B975C: .4byte gStringVar1
+_080B9760:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x8]
+ bl sub_80B9A58
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldr r0, _080B97B0 @ =sub_80B97DC
+ str r0, [r5]
+ ldr r4, _080B97B4 @ =0x02018000
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ bl sub_80B9A50
+ ldr r0, _080B97B8 @ =sub_80B9890
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r7
+ strh r6, [r0, 0x8]
+ ldr r0, _080B97BC @ =0xffff0000
+ adds r4, r0
+ adds r1, r7, r1
+ adds r1, 0x12
+ adds r0, r4, 0
+ bl sub_80B9A50
+ b _080B97D6
+ .align 2, 0
+_080B97B0: .4byte sub_80B97DC
+_080B97B4: .4byte 0x02018000
+_080B97B8: .4byte sub_80B9890
+_080B97BC: .4byte 0xffff0000
+_080B97C0:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080B97D6
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ movs r0, 0x2
+_080B97D4:
+ strh r0, [r5, 0x8]
+_080B97D6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B95F0
+
+ thumb_func_start sub_80B97DC
+sub_80B97DC: @ 80B97DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9800 @ =gTasks
+ adds r4, r1, r0
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080B9884
+ lsls r0, r1, 2
+ ldr r1, _080B9804 @ =_080B9808
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080B9800: .4byte gTasks
+_080B9804: .4byte _080B9808
+ .align 2, 0
+_080B9808:
+ .4byte _080B981C
+ .4byte _080B9840
+ .4byte _080B9884
+ .4byte _080B9852
+ .4byte _080B986E
+_080B981C:
+ adds r0, r4, 0
+ adds r0, 0xC
+ bl sub_80B9A44
+ adds r1, r0, 0
+ movs r0, 0x10
+ ldrsh r2, [r4, r0]
+ movs r0, 0xC8
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _080B983C @ =gBlockSendBuffer
+ movs r2, 0xC8
+ bl memcpy
+ b _080B9860
+ .align 2, 0
+_080B983C: .4byte gBlockSendBuffer
+_080B9840:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9860
+ movs r0, 0x1
+ bl sub_8007E9C
+ b _080B9860
+_080B9852:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9868
+_080B9860:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B9868:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ b _080B9884
+_080B986E:
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080B9884
+ ldr r0, _080B988C @ =sub_80B9A1C
+ str r0, [r4]
+_080B9884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B988C: .4byte sub_80B9A1C
+ thumb_func_end sub_80B97DC
+
+ thumb_func_start sub_80B9890
+sub_80B9890: @ 80B9890
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r0, 2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080B98D0 @ =gTasks
+ adds r0, r1
+ mov r10, r0
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ bl sub_8008198
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bne _080B998A
+ movs r0, 0
+ b _080B9966
+ .align 2, 0
+_080B98D0: .4byte gTasks
+_080B98D4:
+ ldr r1, [sp, 0x4]
+ mov r2, r9
+ asrs r1, r2
+ movs r0, 0x1
+ ands r1, r0
+ movs r3, 0x1
+ add r3, r9
+ mov r8, r3
+ cmp r1, 0
+ beq _080B9960
+ mov r0, r10
+ adds r0, 0x12
+ bl sub_80B9A44
+ mov r1, r8
+ lsls r4, r1, 1
+ mov r5, r10
+ adds r5, 0x8
+ adds r4, r5, r4
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0xC8
+ muls r1, r3
+ adds r0, r1
+ ldr r7, _080B9930 @ =0x00001230
+ mov r1, r9
+ muls r1, r7
+ adds r6, r0, r1
+ mov r0, r9
+ str r3, [sp, 0xC]
+ bl sub_80B9A68
+ adds r1, r0, 0
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ adds r0, r2, 0x1
+ ldr r3, [sp, 0xC]
+ muls r0, r3
+ cmp r0, r7
+ bls _080B9934
+ muls r2, r3
+ subs r2, r7, r2
+ adds r0, r6, 0
+ bl memcpy
+ b _080B993C
+ .align 2, 0
+_080B9930: .4byte 0x00001230
+_080B9934:
+ adds r0, r6, 0
+ movs r2, 0xC8
+ bl memcpy
+_080B993C:
+ mov r0, r9
+ bl ResetBlockReceivedFlag
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r1, r5, r1
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bne _080B9960
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_080B9960:
+ mov r3, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+_080B9966:
+ mov r9, r0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r9, r0
+ bcc _080B98D4
+ ldr r2, _080B99B0 @ =gTasks
+ mov r0, r10
+ movs r3, 0x8
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080B998A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x8]
+ cmp r1, r0
+ bne _080B999E
+ ldr r0, [sp]
+ bl DestroyTask
+_080B999E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99B0: .4byte gTasks
+ thumb_func_end sub_80B9890
+
+ thumb_func_start sub_80B99B4
+sub_80B99B4: @ 80B99B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r2, _080B99E4 @ =gTasks
+ adds r0, r2
+ movs r4, 0x1C
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080B99DC
+ adds r0, r3, 0
+ bl DestroyTask
+_080B99DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B99E4: .4byte gTasks
+ thumb_func_end sub_80B99B4
+
+ thumb_func_start sub_80B99E8
+sub_80B99E8: @ 80B99E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080B9A10 @ =gTasks
+ adds r1, r0
+ ldr r0, _080B9A14 @ =sub_80B99B4
+ str r0, [r1]
+ ldr r0, _080B9A18 @ =gUnknown_03000718
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9A0C
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ bl sub_80B93B0
+_080B9A0C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9A10: .4byte gTasks
+_080B9A14: .4byte sub_80B99B4
+_080B9A18: .4byte gUnknown_03000718
+ thumb_func_end sub_80B99E8
+
+ thumb_func_start sub_80B9A1C
+sub_80B9A1C: @ 80B9A1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080B9A38 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080B9A3C @ =sub_80B99E8
+ str r0, [r1]
+ ldr r1, _080B9A40 @ =gUnknown_03000718
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A38: .4byte gTasks
+_080B9A3C: .4byte sub_80B99E8
+_080B9A40: .4byte gUnknown_03000718
+ thumb_func_end sub_80B9A1C
+
+ thumb_func_start sub_80B9A44
+sub_80B9A44: @ 80B9A44
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ ldrh r1, [r1, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80B9A44
+
+ thumb_func_start sub_80B9A50
+sub_80B9A50: @ 80B9A50
+ strh r0, [r1]
+ lsrs r0, 16
+ strh r0, [r1, 0x2]
+ bx lr
+ thumb_func_end sub_80B9A50
+
+ thumb_func_start sub_80B9A58
+sub_80B9A58: @ 80B9A58
+ push {lr}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9A58
+
+ thumb_func_start sub_80B9A68
+sub_80B9A68: @ 80B9A68
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, _080B9A74 @ =gBlockRecvBuffer
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_080B9A74: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80B9A68
+
+ thumb_func_start sub_80B9A78
+sub_80B9A78: @ 80B9A78
+ ldr r1, _080B9A80 @ =gUnknown_03005D2C
+ ldr r0, _080B9A84 @ =0x00001230
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080B9A80: .4byte gUnknown_03005D2C
+_080B9A84: .4byte 0x00001230
+ thumb_func_end sub_80B9A78
+
+ thumb_func_start sub_80B9A88
+sub_80B9A88: @ 80B9A88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080B9AC0
+ cmp r0, 0x3
+ bhi _080B9AA2
+ cmp r0, 0x2
+ beq _080B9AA8
+ b _080B9B10
+_080B9AA2:
+ cmp r0, 0x4
+ beq _080B9AEC
+ b _080B9B10
+_080B9AA8:
+ movs r2, 0
+ ldr r3, _080B9ABC @ =gUnknown_083D0288
+_080B9AAC:
+ adds r0, r4, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x1
+ bls _080B9AAC
+ b _080B9B10
+ .align 2, 0
+_080B9ABC: .4byte gUnknown_083D0288
+_080B9AC0:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ adds r3, r0, 0
+ movs r0, 0x1
+ ands r3, r0
+ movs r2, 0
+ ldr r1, _080B9AE8 @ =gUnknown_083D028A
+ lsls r0, r3, 1
+ adds r0, r3
+ adds r3, r0, r1
+_080B9AD6:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x2
+ bls _080B9AD6
+ b _080B9B10
+ .align 2, 0
+_080B9AE8: .4byte gUnknown_083D028A
+_080B9AEC:
+ movs r0, 0
+ bl GetLinkPlayerTrainerId
+ movs r1, 0x9
+ bl __umodsi3
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, _080B9B18 @ =gUnknown_083D0290
+ lsls r0, r3, 2
+ adds r3, r0, r1
+_080B9B02:
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x3
+ bls _080B9B02
+_080B9B10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B18: .4byte gUnknown_083D0290
+ thumb_func_end sub_80B9A88
+
+ thumb_func_start sub_80B9B1C
+sub_80B9B1C: @ 80B9B1C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ mov r8, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ mov r0, sp
+ bl sub_80B9A88
+ mov r0, r8
+ muls r0, r4
+ adds r0, r5, r0
+ ldr r1, _080B9B6C @ =gUnknown_083D0278
+ ldr r6, [r1]
+ adds r1, r6, 0
+ movs r2, 0x40
+ bl memcpy
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x40
+ bl memcpy
+ bl sub_80F7F30
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9B6C: .4byte gUnknown_083D0278
+ thumb_func_end sub_80B9B1C
+
+ thumb_func_start sub_80B9B70
+sub_80B9B70: @ 80B9B70
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r0, _080B9BB8 @ =gUnknown_0300071C
+ mov r8, r0
+ bl sub_80B9A88
+ mov r5, r9
+ muls r5, r4
+ adds r5, r6, r5
+ add r4, r8
+ ldrb r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r6, r0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0xA4
+ bl memcpy
+ adds r0, r5, 0
+ bl sub_8134AC0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9BB8: .4byte gUnknown_0300071C
+ thumb_func_end sub_80B9B70
+
+ thumb_func_start sub_80B9BBC
+sub_80B9BBC: @ 80B9BBC
+ ldrh r0, [r0, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_80B9BBC
+
+ thumb_func_start sub_80B9BC4
+sub_80B9BC4: @ 80B9BC4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x38
+ mov r8, r0
+ mov r10, r1
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x54]
+ lsls r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsrs r4, 23
+ add r4, r9
+ ldrb r0, [r4]
+ mov r6, r10
+ muls r6, r0
+ add r6, r8
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r6, r1
+ mov r0, sp
+ movs r2, 0x38
+ bl memcpy
+ lsls r5, 1
+ add r5, r9
+ ldrb r0, [r5]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r8, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r6, r0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ add r1, r8
+ adds r0, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ add r8, r0
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x38
+ bl memcpy
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80B9BC4
+
+ thumb_func_start sub_80B9C4C
+sub_80B9C4C: @ 80B9C4C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ movs r1, 0
+_080B9C54:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r0, r2, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r1, 0xFF
+ ble _080B9C54
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80B9C4C
+
+ thumb_func_start sub_80B9C6C
+sub_80B9C6C: @ 80B9C6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0x2C]
+ str r1, [sp, 0x30]
+ str r3, [sp, 0x38]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x34]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x40]
+ ldr r0, _080B9DA8 @ =gLinkPlayers
+ ldrh r0, [r0, 0x4]
+ bl SeedRng
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r3, 0
+ add r0, sp, 0x1C
+ mov r9, r0
+ movs r1, 0x1D
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0xC
+ str r2, [sp, 0x4C]
+ movs r7, 0xFF
+ add r4, sp, 0x8
+ movs r2, 0
+ mov r6, r9
+ mov r5, r10
+_080B9CBC:
+ mov r1, sp
+ adds r1, r3
+ adds r1, 0x4
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ adds r0, r4, r3
+ strb r2, [r0]
+ lsls r1, r3, 1
+ adds r0, r6, r1
+ strb r2, [r0]
+ adds r1, r5, r1
+ strb r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9CBC
+ movs r4, 0
+ str r4, [sp, 0x3C]
+ movs r3, 0
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ str r0, [sp, 0x50]
+ ldr r4, [sp, 0x30]
+ ldr r0, [sp, 0x34]
+ adds r2, r4, 0
+ muls r2, r0
+ str r2, [sp, 0x48]
+ ldr r2, [sp, 0x3C]
+ cmp r2, r1
+ bcs _080B9D46
+ mov r8, r1
+_080B9D00:
+ ldr r4, [sp, 0x30]
+ adds r0, r4, 0
+ muls r0, r3
+ ldr r1, [sp, 0x2C]
+ adds r6, r1, r0
+ ldr r0, [r6, 0x70]
+ cmp r0, 0
+ beq _080B9D3C
+ movs r7, 0
+ cmp r7, r0
+ bcs _080B9D3C
+ adds r4, r6, 0
+ adds r4, 0x74
+ mov r2, r9
+ lsls r1, r3, 1
+ movs r5, 0x1
+_080B9D20:
+ lsls r0, r7, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080B9D30
+ adds r0, r7, r1
+ adds r0, r2, r0
+ strb r5, [r0]
+_080B9D30:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, [r6, 0x70]
+ cmp r7, r0
+ bcc _080B9D20
+_080B9D3C:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r8
+ bcc _080B9D00
+_080B9D46:
+ movs r7, 0
+ movs r3, 0
+ ldr r2, [sp, 0x50]
+ cmp r2, 0
+ beq _080B9E3E
+ mov r4, sp
+ adds r4, 0x24
+ str r4, [sp, 0x44]
+ movs r0, 0x25
+ add r0, sp
+ mov r8, r0
+_080B9D5C:
+ ldr r1, [sp, 0x30]
+ adds r0, r1, 0
+ muls r0, r3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ lsls r1, r3, 1
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080B9D7C
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9D86
+_080B9D7C:
+ ldr r0, [sp, 0x3C]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x3C]
+_080B9D86:
+ mov r4, r9
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9DAC
+ mov r2, r10
+ adds r0, r2, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080B9DAC
+_080B9D9A:
+ lsls r1, r7, 1
+ ldr r4, [sp, 0x44]
+ adds r0, r4, r1
+ strb r3, [r0]
+ add r1, r8
+ strb r2, [r1]
+ b _080B9E2C
+ .align 2, 0
+_080B9DA8: .4byte gLinkPlayers
+_080B9DAC:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080B9DC0
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _080B9D9A
+_080B9DC0:
+ mov r2, r9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ mov r4, r10
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080B9E32
+ lsls r5, r7, 1
+ ldr r1, [sp, 0x44]
+ adds r0, r1, r5
+ strb r3, [r0]
+ adds r0, r6, 0
+ str r3, [sp, 0x54]
+ bl sub_80B9BBC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r0, 0x38
+ bl sub_80B9BBC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [sp, 0x54]
+ cmp r4, 0
+ bne _080B9E0A
+ cmp r1, 0
+ beq _080B9E0E
+ mov r2, r8
+ adds r1, r2, r5
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080B9E2C
+_080B9E0A:
+ cmp r1, 0
+ beq _080B9E26
+_080B9E0E:
+ str r3, [sp, 0x54]
+ bl Random
+ mov r4, r8
+ adds r2, r4, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ ldr r3, [sp, 0x54]
+ b _080B9E2C
+_080B9E26:
+ mov r2, r8
+ adds r0, r2, r5
+ strb r1, [r0]
+_080B9E2C:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080B9E32:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r4, [sp, 0x50]
+ cmp r0, r4
+ bcc _080B9D5C
+_080B9E3E:
+ movs r3, 0
+ ldr r1, [sp, 0x48]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 3
+ ldr r2, [sp, 0x2C]
+ adds r6, r2, r0
+ ldr r1, [sp, 0x4C]
+_080B9E4E:
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ str r6, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080B9E4E
+ ldr r0, [sp, 0x38]
+ bl sub_80B9C4C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r4, [sp, 0x3C]
+ cmp r4, 0x3
+ beq _080B9E9C
+ cmp r4, 0x3
+ bgt _080B9E82
+ cmp r4, 0x2
+ beq _080B9E8A
+ b _080B9EF0
+_080B9E82:
+ ldr r0, [sp, 0x3C]
+ cmp r0, 0x4
+ beq _080B9EBC
+ b _080B9EF0
+_080B9E8A:
+ add r2, sp, 0x24
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ movs r3, 0
+ bl sub_80B9BC4
+ b _080B9EF0
+_080B9E9C:
+ ldr r0, _080B9EB8 @ =gUnknown_083D02B4
+ lsls r1, 1
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ add r2, sp, 0x24
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ bl sub_80B9BC4
+ b _080B9EF0
+ .align 2, 0
+_080B9EB8: .4byte gUnknown_083D02B4
+_080B9EBC:
+ add r6, sp, 0x24
+ ldr r4, _080B9F2C @ =gUnknown_083D02BA
+ lsls r5, r1, 2
+ adds r0, r5, r4
+ ldrb r3, [r0]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+ adds r0, r4, 0x2
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r5, r4
+ ldrb r0, [r5]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80B9BC4
+_080B9EF0:
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x48]
+ adds r6, r1, r2
+ ldr r4, _080B9F30 @ =gSaveBlock1
+ ldr r1, _080B9F34 @ =0x0000303c
+ adds r0, r4, r1
+ adds r1, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r2, _080B9F38 @ =0x00003074
+ adds r4, r2
+ adds r1, r6, 0
+ adds r1, 0x38
+ adds r0, r4, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [sp, 0x40]
+ bl SeedRng
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080B9F2C: .4byte gUnknown_083D02BA
+_080B9F30: .4byte gSaveBlock1
+_080B9F34: .4byte 0x0000303c
+_080B9F38: .4byte 0x00003074
+ thumb_func_end sub_80B9C6C
+
+ thumb_func_start sub_80B9F3C
+sub_80B9F3C: @ 80B9F3C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ beq _080BA000
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080BA000
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080B9FC8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A92D4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9718
+ lsls r0, 24
+ cmp r0, 0
+ bne _080B9FB8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ beq _080B9FB8
+ ldr r0, _080B9FA4 @ =0x00004001
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FA8 @ =gStringVar1
+ ldr r1, _080B9FAC @ =gLinkPlayers + 0x8
+ bl StringCopy
+ ldrh r1, [r4]
+ ldr r0, _080B9FB0 @ =0x00000113
+ cmp r1, r0
+ bne _080BA000
+ ldr r0, _080B9FB4 @ =0x00000853
+ bl FlagSet
+ b _080BA000
+ .align 2, 0
+_080B9FA4: .4byte 0x00004001
+_080B9FA8: .4byte gStringVar1
+_080B9FAC: .4byte gLinkPlayers + 0x8
+_080B9FB0: .4byte 0x00000113
+_080B9FB4: .4byte 0x00000853
+_080B9FB8:
+ ldr r0, _080B9FC4 @ =0x00004001
+ movs r1, 0
+ bl VarSet
+ b _080BA000
+ .align 2, 0
+_080B9FC4: .4byte 0x00004001
+_080B9FC8:
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080B9FF8
+ ldr r0, _080B9FEC @ =0x00004001
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, _080B9FF0 @ =gStringVar1
+ ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8
+ bl StringCopy
+ b _080BA000
+ .align 2, 0
+_080B9FEC: .4byte 0x00004001
+_080B9FF0: .4byte gStringVar1
+_080B9FF4: .4byte gLinkPlayers + 0x8
+_080B9FF8:
+ ldr r0, _080BA008 @ =0x00004001
+ movs r1, 0
+ bl VarSet
+_080BA000:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA008: .4byte 0x00004001
+ thumb_func_end sub_80B9F3C
+
+ thumb_func_start sub_80BA00C
+sub_80BA00C: @ 80BA00C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080BA030 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _080BA09C
+ lsls r0, 2
+ ldr r1, _080BA034 @ =_080BA038
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BA030: .4byte gTasks
+_080BA034: .4byte _080BA038
+ .align 2, 0
+_080BA038:
+ .4byte _080BA086
+ .4byte _080BA086
+ .4byte _080BA050
+ .4byte _080BA05A
+ .4byte _080BA074
+ .4byte _080BA08E
+_080BA050:
+ bl sub_8047A1C
+ bl sub_8125E2C
+ b _080BA086
+_080BA05A:
+ bl sub_8125E6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA09C
+ bl sub_8047A34
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ b _080BA09C
+_080BA074:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080BA09C
+ bl sub_800832C
+_080BA086:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BA09C
+_080BA08E:
+ ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BA09C
+ adds r0, r2, 0
+ bl DestroyTask
+_080BA09C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0A4: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80BA00C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/region_map.s b/asm/region_map.s
new file mode 100644
index 000000000..ce64bfa98
--- /dev/null
+++ b/asm/region_map.s
@@ -0,0 +1,3969 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FA8EC
+sub_80FA8EC: @ 80FA8EC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80FA904
+_080FA8F6:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA8F6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA8EC
+
+ thumb_func_start sub_80FA904
+sub_80FA904: @ 80FA904
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080FA928 @ =gUnknown_020388CC
+ str r0, [r3]
+ movs r2, 0x79
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0
+ mov r4, r12
+ strb r2, [r4]
+ adds r0, 0x78
+ strb r1, [r0]
+ ldr r3, [r3]
+ cmp r1, 0
+ bne _080FA930
+ ldr r0, _080FA92C @ =sub_80FAB78
+ b _080FA932
+ .align 2, 0
+_080FA928: .4byte gUnknown_020388CC
+_080FA92C: .4byte sub_80FAB78
+_080FA930:
+ ldr r0, _080FA93C @ =sub_80FAD04
+_080FA932:
+ str r0, [r3, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA93C: .4byte sub_80FAD04
+ thumb_func_end sub_80FA904
+
+ thumb_func_start sub_80FA940
+sub_80FA940: @ 80FA940
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080FA95C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _080FA952
+ b _080FAAE2
+_080FA952:
+ lsls r0, 2
+ ldr r1, _080FA960 @ =_080FA964
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FA95C: .4byte gUnknown_020388CC
+_080FA960: .4byte _080FA964
+ .align 2, 0
+_080FA964:
+ .4byte _080FA984
+ .4byte _080FA998
+ .4byte _080FA9AC
+ .4byte _080FA9BC
+ .4byte _080FA9D8
+ .4byte _080FA9F4
+ .4byte _080FAA38
+ .4byte _080FAAB4
+_080FA984:
+ ldr r0, _080FA990 @ =gUnknown_083E5DA0
+ ldr r1, _080FA994 @ =0x06008000
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA990: .4byte gUnknown_083E5DA0
+_080FA994: .4byte 0x06008000
+_080FA998:
+ ldr r0, _080FA9A4 @ =gUnknown_083E6B04
+ ldr r1, _080FA9A8 @ =0x0600e000
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA9A4: .4byte gUnknown_083E6B04
+_080FA9A8: .4byte 0x0600e000
+_080FA9AC:
+ ldr r0, _080FA9B8 @ =gUnknown_083E5D60
+ movs r1, 0x70
+ movs r2, 0x60
+ bl LoadPalette
+ b _080FAAF4
+ .align 2, 0
+_080FA9B8: .4byte gUnknown_083E5D60
+_080FA9BC:
+ ldr r0, _080FA9D0 @ =gUnknown_083E5AF0
+ ldr r1, _080FA9D4 @ =gUnknown_020388CC
+ ldr r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9D0: .4byte gUnknown_083E5AF0
+_080FA9D4: .4byte gUnknown_020388CC
+_080FA9D8:
+ ldr r0, _080FA9EC @ =gUnknown_083E5B34
+ ldr r1, _080FA9F0 @ =gUnknown_020388CC
+ ldr r1, [r1]
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r1, r3
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9EC: .4byte gUnknown_083E5B34
+_080FA9F0: .4byte gUnknown_020388CC
+_080FA9F4:
+ bl sub_80FB32C
+ ldr r4, _080FAA34 @ =gUnknown_020388CC
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x54
+ ldrh r1, [r0]
+ adds r0, 0x20
+ strh r1, [r0]
+ subs r0, 0x1E
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x76
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ bl sub_80FB758
+ ldr r1, [r4]
+ strb r0, [r1, 0x16]
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x14]
+ bl sub_80FB9C0
+ adds r1, r0, 0
+ ldr r0, [r4]
+ strh r1, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+ b _080FAAF4
+ .align 2, 0
+_080FAA34: .4byte gUnknown_020388CC
+_080FAA38:
+ ldr r0, _080FAA60 @ =gUnknown_020388CC
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x78
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080FAA64
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80FB170
+ b _080FAAF4
+ .align 2, 0
+_080FAA60: .4byte gUnknown_020388CC
+_080FAA64:
+ adds r1, r4, 0
+ adds r1, 0x54
+ ldrh r0, [r1]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0
+ strh r0, [r2]
+ movs r5, 0x56
+ adds r5, r4
+ mov r12, r5
+ ldrh r0, [r5]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r5, r4, 0
+ adds r5, 0x5E
+ strh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r0, r12
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x66
+ strh r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x80
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ b _080FAAF4
+_080FAAB4:
+ bl sub_80FBA18
+ bl sub_80FB260
+ ldr r2, _080FAAE8 @ =gUnknown_020388CC
+ ldr r0, [r2]
+ movs r1, 0
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x20]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, _080FAAEC @ =REG_BG2CNT
+ ldr r3, _080FAAF0 @ =0x0000bc8a
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FAAE2:
+ movs r0, 0
+ b _080FAB02
+ .align 2, 0
+_080FAAE8: .4byte gUnknown_020388CC
+_080FAAEC: .4byte REG_BG2CNT
+_080FAAF0: .4byte 0x0000bc8a
+_080FAAF4:
+ ldr r0, _080FAB0C @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_080FAB02:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB0C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FA940
+
+ thumb_func_start sub_80FAB10
+sub_80FAB10: @ 80FAB10
+ push {r4,lr}
+ ldr r4, _080FAB5C @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FAB34
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB34:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ beq _080FAB54
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x70
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x72
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FAB5C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB10
+
+ thumb_func_start sub_80FAB60
+sub_80FAB60: @ 80FAB60
+ push {lr}
+ ldr r0, _080FAB74 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB74: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB60
+
+ thumb_func_start sub_80FAB78
+sub_80FAB78: @ 80FAB78
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _080FAC14 @ =gUnknown_020388CC
+ ldr r0, [r2]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r3, _080FAC18 @ =gMain
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABAA
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bls _080FABAA
+ adds r1, 0x7C
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABAA:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABC8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0xF
+ bhi _080FABC8
+ adds r1, 0x7C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABC8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABE6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _080FABE6
+ adds r1, 0x7B
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABE6:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAC04
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1B
+ bhi _080FAC04
+ adds r1, 0x7B
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FAC04:
+ ldrh r3, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC1C
+ movs r4, 0x4
+ b _080FAC26
+ .align 2, 0
+_080FAC14: .4byte gUnknown_020388CC
+_080FAC18: .4byte gMain
+_080FAC1C:
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC26
+ movs r4, 0x5
+_080FAC26:
+ cmp r4, 0x1
+ bne _080FAC38
+ ldr r0, [r2]
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, _080FAC40 @ =_swiopen
+ str r0, [r1, 0x18]
+_080FAC38:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAC40: .4byte _swiopen
+ thumb_func_end sub_80FAB78
+
+ thumb_func_start _swiopen
+_swiopen: @ 80FAC44
+ push {r4,r5,lr}
+ ldr r5, _080FAC5C @ =gUnknown_020388CC
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FAC60
+ movs r0, 0x2
+ b _080FACFA
+ .align 2, 0
+_080FAC5C: .4byte gUnknown_020388CC
+_080FAC60:
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FAC76
+ adds r1, 0x54
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FAC76:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FAC8E
+ adds r1, 0x54
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FAC8E:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FACA6
+ adds r1, 0x56
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FACA6:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FACBE
+ adds r1, 0x56
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FACBE:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ adds r1, 0x56
+ ldrh r1, [r1]
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x14]
+ cmp r4, r1
+ beq _080FACEE
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FACEE:
+ bl sub_80FBA18
+ ldr r1, [r5]
+ ldr r0, _080FAD00 @ =sub_80FAB78
+ str r0, [r1, 0x18]
+ movs r0, 0x3
+_080FACFA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAD00: .4byte sub_80FAB78
+ thumb_func_end _swiopen
+
+ thumb_func_start sub_80FAD04
+sub_80FAD04: @ 80FAD04
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r3, _080FADD4 @ =gUnknown_020388CC
+ ldr r0, [r3]
+ mov r12, r0
+ adds r0, 0x6A
+ strh r4, [r0]
+ mov r5, r12
+ adds r5, 0x68
+ strh r4, [r5]
+ ldr r2, _080FADD8 @ =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080FAD3E
+ mov r0, r12
+ adds r0, 0x5E
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x34
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD3E
+ ldr r0, _080FADDC @ =0x0000ffff
+ strh r0, [r5]
+ movs r4, 0x1
+_080FAD3E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD5E
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5E
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0x3B
+ bgt _080FAD5E
+ adds r1, 0x68
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD5E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD84
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x2C
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD84
+ adds r1, r2, 0
+ adds r1, 0x6A
+ ldr r0, _080FADDC @ =0x0000ffff
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD84:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FADA4
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0xAB
+ bgt _080FADA4
+ adds r1, 0x6A
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FADA4:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADB0
+ movs r4, 0x4
+_080FADB0:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADBA
+ movs r4, 0x5
+_080FADBA:
+ cmp r4, 0x1
+ bne _080FADCA
+ ldr r0, [r6]
+ ldr r1, _080FADE0 @ =sub_80FADE4
+ str r1, [r0, 0x18]
+ adds r0, 0x6C
+ movs r1, 0
+ strh r1, [r0]
+_080FADCA:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FADD4: .4byte gUnknown_020388CC
+_080FADD8: .4byte gMain
+_080FADDC: .4byte 0x0000ffff
+_080FADE0: .4byte sub_80FADE4
+ thumb_func_end sub_80FAD04
+
+ thumb_func_start sub_80FADE4
+sub_80FADE4: @ 80FADE4
+ push {r4,r5,lr}
+ ldr r5, _080FAEB4 @ =gUnknown_020388CC
+ ldr r2, [r5]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r0, r2, 0
+ adds r0, 0x6A
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ bl sub_80FB238
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080FAEBC
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ cmp r0, 0
+ bge _080FAE3C
+ adds r0, 0x7
+_080FAE3C:
+ asrs r0, 3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r0, r1, 0
+ adds r0, 0x34
+ cmp r0, 0
+ bge _080FAE56
+ adds r0, 0x7
+_080FAE56:
+ asrs r0, 3
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, r2, 0
+ adds r4, 0x64
+ adds r0, r2, 0
+ adds r0, 0x66
+ ldrh r2, [r4]
+ cmp r3, r2
+ bne _080FAE72
+ ldrh r2, [r0]
+ cmp r1, r2
+ beq _080FAEA0
+_080FAE72:
+ strh r3, [r4]
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r3, [r0, 0x14]
+ cmp r4, r3
+ beq _080FAE9C
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FAE9C:
+ bl sub_80FBA18
+_080FAEA0:
+ ldr r0, _080FAEB4 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080FAEB8 @ =sub_80FAD04
+ str r0, [r2, 0x18]
+ movs r0, 0x3
+ b _080FAEBE
+ .align 2, 0
+_080FAEB4: .4byte gUnknown_020388CC
+_080FAEB8: .4byte sub_80FAD04
+_080FAEBC:
+ movs r0, 0x2
+_080FAEBE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FADE4
+
+ thumb_func_start sub_80FAEC4
+sub_80FAEC4: @ 80FAEC4
+ push {r4-r6,lr}
+ ldr r1, _080FAF40 @ =gUnknown_020388CC
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _080FAF48
+ subs r0, 0x1A
+ strh r3, [r0]
+ subs r0, 0x2
+ strh r3, [r0]
+ str r3, [r2, 0x40]
+ str r3, [r2, 0x3C]
+ adds r4, r2, 0
+ adds r4, 0x54
+ ldrh r0, [r4]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r1, r2, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r0, 0x56
+ adds r0, r2
+ mov r12, r0
+ ldrh r0, [r0]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r3, r2, 0
+ adds r3, 0x62
+ strh r0, [r3]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF10
+ adds r0, 0xF
+_080FAF10:
+ asrs r0, 4
+ str r0, [r2, 0x44]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF20
+ adds r0, 0xF
+_080FAF20:
+ asrs r0, 4
+ str r0, [r2, 0x48]
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r3, r12
+ ldrh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x66
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 9
+ str r0, [r2, 0x4C]
+ ldr r0, _080FAF44 @ =0xfffff800
+ b _080FAFA6
+ .align 2, 0
+_080FAF40: .4byte gUnknown_020388CC
+_080FAF44: .4byte 0xfffff800
+_080FAF48:
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ lsls r0, 8
+ str r0, [r2, 0x3C]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r2, 0x40]
+ adds r0, r2, 0
+ adds r0, 0x60
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, [r2, 0x3C]
+ cmp r0, 0
+ bge _080FAF74
+ adds r0, 0xF
+_080FAF74:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x44]
+ ldr r0, [r2, 0x40]
+ cmp r0, 0
+ bge _080FAF82
+ adds r0, 0xF
+_080FAF82:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x48]
+ adds r0, r2, 0
+ adds r0, 0x64
+ ldrh r1, [r0]
+ subs r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x12
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x56
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 8
+ str r0, [r2, 0x4C]
+ movs r0, 0x80
+ lsls r0, 4
+_080FAFA6:
+ str r0, [r2, 0x50]
+ ldr r0, [r5]
+ adds r0, 0x6E
+ movs r1, 0
+ strh r1, [r0]
+ bl sub_80FBCA0
+ bl sub_80FBDF8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FAEC4
+
+ thumb_func_start sub_80FAFC0
+sub_80FAFC0: @ 80FAFC0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080FAFD8 @ =gUnknown_020388CC
+ ldr r3, [r0]
+ adds r2, r3, 0
+ adds r2, 0x6E
+ ldrh r1, [r2]
+ adds r5, r0, 0
+ cmp r1, 0xF
+ bls _080FAFDC
+ movs r0, 0
+ b _080FB164
+ .align 2, 0
+_080FAFD8: .4byte gUnknown_020388CC
+_080FAFDC:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bne _080FB050
+ str r1, [r3, 0x44]
+ str r1, [r3, 0x48]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r1, [r0]
+ subs r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x6
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ adds r1, 0x1A
+ ldrb r0, [r1]
+ movs r2, 0x80
+ lsls r2, 9
+ cmp r0, 0
+ bne _080FB012
+ movs r2, 0x80
+ lsls r2, 8
+_080FB012:
+ str r2, [r3, 0x4C]
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080FB01E
+ movs r2, 0x1
+_080FB01E:
+ strb r2, [r1]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ ldr r2, _080FB048 @ =sub_80FAD04
+ cmp r0, 0
+ bne _080FB030
+ ldr r2, _080FB04C @ =sub_80FAB78
+_080FB030:
+ str r2, [r1, 0x18]
+ adds r0, r1, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ bl sub_80FBB3C
+ bl sub_80FBE24
+ movs r4, 0
+ b _080FB132
+ .align 2, 0
+_080FB048: .4byte sub_80FAD04
+_080FB04C: .4byte sub_80FAB78
+_080FB050:
+ ldr r2, [r3, 0x3C]
+ ldr r0, [r3, 0x44]
+ adds r2, r0
+ str r2, [r3, 0x3C]
+ ldr r0, [r3, 0x40]
+ ldr r1, [r3, 0x48]
+ adds r0, r1
+ str r0, [r3, 0x40]
+ asrs r2, 8
+ adds r4, r3, 0
+ adds r4, 0x5C
+ strh r2, [r4]
+ ldr r0, [r3, 0x40]
+ asrs r0, 8
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ ldr r0, [r3, 0x4C]
+ ldr r1, [r3, 0x50]
+ adds r0, r1
+ str r0, [r3, 0x4C]
+ ldr r2, [r3, 0x44]
+ cmp r2, 0
+ bge _080FB090
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ blt _080FB0A4
+_080FB090:
+ cmp r2, 0
+ ble _080FB0B4
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0B4
+_080FB0A4:
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r2, [r0]
+ subs r0, 0x4
+ movs r1, 0
+ strh r2, [r0]
+ str r1, [r3, 0x44]
+_080FB0B4:
+ ldr r2, [r5]
+ ldr r4, [r2, 0x48]
+ cmp r4, 0
+ bge _080FB0D0
+ adds r0, r2, 0
+ adds r0, 0x5E
+ adds r3, r2, 0
+ adds r3, 0x62
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r6, 0
+ ldrsh r0, [r3, r6]
+ cmp r1, r0
+ blt _080FB0E8
+_080FB0D0:
+ cmp r4, 0
+ ble _080FB0FA
+ adds r1, r2, 0
+ adds r1, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x62
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0FA
+_080FB0E8:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x62
+ ldrh r1, [r0]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ movs r0, 0
+ strh r1, [r3]
+ str r0, [r2, 0x48]
+_080FB0FA:
+ ldr r0, _080FB118 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080FB120
+ ldr r1, [r2, 0x4C]
+ ldr r0, _080FB11C @ =0x00007fff
+ cmp r1, r0
+ bgt _080FB130
+ adds r0, 0x1
+ str r0, [r2, 0x4C]
+ str r3, [r2, 0x50]
+ b _080FB130
+ .align 2, 0
+_080FB118: .4byte gUnknown_020388CC
+_080FB11C: .4byte 0x00007fff
+_080FB120:
+ ldr r0, [r2, 0x4C]
+ movs r1, 0x80
+ lsls r1, 9
+ cmp r0, r1
+ ble _080FB130
+ str r1, [r2, 0x4C]
+ movs r0, 0
+ str r0, [r2, 0x50]
+_080FB130:
+ movs r4, 0x1
+_080FB132:
+ ldr r0, _080FB16C @ =gUnknown_020388CC
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x5C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ adds r0, r4, 0
+_080FB164:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB16C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAFC0
+
+ thumb_func_start sub_80FB170
+sub_80FB170: @ 80FB170
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r4, 16
+ lsrs r4, 16
+ mov r8, r4
+ lsls r7, 16
+ adds r4, r7, 0
+ lsrs r4, 16
+ mov r9, r4
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080FB230 @ =gUnknown_020388CC
+ ldr r6, [r4]
+ ldr r7, _080FB234 @ =gSineTable
+ mov r12, r7
+ adds r4, r5, 0
+ adds r4, 0x40
+ lsls r4, 1
+ add r4, r12
+ movs r7, 0
+ ldrsh r4, [r4, r7]
+ str r4, [sp]
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r10, r4
+ str r4, [r6, 0x2C]
+ lsls r5, 1
+ add r5, r12
+ movs r7, 0
+ ldrsh r5, [r5, r7]
+ negs r4, r5
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r12, r4
+ str r4, [r6, 0x30]
+ mov r7, r9
+ muls r7, r5
+ adds r5, r7, 0
+ asrs r5, 8
+ str r5, [r6, 0x34]
+ ldr r7, [sp]
+ mov r4, r9
+ muls r4, r7
+ asrs r4, 8
+ mov r8, r4
+ str r4, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 8
+ lsls r2, 16
+ asrs r2, 16
+ lsls r4, r2, 8
+ adds r0, r4
+ lsls r3, 16
+ asrs r3, 16
+ adds r4, r3, 0
+ muls r4, r5
+ mov r5, r10
+ muls r5, r2
+ adds r4, r5
+ subs r0, r4
+ str r0, [r6, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 8
+ adds r1, r0
+ mov r0, r8
+ muls r0, r3
+ mov r3, r12
+ muls r3, r2
+ adds r2, r3, 0
+ adds r0, r2
+ subs r1, r0
+ str r1, [r6, 0x28]
+ adds r6, 0x7D
+ movs r0, 0x1
+ strb r0, [r6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB230: .4byte gUnknown_020388CC
+_080FB234: .4byte gSineTable
+ thumb_func_end sub_80FB170
+
+ thumb_func_start sub_80FB238
+sub_80FB238: @ 80FB238
+ ldr r2, _080FB25C @ =gUnknown_020388CC
+ ldr r2, [r2]
+ lsls r0, 16
+ asrs r0, 8
+ movs r3, 0xE0
+ lsls r3, 5
+ adds r0, r3
+ str r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ movs r0, 0x90
+ lsls r0, 6
+ adds r1, r0
+ str r1, [r2, 0x28]
+ adds r2, 0x7D
+ movs r0, 0x1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080FB25C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB238
+
+ thumb_func_start sub_80FB260
+sub_80FB260: @ 80FB260
+ push {lr}
+ ldr r0, _080FB29C @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r3, r2, 0
+ adds r3, 0x7D
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080FB298
+ ldr r1, _080FB2A0 @ =REG_BG2PA
+ ldr r0, [r2, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x34]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x38]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x24]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x28]
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r3]
+_080FB298:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB29C: .4byte gUnknown_020388CC
+_080FB2A0: .4byte REG_BG2PA
+ thumb_func_end sub_80FB260
+
+ thumb_func_start sub_80FB2A4
+sub_80FB2A4: @ 80FB2A4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ bl sub_80FB260
+ ldr r0, _080FB2E8 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ ldr r1, [r2, 0x20]
+ cmp r1, 0
+ beq _080FB2E0
+ negs r0, r4
+ strh r0, [r1, 0x24]
+ ldr r1, [r2, 0x20]
+ negs r0, r5
+ strh r0, [r1, 0x26]
+_080FB2E0:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB2E8: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB2A4
+
+ thumb_func_start sub_80FB2EC
+sub_80FB2EC: @ 80FB2EC
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ ldr r0, _080FB30C @ =0xfffe0000
+ adds r1, r0
+ lsrs r2, r1, 16
+ cmp r2, 0xE
+ bhi _080FB306
+ cmp r3, 0
+ beq _080FB306
+ cmp r3, 0x1C
+ bls _080FB310
+_080FB306:
+ movs r0, 0x58
+ b _080FB324
+ .align 2, 0
+_080FB30C: .4byte 0xfffe0000
+_080FB310:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080FB328 @ =gRegionMapSections
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r1
+ ldrb r0, [r0]
+_080FB324:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB328: .4byte gRegionMapSections
+ thumb_func_end sub_80FB2EC
+
+ thumb_func_start sub_80FB32C
+sub_80FB32C: @ 80FB32C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080FB358 @ =gSaveBlock1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ adds r2, r0, 0
+ cmp r1, 0x19
+ bne _080FB35C
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080FB35C
+ bl sub_80FB600
+ b _080FB5E8
+ .align 2, 0
+_080FB358: .4byte gSaveBlock1
+_080FB35C:
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ bl get_map_light_level_by_bank_and_number
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _080FB3A4
+ lsls r0, 2
+ ldr r1, _080FB37C @ =_080FB380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB37C: .4byte _080FB380
+ .align 2, 0
+_080FB380:
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB464
+ .4byte _080FB428
+_080FB3A4:
+ ldr r4, _080FB3D4 @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r3, _080FB3D8 @ =gMapHeader
+ ldrb r1, [r3, 0x14]
+ movs r2, 0
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ strb r2, [r0]
+ ldr r0, [r3]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldr r0, _080FB3DC @ =gSaveBlock1
+ ldrh r6, [r0]
+ ldrh r3, [r0, 0x2]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x45
+ beq _080FB3CC
+ b _080FB4CC
+_080FB3CC:
+ adds r1, 0x7F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080FB4CC
+ .align 2, 0
+_080FB3D4: .4byte gUnknown_020388CC
+_080FB3D8: .4byte gMapHeader
+_080FB3DC: .4byte gSaveBlock1
+_080FB3E0:
+ ldr r4, _080FB420 @ =gSaveBlock1
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r1, 0x25
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB424 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x28]
+ ldrh r3, [r4, 0x2A]
+ b _080FB4CC
+ .align 2, 0
+_080FB420: .4byte gSaveBlock1
+_080FB424: .4byte gUnknown_020388CC
+_080FB428:
+ ldr r4, _080FB45C @ =gSaveBlock1
+ movs r0, 0x14
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x15
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB460 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x18]
+ ldrh r3, [r4, 0x1A]
+ b _080FB4CC
+ .align 2, 0
+_080FB45C: .4byte gSaveBlock1
+_080FB460: .4byte gUnknown_020388CC
+_080FB464:
+ ldr r5, _080FB48C @ =gUnknown_020388CC
+ ldr r0, [r5]
+ ldr r1, _080FB490 @ =gMapHeader
+ ldrb r1, [r1, 0x14]
+ strh r1, [r0, 0x14]
+ cmp r1, 0x57
+ beq _080FB498
+ ldr r4, _080FB494 @ =gSaveBlock1 + 0x24
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ b _080FB4B6
+ .align 2, 0
+_080FB48C: .4byte gUnknown_020388CC
+_080FB490: .4byte gMapHeader
+_080FB494: .4byte gSaveBlock1 + 0x24
+_080FB498:
+ ldr r4, _080FB548 @ =gSaveBlock1 + 0x14
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r1, [r5]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1, 0x14]
+_080FB4B6:
+ ldr r0, _080FB54C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x4]
+ ldrh r3, [r4, 0x6]
+_080FB4CC:
+ mov r9, r6
+ ldr r4, _080FB54C @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldrh r5, [r0, 0x14]
+ lsls r0, r5, 3
+ ldr r1, _080FB550 @ =gRegionMapLocations
+ adds r0, r1
+ mov r10, r0
+ ldrb r7, [r0, 0x2]
+ adds r0, r2, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB4F4
+ movs r1, 0x1
+_080FB4F4:
+ adds r0, r6, 0
+ str r3, [sp]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ cmp r6, r7
+ bcc _080FB50C
+ subs r0, r7, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB50C:
+ mov r2, r10
+ ldrb r4, [r2, 0x3]
+ mov r0, r8
+ adds r1, r4, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB526
+ movs r1, 0x1
+_080FB526:
+ adds r0, r3, 0
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ bcc _080FB53A
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080FB53A:
+ cmp r5, 0x24
+ beq _080FB59C
+ cmp r5, 0x24
+ bgt _080FB554
+ cmp r5, 0x1D
+ beq _080FB55E
+ b _080FB5BE
+ .align 2, 0
+_080FB548: .4byte gSaveBlock1 + 0x14
+_080FB54C: .4byte gUnknown_020388CC
+_080FB550: .4byte gRegionMapLocations
+_080FB554:
+ cmp r5, 0x29
+ beq _080FB566
+ cmp r5, 0x33
+ beq _080FB566
+ b _080FB5BE
+_080FB55E:
+ cmp r3, 0
+ beq _080FB5BE
+ movs r6, 0
+ b _080FB5BE
+_080FB566:
+ movs r6, 0
+ ldr r1, _080FB598 @ =gSaveBlock1
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _080FB574
+ movs r6, 0x1
+_080FB574:
+ cmp r0, 0x33
+ ble _080FB57E
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB57E:
+ movs r3, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x25
+ ble _080FB58A
+ movs r3, 0x1
+_080FB58A:
+ cmp r0, 0x38
+ ble _080FB5BE
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080FB5BE
+ .align 2, 0
+_080FB598: .4byte gSaveBlock1
+_080FB59C:
+ movs r6, 0
+ mov r0, r9
+ cmp r0, 0xE
+ bls _080FB5A6
+ movs r6, 0x1
+_080FB5A6:
+ mov r1, r9
+ cmp r1, 0x1C
+ bls _080FB5B2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5B2:
+ mov r2, r9
+ cmp r2, 0x36
+ bls _080FB5BE
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5BE:
+ ldr r0, _080FB5F8 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC @ =gRegionMapLocations
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC @ =gRegionMapLocations
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ adds r0, r3, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+_080FB5E8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB5F8: .4byte gUnknown_020388CC
+_080FB5FC: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB32C
+
+ thumb_func_start sub_80FB600
+sub_80FB600: @ 80FB600
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ mov r4, sp
+ adds r4, 0x1
+ mov r5, sp
+ adds r5, 0x2
+ add r6, sp, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r5
+ cmp r0, 0x4
+ bhi _080FB694
+ lsls r0, 2
+ ldr r1, _080FB63C @ =_080FB640
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB63C: .4byte _080FB640
+ .align 2, 0
+_080FB640:
+ .4byte _080FB694
+ .4byte _080FB654
+ .4byte _080FB664
+ .4byte _080FB674
+ .4byte _080FB684
+_080FB654:
+ ldr r2, _080FB660 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB660: .4byte gUnknown_020388CC
+_080FB664:
+ ldr r2, _080FB670 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0xC
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB670: .4byte gUnknown_020388CC
+_080FB674:
+ ldr r2, _080FB680 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x27
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB680: .4byte gUnknown_020388CC
+_080FB684:
+ ldr r2, _080FB690 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x2E
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB690: .4byte gUnknown_020388CC
+_080FB694:
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, _080FB750 @ =gUnknown_020388CC
+ mov r9, r1
+ ldr r2, [r1]
+ ldrb r1, [r0, 0x14]
+ strh r1, [r2, 0x14]
+ ldr r6, [r0]
+ ldr r1, _080FB754 @ =gRegionMapLocations
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r4, [r5, 0x2]
+ ldr r0, [r6]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6C6
+ movs r1, 0x1
+_080FB6C6:
+ mov r2, r10
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r8, r4
+ bcc _080FB6E2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080FB6E2:
+ ldrb r4, [r5, 0x3]
+ ldr r0, [r6, 0x4]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6F6
+ movs r1, 0x1
+_080FB6F6:
+ mov r2, sp
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r2, r9
+ cmp r7, r4
+ bcc _080FB710
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FB710:
+ ldr r0, [r2]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r2]
+ ldr r3, _080FB754 @ =gRegionMapLocations
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ add r0, r8
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ adds r0, r7, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB750: .4byte gUnknown_020388CC
+_080FB754: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB600
+
+ thumb_func_start sub_80FB758
+sub_80FB758: @ 80FB758
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x58
+ bls _080FB764
+ b _080FB9A0
+_080FB764:
+ lsls r0, 2
+ ldr r1, _080FB770 @ =_080FB774
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB770: .4byte _080FB774
+ .align 2, 0
+_080FB774:
+ .4byte _080FB8DC
+ .4byte _080FB8E4
+ .4byte _080FB8EA
+ .4byte _080FB8F4
+ .4byte _080FB8FC
+ .4byte _080FB904
+ .4byte _080FB90C
+ .4byte _080FB914
+ .4byte _080FB91C
+ .4byte _080FB924
+ .4byte _080FB92C
+ .4byte _080FB934
+ .4byte _080FB93C
+ .4byte _080FB944
+ .4byte _080FB94C
+ .4byte _080FB954
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB96C
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB988
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB8D8
+_080FB8D8:
+ movs r0, 0
+ b _080FB9A2
+_080FB8DC:
+ ldr r0, _080FB8E0 @ =0x0000080f
+ b _080FB956
+ .align 2, 0
+_080FB8E0: .4byte 0x0000080f
+_080FB8E4:
+ movs r0, 0x81
+ lsls r0, 4
+ b _080FB956
+_080FB8EA:
+ ldr r0, _080FB8F0 @ =0x00000811
+ b _080FB956
+ .align 2, 0
+_080FB8F0: .4byte 0x00000811
+_080FB8F4:
+ ldr r0, _080FB8F8 @ =0x00000812
+ b _080FB956
+ .align 2, 0
+_080FB8F8: .4byte 0x00000812
+_080FB8FC:
+ ldr r0, _080FB900 @ =0x00000813
+ b _080FB956
+ .align 2, 0
+_080FB900: .4byte 0x00000813
+_080FB904:
+ ldr r0, _080FB908 @ =0x00000814
+ b _080FB956
+ .align 2, 0
+_080FB908: .4byte 0x00000814
+_080FB90C:
+ ldr r0, _080FB910 @ =0x00000815
+ b _080FB956
+ .align 2, 0
+_080FB910: .4byte 0x00000815
+_080FB914:
+ ldr r0, _080FB918 @ =0x00000816
+ b _080FB956
+ .align 2, 0
+_080FB918: .4byte 0x00000816
+_080FB91C:
+ ldr r0, _080FB920 @ =0x00000817
+ b _080FB956
+ .align 2, 0
+_080FB920: .4byte 0x00000817
+_080FB924:
+ ldr r0, _080FB928 @ =0x00000818
+ b _080FB956
+ .align 2, 0
+_080FB928: .4byte 0x00000818
+_080FB92C:
+ ldr r0, _080FB930 @ =0x00000819
+ b _080FB956
+ .align 2, 0
+_080FB930: .4byte 0x00000819
+_080FB934:
+ ldr r0, _080FB938 @ =0x0000081a
+ b _080FB956
+ .align 2, 0
+_080FB938: .4byte 0x0000081a
+_080FB93C:
+ ldr r0, _080FB940 @ =0x0000081b
+ b _080FB956
+ .align 2, 0
+_080FB940: .4byte 0x0000081b
+_080FB944:
+ ldr r0, _080FB948 @ =0x0000081c
+ b _080FB956
+ .align 2, 0
+_080FB948: .4byte 0x0000081c
+_080FB94C:
+ ldr r0, _080FB950 @ =0x0000081d
+ b _080FB956
+ .align 2, 0
+_080FB950: .4byte 0x0000081d
+_080FB954:
+ ldr r0, _080FB968 @ =0x0000081e
+_080FB956:
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080FB964
+ movs r1, 0x2
+_080FB964:
+ adds r0, r1, 0
+ b _080FB9A2
+ .align 2, 0
+_080FB968: .4byte 0x0000081e
+_080FB96C:
+ ldr r0, _080FB984 @ =0x00000848
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ asrs r0, 31
+ movs r1, 0x4
+ ands r0, r1
+ b _080FB9A2
+ .align 2, 0
+_080FB984: .4byte 0x00000848
+_080FB988:
+ ldr r0, _080FB99C @ =0x00000849
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _080FB9A2
+ .align 2, 0
+_080FB99C: .4byte 0x00000849
+_080FB9A0:
+ movs r0, 0x1
+_080FB9A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB758
+
+ thumb_func_start sub_80FB9A8
+sub_80FB9A8: @ 80FB9A8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9A8
+
+ thumb_func_start sub_80FB9C0
+sub_80FB9C0: @ 80FB9C0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _080FB9E8 @ =gUnknown_083E7684
+ ldrh r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _080FB9FC
+ adds r5, r4, 0
+ adds r6, r4, 0x2
+_080FB9D6:
+ lsls r1, r2, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _080FB9EC
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ b _080FB9FE
+ .align 2, 0
+_080FB9E8: .4byte gUnknown_083E7684
+_080FB9EC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FB9D6
+_080FB9FC:
+ adds r0, r3, 0
+_080FB9FE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9C0
+
+ thumb_func_start sub_80FBA04
+sub_80FBA04: @ 80FBA04
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80FB9C0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBA04
+
+ thumb_func_start sub_80FBA18
+sub_80FBA18: @ 80FBA18
+ push {r4-r6,lr}
+ ldr r0, _080FBA2C @ =gUnknown_020388CC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x58
+ bne _080FBA30
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ b _080FBA96
+ .align 2, 0
+_080FBA2C: .4byte gUnknown_020388CC
+_080FBA30:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBA40
+ adds r0, r1, 0
+ adds r0, 0x54
+ b _080FBA44
+_080FBA40:
+ adds r0, r1, 0
+ adds r0, 0x64
+_080FBA44:
+ ldrh r4, [r0]
+ adds r0, 0x2
+ ldrh r5, [r0]
+ movs r6, 0
+ b _080FBA70
+_080FBA4E:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBA8C @ =gUnknown_020388CC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ bne _080FBA70
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FBA70:
+ cmp r4, 0x1
+ bhi _080FBA4E
+ adds r0, r5, 0
+ bl sub_80FBAA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FBA90
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1D
+ b _080FBA70
+ .align 2, 0
+_080FBA8C: .4byte gUnknown_020388CC
+_080FBA90:
+ ldr r0, _080FBA9C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ strb r6, [r0, 0x17]
+_080FBA96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBA9C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBA18
+
+ thumb_func_start sub_80FBAA0
+sub_80FBAA0: @ 80FBAA0
+ push {r4,r5,lr}
+ lsls r0, 16
+ ldr r1, _080FBAB4 @ =0xffff0000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldr r0, _080FBAB8 @ =0x0000ffff
+ cmp r5, r0
+ bne _080FBAC0
+ b _080FBAE2
+ .align 2, 0
+_080FBAB4: .4byte 0xffff0000
+_080FBAB8: .4byte 0x0000ffff
+_080FBABC:
+ movs r0, 0x1
+ b _080FBAE4
+_080FBAC0:
+ movs r4, 0x1
+_080FBAC2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBAEC @ =gUnknown_020388CC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ beq _080FBABC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1C
+ bls _080FBAC2
+_080FBAE2:
+ movs r0, 0
+_080FBAE4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FBAEC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAA0
+
+ thumb_func_start sub_80FBAF0
+sub_80FBAF0: @ 80FBAF0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080FBB34 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0x7A
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ beq _080FBB2E
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r4, [r2, 0x20]
+ adds r0, r4
+ strh r0, [r2, 0x20]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ strh r0, [r2, 0x22]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+_080FBB2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBB34: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAF0
+
+ thumb_func_start nullsub_66
+nullsub_66: @ 80FBB38
+ bx lr
+ thumb_func_end nullsub_66
+
+ thumb_func_start sub_80FBB3C
+sub_80FBB3C: @ 80FBB3C
+ push {r4-r7,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _080FBBAC @ =gUnknown_083E76E8
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [sp, 0x20]
+ str r2, [sp, 0x24]
+ mov r2, sp
+ ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ lsrs r3, r0, 16
+ add r2, sp, 0x18
+ ldrh r1, [r2, 0x4]
+ orrs r1, r0
+ str r1, [r2, 0x4]
+ mov r0, sp
+ strh r3, [r0]
+ ldr r0, _080FBBB4 @ =gUnknown_020388CC
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x58
+ strh r3, [r0]
+ ldr r5, _080FBBB8 @ =0xffff0000
+ add r1, sp, 0x20
+ ldr r0, [r1, 0x4]
+ ands r0, r5
+ orrs r0, r6
+ str r0, [r1, 0x4]
+ mov r0, sp
+ strh r6, [r0, 0x2]
+ adds r3, r4, 0
+ adds r0, r3, 0
+ adds r0, 0x5A
+ strh r6, [r0]
+ adds r0, 0x1E
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _080FBBC0
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r3, r1
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ subs r1, 0x80
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBBBC @ =sub_80FBAF0
+ b _080FBBD6
+ .align 2, 0
+_080FBBAC: .4byte gUnknown_083E76E8
+_080FBBB0: .4byte gSpriteTemplate_83E76F0
+_080FBBB4: .4byte gUnknown_020388CC
+_080FBBB8: .4byte 0xffff0000
+_080FBBBC: .4byte sub_80FBAF0
+_080FBBC0:
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r0, r4, r3
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBC38 @ =nullsub_66
+_080FBBD6:
+ str r0, [sp, 0x14]
+ adds r0, r2, 0
+ bl LoadSpriteSheet
+ adds r0, r7, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0x38
+ movs r2, 0x48
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080FBC90
+ ldr r4, _080FBC3C @ =gUnknown_020388CC
+ ldr r2, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080FBC40 @ =gSprites
+ adds r3, r0, r1
+ str r3, [r2, 0x1C]
+ adds r2, 0x78
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080FBC44
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r2, [r4]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x8
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ ldr r0, [r2, 0x1C]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080FBC6C
+ .align 2, 0
+_080FBC38: .4byte nullsub_66
+_080FBC3C: .4byte gUnknown_020388CC
+_080FBC40: .4byte gSprites
+_080FBC44:
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x1C]
+ adds r1, 0x56
+ ldrh r0, [r1]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x22]
+_080FBC6C:
+ ldr r4, _080FBC98 @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x2
+ strh r0, [r1, 0x30]
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r4, _080FBC9C @ =0x00000101
+ adds r0, r4
+ strh r0, [r2, 0x32]
+ ldr r1, [r1, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+_080FBC90:
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBC98: .4byte gUnknown_020388CC
+_080FBC9C: .4byte 0x00000101
+ thumb_func_end sub_80FBB3C
+
+ thumb_func_start sub_80FBCA0
+sub_80FBCA0: @ 80FBCA0
+ push {r4,lr}
+ ldr r4, _080FBCCC @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FBCC4
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FBCC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBCCC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBCA0
+
+ thumb_func_start unref_sub_80FBCD0
+unref_sub_80FBCD0: @ 80FBCD0
+ ldr r0, _080FBCDC @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCDC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCD0
+
+ thumb_func_start unref_sub_80FBCE0
+unref_sub_80FBCE0: @ 80FBCE0
+ ldr r0, _080FBCEC @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCEC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCE0
+
+ thumb_func_start sub_80FBCF0
+sub_80FBCF0: @ 80FBCF0
+ push {r4,r5,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080FBD98 @ =gUnknown_083E5C40
+ str r2, [sp, 0x18]
+ movs r2, 0x80
+ add r5, sp, 0x18
+ lsrs r3, r0, 16
+ orrs r0, r2
+ str r0, [r5, 0x4]
+ ldr r0, _080FBD9C @ =gUnknown_083E5C20
+ str r0, [sp, 0x20]
+ ldr r2, _080FBDA0 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r3, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080FBDA4 @ =gUnknown_083E7708
+ str r0, [sp, 0x4]
+ ldr r0, _080FBDA8 @ =gUnknown_083E7718
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x10]
+ ldr r0, _080FBDB0 @ =SpriteCallbackDummy
+ str r0, [sp, 0x14]
+ ldr r0, _080FBDB4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _080FBD42
+ ldr r0, _080FBDB8 @ =gUnknown_083E5CE0
+ str r0, [sp, 0x18]
+ ldr r0, _080FBDBC @ =gUnknown_083E5CC0
+ str r0, [sp, 0x20]
+_080FBD42:
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080FBDC0 @ =gUnknown_020388CC
+ ldr r2, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080FBDC4 @ =gSprites
+ adds r1, r0
+ str r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBDCC
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDC8 @ =sub_80FBF34
+ b _080FBDEA
+ .align 2, 0
+_080FBD98: .4byte gUnknown_083E5C40
+_080FBD9C: .4byte gUnknown_083E5C20
+_080FBDA0: .4byte 0xffff0000
+_080FBDA4: .4byte gUnknown_083E7708
+_080FBDA8: .4byte gUnknown_083E7718
+_080FBDAC: .4byte gDummySpriteAffineAnimTable
+_080FBDB0: .4byte SpriteCallbackDummy
+_080FBDB4: .4byte gSaveBlock2
+_080FBDB8: .4byte gUnknown_083E5CE0
+_080FBDBC: .4byte gUnknown_083E5CC0
+_080FBDC0: .4byte gUnknown_020388CC
+_080FBDC4: .4byte gSprites
+_080FBDC8: .4byte sub_80FBF34
+_080FBDCC:
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDF4 @ =sub_80FBEA4
+_080FBDEA:
+ str r0, [r1, 0x1C]
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBDF4: .4byte sub_80FBEA4
+ thumb_func_end sub_80FBCF0
+
+ thumb_func_start sub_80FBDF8
+sub_80FBDF8: @ 80FBDF8
+ push {lr}
+ ldr r3, _080FBE1C @ =gUnknown_020388CC
+ ldr r0, [r3]
+ ldr r2, [r0, 0x20]
+ cmp r2, 0
+ beq _080FBE16
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, [r0, 0x20]
+ ldr r0, _080FBE20 @ =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080FBE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBE1C: .4byte gUnknown_020388CC
+_080FBE20: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80FBDF8
+
+ thumb_func_start sub_80FBE24
+sub_80FBE24: @ 80FBE24
+ push {lr}
+ ldr r0, _080FBE5C @ =gUnknown_020388CC
+ ldr r3, [r0]
+ ldr r1, [r3, 0x20]
+ cmp r1, 0
+ beq _080FBE9A
+ adds r0, r3, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FBE64
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBE60 @ =sub_80FBEA4
+ b _080FBE8C
+ .align 2, 0
+_080FBE5C: .4byte gUnknown_020388CC
+_080FBE60: .4byte sub_80FBEA4
+_080FBE64:
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ movs r2, 0
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x24]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x26]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBEA0 @ =sub_80FBF34
+_080FBE8C:
+ str r0, [r1, 0x1C]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080FBE9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBEA0: .4byte sub_80FBF34
+ thumb_func_end sub_80FBE24
+
+ thumb_func_start sub_80FBEA4
+sub_80FBEA4: @ 80FBEA4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080FBF08 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r2, 1
+ negs r2, r2
+ strh r2, [r3, 0x24]
+ adds r1, 0x5E
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r3, 0x26]
+ ldrh r1, [r3, 0x22]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x20]
+ adds r1, r2
+ adds r2, r3, 0
+ adds r2, 0x28
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ strh r2, [r3, 0x30]
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB0
+ bhi _080FBF04
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r2, r0
+ blt _080FBF04
+ cmp r2, 0xF8
+ ble _080FBF0C
+_080FBF04:
+ movs r0, 0
+ b _080FBF0E
+ .align 2, 0
+_080FBF08: .4byte gUnknown_020388CC
+_080FBF0C:
+ movs r0, 0x1
+_080FBF0E:
+ strh r0, [r3, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080FBF20
+ adds r0, r3, 0
+ bl sub_80FBF40
+ b _080FBF2C
+_080FBF20:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080FBF2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBEA4
+
+ thumb_func_start sub_80FBF34
+sub_80FBF34: @ 80FBF34
+ push {lr}
+ bl sub_80FBF40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF34
+
+ thumb_func_start sub_80FBF40
+sub_80FBF40: @ 80FBF40
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FBF80 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBF84
+ ldrh r0, [r2, 0x3C]
+ adds r0, 0x1
+ strh r0, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FBF90
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FBF90
+ .align 2, 0
+_080FBF80: .4byte gUnknown_020388CC
+_080FBF84:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080FBF90:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF40
+
+ thumb_func_start sub_80FBF94
+sub_80FBF94: @ 80FBF94
+ push {lr}
+ ldr r0, _080FBFB0 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBFAA
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+_080FBFAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBFB0: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBF94
+
+ thumb_func_start sub_80FBFB4
+sub_80FBFB4: @ 80FBFB4
+ push {lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r1, 0x56
+ bne _080FBFCA
+ bl GetSecretBaseMapName
+ b _080FBFF2
+_080FBFCA:
+ cmp r1, 0x57
+ bhi _080FBFE4
+ ldr r0, _080FBFE0 @ =gRegionMapLocations
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl StringCopy
+ b _080FBFF2
+ .align 2, 0
+_080FBFE0: .4byte gRegionMapLocations
+_080FBFE4:
+ cmp r2, 0
+ bne _080FBFEA
+ movs r2, 0x12
+_080FBFEA:
+ adds r0, r3, 0
+ movs r1, 0
+ bl StringFill
+_080FBFF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFB4
+
+ thumb_func_start sub_80FBFF8
+sub_80FBFF8: @ 80FBFF8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x56
+ beq _080FC014
+ cmp r1, 0x57
+ bne _080FC020
+ ldr r1, _080FC010 @ =gOtherText_Ferry
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC010: .4byte gOtherText_Ferry
+_080FC014:
+ ldr r1, _080FC01C @ =gOtherText_SecretBase
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC01C: .4byte gOtherText_SecretBase
+_080FC020:
+ movs r2, 0
+ bl sub_80FBFB4
+_080FC026:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFF8
+
+ thumb_func_start sub_80FC02C
+sub_80FC02C: @ 80FC02C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x42
+ beq _080FC03C
+ bl sub_80FBFF8
+ b _080FC042
+_080FC03C:
+ ldr r1, _080FC048 @ =gOtherText_Hideout
+ bl StringCopy
+_080FC042:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC048: .4byte gOtherText_Hideout
+ thumb_func_end sub_80FC02C
+
+ thumb_func_start sub_80FC04C
+sub_80FC04C: @ 80FC04C
+ push {r4,r5,lr}
+ ldr r5, [sp, 0xC]
+ lsls r0, 16
+ ldr r4, _080FC070 @ =gRegionMapLocations
+ lsrs r0, 13
+ adds r0, r4
+ ldrb r4, [r0]
+ strh r4, [r1]
+ ldrb r1, [r0, 0x1]
+ strh r1, [r2]
+ ldrb r1, [r0, 0x2]
+ strh r1, [r3]
+ ldrb r0, [r0, 0x3]
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC070: .4byte gRegionMapLocations
+ thumb_func_end sub_80FC04C
+
+ thumb_func_start sub_80FC074
+sub_80FC074: @ 80FC074
+ push {r4,lr}
+ ldr r0, _080FC090 @ =gMain
+ ldr r1, _080FC094 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080FC084
+ b _080FC1F2
+_080FC084:
+ lsls r0, 2
+ ldr r1, _080FC098 @ =_080FC09C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC090: .4byte gMain
+_080FC094: .4byte 0x0000043c
+_080FC098: .4byte _080FC09C
+ .align 2, 0
+_080FC09C:
+ .4byte _080FC0C4
+ .4byte _080FC104
+ .4byte _080FC110
+ .4byte _080FC120
+ .4byte _080FC15C
+ .4byte _080FC170
+ .4byte _080FC184
+ .4byte _080FC1A4
+ .4byte _080FC1AA
+ .4byte _080FC1C4
+_080FC0C4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080FC1E6
+_080FC104:
+ ldr r0, _080FC10C @ =gWindowConfig_81E7224
+ bl SetUpWindowConfig
+ b _080FC1E6
+ .align 2, 0
+_080FC10C: .4byte gWindowConfig_81E7224
+_080FC110:
+ ldr r0, _080FC11C @ =gWindowConfig_81E7224
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080FC1E6
+ .align 2, 0
+_080FC11C: .4byte gWindowConfig_81E7224
+_080FC120:
+ ldr r4, _080FC158 @ =0x02000008
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBB3C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ adds r1, r4, 0
+ subs r1, 0x8
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x6]
+ movs r2, 0xA4
+ lsls r2, 4
+ adds r4, r2
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl StringFill
+ bl sub_80FC254
+ b _080FC1E6
+ .align 2, 0
+_080FC158: .4byte 0x02000008
+_080FC15C:
+ ldr r0, _080FC168 @ =gUnknown_083E773C
+ ldr r1, _080FC16C @ =0x0600c000
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC168: .4byte gUnknown_083E773C
+_080FC16C: .4byte 0x0600c000
+_080FC170:
+ ldr r0, _080FC17C @ =gUnknown_083E7774
+ ldr r1, _080FC180 @ =0x0600f000
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC17C: .4byte gUnknown_083E7774
+_080FC180: .4byte 0x0600f000
+_080FC184:
+ ldr r0, _080FC19C @ =gUnknown_083E771C
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere
+ movs r1, 0x1
+ movs r2, 0x90
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ b _080FC1E6
+ .align 2, 0
+_080FC19C: .4byte gUnknown_083E771C
+_080FC1A0: .4byte gOtherText_FlyToWhere
+_080FC1A4:
+ bl sub_80FC31C
+ b _080FC1E6
+_080FC1AA:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, _080FC1C0 @ =sub_80FC214
+ bl SetVBlankCallback
+ b _080FC1E6
+ .align 2, 0
+_080FC1C0: .4byte sub_80FC214
+_080FC1C4:
+ ldr r1, _080FC1F8 @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x46
+ ldr r2, _080FC1FC @ =0x00001e0d
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _080FC200 @ =0x00001741
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080FC204 @ =sub_80FC5B4
+ bl sub_80FC244
+ ldr r0, _080FC208 @ =sub_80FC228
+ bl SetMainCallback2
+_080FC1E6:
+ ldr r1, _080FC20C @ =gMain
+ ldr r0, _080FC210 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FC1F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC1F8: .4byte REG_BLDCNT
+_080FC1FC: .4byte 0x00001e0d
+_080FC200: .4byte 0x00001741
+_080FC204: .4byte sub_80FC5B4
+_080FC208: .4byte sub_80FC228
+_080FC20C: .4byte gMain
+_080FC210: .4byte 0x0000043c
+ thumb_func_end sub_80FC074
+
+ thumb_func_start sub_80FC214
+sub_80FC214: @ 80FC214
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC214
+
+ thumb_func_start sub_80FC228
+sub_80FC228: @ 80FC228
+ push {lr}
+ ldr r0, _080FC240 @ =0x02000000
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC240: .4byte 0x02000000
+ thumb_func_end sub_80FC228
+
+ thumb_func_start sub_80FC244
+sub_80FC244: @ 80FC244
+ ldr r1, _080FC250 @ =0x02000000
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080FC250: .4byte 0x02000000
+ thumb_func_end sub_80FC244
+
+ thumb_func_start sub_80FC254
+sub_80FC254: @ 80FC254
+ push {r4,r5,lr}
+ ldr r4, _080FC2AC @ =0x02000000
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC262
+ cmp r0, 0x4
+ bne _080FC2EC
+_080FC262:
+ movs r1, 0
+ ldr r2, _080FC2B0 @ =gUnknown_083E79C0
+ adds r5, r4, 0
+_080FC268:
+ lsls r0, r1, 3
+ adds r4, r0, r2
+ ldrh r0, [r5, 0x1C]
+ ldrh r3, [r4, 0x4]
+ cmp r0, r3
+ bne _080FC2B4
+ ldrh r0, [r4, 0x6]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC2BE
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r0, [r5, 0x1F]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1D
+ movs r2, 0x11
+ bl sub_8072B4C
+ b _080FC310
+ .align 2, 0
+_080FC2AC: .4byte 0x02000000
+_080FC2B0: .4byte gUnknown_083E79C0
+_080FC2B4:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080FC268
+_080FC2BE:
+ movs r0, 0
+ cmp r0, 0
+ bne _080FC310
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _080FC2E8 @ =0x02000008
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ b _080FC310
+ .align 2, 0
+_080FC2E8: .4byte 0x02000008
+_080FC2EC:
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080FC318 @ =0x00000a48
+ adds r0, r4, r1
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080FC310:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC318: .4byte 0x00000a48
+ thumb_func_end sub_80FC254
+
+ thumb_func_start sub_80FC31C
+sub_80FC31C: @ 80FC31C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080FC360 @ =gUnknown_083E784C
+ ldr r4, _080FC364 @ =0x02000888
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldr r1, _080FC368 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _080FC36C @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080FC370 @ =gUnknown_083E79CC
+ bl LoadSpritePalette
+ bl sub_80FC374
+ bl sub_80FC484
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC360: .4byte gUnknown_083E784C
+_080FC364: .4byte 0x02000888
+_080FC368: .4byte 0xffff0000
+_080FC36C: .4byte 0x0000ffff
+_080FC370: .4byte gUnknown_083E79CC
+ thumb_func_end sub_80FC31C
+
+ thumb_func_start sub_80FC374
+sub_80FC374: @ 80FC374
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _080FC3D4 @ =0x0000080f
+ str r0, [sp, 0xC]
+ movs r1, 0
+ mov r9, r1
+ mov r2, sp
+ adds r2, 0x6
+ str r2, [sp, 0x14]
+ mov r3, sp
+ adds r3, 0xA
+ str r3, [sp, 0x18]
+ mov r0, sp
+ adds r0, 0x8
+ str r0, [sp, 0x10]
+ add r1, sp, 0x4
+ mov r10, r1
+_080FC39E:
+ ldr r2, [sp, 0x18]
+ str r2, [sp]
+ mov r0, r9
+ add r1, sp, 0x4
+ mov r2, sp
+ adds r2, 0x6
+ ldr r3, [sp, 0x10]
+ bl sub_80FC04C
+ mov r3, r10
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3]
+ mov r1, sp
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x2
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x6]
+ ldr r2, [sp, 0x10]
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bne _080FC3D8
+ movs r7, 0x1
+ b _080FC3E4
+ .align 2, 0
+_080FC3D4: .4byte 0x0000080f
+_080FC3D8:
+ ldr r3, [sp, 0x18]
+ ldrh r0, [r3]
+ movs r7, 0
+ cmp r0, 0x2
+ bne _080FC3E4
+ movs r7, 0x2
+_080FC3E4:
+ mov r0, r10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, [sp, 0x14]
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080FC458
+ ldr r1, _080FC434 @ =gSprites
+ mov r8, r1
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r6, r0, 2
+ adds r2, r6, r1
+ lsls r3, r7, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldr r0, [sp, 0xC]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC43C
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080FC438 @ =sub_80FC55C
+ str r1, [r0]
+ b _080FC442
+ .align 2, 0
+_080FC430: .4byte gSpriteTemplate_83E7A38
+_080FC434: .4byte gSprites
+_080FC438: .4byte sub_80FC55C
+_080FC43C:
+ adds r0, r7, 0x3
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FC442:
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080FC480 @ =gSprites
+ adds r4, r0
+ lsls r1, r7, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ mov r2, r9
+ strh r2, [r4, 0x2E]
+_080FC458:
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0xF
+ bls _080FC39E
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC480: .4byte gSprites
+ thumb_func_end sub_80FC374
+
+ thumb_func_start sub_80FC484
+sub_80FC484: @ 80FC484
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080FC54C @ =gUnknown_083E79D4
+ ldrh r0, [r6, 0x2]
+ cmp r0, 0x58
+ beq _080FC53C
+ mov r5, sp
+ adds r5, 0x6
+ add r7, sp, 0x4
+ ldr r1, _080FC550 @ =gSprites
+ mov r9, r1
+ movs r0, 0x1C
+ add r0, r9
+ mov r10, r0
+_080FC4AC:
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC524
+ adds r0, r6, 0x2
+ adds r0, r4, r0
+ ldrh r6, [r0]
+ mov r0, sp
+ adds r0, 0xA
+ str r0, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ add r3, sp, 0x8
+ bl sub_80FC04C
+ ldrh r0, [r7]
+ adds r0, 0x1
+ lsls r0, 3
+ strh r0, [r7]
+ ldrh r0, [r5]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r5]
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080FC524
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ mov r1, r9
+ adds r4, r2, r1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ add r2, r10
+ ldr r0, _080FC558 @ =sub_80FC55C
+ str r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+_080FC524:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r6, _080FC54C @ =gUnknown_083E79D4
+ lsls r0, 2
+ adds r1, r6, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FC4AC
+_080FC53C:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC54C: .4byte gUnknown_083E79D4
+_080FC550: .4byte gSprites
+_080FC554: .4byte gSpriteTemplate_83E7A38
+_080FC558: .4byte sub_80FC55C
+ thumb_func_end sub_80FC484
+
+ thumb_func_start sub_80FC55C
+sub_80FC55C: @ 80FC55C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FC59C @ =0x02000000
+ ldrh r1, [r0, 0x1C]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080FC5A0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FC5AE
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FC5AE
+ .align 2, 0
+_080FC59C: .4byte 0x02000000
+_080FC5A0:
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x15
+ ands r0, r1
+ strb r0, [r2]
+_080FC5AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC55C
+
+ thumb_func_start sub_80FC5B4
+sub_80FC5B4: @ 80FC5B4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC5C8 @ =0x02000000
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC5CC
+ cmp r1, 0x1
+ beq _080FC5E4
+ b _080FC5F4
+ .align 2, 0
+_080FC5C8: .4byte 0x02000000
+_080FC5CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC5F4
+_080FC5E4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC5F4
+ ldr r0, _080FC5FC @ =sub_80FC600
+ bl sub_80FC244
+_080FC5F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC5FC: .4byte sub_80FC600
+ thumb_func_end sub_80FC5B4
+
+ thumb_func_start sub_80FC600
+sub_80FC600: @ 80FC600
+ push {r4,lr}
+ ldr r0, _080FC620 @ =0x02000000
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080FC68A
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FC68A
+ lsls r0, 2
+ ldr r1, _080FC624 @ =_080FC628
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC620: .4byte 0x02000000
+_080FC624: .4byte _080FC628
+ .align 2, 0
+_080FC628:
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC640
+ .4byte _080FC646
+ .4byte _080FC674
+_080FC640:
+ bl sub_80FC254
+ b _080FC68A
+_080FC646:
+ ldr r4, _080FC668 @ =0x02000000
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC652
+ cmp r0, 0x4
+ bne _080FC68A
+_080FC652:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r1, _080FC66C @ =0x00000a6e
+ adds r0, r4, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080FC670 @ =sub_80FC69C
+ bl sub_80FC244
+ b _080FC68A
+ .align 2, 0
+_080FC668: .4byte 0x02000000
+_080FC66C: .4byte 0x00000a6e
+_080FC670: .4byte sub_80FC69C
+_080FC674:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r0, _080FC690 @ =0x02000000
+ ldr r1, _080FC694 @ =0x00000a6e
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FC698 @ =sub_80FC69C
+ bl sub_80FC244
+_080FC68A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC690: .4byte 0x02000000
+_080FC694: .4byte 0x00000a6e
+_080FC698: .4byte sub_80FC69C
+ thumb_func_end sub_80FC600
+
+ thumb_func_start sub_80FC69C
+sub_80FC69C: @ 80FC69C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC6B0 @ =0x02000000
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC6B4
+ cmp r1, 0x1
+ beq _080FC6CC
+ b _080FC792
+ .align 2, 0
+_080FC6B0: .4byte 0x02000000
+_080FC6B4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC792
+_080FC6CC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC792
+ bl sub_80FAB10
+ ldr r1, _080FC6F4 @ =0x00000a6e
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC78C
+ ldrh r0, [r4, 0x1C]
+ cmp r0, 0xF
+ beq _080FC724
+ cmp r0, 0xF
+ bgt _080FC6F8
+ cmp r0, 0
+ beq _080FC710
+ b _080FC748
+ .align 2, 0
+_080FC6F4: .4byte 0x00000a6e
+_080FC6F8:
+ cmp r0, 0x3A
+ beq _080FC708
+ cmp r0, 0x49
+ bne _080FC748
+ movs r0, 0x16
+ bl sub_8053538
+ b _080FC786
+_080FC708:
+ movs r0, 0x15
+ bl sub_8053538
+ b _080FC786
+_080FC710:
+ ldr r0, _080FC720 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xD
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0xC
+ b _080FC73A
+ .align 2, 0
+_080FC720: .4byte gSaveBlock2
+_080FC724:
+ ldr r0, _080FC744 @ =0x00000854
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0xB
+ cmp r0, 0
+ beq _080FC73A
+ ldrb r0, [r4, 0x1F]
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0x14
+_080FC73A:
+ adds r0, r1, 0
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC744: .4byte 0x00000854
+_080FC748:
+ ldr r3, _080FC764 @ =gUnknown_083E7920
+ ldr r0, _080FC768 @ =0x02000000
+ ldrh r1, [r0, 0x1C]
+ lsls r0, r1, 1
+ adds r2, r0, r1
+ adds r0, r3, 0x2
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FC76C
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC764: .4byte gUnknown_083E7920
+_080FC768: .4byte 0x02000000
+_080FC76C:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ bl warp1_set_2
+_080FC786:
+ bl sub_80865BC
+ b _080FC792
+_080FC78C:
+ ldr r0, _080FC79C @ =sub_808AD58
+ bl SetMainCallback2
+_080FC792:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC79C: .4byte sub_808AD58
+ thumb_func_end sub_80FC69C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80B79A8.s b/asm/rom_80B79A8.s
index f109d94b6..0d630ba52 100644
--- a/asm/rom_80B79A8.s
+++ b/asm/rom_80B79A8.s
@@ -477,163525 +477,4 @@ _080B7D1C: .4byte gSaveBlock1 + 0x490
_080B7D20: .4byte gUnknown_0202E8CE
thumb_func_end sub_80B7D0C
- thumb_func_start AreMovesContestCombo
-AreMovesContestCombo: @ 80B7D24
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsls r1, 16
- ldr r2, _080B7D78 @ =gContestMoves
- lsrs r0, 13
- adds r0, r2
- ldrb r4, [r0, 0x2]
- mov r3, sp
- lsrs r1, 13
- adds r1, r2
- ldrb r0, [r1, 0x3]
- strb r0, [r3]
- mov r2, sp
- ldrb r0, [r1, 0x4]
- strb r0, [r2, 0x1]
- ldrb r0, [r1, 0x5]
- strb r0, [r2, 0x2]
- mov r0, sp
- ldrb r1, [r1, 0x6]
- strb r1, [r0, 0x3]
- cmp r4, 0
- beq _080B7D80
- mov r0, sp
- ldrb r0, [r0]
- cmp r4, r0
- beq _080B7D6E
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- beq _080B7D6E
- mov r0, sp
- ldrb r0, [r0, 0x2]
- cmp r4, r0
- beq _080B7D6E
- cmp r4, r1
- bne _080B7D80
-_080B7D6E:
- ldr r0, _080B7D7C @ =gComboStarterLookupTable
- adds r0, r4, r0
- ldrb r0, [r0]
- b _080B7D82
- .align 2, 0
-_080B7D78: .4byte gContestMoves
-_080B7D7C: .4byte gComboStarterLookupTable
-_080B7D80:
- movs r0, 0
-_080B7D82:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end AreMovesContestCombo
-
- thumb_func_start ContestEffect_00
-ContestEffect_00: @ 80B7D8C
- bx lr
- thumb_func_end ContestEffect_00
-
- thumb_func_start ContestEffect_01
-ContestEffect_01: @ 80B7D90
- push {lr}
- ldr r3, _080B7DB8 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7DB8: .4byte 0x020192d0
- thumb_func_end ContestEffect_01
-
- thumb_func_start ContestEffect_02
-ContestEffect_02: @ 80B7DBC
- push {lr}
- ldr r3, _080B7DE4 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r3, 0x11]
- movs r1, 0x1
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7DE4: .4byte 0x020192d0
- thumb_func_end ContestEffect_02
-
- thumb_func_start ContestEffect_03
-ContestEffect_03: @ 80B7DE8
- push {r4,lr}
- ldr r3, _080B7E30 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, r3, 0
- subs r4, 0x70
- adds r0, r4
- ldrb r1, [r0, 0x10]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x15]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x15]
- ldrb r0, [r3, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x71
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E30: .4byte 0x020192d0
- thumb_func_end ContestEffect_03
-
- thumb_func_start ContestEffect_04
-ContestEffect_04: @ 80B7E34
- push {lr}
- ldr r2, _080B7E58 @ =0x020192d0
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x70
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0, 0x12]
- ldrb r0, [r2, 0x11]
- movs r1, 0x2
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E58: .4byte 0x020192d0
- thumb_func_end ContestEffect_04
-
- thumb_func_start ContestEffect_05
-ContestEffect_05: @ 80B7E5C
- push {lr}
- ldr r3, _080B7E84 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0x3
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7E84: .4byte 0x020192d0
- thumb_func_end ContestEffect_05
-
- thumb_func_start ContestEffect_06
-ContestEffect_06: @ 80B7E88
- push {lr}
- ldr r2, _080B7EAC @ =0x020192d0
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x70
- adds r0, r1
- movs r1, 0x14
- strb r1, [r0, 0xF]
- ldrb r0, [r2, 0x11]
- movs r1, 0x4
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7EAC: .4byte 0x020192d0
- thumb_func_end ContestEffect_06
-
- thumb_func_start ContestEffect_07
-ContestEffect_07: @ 80B7EB0
- push {lr}
- ldr r3, _080B7ED8 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r3, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x10]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r3, 0x11]
- movs r1, 0x5
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B7ED8: .4byte 0x020192d0
- thumb_func_end ContestEffect_07
-
- thumb_func_start ContestEffect_08
-ContestEffect_08: @ 80B7EDC
- push {r4,lr}
- movs r2, 0
- ldr r3, _080B7F38 @ =0x020192d0
- ldrb r0, [r3, 0x11]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0
- beq _080B7F1A
- subs r0, 0x1
- ldrb r4, [r3]
- cmp r0, r4
- beq _080B7F0A
- adds r4, r3, 0
- adds r3, r1, 0
-_080B7EF8:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080B7F0A
- ldrb r0, [r3]
- subs r0, 0x1
- adds r1, r2, r4
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B7EF8
-_080B7F0A:
- ldr r1, _080B7F38 @ =0x020192d0
- strb r2, [r1, 0x8]
- movs r0, 0xFF
- strb r0, [r1, 0x9]
- bl sub_80B9120
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7F1A:
- cmp r2, 0
- bne _080B7F28
- ldr r0, _080B7F38 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B7F28:
- ldr r0, _080B7F38 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7F38: .4byte 0x020192d0
- thumb_func_end ContestEffect_08
-
- thumb_func_start ContestEffect_09
-ContestEffect_09: @ 80B7F3C
- push {r4-r6,lr}
- movs r2, 0
- ldr r1, _080B7F9C @ =0x020192d0
- ldrb r0, [r1, 0x11]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080B7F7C
- movs r3, 0
- adds r5, r1, 0
- adds r6, r5, 0
- adds r6, 0x8
-_080B7F54:
- adds r1, r2, r5
- ldrb r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B7F64
- adds r0, r3, r6
- strb r2, [r0]
- adds r3, 0x1
-_080B7F64:
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B7F54
- ldr r0, _080B7F9C @ =0x020192d0
- adds r0, 0x8
- adds r0, r3, r0
- movs r1, 0xFF
- strb r1, [r0]
- bl sub_80B9120
- lsls r0, 24
- lsrs r2, r0, 24
-_080B7F7C:
- cmp r2, 0
- bne _080B7F8A
- ldr r0, _080B7F9C @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B7F8A:
- ldr r0, _080B7F9C @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B7F9C: .4byte 0x020192d0
- thumb_func_end ContestEffect_09
-
- thumb_func_start ContestEffect_14
-ContestEffect_14: @ 80B7FA0
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x14
- cmp r0, 0x1
- bls _080B7FC2
- movs r1, 0x3C
- cmp r0, 0x7
- bhi _080B7FC2
- movs r1, 0x28
-_080B7FC2:
- ldr r0, _080B7FD0 @ =0x020192d0
- strh r1, [r0, 0x4]
- bl ContestEffect_08
- pop {r0}
- bx r0
- .align 2, 0
-_080B7FD0: .4byte 0x020192d0
- thumb_func_end ContestEffect_14
-
- thumb_func_start ContestEffect_15
-ContestEffect_15: @ 80B7FD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _080B806C @ =0x020192d0
- ldrb r6, [r0, 0x11]
- adds r1, r6, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0
- beq _080B804A
- movs r5, 0
- mov r4, r8
-_080B7FEE:
- adds r0, r6, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8044
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r0, 0
- beq _080B8032
- movs r1, 0xA
- cmp r0, 0x2
- bls _080B8032
- movs r1, 0x14
- cmp r0, 0x4
- bls _080B8032
- movs r1, 0x1E
- cmp r0, 0x6
- bls _080B8032
- movs r1, 0x3C
- cmp r0, 0x8
- bhi _080B8032
- movs r1, 0x28
-_080B8032:
- strh r1, [r4, 0x4]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8044
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B8044:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B7FEE
-_080B804A:
- mov r1, r8
- ldrb r0, [r1, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- cmp r7, 0
- bne _080B8062
- mov r1, r8
- ldrb r0, [r1, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8062:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B806C: .4byte 0x020192d0
- thumb_func_end ContestEffect_15
-
- thumb_func_start ContestEffect_16
-ContestEffect_16: @ 80B8070
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r0, _080B8108 @ =0x020192d0
- ldrb r7, [r0, 0x11]
- adds r1, r7, r0
- ldrb r1, [r1]
- mov r10, r0
- cmp r1, 0
- beq _080B80E0
- movs r6, 0
- mov r8, r10
- mov r5, r10
- subs r5, 0x5B
-_080B8094:
- mov r1, r8
- adds r0, r7, r1
- adds r1, r6, r1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B80D8
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B80D8
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B80D8
- ldrb r0, [r5]
- movs r2, 0x11
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_80B13EC
- movs r0, 0x1
- mov r9, r0
-_080B80D8:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B8094
-_080B80E0:
- mov r1, r10
- ldrb r0, [r1, 0x11]
- movs r1, 0x7
- bl sub_80B13EC
- mov r2, r9
- cmp r2, 0
- bne _080B80FA
- mov r1, r10
- ldrb r0, [r1, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B80FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8108: .4byte 0x020192d0
- thumb_func_end ContestEffect_16
-
- thumb_func_start ContestEffect_17
-ContestEffect_17: @ 80B810C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r9, r0
- ldr r0, _080B8150 @ =0x020192d0
- ldrb r1, [r0, 0x11]
- mov r8, r1
- adds r1, r0
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080B817C
- movs r5, 0
- adds r4, r6, 0
- movs r7, 0
-_080B812E:
- mov r2, r8
- adds r0, r2, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8172
- adds r0, r6, 0
- subs r0, 0x70
- adds r0, r7, r0
- ldrb r1, [r0, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B8154
- movs r0, 0x32
- b _080B8156
- .align 2, 0
-_080B8150: .4byte 0x020192d0
-_080B8154:
- movs r0, 0xA
-_080B8156:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8172
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080B8172:
- adds r7, 0x1C
- adds r5, 0x1
- ldr r6, _080B81A0 @ =0x020192d0
- cmp r5, 0x3
- ble _080B812E
-_080B817C:
- ldrb r0, [r6, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- mov r0, r9
- cmp r0, 0
- bne _080B8192
- ldrb r0, [r6, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8192:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81A0: .4byte 0x020192d0
- thumb_func_end ContestEffect_17
-
- thumb_func_start ContestEffect_18
-ContestEffect_18: @ 80B81A4
- push {r4,lr}
- ldr r4, _080B81D0 @ =0x020192d0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x11]
- bl ContestEffect_09
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B81D0: .4byte 0x020192d0
- thumb_func_end ContestEffect_18
-
- thumb_func_start ContestEffect_19
-ContestEffect_19: @ 80B81D4
- push {r4,lr}
- ldr r4, _080B8208 @ =0x020192d0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- ldr r1, _080B820C @ =gContestMoves
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- bl sub_80B9038
- ldrb r0, [r4, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8208: .4byte 0x020192d0
-_080B820C: .4byte gContestMoves
- thumb_func_end ContestEffect_19
-
- thumb_func_start ContestEffect_20
-ContestEffect_20: @ 80B8210
- push {lr}
- movs r0, 0
- bl sub_80B9038
- ldr r0, _080B8228 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8228: .4byte 0x020192d0
- thumb_func_end ContestEffect_20
-
- thumb_func_start ContestEffect_21
-ContestEffect_21: @ 80B822C
- push {lr}
- movs r0, 0x1
- bl sub_80B9038
- ldr r0, _080B8244 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8244: .4byte 0x020192d0
- thumb_func_end ContestEffect_21
-
- thumb_func_start ContestEffect_22
-ContestEffect_22: @ 80B8248
- push {lr}
- movs r0, 0x2
- bl sub_80B9038
- ldr r0, _080B8260 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8260: .4byte 0x020192d0
- thumb_func_end ContestEffect_22
-
- thumb_func_start ContestEffect_23
-ContestEffect_23: @ 80B8264
- push {lr}
- movs r0, 0x3
- bl sub_80B9038
- ldr r0, _080B827C @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B827C: .4byte 0x020192d0
- thumb_func_end ContestEffect_23
-
- thumb_func_start ContestEffect_24
-ContestEffect_24: @ 80B8280
- push {lr}
- movs r0, 0x4
- bl sub_80B9038
- ldr r0, _080B8298 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r0}
- bx r0
- .align 2, 0
-_080B8298: .4byte 0x020192d0
- thumb_func_end ContestEffect_24
-
- thumb_func_start ContestEffect_25
-ContestEffect_25: @ 80B829C
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _080B82E0 @ =0x020192d0
- ldrb r1, [r0, 0x11]
- adds r1, r0
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x3
- beq _080B82F4
- movs r5, 0
- adds r6, r7, 0
-_080B82B2:
- ldrb r0, [r6, 0x11]
- adds r0, r6
- ldrb r0, [r0]
- adds r0, 0x1
- adds r1, r5, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B82EE
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B82E4
- adds r0, r4, 0
- bl sub_80B157C
- adds r0, r4, 0
- movs r1, 0xA
- b _080B82E8
- .align 2, 0
-_080B82E0: .4byte 0x020192d0
-_080B82E4:
- adds r0, r4, 0
- movs r1, 0x3C
-_080B82E8:
- bl sub_80B13EC
- movs r4, 0x1
-_080B82EE:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B82B2
-_080B82F4:
- ldrb r0, [r7, 0x11]
- movs r1, 0x9
- bl sub_80B13EC
- cmp r4, 0
- bne _080B8308
- ldrb r0, [r7, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8308:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_25
-
- thumb_func_start ContestEffect_26
-ContestEffect_26: @ 80B8310
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r0, 0
- mov r9, r0
- movs r1, 0
- str r1, [sp, 0x18]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x5
- bl memset
- movs r6, 0
- movs r4, 0
- add r2, sp, 0x10
- mov r8, r2
- add r3, sp, 0x8
- mov r10, r3
- ldr r5, _080B8384 @ =0x020192d0
- adds r7, r5, 0
- subs r7, 0x70
-_080B8340:
- ldrb r0, [r5, 0x11]
- adds r0, r5
- adds r1, r6, r5
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080B836E
- ldrb r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080B836E
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- bne _080B836E
- mov r1, sp
- adds r0, r1, r4
- strb r6, [r0]
- adds r4, 0x1
-_080B836E:
- adds r7, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B8340
- cmp r4, 0x1
- bne _080B8388
- movs r0, 0x3C
- mov r2, r8
- strh r0, [r2]
- b _080B83B6
- .align 2, 0
-_080B8384: .4byte 0x020192d0
-_080B8388:
- cmp r4, 0x2
- bne _080B8396
- movs r0, 0x1E
- mov r3, r8
- strh r0, [r3]
- strh r0, [r3, 0x2]
- b _080B83B6
-_080B8396:
- cmp r4, 0x3
- bne _080B83A6
- movs r0, 0x14
- mov r7, r8
- strh r0, [r7]
- strh r0, [r7, 0x2]
- strh r0, [r7, 0x4]
- b _080B83B6
-_080B83A6:
- mov r1, r8
- movs r2, 0
- mov r0, r8
- adds r0, 0x6
-_080B83AE:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080B83AE
-_080B83B6:
- movs r6, 0
- movs r7, 0
- mov r4, r10
-_080B83BC:
- ldr r0, _080B83F0 @ =0x02019260
- adds r5, r7, r0
- ldrb r1, [r5, 0x15]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080B83FC
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _080B83FC
- ldr r1, _080B83F4 @ =gContestMoves
- ldrh r0, [r5, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r1, _080B83F8 @ =gComboStarterLookupTable
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- b _080B83FE
- .align 2, 0
-_080B83F0: .4byte 0x02019260
-_080B83F4: .4byte gContestMoves
-_080B83F8: .4byte gComboStarterLookupTable
-_080B83FC:
- movs r0, 0
-_080B83FE:
- strh r0, [r4]
- ldr r5, _080B8494 @ =0x02019260
- adds r0, r7, r5
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4]
- subs r0, r1
- strh r0, [r4]
- adds r7, 0x1C
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B83BC
- mov r2, r8
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080B84CA
- movs r6, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080B84CA
- adds r5, 0x7D
- mov r4, sp
-_080B8442:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 1
- add r1, r8
- movs r7, 0
- ldrsh r2, [r1, r7]
- ldrb r3, [r4]
- lsls r1, r3, 1
- add r1, r10
- movs r7, 0
- ldrsh r1, [r1, r7]
- adds r2, r1
- cmp r0, r2
- bge _080B8498
- adds r0, r3, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B84A2
- ldrb r0, [r4]
- bl sub_80B157C
- ldrb r0, [r4]
- movs r1, 0xA
- bl sub_80B13EC
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _080B849C
- .align 2, 0
-_080B8494: .4byte 0x02019260
-_080B8498:
- movs r0, 0x1
- str r0, [sp, 0x18]
-_080B849C:
- ldr r1, [sp, 0x18]
- cmp r1, 0
- beq _080B84B8
-_080B84A2:
- movs r2, 0
- str r2, [sp, 0x18]
- ldrb r0, [r4]
- movs r1, 0x3C
- bl sub_80B13EC
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080B84B8:
- ldrb r0, [r4]
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- adds r4, 0x1
- adds r6, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080B8442
-_080B84CA:
- ldr r4, _080B84F4 @ =0x020192d0
- ldrb r0, [r4, 0x11]
- movs r1, 0xB
- bl sub_80B13EC
- mov r3, r9
- cmp r3, 0
- bne _080B84E2
- ldrb r0, [r4, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B84E2:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B84F4: .4byte 0x020192d0
- thumb_func_end ContestEffect_26
-
- thumb_func_start ContestEffect_27
-ContestEffect_27: @ 80B84F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- movs r6, 0
- ldr r7, _080B8580 @ =0x020192d0
- adds r5, r7, 0
- subs r5, 0x63
-_080B850A:
- ldrb r0, [r7, 0x11]
- adds r0, r7
- adds r1, r6, r7
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8556
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- ble _080B8556
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B90C0
- lsls r0, 24
- cmp r0, 0
- beq _080B8556
- movs r0, 0
- strb r0, [r5]
- ldrb r1, [r5, 0x3]
- movs r2, 0x31
- negs r2, r2
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r5, 0x3]
- adds r0, r4, 0
- movs r1, 0xD
- bl sub_80B13EC
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B8556:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080B850A
- ldr r4, _080B8580 @ =0x020192d0
- ldrb r0, [r4, 0x11]
- movs r1, 0xC
- bl sub_80B13EC
- mov r0, r8
- cmp r0, 0
- bne _080B8576
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl sub_80B1404
-_080B8576:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8580: .4byte 0x020192d0
- thumb_func_end ContestEffect_27
-
- thumb_func_start ContestEffect_28
-ContestEffect_28: @ 80B8584
- push {r4-r7,lr}
- movs r7, 0
- movs r5, 0
- ldr r4, _080B85B0 @ =0x020192d0
- movs r6, 0
-_080B858E:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B85CE
- adds r0, r4, 0
- subs r0, 0x70
- adds r0, r6, r0
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080B85B4
- movs r0, 0x28
- b _080B85B6
- .align 2, 0
-_080B85B0: .4byte 0x020192d0
-_080B85B4:
- movs r0, 0xA
-_080B85B6:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B85CE
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B85CE:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B858E
- ldr r4, _080B85F4 @ =0x020192d0
- ldrb r0, [r4, 0x11]
- movs r1, 0xE
- bl sub_80B13EC
- cmp r7, 0
- bne _080B85EC
- ldrb r0, [r4, 0x11]
- movs r1, 0x39
- bl sub_80B1404
-_080B85EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B85F4: .4byte 0x020192d0
- thumb_func_end ContestEffect_28
-
- thumb_func_start ContestEffect_29
-ContestEffect_29: @ 80B85F8
- push {r4,lr}
- ldr r0, _080B863C @ =gUnknown_02038696
- ldr r4, _080B8640 @ =0x020192d0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B8636
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8644 @ =gContestEffects
- ldr r2, _080B8648 @ =gContestMoves
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0xF
- bl sub_80B13EC
-_080B8636:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B863C: .4byte gUnknown_02038696
-_080B8640: .4byte 0x020192d0
-_080B8644: .4byte gContestEffects
-_080B8648: .4byte gContestMoves
- thumb_func_end ContestEffect_29
-
- thumb_func_start ContestEffect_30
-ContestEffect_30: @ 80B864C
- push {r4,lr}
- ldr r0, _080B8690 @ =gUnknown_02038696
- ldr r4, _080B8694 @ =0x020192d0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080B868A
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x6]
- ldr r3, _080B8698 @ =gContestEffects
- ldr r2, _080B869C @ =gContestMoves
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x10
- bl sub_80B13EC
-_080B868A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8690: .4byte gUnknown_02038696
-_080B8694: .4byte 0x020192d0
-_080B8698: .4byte gContestEffects
-_080B869C: .4byte gContestMoves
- thumb_func_end ContestEffect_30
-
- thumb_func_start ContestEffect_31
-ContestEffect_31: @ 80B86A0
- push {r4-r7,lr}
- movs r1, 0
- movs r3, 0
- ldr r4, _080B86EC @ =0x020192d0
- ldrb r0, [r4, 0x11]
- adds r0, r4
- ldrb r5, [r0]
- movs r2, 0
- adds r6, r4, 0
- subs r6, 0x70
-_080B86B4:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r5, r0
- bls _080B86C4
- adds r0, r2, r6
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- adds r3, r0
-_080B86C4:
- adds r2, 0x1C
- adds r1, 0x1
- cmp r1, 0x3
- ble _080B86B4
- cmp r3, 0
- bge _080B86D2
- movs r3, 0
-_080B86D2:
- ldr r4, _080B86EC @ =0x020192d0
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B86E2
- cmp r3, 0
- bne _080B86F0
-_080B86E2:
- adds r0, r2, 0
- movs r1, 0x12
- bl sub_80B13EC
- b _080B8710
- .align 2, 0
-_080B86EC: .4byte 0x020192d0
-_080B86F0:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- lsrs r0, r3, 31
- adds r0, r3, r0
- asrs r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x11
- bl sub_80B13EC
-_080B8710:
- ldr r4, _080B873C @ =0x020192d0
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r0, r5
- movs r7, 0x2
- ldrsh r0, [r0, r7]
- bl sub_80B9224
- ldrb r2, [r4, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B873C: .4byte 0x020192d0
- thumb_func_end ContestEffect_31
-
- thumb_func_start ContestEffect_32
-ContestEffect_32: @ 80B8740
- push {r4-r7,lr}
- movs r6, 0
- ldr r0, _080B8794 @ =0x020192d0
- ldrb r1, [r0, 0x11]
- adds r3, r1, r0
- ldrb r1, [r3]
- adds r4, r0, 0
- cmp r1, 0
- beq _080B8788
- movs r2, 0
- adds r7, r4, 0
- adds r0, r1, 0
- subs r1, r0, 0x1
- movs r3, 0
- adds r5, r4, 0
- subs r5, 0x70
-_080B8760:
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _080B876C
- adds r0, r3, r5
- ldrh r6, [r0, 0x2]
-_080B876C:
- adds r3, 0x1C
- adds r2, 0x1
- cmp r2, 0x3
- ble _080B8760
- adds r0, r4, 0
- ldrb r2, [r0, 0x11]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8788
- lsls r0, r6, 16
- asrs r3, r0, 16
- cmp r3, 0
- bgt _080B8798
-_080B8788:
- ldrb r0, [r4, 0x11]
- movs r1, 0x14
- bl sub_80B13EC
- b _080B87B2
- .align 2, 0
-_080B8794: .4byte 0x020192d0
-_080B8798:
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r0
- ldrh r0, [r1, 0x2]
- adds r0, r3, r0
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x13
- bl sub_80B13EC
-_080B87B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_32
-
- thumb_func_start ContestEffect_33
-ContestEffect_33: @ 80B87B8
- push {lr}
- ldr r0, _080B87D8 @ =0x020192d0
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r3, [r1]
- mov r12, r0
- cmp r3, 0
- bne _080B87DC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- movs r1, 0xA
- b _080B87EE
- .align 2, 0
-_080B87D8: .4byte 0x020192d0
-_080B87DC:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r12
- subs r1, 0x70
- adds r0, r1
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
-_080B87EE:
- strh r1, [r0, 0x2]
- cmp r3, 0
- bne _080B8800
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x15
- bl sub_80B13EC
- b _080B882A
-_080B8800:
- cmp r3, 0x1
- bne _080B8810
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x16
- bl sub_80B13EC
- b _080B882A
-_080B8810:
- cmp r3, 0x2
- bne _080B8820
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x17
- bl sub_80B13EC
- b _080B882A
-_080B8820:
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x18
- bl sub_80B13EC
-_080B882A:
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_33
-
- thumb_func_start ContestEffect_34
-ContestEffect_34: @ 80B8830
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- bhi _080B885C
- movs r4, 0xA
- ldr r0, _080B8858 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8858: .4byte 0x020192d0
-_080B885C:
- cmp r0, 0x5
- bhi _080B8874
- movs r4, 0x14
- ldr r0, _080B8870 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8870: .4byte 0x020192d0
-_080B8874:
- cmp r0, 0x7
- bhi _080B888C
- movs r4, 0x28
- ldr r0, _080B8888 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B8888: .4byte 0x020192d0
-_080B888C:
- cmp r1, 0x8
- bhi _080B88A4
- movs r4, 0x3C
- ldr r0, _080B88A0 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80B13EC
- b _080B88B0
- .align 2, 0
-_080B88A0: .4byte 0x020192d0
-_080B88A4:
- movs r4, 0x50
- ldr r0, _080B88C8 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80B13EC
-_080B88B0:
- ldr r0, _080B88C8 @ =0x020192d0
- ldrb r2, [r0, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- subs r0, 0x70
- adds r1, r0
- strh r4, [r1, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B88C8: .4byte 0x020192d0
- thumb_func_end ContestEffect_34
-
- thumb_func_start ContestEffect_35
-ContestEffect_35: @ 80B88CC
- push {r4-r7,lr}
- ldr r1, _080B8940 @ =0x020192d0
- ldrb r0, [r1, 0x11]
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r12, r1
- cmp r2, 0
- beq _080B8994
- ldrb r5, [r1]
- mov r6, r12
- subs r6, 0x70
-_080B88EA:
- movs r2, 0
- lsls r0, r4, 24
- asrs r1, r0, 24
- adds r4, r0, 0
- cmp r5, r1
- beq _080B8910
- ldr r3, _080B8940 @ =0x020192d0
-_080B88F8:
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080B8910
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080B88F8
-_080B8910:
- lsls r2, 24
- asrs r1, r2, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r6
- ldrb r1, [r3, 0xB]
- movs r0, 0x80
- ands r0, r1
- adds r7, r2, 0
- cmp r0, 0
- bne _080B8932
- ldrb r1, [r3, 0xC]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080B8944
-_080B8932:
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r4, r1
- lsrs r4, r0, 24
- cmp r0, 0
- blt _080B8994
- b _080B88EA
- .align 2, 0
-_080B8940: .4byte 0x020192d0
-_080B8944:
- mov r2, r12
- ldrb r1, [r2, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r12
- subs r3, 0x70
- adds r5, r0, r3
- ldrh r0, [r5, 0x6]
- ldr r4, _080B899C @ =gContestMoves
- lsls r0, 3
- adds r6, r0, r4
- ldrb r2, [r6, 0x1]
- lsls r2, 29
- asrs r1, r7, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r2, r0
- bne _080B8994
- ldr r1, _080B89A0 @ =gContestEffects
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r5, 0x2]
- mov r2, r12
- ldrb r0, [r2, 0x11]
- movs r1, 0x1F
- bl sub_80B13EC
-_080B8994:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B899C: .4byte gContestMoves
-_080B89A0: .4byte gContestEffects
- thumb_func_end ContestEffect_35
-
- thumb_func_start ContestEffect_36
-ContestEffect_36: @ 80B89A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080B8A28 @ =0x020192d0
- ldrb r2, [r0, 0x11]
- adds r1, r2, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0
- beq _080B8A3C
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r1, r8
- subs r1, 0x70
- adds r0, r1
- ldrh r0, [r0, 0x6]
- mov r9, r0
- movs r4, 0
- mov r6, r8
- ldr r0, _080B8A2C @ =gContestMoves
- mov r12, r0
- movs r7, 0
-_080B89D4:
- ldrb r2, [r6, 0x11]
- adds r0, r2, r6
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, r6
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8A34
- mov r1, r9
- lsls r0, r1, 3
- mov r1, r12
- adds r3, r0, r1
- ldrb r1, [r3, 0x1]
- lsls r1, 29
- mov r5, r8
- subs r5, 0x70
- adds r0, r7, r5
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r12
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r1, r0
- beq _080B8A34
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldr r2, _080B8A30 @ =gContestEffects
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- lsls r0, 1
- ldrh r2, [r1, 0x2]
- adds r0, r2
- strh r0, [r1, 0x2]
- ldrb r0, [r6, 0x11]
- movs r1, 0x20
- bl sub_80B13EC
- b _080B8A3C
- .align 2, 0
-_080B8A28: .4byte 0x020192d0
-_080B8A2C: .4byte gContestMoves
-_080B8A30: .4byte gContestEffects
-_080B8A34:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080B89D4
-_080B8A3C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_36
-
- thumb_func_start ContestEffect_37
-ContestEffect_37: @ 80B8A48
- push {r4-r7,lr}
- ldr r1, _080B8A94 @ =0x020192d0
- ldrb r0, [r1, 0x11]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B8AB0
- movs r5, 0
- adds r4, r1, 0
- adds r6, r4, 0
- subs r6, 0x70
- adds r7, r6, 0
-_080B8A60:
- ldrb r2, [r4, 0x11]
- adds r0, r2, r4
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bne _080B8AA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r2, r0, r7
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _080B8A98
- adds r0, r1, 0
- lsls r0, 1
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x21
- bl sub_80B13EC
- b _080B8AA8
- .align 2, 0
-_080B8A94: .4byte 0x020192d0
-_080B8A98:
- cmp r1, r0
- bge _080B8AA8
- movs r0, 0
- strh r0, [r2, 0x2]
- ldrb r0, [r4, 0x11]
- movs r1, 0x22
- bl sub_80B13EC
-_080B8AA8:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B8A60
-_080B8AB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_37
-
- thumb_func_start ContestEffect_38
-ContestEffect_38: @ 80B8AB8
- push {r4,r5,lr}
- ldr r4, _080B8AFC @ =0x020192d0
- ldrb r2, [r4, 0x11]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r5, r4, 0
- subs r5, 0x70
- adds r1, r0, r5
- ldrb r3, [r1, 0xD]
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- cmp r0, 0x1D
- bgt _080B8B00
- adds r0, r3, 0
- adds r0, 0xA
- strb r0, [r1, 0xD]
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r2, [r0, 0x10]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0, 0x10]
- ldrb r0, [r4, 0x11]
- movs r1, 0x23
- bl sub_80B13EC
- b _080B8B08
- .align 2, 0
-_080B8AFC: .4byte 0x020192d0
-_080B8B00:
- adds r0, r2, 0
- movs r1, 0x3A
- bl sub_80B13EC
-_080B8B08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_38
-
- thumb_func_start ContestEffect_39
-ContestEffect_39: @ 80B8B10
- push {r4,lr}
- ldr r3, _080B8B48 @ =0x020192d0
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r4, r3, 0
- subs r4, 0x70
- adds r0, r4
- ldrb r1, [r0, 0x11]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r3, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080B8B4C
- adds r0, r1, 0
- movs r1, 0x24
- bl sub_80B13EC
- b _080B8B54
- .align 2, 0
-_080B8B48: .4byte 0x020192d0
-_080B8B4C:
- adds r0, r1, 0
- movs r1, 0x3B
- bl sub_80B13EC
-_080B8B54:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_39
-
- thumb_func_start ContestEffect_40
-ContestEffect_40: @ 80B8B5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r1, _080B8BE4 @ =0x02019204
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _080B8B6E
- b _080B8C76
-_080B8B6E:
- movs r6, 0
- adds r7, r1, 0
- adds r7, 0xCC
- adds r3, r1, 0
- adds r3, 0x5C
-_080B8B78:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8B78
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0
- mov r12, r7
- movs r4, 0x70
- negs r4, r4
- adds r4, r7
- mov r8, r4
-_080B8BAE:
- movs r5, 0
-_080B8BB0:
- lsls r0, r5, 24
- asrs r2, r0, 24
- mov r0, r12
- ldrb r0, [r0, 0x11]
- cmp r2, r0
- beq _080B8BE8
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r1, sp
- adds r4, r1, r2
- ldrb r0, [r4]
- cmp r3, r0
- bne _080B8BE8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080B8BE8
- adds r0, r3, 0x1
- strb r0, [r4]
- b _080B8BF8
- .align 2, 0
-_080B8BE4: .4byte 0x02019204
-_080B8BE8:
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BB0
-_080B8BF8:
- cmp r5, 0x4
- beq _080B8C0C
- lsls r0, r6, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8BAE
-_080B8C0C:
- ldrb r0, [r7, 0x11]
- mov r4, sp
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r7, 0
- subs r3, 0x70
- adds r1, r3
- ldrb r2, [r1, 0x10]
- movs r0, 0x3F
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x10]
- movs r6, 0
-_080B8C32:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- mov r4, sp
- adds r2, r4, r1
- ldrb r2, [r2]
- strb r2, [r0, 0x19]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8C32
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r7, 0
- subs r0, 0x70
- adds r1, r0
- ldrb r2, [r1, 0x11]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1, 0x11]
- ldrb r0, [r7, 0x11]
- movs r1, 0x25
- bl sub_80B13EC
-_080B8C76:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_40
-
- thumb_func_start ContestEffect_41
-ContestEffect_41: @ 80B8C84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _080B8D14 @ =0x02019204
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- bne _080B8C98
- b _080B8DA6
-_080B8C98:
- movs r6, 0
- adds r7, r1, 0
- adds r7, 0xCC
- adds r3, r1, 0
- adds r3, 0x5C
-_080B8CA2:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8CA2
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- movs r6, 0x3
- mov r12, r7
- movs r4, 0x70
- negs r4, r4
- adds r4, r7
- mov r8, r4
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
-_080B8CDE:
- movs r5, 0
-_080B8CE0:
- lsls r0, r5, 24
- asrs r2, r0, 24
- mov r1, r12
- ldrb r1, [r1, 0x11]
- cmp r2, r1
- beq _080B8D18
- lsls r0, r6, 24
- asrs r3, r0, 24
- mov r0, sp
- adds r4, r0, r2
- ldrb r1, [r4]
- cmp r3, r1
- bne _080B8D18
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- lsls r0, r3, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bne _080B8D18
- subs r0, r3, 0x1
- strb r0, [r4]
- b _080B8D28
- .align 2, 0
-_080B8D14: .4byte 0x02019204
-_080B8D18:
- lsls r0, r5, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8CE0
-_080B8D28:
- cmp r5, 0x4
- beq _080B8D3C
- lsls r0, r6, 24
- movs r4, 0xFF
- lsls r4, 24
- adds r0, r4
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, r9
- bgt _080B8CDE
-_080B8D3C:
- ldrb r0, [r7, 0x11]
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x3
- strb r0, [r1]
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r7, 0
- subs r3, 0x70
- adds r1, r3
- ldrb r2, [r1, 0x10]
- movs r0, 0x3F
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r1, 0x10]
- movs r6, 0
-_080B8D62:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- mov r4, sp
- adds r2, r4, r1
- ldrb r2, [r2]
- strb r2, [r0, 0x19]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8D62
- ldrb r0, [r7, 0x11]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r7, 0
- subs r0, 0x70
- adds r1, r0
- ldrb r2, [r1, 0x11]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x11]
- ldrb r0, [r7, 0x11]
- movs r1, 0x26
- bl sub_80B13EC
-_080B8DA6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ContestEffect_41
-
- thumb_func_start ContestEffect_42
-ContestEffect_42: @ 80B8DB4
- bx lr
- thumb_func_end ContestEffect_42
-
- thumb_func_start ContestEffect_43
-ContestEffect_43: @ 80B8DB8
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _080B8E30 @ =0x02019204
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _080B8EAE
- movs r6, 0
- add r3, sp, 0x4
- adds r5, r1, 0
- adds r5, 0x5C
- adds r4, r3, 0
-_080B8DCE:
- lsls r1, r6, 24
- asrs r1, 24
- mov r0, sp
- adds r2, r0, r1
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x19]
- strb r0, [r2]
- adds r0, r4, r1
- strb r6, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r6, r1, 24
- asrs r1, 24
- cmp r1, 0x3
- ble _080B8DCE
- movs r6, 0
- adds r7, r3, 0
-_080B8DF6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r6, 24
- asrs r2, 24
- movs r1, 0x4
- subs r1, r2
- bl __modsi3
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0
-_080B8E10:
- lsls r0, r1, 24
- asrs r2, r0, 24
- adds r3, r7, r2
- ldrb r1, [r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080B8E3A
- cmp r4, 0
- bne _080B8E34
- mov r1, sp
- adds r0, r1, r2
- strb r6, [r0]
- movs r0, 0xFF
- strb r0, [r3]
- b _080B8E48
- .align 2, 0
-_080B8E30: .4byte 0x02019204
-_080B8E34:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080B8E3A:
- movs r3, 0x80
- lsls r3, 17
- adds r0, r5, r3
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8E10
-_080B8E48:
- lsls r0, r6, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080B8DF6
- movs r6, 0
- ldr r4, _080B8EB8 @ =0x020192d0
- adds r7, r4, 0
- subs r7, 0x70
- movs r3, 0x3F
- mov r12, r3
- movs r5, 0x80
-_080B8E66:
- lsls r2, r6, 24
- asrs r2, 24
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- mov r3, sp
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x19]
- ldrb r3, [r1, 0x10]
- mov r0, r12
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x10]
- adds r2, 0x1
- lsls r2, 24
- lsrs r6, r2, 24
- asrs r2, 24
- cmp r2, 0x3
- ble _080B8E66
- ldrb r1, [r4, 0x11]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x70
- adds r0, r1
- ldrb r1, [r0, 0x11]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r4, 0x11]
- movs r1, 0x27
- bl sub_80B13EC
-_080B8EAE:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8EB8: .4byte 0x020192d0
- thumb_func_end ContestEffect_43
-
- thumb_func_start ContestEffect_44
-ContestEffect_44: @ 80B8EBC
- push {lr}
- ldr r3, _080B8EF0 @ =gContestMoves
- ldr r1, _080B8EF4 @ =0x020192d0
- ldrb r2, [r1, 0x11]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- subs r1, 0x70
- adds r2, r0, r1
- ldrh r0, [r2, 0x6]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- ldr r1, _080B8EF8 @ =gUnknown_0203869C
- lsrs r0, 29
- ldrh r1, [r1]
- cmp r0, r1
- beq _080B8EEA
- ldrb r0, [r2, 0x11]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x11]
-_080B8EEA:
- pop {r0}
- bx r0
- .align 2, 0
-_080B8EF0: .4byte gContestMoves
-_080B8EF4: .4byte 0x020192d0
-_080B8EF8: .4byte gUnknown_0203869C
- thumb_func_end ContestEffect_44
-
- thumb_func_start ContestEffect_45
-ContestEffect_45: @ 80B8EFC
- push {r4-r7,lr}
- movs r7, 0
- movs r5, 0
- ldr r4, _080B8F34 @ =0x020192d0
- movs r6, 0
-_080B8F06:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B8F52
- adds r0, r4, 0
- subs r0, 0x70
- adds r1, r6, r0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0
- ble _080B8F38
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x4]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_80B9268
- b _080B8F3A
- .align 2, 0
-_080B8F34: .4byte 0x020192d0
-_080B8F38:
- movs r0, 0xA
-_080B8F3A:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B8F52
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080B8F52:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B8F06
- cmp r7, 0
- bne _080B8F68
- ldr r0, _080B8F78 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B8F68:
- ldr r0, _080B8F78 @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x30
- bl sub_80B13EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8F78: .4byte 0x020192d0
- thumb_func_end ContestEffect_45
-
- thumb_func_start ContestEffect_46
-ContestEffect_46: @ 80B8F7C
- push {r4,lr}
- ldr r0, _080B8F98 @ =0x02019204
- movs r1, 0x13
- ldrsb r1, [r0, r1]
- cmp r1, 0
- bne _080B8F9C
- movs r4, 0xA
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1A
- bl sub_80B13EC
- b _080B8FDE
- .align 2, 0
-_080B8F98: .4byte 0x02019204
-_080B8F9C:
- cmp r1, 0x1
- bne _080B8FAE
- movs r4, 0x14
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1B
- bl sub_80B13EC
- b _080B8FDE
-_080B8FAE:
- cmp r1, 0x2
- bne _080B8FC0
- movs r4, 0x1E
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1C
- bl sub_80B13EC
- b _080B8FDE
-_080B8FC0:
- cmp r1, 0x3
- bne _080B8FD2
- movs r4, 0x32
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1D
- bl sub_80B13EC
- b _080B8FDE
-_080B8FD2:
- movs r4, 0x3C
- adds r0, 0xCC
- ldrb r0, [r0, 0x11]
- movs r1, 0x1E
- bl sub_80B13EC
-_080B8FDE:
- ldr r0, _080B8FF4 @ =0x020192d0
- ldrb r2, [r0, 0x11]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- subs r0, 0x70
- adds r1, r0
- strh r4, [r1, 0x2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B8FF4: .4byte 0x020192d0
- thumb_func_end ContestEffect_46
-
- thumb_func_start ContestEffect_47
-ContestEffect_47: @ 80B8FF8
- push {lr}
- ldr r3, _080B9034 @ =0x02019328
- ldrb r2, [r3, 0x1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080B902E
- movs r0, 0x1
- orrs r2, r0
- movs r0, 0x58
- negs r0, r0
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0, 0x11]
- movs r0, 0x7
- ands r0, r1
- lsls r0, 1
- movs r1, 0xF
- negs r1, r1
- ands r2, r1
- orrs r2, r0
- strb r2, [r3, 0x1]
- mov r1, r12
- ldrb r0, [r1, 0x11]
- movs r1, 0x3D
- bl sub_80B13EC
-_080B902E:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9034: .4byte 0x02019328
- thumb_func_end ContestEffect_47
-
- thumb_func_start sub_80B9038
-sub_80B9038: @ 80B9038
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- movs r5, 0
- ldr r4, _080B907C @ =0x020192d0
- ldr r0, _080B9080 @ =gContestMoves
- mov r9, r0
- movs r6, 0
-_080B9052:
- ldrb r0, [r4, 0x11]
- adds r0, r4
- adds r1, r5, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080B909A
- adds r0, r4, 0
- subs r0, 0x70
- adds r0, r6, r0
- ldrh r0, [r0, 0x6]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 29
- cmp r8, r0
- bne _080B9084
- movs r0, 0x28
- b _080B9086
- .align 2, 0
-_080B907C: .4byte 0x020192d0
-_080B9080: .4byte gContestMoves
-_080B9084:
- movs r0, 0xA
-_080B9086:
- strh r0, [r4, 0x4]
- strb r5, [r4, 0x8]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- bl sub_80B9120
- lsls r0, 24
- cmp r0, 0
- beq _080B909A
- adds r7, 0x1
-_080B909A:
- adds r6, 0x1C
- adds r5, 0x1
- cmp r5, 0x3
- ble _080B9052
- cmp r7, 0
- bne _080B90B0
- ldr r0, _080B90BC @ =0x020192d0
- ldrb r0, [r0, 0x11]
- movs r1, 0x36
- bl sub_80B1404
-_080B90B0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B90BC: .4byte 0x020192d0
- thumb_func_end sub_80B9038
-
- thumb_func_start sub_80B90C0
-sub_80B90C0: @ 80B90C0
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080B90EC @ =0x020192d0
- adds r0, r2, 0
- adds r0, 0xD
- adds r0, r3, r0
- movs r1, 0x1
- strb r1, [r0]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- subs r2, 0x70
- adds r2, r0, r2
- ldrb r1, [r2, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B90F0
- adds r0, r3, 0
- movs r1, 0x2D
- b _080B9116
- .align 2, 0
-_080B90EC: .4byte 0x020192d0
-_080B90F0:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- bne _080B910E
- ldrb r1, [r2, 0xB]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B911A
- ldrb r1, [r2, 0xC]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- bne _080B911A
- movs r0, 0x1
- b _080B911C
-_080B910E:
- subs r0, 0x1
- strb r0, [r2, 0x12]
- adds r0, r3, 0
- movs r1, 0x2C
-_080B9116:
- bl sub_80B13EC
-_080B911A:
- movs r0, 0
-_080B911C:
- pop {r1}
- bx r1
- thumb_func_end sub_80B90C0
-
- thumb_func_start sub_80B9120
-sub_80B9120: @ 80B9120
- push {r4-r7,lr}
- sub sp, 0xC
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r7, 0
- ldr r1, _080B918C @ =0x020192d0
- ldrb r0, [r1, 0x8]
- cmp r0, 0xFF
- beq _080B91D8
- adds r5, r1, 0
-_080B913A:
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r7, r0
- ldrb r4, [r0]
- adds r6, r4, 0
- adds r0, r4, 0
- str r1, [sp, 0x8]
- bl sub_80B90C0
- lsls r0, 24
- ldr r1, [sp, 0x8]
- cmp r0, 0
- beq _080B91C8
- ldrh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r1, 0x70
- adds r2, r0, r1
- ldrb r1, [r2, 0x10]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080B9174
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- lsls r0, 1
- strh r0, [r5, 0x6]
-_080B9174:
- ldrb r0, [r2, 0x10]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _080B9190
- movs r0, 0xA
- strh r0, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x2F
- bl sub_80B13EC
- b _080B91C8
- .align 2, 0
-_080B918C: .4byte 0x020192d0
-_080B9190:
- ldrb r1, [r2, 0xF]
- ldrh r0, [r5, 0x6]
- subs r0, r1
- adds r1, r0, 0
- strh r0, [r5, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _080B91AC
- strh r3, [r5, 0x6]
- adds r0, r4, 0
- movs r1, 0x2E
- bl sub_80B13EC
- b _080B91C8
-_080B91AC:
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_80B9200
- ldrb r1, [r5, 0x6]
- adds r0, r6, 0
- bl sub_80B141C
- lsls r0, r6, 1
- mov r2, sp
- adds r1, r2, r0
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
-_080B91C8:
- adds r7, 0x1
- ldr r1, _080B91E8 @ =0x020192d0
- adds r0, r1, 0
- adds r0, 0x8
- adds r0, r7, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080B913A
-_080B91D8:
- movs r7, 0
- mov r1, sp
-_080B91DC:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080B91EC
- movs r0, 0x1
- b _080B91F6
- .align 2, 0
-_080B91E8: .4byte 0x020192d0
-_080B91EC:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _080B91DC
- movs r0, 0
-_080B91F6:
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9120
-
- thumb_func_start sub_80B9200
-sub_80B9200: @ 80B9200
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- ldr r0, _080B9220 @ =0x02019260
- adds r2, r0
- ldrh r0, [r2, 0x2]
- subs r0, r1
- strh r0, [r2, 0x2]
- ldrb r0, [r2, 0xE]
- adds r1, r0
- strb r1, [r2, 0xE]
- bx lr
- .align 2, 0
-_080B9220: .4byte 0x02019260
- thumb_func_end sub_80B9200
-
- thumb_func_start sub_80B9224
-sub_80B9224: @ 80B9224
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080B9234
- negs r0, r4
-_080B9234:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, 0
- bge _080B9252
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B925C
- adds r0, r4, 0
- subs r0, 0xA
- adds r0, r1, r0
- b _080B9258
-_080B9252:
- lsls r0, 16
- asrs r0, 16
- subs r0, r4, r0
-_080B9258:
- lsls r0, 16
- lsrs r5, r0, 16
-_080B925C:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9224
-
- thumb_func_start sub_80B9268
-sub_80B9268: @ 80B9268
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- cmp r4, 0
- bge _080B9278
- negs r0, r4
-_080B9278:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080B9290
- adds r0, r4, 0
- adds r0, 0xA
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080B9290:
- lsls r0, r5, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80B9268
-
- thumb_func_start sub_80B929C
-sub_80B929C: @ 80B929C
- push {lr}
- ldr r0, _080B92A8 @ =sub_80B9484
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_080B92A8: .4byte sub_80B9484
- thumb_func_end sub_80B929C
-
- thumb_func_start sub_80B92AC
-sub_80B92AC: @ 80B92AC
- push {r4-r6,lr}
- bl sub_80BC300
- bl sub_80C045C
- ldr r6, _080B9364 @ =0x02018000
- ldr r0, _080B9368 @ =gUnknown_083D026C
- ldr r1, [r0]
- movs r2, 0xC8
- lsls r2, 4
- adds r0, r6, 0
- bl memcpy
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r6, r1
- ldr r1, _080B936C @ =gUnknown_083D0270
- ldr r1, [r1]
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- ldr r2, _080B9370 @ =0x00001004
- adds r0, r6, r2
- ldr r1, _080B9374 @ =gUnknown_083D0274
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r1, _080B9378 @ =0x00001044
- adds r0, r6, r1
- ldr r1, _080B937C @ =gUnknown_083D0278
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r2, _080B9380 @ =0x00001084
- adds r0, r6, r2
- ldr r1, _080B9384 @ =gUnknown_083D027C
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r5, _080B9388 @ =gUnknown_02038738
- ldr r4, _080B938C @ =gSaveBlock1
- ldr r0, _080B9390 @ =0x0000303c
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x38
- bl memcpy
- ldr r2, _080B9394 @ =0x00003074
- adds r1, r4, r2
- adds r0, r5, 0
- adds r0, 0x38
- movs r2, 0x38
- bl memcpy
- ldr r0, _080B9398 @ =0x00002f9c
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8041324
- ldr r1, _080B939C @ =0x000010ac
- adds r0, r6, r1
- ldr r1, _080B93A0 @ =gUnknown_083D0280
- ldr r1, [r1]
- movs r2, 0x78
- bl memcpy
- ldr r2, _080B93A4 @ =0x00001124
- adds r0, r6, r2
- ldr r1, _080B93A8 @ =gUnknown_083D0284
- ldr r1, [r1]
- movs r2, 0xA4
- bl memcpy
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B935C
- bl sub_8126338
- ldr r2, _080B93AC @ =0x000011c8
- adds r1, r6, r2
- strh r0, [r1]
-_080B935C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9364: .4byte 0x02018000
-_080B9368: .4byte gUnknown_083D026C
-_080B936C: .4byte gUnknown_083D0270
-_080B9370: .4byte 0x00001004
-_080B9374: .4byte gUnknown_083D0274
-_080B9378: .4byte 0x00001044
-_080B937C: .4byte gUnknown_083D0278
-_080B9380: .4byte 0x00001084
-_080B9384: .4byte gUnknown_083D027C
-_080B9388: .4byte gUnknown_02038738
-_080B938C: .4byte gSaveBlock1
-_080B9390: .4byte 0x0000303c
-_080B9394: .4byte 0x00003074
-_080B9398: .4byte 0x00002f9c
-_080B939C: .4byte 0x000010ac
-_080B93A0: .4byte gUnknown_083D0280
-_080B93A4: .4byte 0x00001124
-_080B93A8: .4byte gUnknown_083D0284
-_080B93AC: .4byte 0x000011c8
- thumb_func_end sub_80B92AC
-
- thumb_func_start sub_80B93B0
-sub_80B93B0: @ 80B93B0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080B9430 @ =0x02008000
- ldr r6, _080B9434 @ =0x00001230
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BD674
- movs r0, 0xC8
- lsls r0, 4
- adds r0, r5
- mov r8, r0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BFD44
- ldr r1, _080B9438 @ =0x00001004
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80C0514
- ldr r1, _080B943C @ =0x00001044
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B1C
- ldr r1, _080B9440 @ =0x00001084
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80FA4E4
- ldr r1, _080B9444 @ =0x000010ac
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl sub_80B9C6C
- ldr r1, _080B9448 @ =0x00001124
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B70
- ldr r0, _080B944C @ =0x000011c8
- adds r5, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80B9F3C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9430: .4byte 0x02008000
-_080B9434: .4byte 0x00001230
-_080B9438: .4byte 0x00001004
-_080B943C: .4byte 0x00001044
-_080B9440: .4byte 0x00001084
-_080B9444: .4byte 0x000010ac
-_080B9448: .4byte 0x00001124
-_080B944C: .4byte 0x000011c8
- thumb_func_end sub_80B93B0
-
- thumb_func_start sub_80B9450
-sub_80B9450: @ 80B9450
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9480 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _080B9478
- movs r0, 0xE2
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x8]
-_080B9478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9480: .4byte gTasks
- thumb_func_end sub_80B9450
-
- thumb_func_start sub_80B9484
-sub_80B9484: @ 80B9484
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B94A8 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080B949E
- b _080B95E6
-_080B949E:
- lsls r0, 2
- ldr r1, _080B94AC @ =_080B94B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B94A8: .4byte gTasks + 0x8
-_080B94AC: .4byte _080B94B0
- .align 2, 0
-_080B94B0:
- .4byte _080B94C8
- .4byte _080B951C
- .4byte _080B9550
- .4byte _080B9570
- .4byte _080B95AC
- .4byte _080B95C0
-_080B94C8:
- ldr r0, _080B950C @ =gUnknown_0202E8CE
- ldrb r0, [r0]
- bl sub_8007270
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- bl VarSet
- ldr r1, _080B9510 @ =gUnknown_03000718
- movs r0, 0
- strb r0, [r1]
- bl sub_80B92AC
- bl sub_80C71D8
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080B9514 @ =sub_80B95F0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, _080B9518 @ =sub_80B9450
- movs r1, 0x51
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- b _080B95E6
- .align 2, 0
-_080B950C: .4byte gUnknown_0202E8CE
-_080B9510: .4byte gUnknown_03000718
-_080B9514: .4byte sub_80B95F0
-_080B9518: .4byte sub_80B9450
-_080B951C:
- ldr r2, _080B9548 @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- movs r0, 0x2
- strh r0, [r4]
- ldr r0, _080B954C @ =0x00000834
- bl FlagSet
- bl sub_80C7240
- ldrb r0, [r4, 0x1E]
- bl DestroyTask
- b _080B95E6
- .align 2, 0
-_080B9548: .4byte gTasks
-_080B954C: .4byte 0x00000834
-_080B9550:
- ldr r0, _080B956C @ =sub_80BA00C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0xE0
- bl PlaySE
- b _080B95E6
- .align 2, 0
-_080B956C: .4byte sub_80BA00C
-_080B9570:
- ldr r2, _080B95A4 @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080B95E6
- movs r0, 0x4
- strh r0, [r4]
- bl sub_8083664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- bl sub_80720B0
- ldr r0, _080B95A8 @ =gOtherText_MixingComplete
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- strh r5, [r4, 0x10]
- b _080B95E6
- .align 2, 0
-_080B95A4: .4byte gTasks
-_080B95A8: .4byte gOtherText_MixingComplete
-_080B95AC:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B95E6
- movs r0, 0x5
- strh r0, [r4]
- b _080B95E6
-_080B95C0:
- ldr r2, _080B95EC @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- bl sub_8055588
- bl MenuZeroFillScreen
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B95E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B95EC: .4byte gTasks
- thumb_func_end sub_80B9484
-
- thumb_func_start sub_80B95F0
-sub_80B95F0: @ 80B95F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r7, _080B961C @ =gTasks
- adds r5, r0, r7
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x64
- beq _080B9678
- cmp r1, 0x64
- bgt _080B962E
- cmp r1, 0x1
- bne _080B9612
- b _080B9734
-_080B9612:
- cmp r1, 0x1
- bgt _080B9620
- cmp r1, 0
- beq _080B9650
- b _080B97D6
- .align 2, 0
-_080B961C: .4byte gTasks
-_080B9620:
- cmp r1, 0x2
- bne _080B9626
- b _080B9760
-_080B9626:
- cmp r1, 0x5
- bne _080B962C
- b _080B97C0
-_080B962C:
- b _080B97D6
-_080B962E:
- cmp r1, 0xC9
- beq _080B96D0
- cmp r1, 0xC9
- bgt _080B963C
- cmp r1, 0x65
- beq _080B9690
- b _080B97D6
-_080B963C:
- ldr r0, _080B964C @ =0x0000012d
- cmp r1, r0
- beq _080B9706
- adds r0, 0x63
- cmp r1, r0
- beq _080B971C
- b _080B97D6
- .align 2, 0
-_080B964C: .4byte 0x0000012d
-_080B9650:
- bl sub_80B9A78
- bl MenuDisplayMessageBox
- ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0xE1
- lsls r0, 3
- strh r0, [r5, 0x18]
- movs r0, 0xC8
- lsls r0, 1
- strh r0, [r5, 0x8]
- bl ClearLinkCallback_2
- b _080B97D6
- .align 2, 0
-_080B9674: .4byte gOtherText_MixingRecordsWithFriend
-_080B9678:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080B9688
- b _080B97D6
-_080B9688:
- movs r0, 0
- strh r0, [r5, 0x20]
- movs r0, 0x65
- b _080B97D4
-_080B9690:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B96C2
- bl sub_800820C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _080B96B2
- b _080B97D6
-_080B96B2:
- movs r0, 0x15
- bl PlaySE
- movs r1, 0
- movs r0, 0xC9
- strh r0, [r5, 0x8]
- strh r1, [r5, 0x20]
- b _080B97D6
-_080B96C2:
- movs r0, 0x16
- bl PlaySE
- ldr r0, _080B96CC @ =0x0000012d
- b _080B97D4
- .align 2, 0
-_080B96CC: .4byte 0x0000012d
-_080B96D0:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- ldrh r4, [r5, 0x20]
- adds r4, 0x1
- strh r4, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- cmp r4, r1
- ble _080B97D6
- bl sub_8007F4C
- movs r0, 0x1
- b _080B97D4
-_080B9706:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- movs r0, 0x1
- b _080B97D4
-_080B971C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B97D6
- movs r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0x20]
- b _080B97D6
-_080B9734:
- ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B97D6
- ldr r4, _080B975C @ =gStringVar1
- bl sub_80B9A58
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x5
- b _080B97D4
- .align 2, 0
-_080B9758: .4byte gReceivedRemoteLinkPlayers
-_080B975C: .4byte gStringVar1
-_080B9760:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x8]
- bl sub_80B9A58
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldr r0, _080B97B0 @ =sub_80B97DC
- str r0, [r5]
- ldr r4, _080B97B4 @ =0x02018000
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- bl sub_80B9A50
- ldr r0, _080B97B8 @ =sub_80B9890
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r7
- strh r6, [r0, 0x8]
- ldr r0, _080B97BC @ =0xffff0000
- adds r4, r0
- adds r1, r7, r1
- adds r1, 0x12
- adds r0, r4, 0
- bl sub_80B9A50
- b _080B97D6
- .align 2, 0
-_080B97B0: .4byte sub_80B97DC
-_080B97B4: .4byte 0x02018000
-_080B97B8: .4byte sub_80B9890
-_080B97BC: .4byte 0xffff0000
-_080B97C0:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B97D6
- movs r0, 0
- strh r0, [r5, 0x1C]
- movs r0, 0x2
-_080B97D4:
- strh r0, [r5, 0x8]
-_080B97D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B95F0
-
- thumb_func_start sub_80B97DC
-sub_80B97DC: @ 80B97DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9800 @ =gTasks
- adds r4, r1, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080B9884
- lsls r0, r1, 2
- ldr r1, _080B9804 @ =_080B9808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B9800: .4byte gTasks
-_080B9804: .4byte _080B9808
- .align 2, 0
-_080B9808:
- .4byte _080B981C
- .4byte _080B9840
- .4byte _080B9884
- .4byte _080B9852
- .4byte _080B986E
-_080B981C:
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80B9A44
- adds r1, r0, 0
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- movs r0, 0xC8
- muls r0, r2
- adds r1, r0
- ldr r0, _080B983C @ =gBlockSendBuffer
- movs r2, 0xC8
- bl memcpy
- b _080B9860
- .align 2, 0
-_080B983C: .4byte gBlockSendBuffer
-_080B9840:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B9860
- movs r0, 0x1
- bl sub_8007E9C
- b _080B9860
-_080B9852:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9868
-_080B9860:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B9884
-_080B9868:
- movs r0, 0
- strh r0, [r4, 0x8]
- b _080B9884
-_080B986E:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080B9884
- ldr r0, _080B988C @ =sub_80B9A1C
- str r0, [r4]
-_080B9884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B988C: .4byte sub_80B9A1C
- thumb_func_end sub_80B97DC
-
- thumb_func_start sub_80B9890
-sub_80B9890: @ 80B9890
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, _080B98D0 @ =gTasks
- adds r0, r1
- mov r10, r0
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- bl sub_8008198
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bne _080B998A
- movs r0, 0
- b _080B9966
- .align 2, 0
-_080B98D0: .4byte gTasks
-_080B98D4:
- ldr r1, [sp, 0x4]
- mov r2, r9
- asrs r1, r2
- movs r0, 0x1
- ands r1, r0
- movs r3, 0x1
- add r3, r9
- mov r8, r3
- cmp r1, 0
- beq _080B9960
- mov r0, r10
- adds r0, 0x12
- bl sub_80B9A44
- mov r1, r8
- lsls r4, r1, 1
- mov r5, r10
- adds r5, 0x8
- adds r4, r5, r4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0xC8
- muls r1, r3
- adds r0, r1
- ldr r7, _080B9930 @ =0x00001230
- mov r1, r9
- muls r1, r7
- adds r6, r0, r1
- mov r0, r9
- str r3, [sp, 0xC]
- bl sub_80B9A68
- adds r1, r0, 0
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r2, 0x1
- ldr r3, [sp, 0xC]
- muls r0, r3
- cmp r0, r7
- bls _080B9934
- muls r2, r3
- subs r2, r7, r2
- adds r0, r6, 0
- bl memcpy
- b _080B993C
- .align 2, 0
-_080B9930: .4byte 0x00001230
-_080B9934:
- adds r0, r6, 0
- movs r2, 0xC8
- bl memcpy
-_080B993C:
- mov r0, r9
- bl ResetBlockReceivedFlag
- mov r2, r8
- lsls r1, r2, 1
- adds r1, r5, r1
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9960
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_080B9960:
- mov r3, r8
- lsls r0, r3, 24
- lsrs r0, 24
-_080B9966:
- mov r9, r0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r9, r0
- bcc _080B98D4
- ldr r2, _080B99B0 @ =gTasks
- mov r0, r10
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080B998A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x8]
- cmp r1, r0
- bne _080B999E
- ldr r0, [sp]
- bl DestroyTask
-_080B999E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99B0: .4byte gTasks
- thumb_func_end sub_80B9890
-
- thumb_func_start sub_80B99B4
-sub_80B99B4: @ 80B99B4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r2, _080B99E4 @ =gTasks
- adds r0, r2
- movs r4, 0x1C
- ldrsh r1, [r0, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B99DC
- adds r0, r3, 0
- bl DestroyTask
-_080B99DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99E4: .4byte gTasks
- thumb_func_end sub_80B99B4
-
- thumb_func_start sub_80B99E8
-sub_80B99E8: @ 80B99E8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9A10 @ =gTasks
- adds r1, r0
- ldr r0, _080B9A14 @ =sub_80B99B4
- str r0, [r1]
- ldr r0, _080B9A18 @ =gUnknown_03000718
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9A0C
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- bl sub_80B93B0
-_080B9A0C:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9A10: .4byte gTasks
-_080B9A14: .4byte sub_80B99B4
-_080B9A18: .4byte gUnknown_03000718
- thumb_func_end sub_80B99E8
-
- thumb_func_start sub_80B9A1C
-sub_80B9A1C: @ 80B9A1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9A38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080B9A3C @ =sub_80B99E8
- str r0, [r1]
- ldr r1, _080B9A40 @ =gUnknown_03000718
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080B9A38: .4byte gTasks
-_080B9A3C: .4byte sub_80B99E8
-_080B9A40: .4byte gUnknown_03000718
- thumb_func_end sub_80B9A1C
-
- thumb_func_start sub_80B9A44
-sub_80B9A44: @ 80B9A44
- adds r1, r0, 0
- ldrh r0, [r1]
- ldrh r1, [r1, 0x2]
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_80B9A44
-
- thumb_func_start sub_80B9A50
-sub_80B9A50: @ 80B9A50
- strh r0, [r1]
- lsrs r0, 16
- strh r0, [r1, 0x2]
- bx lr
- thumb_func_end sub_80B9A50
-
- thumb_func_start sub_80B9A58
-sub_80B9A58: @ 80B9A58
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80B9A58
-
- thumb_func_start sub_80B9A68
-sub_80B9A68: @ 80B9A68
- lsls r0, 24
- lsrs r0, 16
- ldr r1, _080B9A74 @ =gBlockRecvBuffer
- adds r0, r1
- bx lr
- .align 2, 0
-_080B9A74: .4byte gBlockRecvBuffer
- thumb_func_end sub_80B9A68
-
- thumb_func_start sub_80B9A78
-sub_80B9A78: @ 80B9A78
- ldr r1, _080B9A80 @ =gUnknown_03005D2C
- ldr r0, _080B9A84 @ =0x00001230
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B9A80: .4byte gUnknown_03005D2C
-_080B9A84: .4byte 0x00001230
- thumb_func_end sub_80B9A78
-
- thumb_func_start sub_80B9A88
-sub_80B9A88: @ 80B9A88
- push {r4,lr}
- adds r4, r0, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080B9AC0
- cmp r0, 0x3
- bhi _080B9AA2
- cmp r0, 0x2
- beq _080B9AA8
- b _080B9B10
-_080B9AA2:
- cmp r0, 0x4
- beq _080B9AEC
- b _080B9B10
-_080B9AA8:
- movs r2, 0
- ldr r3, _080B9ABC @ =gUnknown_083D0288
-_080B9AAC:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x1
- bls _080B9AAC
- b _080B9B10
- .align 2, 0
-_080B9ABC: .4byte gUnknown_083D0288
-_080B9AC0:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- adds r3, r0, 0
- movs r0, 0x1
- ands r3, r0
- movs r2, 0
- ldr r1, _080B9AE8 @ =gUnknown_083D028A
- lsls r0, r3, 1
- adds r0, r3
- adds r3, r0, r1
-_080B9AD6:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- bls _080B9AD6
- b _080B9B10
- .align 2, 0
-_080B9AE8: .4byte gUnknown_083D028A
-_080B9AEC:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- movs r1, 0x9
- bl __umodsi3
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080B9B18 @ =gUnknown_083D0290
- lsls r0, r3, 2
- adds r3, r0, r1
-_080B9B02:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x3
- bls _080B9B02
-_080B9B10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B18: .4byte gUnknown_083D0290
- thumb_func_end sub_80B9A88
-
- thumb_func_start sub_80B9B1C
-sub_80B9B1C: @ 80B9B1C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r5, r0, 0
- mov r8, r1
- lsls r4, r2, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80B9A88
- mov r0, r8
- muls r0, r4
- adds r0, r5, r0
- ldr r1, _080B9B6C @ =gUnknown_083D0278
- ldr r6, [r1]
- adds r1, r6, 0
- movs r2, 0x40
- bl memcpy
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x40
- bl memcpy
- bl sub_80F7F30
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B6C: .4byte gUnknown_083D0278
- thumb_func_end sub_80B9B1C
-
- thumb_func_start sub_80B9B70
-sub_80B9B70: @ 80B9B70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r0, _080B9BB8 @ =gUnknown_0300071C
- mov r8, r0
- bl sub_80B9A88
- mov r5, r9
- muls r5, r4
- adds r5, r6, r5
- add r4, r8
- ldrb r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0xA4
- bl memcpy
- adds r0, r5, 0
- bl sub_8134AC0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9BB8: .4byte gUnknown_0300071C
- thumb_func_end sub_80B9B70
-
- thumb_func_start sub_80B9BBC
-sub_80B9BBC: @ 80B9BBC
- ldrh r0, [r0, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_80B9BBC
-
- thumb_func_start sub_80B9BC4
-sub_80B9BC4: @ 80B9BC4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x38
- mov r8, r0
- mov r10, r1
- mov r9, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x54]
- lsls r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsrs r4, 23
- add r4, r9
- ldrb r0, [r4]
- mov r6, r10
- muls r6, r0
- add r6, r8
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r6, r1
- mov r0, sp
- movs r2, 0x38
- bl memcpy
- lsls r5, 1
- add r5, r9
- ldrb r0, [r5]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r8, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- adds r6, r0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- add r1, r8
- adds r0, r6, 0
- movs r2, 0x38
- bl memcpy
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- add r8, r0
- mov r0, r8
- mov r1, sp
- movs r2, 0x38
- bl memcpy
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9BC4
-
- thumb_func_start sub_80B9C4C
-sub_80B9C4C: @ 80B9C4C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
-_080B9C54:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r0, r2, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r1, 0xFF
- ble _080B9C54
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B9C4C
-
- thumb_func_start sub_80B9C6C
-sub_80B9C6C: @ 80B9C6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- str r0, [sp, 0x2C]
- str r1, [sp, 0x30]
- str r3, [sp, 0x38]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x34]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x40]
- ldr r0, _080B9DA8 @ =gLinkPlayers
- ldrh r0, [r0, 0x4]
- bl SeedRng
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r3, 0
- add r0, sp, 0x1C
- mov r9, r0
- movs r1, 0x1D
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0xC
- str r2, [sp, 0x4C]
- movs r7, 0xFF
- add r4, sp, 0x8
- movs r2, 0
- mov r6, r9
- mov r5, r10
-_080B9CBC:
- mov r1, sp
- adds r1, r3
- adds r1, 0x4
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- adds r0, r4, r3
- strb r2, [r0]
- lsls r1, r3, 1
- adds r0, r6, r1
- strb r2, [r0]
- adds r1, r5, r1
- strb r2, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B9CBC
- movs r4, 0
- str r4, [sp, 0x3C]
- movs r3, 0
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- str r0, [sp, 0x50]
- ldr r4, [sp, 0x30]
- ldr r0, [sp, 0x34]
- adds r2, r4, 0
- muls r2, r0
- str r2, [sp, 0x48]
- ldr r2, [sp, 0x3C]
- cmp r2, r1
- bcs _080B9D46
- mov r8, r1
-_080B9D00:
- ldr r4, [sp, 0x30]
- adds r0, r4, 0
- muls r0, r3
- ldr r1, [sp, 0x2C]
- adds r6, r1, r0
- ldr r0, [r6, 0x70]
- cmp r0, 0
- beq _080B9D3C
- movs r7, 0
- cmp r7, r0
- bcs _080B9D3C
- adds r4, r6, 0
- adds r4, 0x74
- mov r2, r9
- lsls r1, r3, 1
- movs r5, 0x1
-_080B9D20:
- lsls r0, r7, 1
- adds r0, r4, r0
- ldrh r0, [r0]
- cmp r0, 0
- bne _080B9D30
- adds r0, r7, r1
- adds r0, r2, r0
- strb r5, [r0]
-_080B9D30:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, [r6, 0x70]
- cmp r7, r0
- bcc _080B9D20
-_080B9D3C:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r8
- bcc _080B9D00
-_080B9D46:
- movs r7, 0
- movs r3, 0
- ldr r2, [sp, 0x50]
- cmp r2, 0
- beq _080B9E3E
- mov r4, sp
- adds r4, 0x24
- str r4, [sp, 0x44]
- movs r0, 0x25
- add r0, sp
- mov r8, r0
-_080B9D5C:
- ldr r1, [sp, 0x30]
- adds r0, r1, 0
- muls r0, r3
- ldr r2, [sp, 0x2C]
- adds r6, r2, r0
- lsls r1, r3, 1
- mov r4, r9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B9D7C
- mov r2, r10
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9D86
-_080B9D7C:
- ldr r0, [sp, 0x3C]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x3C]
-_080B9D86:
- mov r4, r9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9DAC
- mov r2, r10
- adds r0, r2, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _080B9DAC
-_080B9D9A:
- lsls r1, r7, 1
- ldr r4, [sp, 0x44]
- adds r0, r4, r1
- strb r3, [r0]
- add r1, r8
- strb r2, [r1]
- b _080B9E2C
- .align 2, 0
-_080B9DA8: .4byte gLinkPlayers
-_080B9DAC:
- mov r2, r9
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B9DC0
- mov r4, r10
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _080B9D9A
-_080B9DC0:
- mov r2, r9
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9E32
- mov r4, r10
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9E32
- lsls r5, r7, 1
- ldr r1, [sp, 0x44]
- adds r0, r1, r5
- strb r3, [r0]
- adds r0, r6, 0
- str r3, [sp, 0x54]
- bl sub_80B9BBC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r0, 0x38
- bl sub_80B9BBC
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, [sp, 0x54]
- cmp r4, 0
- bne _080B9E0A
- cmp r1, 0
- beq _080B9E0E
- mov r2, r8
- adds r1, r2, r5
- movs r0, 0x1
- strb r0, [r1]
- b _080B9E2C
-_080B9E0A:
- cmp r1, 0
- beq _080B9E26
-_080B9E0E:
- str r3, [sp, 0x54]
- bl Random
- mov r4, r8
- adds r2, r4, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- ldr r3, [sp, 0x54]
- b _080B9E2C
-_080B9E26:
- mov r2, r8
- adds r0, r2, r5
- strb r1, [r0]
-_080B9E2C:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080B9E32:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r4, [sp, 0x50]
- cmp r0, r4
- bcc _080B9D5C
-_080B9E3E:
- movs r3, 0
- ldr r1, [sp, 0x48]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 3
- ldr r2, [sp, 0x2C]
- adds r6, r2, r0
- ldr r1, [sp, 0x4C]
-_080B9E4E:
- lsls r0, r3, 2
- adds r0, r1, r0
- str r6, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080B9E4E
- ldr r0, [sp, 0x38]
- bl sub_80B9C4C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r4, [sp, 0x3C]
- cmp r4, 0x3
- beq _080B9E9C
- cmp r4, 0x3
- bgt _080B9E82
- cmp r4, 0x2
- beq _080B9E8A
- b _080B9EF0
-_080B9E82:
- ldr r0, [sp, 0x3C]
- cmp r0, 0x4
- beq _080B9EBC
- b _080B9EF0
-_080B9E8A:
- add r2, sp, 0x24
- movs r0, 0x1
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- movs r3, 0
- bl sub_80B9BC4
- b _080B9EF0
-_080B9E9C:
- ldr r0, _080B9EB8 @ =gUnknown_083D02B4
- lsls r1, 1
- adds r2, r1, r0
- ldrb r3, [r2]
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- add r2, sp, 0x24
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- bl sub_80B9BC4
- b _080B9EF0
- .align 2, 0
-_080B9EB8: .4byte gUnknown_083D02B4
-_080B9EBC:
- add r6, sp, 0x24
- ldr r4, _080B9F2C @ =gUnknown_083D02BA
- lsls r5, r1, 2
- adds r0, r5, r4
- ldrb r3, [r0]
- adds r0, r4, 0x1
- adds r0, r5, r0
- ldrb r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80B9BC4
- adds r0, r4, 0x2
- adds r0, r5, r0
- ldrb r3, [r0]
- adds r4, 0x3
- adds r5, r4
- ldrb r0, [r5]
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- adds r2, r6, 0
- bl sub_80B9BC4
-_080B9EF0:
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x48]
- adds r6, r1, r2
- ldr r4, _080B9F30 @ =gSaveBlock1
- ldr r1, _080B9F34 @ =0x0000303c
- adds r0, r4, r1
- adds r1, r6, 0
- movs r2, 0x38
- bl memcpy
- ldr r2, _080B9F38 @ =0x00003074
- adds r4, r2
- adds r1, r6, 0
- adds r1, 0x38
- adds r0, r4, 0
- movs r2, 0x38
- bl memcpy
- ldr r0, [sp, 0x40]
- bl SeedRng
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9F2C: .4byte gUnknown_083D02BA
-_080B9F30: .4byte gSaveBlock1
-_080B9F34: .4byte 0x0000303c
-_080B9F38: .4byte 0x00003074
- thumb_func_end sub_80B9C6C
-
- thumb_func_start sub_80B9F3C
-sub_80B9F3C: @ 80B9F3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- cmp r1, 0
- beq _080BA000
- ldrh r0, [r4]
- cmp r0, 0
- beq _080BA000
- bl sub_80A9670
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080B9FC8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A92D4
- lsls r0, 24
- cmp r0, 0
- bne _080B9FB8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9718
- lsls r0, 24
- cmp r0, 0
- bne _080B9FB8
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- cmp r0, 0
- beq _080B9FB8
- ldr r0, _080B9FA4 @ =0x00004001
- ldrh r1, [r4]
- bl VarSet
- ldr r0, _080B9FA8 @ =gStringVar1
- ldr r1, _080B9FAC @ =gLinkPlayers + 0x8
- bl StringCopy
- ldrh r1, [r4]
- ldr r0, _080B9FB0 @ =0x00000113
- cmp r1, r0
- bne _080BA000
- ldr r0, _080B9FB4 @ =0x00000853
- bl FlagSet
- b _080BA000
- .align 2, 0
-_080B9FA4: .4byte 0x00004001
-_080B9FA8: .4byte gStringVar1
-_080B9FAC: .4byte gLinkPlayers + 0x8
-_080B9FB0: .4byte 0x00000113
-_080B9FB4: .4byte 0x00000853
-_080B9FB8:
- ldr r0, _080B9FC4 @ =0x00004001
- movs r1, 0
- bl VarSet
- b _080BA000
- .align 2, 0
-_080B9FC4: .4byte 0x00004001
-_080B9FC8:
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B9FF8
- ldr r0, _080B9FEC @ =0x00004001
- ldrh r1, [r4]
- bl VarSet
- ldr r0, _080B9FF0 @ =gStringVar1
- ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8
- bl StringCopy
- b _080BA000
- .align 2, 0
-_080B9FEC: .4byte 0x00004001
-_080B9FF0: .4byte gStringVar1
-_080B9FF4: .4byte gLinkPlayers + 0x8
-_080B9FF8:
- ldr r0, _080BA008 @ =0x00004001
- movs r1, 0
- bl VarSet
-_080BA000:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA008: .4byte 0x00004001
- thumb_func_end sub_80B9F3C
-
- thumb_func_start sub_80BA00C
-sub_80BA00C: @ 80BA00C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080BA030 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _080BA09C
- lsls r0, 2
- ldr r1, _080BA034 @ =_080BA038
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BA030: .4byte gTasks
-_080BA034: .4byte _080BA038
- .align 2, 0
-_080BA038:
- .4byte _080BA086
- .4byte _080BA086
- .4byte _080BA050
- .4byte _080BA05A
- .4byte _080BA074
- .4byte _080BA08E
-_080BA050:
- bl sub_8047A1C
- bl sub_8125E2C
- b _080BA086
-_080BA05A:
- bl sub_8125E6C
- lsls r0, 24
- cmp r0, 0
- beq _080BA09C
- bl sub_8047A34
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- b _080BA09C
-_080BA074:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080BA09C
- bl sub_800832C
-_080BA086:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080BA09C
-_080BA08E:
- ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BA09C
- adds r0, r2, 0
- bl DestroyTask
-_080BA09C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0A4: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80BA00C
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8 @ =gUnknown_020387B0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C @ =REG_BG2CNT
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228 @ =REG_WIN0H
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C @ =REG_WININ
- ldr r2, _080BA230 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234 @ =REG_BLDALPHA
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238 @ =0x04000200
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240 @ =sub_80BA0C0
- bl SetVBlankCallback
- ldr r0, _080BA244 @ =sub_80BA0A8
- bl SetMainCallback2
- ldr r1, _080BA248 @ =0x00007140
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C @ =sub_80BA258
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254 @ =gUnknown_020387B0
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358 @ =gDebugText_BGM
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C @ =gDebugText_SE
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360 @ =gUnknown_083D02D9
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364 @ =gDebugText_UpDown
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368 @ =gDebugText_DriverTest
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374 @ =sub_80BA384
- str r1, [r0]
- ldr r1, _080BA378 @ =REG_WIN0H
- ldr r2, _080BA37C @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0 @ =0x0000015d
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4 @ =gBGMNames
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8 @ =gSENames
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC @ =Task_HandleMainMenuInput
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte Task_HandleMainMenuInput
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430 @ =sub_80BA800
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454 @ =sub_80BAF84
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474 @ =sub_80BB25C
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC @ =0x0000015d
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510 @ =0x0000015d
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534 @ =0x0000015d
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C @ =sub_80BA68C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644 @ =gUnknown_020387B0
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658 @ =gUnknown_020387B0
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start Task_HandleMainMenuInput
-Task_HandleMainMenuInput: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688 @ =sub_80BA384
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end Task_HandleMainMenuInput
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4 @ =REG_WIN1H
- ldr r2, _080BA6D8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC @ =0x00002957
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4 @ =REG_WIN1H
- ldr r2, _080BA6F8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC @ =0x0000618f
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8 @ =gUnknown_083D0312
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC @ =gUnknown_083D031C
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0 @ =gDebugText_Voice
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4 @ =gDebugText_Volume
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8 @ =gDebugText_Panpot
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC @ =gDebugText_Pitch
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00 @ =gDebugText_Length
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04 @ =gDebugText_Release
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08 @ =gDebugText_Progress
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C @ =gDebugText_Chorus
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10 @ =gDebugText_Priority
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14 @ =gUnknown_083D0381
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18 @ =gUnknown_083D038A
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C @ =gUnknown_083D0393
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24 @ =gUnknown_020387B3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28 @ =gUnknown_020387B1
- strb r1, [r0]
- ldr r0, _080BAA2C @ =gUnknown_020387B2
- strb r1, [r0]
- ldr r0, _080BAA30 @ =gUnknown_03005D30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34 @ =gUnknown_020387D8
- strb r2, [r0]
- ldr r1, _080BAA38 @ =gUnknown_020387D9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C @ =gUnknown_020387B4
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40 @ =gTasks
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44 @ =sub_80BAA48
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4 @ =sub_80BA258
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC @ =gUnknown_020387B3
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4 @ =gUnknown_020387B3
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10 @ =gUnknown_020387D8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34 @ =gUnknown_020387D9
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4 @ =gUnknown_020387B4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08 @ =voicegroup_84537C0
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18 @ =voicegroup_8452590
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34 @ =voicegroup_8453DC0
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44 @ =voicegroup_8452B90
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60 @ =voicegroup_84543C0
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70 @ =voicegroup_8453190
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C @ =voicegroup_84549C0
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC @ =voicegroup_8453790
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0 @ =gUnknown_03005D30
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0 @ =gUnknown_03005D30
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4 @ =gUnknown_020387B1
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8 @ =gUnknown_020387B2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50 @ =gUnknown_083D039C
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54 @ =gUnknown_020387B4
- ldr r5, _080BAD58 @ =gUnknown_020387B3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00 @ =gUnknown_020387B4
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04 @ =gUnknown_020387B1
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08 @ =gUnknown_020387D8
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C @ =gUnknown_020387D9
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C @ =gUnknown_083D03DC
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70 @ =gUnknown_083D03DE
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74 @ =gUnknown_083D0300
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80 @ =gUnknown_083D03E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C @ =gOtherText_SE
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020 @ =gOtherText_Pan
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024 @ =gUnknown_083D0381
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C @ =gUnknown_020387B4
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034 @ =sub_80BB038
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058 @ =gUnknown_020387B4
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088 @ =gUnknown_083D03F8
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100 @ =sub_80BA258
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138 @ =gUnknown_083D03F8
- ldr r5, _080BB13C @ =gUnknown_020387B4
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0 @ =gUnknown_020387B4
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218 @ =gOtherText_LR
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C @ =gOtherText_RL
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220 @ =gUnknown_020387B4
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224 @ =gUnknown_083D03F8
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r1, _080BB37C @ =gUnknown_03005D34
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C @ =0xffff00ff
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390 @ =0xffffff00
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390 @ =0xffffff00
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C @ =0xffff00ff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_811A3CC
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398 @ =REG_BG2HOFS
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C @ =REG_BG2CNT
- ldr r2, _080BB3A0 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4 @ =0x00001d03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8 @ =gMPlay_BGM
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0 @ =sub_80BB3B4
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490 @ =sub_80BA258
- str r1, [r0]
- bl sub_811A4F8
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8 @ =gUnknown_03005D34
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- thumb_func_start sub_80BB4AC
-sub_80BB4AC: @ 80BB4AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3]
- movs r2, 0
- adds r4, r3, 0x2
- movs r5, 0xFF
-_080BB4C4:
- adds r0, r4, r2
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x6
- bls _080BB4C4
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x12
- adds r6, r3, 0
- adds r6, 0x22
- adds r7, r3, 0
- adds r7, 0x4C
- adds r0, r3, 0
- adds r0, 0x34
- str r0, [sp]
- adds r1, r3, 0
- adds r1, 0x9A
- str r1, [sp, 0x4]
- movs r0, 0x7C
- adds r0, r3
- mov r10, r0
- movs r1, 0x88
- adds r1, r3
- mov r9, r1
- movs r0, 0x94
- adds r0, r3
- mov r8, r0
- adds r1, r3, 0
- adds r1, 0x9
- movs r4, 0
-_080BB508:
- adds r0, r1, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080BB508
- movs r0, 0
- movs r1, 0
- strh r1, [r3, 0xE]
- strb r0, [r3, 0x10]
- strb r0, [r3, 0x11]
- movs r0, 0
- strb r0, [r3, 0x1]
- movs r2, 0
- adds r4, r5, 0
- adds r3, r6, 0
-_080BB52A:
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080BB52A
- movs r2, 0
- mov r12, r7
- movs r5, 0
-_080BB542:
- movs r1, 0
- adds r7, r2, 0x1
- lsls r4, r2, 2
- lsls r6, r2, 1
- adds r3, r4, 0
-_080BB54C:
- adds r0, r3, r1
- lsls r0, 1
- add r0, r12
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080BB54C
- ldr r1, [sp]
- adds r0, r1, r4
- str r5, [r0]
- ldr r1, [sp, 0x4]
- adds r0, r1, r2
- strb r5, [r0]
- mov r1, r10
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r9
- adds r0, r1, r6
- strh r5, [r0]
- mov r1, r8
- adds r0, r1, r2
- strb r5, [r0]
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080BB542
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB4AC
-
- thumb_func_start sub_80BB594
-sub_80BB594: @ 80BB594
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08
- adds r0, r1
- bl sub_80BB4AC
- pop {r0}
- bx r0
- .align 2, 0
-_080BB5B0: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BB594
-
- thumb_func_start sub_80BB5B4
-sub_80BB5B4: @ 80BB5B4
- push {r4,lr}
- movs r4, 0
-_080BB5B8:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BB594
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BB5B8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB5B4
-
- thumb_func_start sub_80BB5D0
-sub_80BB5D0: @ 80BB5D0
- ldr r0, _080BB5DC @ =gUnknown_020387DC
- ldr r1, _080BB5E0 @ =gUnknown_0202E8CC
- ldrh r1, [r1]
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BB5DC: .4byte gUnknown_020387DC
-_080BB5E0: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80BB5D0
-
- thumb_func_start sub_80BB5E4
-sub_80BB5E4: @ 80BB5E4
- push {r4,lr}
- ldr r0, _080BB5F4 @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- movs r3, 0
- adds r4, r0, 0
- b _080BB5FE
- .align 2, 0
-_080BB5F4: .4byte gScriptResult
-_080BB5F8:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_080BB5FE:
- cmp r3, 0x13
- bhi _080BB626
- ldr r2, _080BB62C @ =gUnknown_020387DC
- ldr r1, _080BB630 @ =gSaveBlock1
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BB634 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _080BB5F8
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080BB638 @ =0x00004054
- adds r1, r3, 0
- bl VarSet
-_080BB626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB62C: .4byte gUnknown_020387DC
-_080BB630: .4byte gSaveBlock1
-_080BB634: .4byte 0x00001a08
-_080BB638: .4byte 0x00004054
- thumb_func_end sub_80BB5E4
-
- thumb_func_start sub_80BB63C
-sub_80BB63C: @ 80BB63C
- push {lr}
- ldr r0, _080BB654 @ =gSaveBlock1
- ldr r1, _080BB658 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080BB660
- ldr r1, _080BB65C @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _080BB664
- .align 2, 0
-_080BB654: .4byte gSaveBlock1
-_080BB658: .4byte 0x00001a08
-_080BB65C: .4byte gScriptResult
-_080BB660:
- ldr r0, _080BB668 @ =gScriptResult
- strh r1, [r0]
-_080BB664:
- pop {r0}
- bx r0
- .align 2, 0
-_080BB668: .4byte gScriptResult
- thumb_func_end sub_80BB63C
-
- thumb_func_start sub_80BB66C
-sub_80BB66C: @ 80BB66C
- 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
- adds r1, r0, 0
- ldr r2, _080BB6A4 @ =0x00000fff
- adds r0, r2, 0
- ands r1, r0
- adds r0, r1, 0
- subs r0, 0x90
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6A8
- movs r0, 0x1
- b _080BB702
- .align 2, 0
-_080BB6A4: .4byte 0x00000fff
-_080BB6A8:
- adds r0, r1, 0
- subs r0, 0x92
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6B8
- movs r0, 0x2
- b _080BB702
-_080BB6B8:
- adds r0, r1, 0
- subs r0, 0x9A
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6C8
- movs r0, 0x3
- b _080BB702
-_080BB6C8:
- adds r0, r1, 0
- subs r0, 0x94
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080BB6D8
- movs r0, 0x4
- b _080BB702
-_080BB6D8:
- adds r0, r1, 0
- subs r0, 0x96
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB6EC
- cmp r1, 0x9C
- beq _080BB6EC
- cmp r1, 0x9D
- bne _080BB6F0
-_080BB6EC:
- movs r0, 0x5
- b _080BB702
-_080BB6F0:
- adds r0, r1, 0
- subs r0, 0x98
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BB700
- movs r0, 0
- b _080BB702
-_080BB700:
- movs r0, 0x6
-_080BB702:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BB66C
-
- thumb_func_start sub_80BB70C
-sub_80BB70C: @ 80BB70C
- push {r4,lr}
- ldr r4, _080BB720 @ =gUnknown_0202E8D2
- bl sub_80BB66C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB720: .4byte gUnknown_0202E8D2
- thumb_func_end sub_80BB70C
-
- thumb_func_start unref_sub_80BB724
-unref_sub_80BB724: @ 80BB724
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- movs r2, 0
- ldr r6, _080BB748 @ =0x00000fff
- lsrs r3, r1, 24
- ldr r5, _080BB74C @ =0x000001ff
-_080BB732:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, r3
- bne _080BB750
- lsls r0, r2, 16
- asrs r0, 16
- b _080BB75E
- .align 2, 0
-_080BB748: .4byte 0x00000fff
-_080BB74C: .4byte 0x000001ff
-_080BB750:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r5
- bls _080BB732
- movs r0, 0x1
- negs r0, r0
-_080BB75E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80BB724
-
- thumb_func_start sub_80BB764
-sub_80BB764: @ 80BB764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- movs r0, 0
- mov r12, r0
- ldr r1, _080BB7C8 @ =gMapHeader
- ldr r0, [r1]
- ldr r3, [r0, 0x4]
- cmp r12, r3
- bge _080BB7EE
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r3, [sp]
-_080BB78E:
- movs r2, 0
- mov r1, r12
- lsls r7, r1, 16
- ldr r0, [sp, 0x4]
- cmp r2, r0
- bge _080BB7DC
- ldr r0, _080BB7C8 @ =gMapHeader
- ldr r1, [r0]
- asrs r0, r7, 16
- ldr r4, [r1]
- adds r6, r0, 0
- muls r6, r4
- ldr r5, [r1, 0xC]
-_080BB7A8:
- lsls r0, r2, 16
- asrs r3, r0, 16
- adds r0, r6, r3
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080BB7CC @ =0x000003ff
- ands r0, r1
- cmp r0, r8
- bne _080BB7D0
- mov r1, r9
- strh r2, [r1]
- mov r1, r12
- mov r0, r10
- strh r1, [r0]
- b _080BB7EE
- .align 2, 0
-_080BB7C8: .4byte gMapHeader
-_080BB7CC: .4byte 0x000003ff
-_080BB7D0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r4
- blt _080BB7A8
-_080BB7DC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r1, r0, 16
- mov r12, r1
- asrs r0, 16
- ldr r1, [sp]
- cmp r0, r1
- blt _080BB78E
-_080BB7EE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB764
-
- thumb_func_start sub_80BB800
-sub_80BB800: @ 80BB800
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- 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 MapGridGetMetatileIdAt
- movs r5, 0
- mov r12, r4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r1, _080BB84C @ =gUnknown_083D1358
- mov r8, r1
- adds r7, r0, 0
- mov r4, sp
- mov r6, r12
-_080BB834:
- ldr r0, _080BB84C @ =gUnknown_083D1358
- lsls r1, r5, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r3
- bne _080BB850
- movs r3, 0
- ldrsh r0, [r4, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r2, 0x2]
- b _080BB878
- .align 2, 0
-_080BB84C: .4byte gUnknown_083D1358
-_080BB850:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB834
- movs r5, 0
- mov r4, sp
- mov r6, r12
-_080BB860:
- lsls r0, r5, 2
- mov r1, r8
- adds r3, r0, r1
- ldrh r1, [r3, 0x2]
- asrs r0, r7, 16
- cmp r1, r0
- bne _080BB892
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r5, 0
- ldrsh r1, [r6, r5]
- ldrh r3, [r3]
-_080BB878:
- movs r5, 0xC0
- lsls r5, 4
- adds r2, r5, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r6, r2]
- bl CurrentMapDrawMetatileAt
- b _080BB89C
-_080BB892:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080BB860
-_080BB89C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB800
-
- thumb_func_start sub_80BB8A8
-sub_80BB8A8: @ 80BB8A8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BB8AE:
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BB8BA
- adds r0, r1, 0
- b _080BB8C6
-_080BB8BA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _080BB8AE
- movs r0, 0x7
-_080BB8C6:
- pop {r1}
- bx r1
- thumb_func_end sub_80BB8A8
-
- thumb_func_start sub_80BB8CC
-sub_80BB8CC: @ 80BB8CC
- push {r4-r6,lr}
- ldr r2, _080BB948 @ =gSaveBlock1
- ldr r0, _080BB94C @ =gUnknown_020387DC
- ldrb r1, [r0]
- ldr r3, _080BB950 @ =0x00001a08
- adds r0, r2, r3
- strb r1, [r0]
- movs r3, 0
- ldr r0, _080BB954 @ =0x00001a11
- adds r2, r0
- ldr r4, _080BB958 @ =gSaveBlock2 + 0xA
-_080BB8E2:
- adds r1, r3, r2
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080BB8E2
- ldr r0, _080BB95C @ =0x00004054
- movs r1, 0
- bl VarSet
- ldr r6, _080BB960 @ =gSaveBlock2
- adds r0, r6, 0
- bl sub_80BB8A8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- ldrb r0, [r6, 0x8]
- subs r5, 0x1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r0, _080BB968 @ =0x00004026
- ldr r1, _080BB96C @ =gMapHeader
- ldrb r1, [r1, 0x14]
- bl VarSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB948: .4byte gSaveBlock1
-_080BB94C: .4byte gUnknown_020387DC
-_080BB950: .4byte 0x00001a08
-_080BB954: .4byte 0x00001a11
-_080BB958: .4byte gSaveBlock2 + 0xA
-_080BB95C: .4byte 0x00004054
-_080BB960: .4byte gSaveBlock2
-_080BB964: .4byte gSaveBlock1 + 0x1A0A
-_080BB968: .4byte 0x00004026
-_080BB96C: .4byte gMapHeader
- thumb_func_end sub_80BB8CC
-
- thumb_func_start sub_80BB970
-sub_80BB970: @ 80BB970
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r2, 0
- b _080BBA06
-_080BB978:
- ldr r0, [r5, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x5]
- adds r7, r2, 0x1
- cmp r0, 0x8
- bne _080BBA02
- movs r2, 0
- ldr r4, _080BB9E0 @ =gSaveBlock1
- adds r6, r1, 0
-_080BB990:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BB9E4 @ =0x00001a08
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, [r3, 0x8]
- cmp r1, r0
- bne _080BB9F8
- ldrh r0, [r3]
- adds r0, 0x7
- ldrh r1, [r3, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r3, 0
- lsls r0, 16
- asrs r4, r0, 16
-_080BB9B6:
- ldr r0, _080BB9E8 @ =gUnknown_083D1358
- lsls r1, r3, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r4
- bne _080BB9EC
- ldr r1, [r5, 0x10]
- adds r1, r6, r1
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r2, 0x2]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BBA02
- .align 2, 0
-_080BB9E0: .4byte gSaveBlock1
-_080BB9E4: .4byte 0x00001a08
-_080BB9E8: .4byte gUnknown_083D1358
-_080BB9EC:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6
- bls _080BB9B6
- b _080BBA02
-_080BB9F8:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _080BB990
-_080BBA02:
- lsls r0, r7, 16
- lsrs r2, r0, 16
-_080BBA06:
- ldrb r0, [r5, 0x3]
- cmp r2, r0
- bcc _080BB978
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB970
-
- thumb_func_start sub_80BBA14
-sub_80BBA14: @ 80BBA14
- push {lr}
- ldr r0, _080BBA40 @ =gUnknown_020387DC
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r2, _080BBA44 @ =gUnknown_083D1374
- lsls r0, 26
- asrs r0, 24
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r0, 0x1
- adds r0, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0x19
- bl warp1_set_2
- pop {r0}
- bx r0
- .align 2, 0
-_080BBA40: .4byte gUnknown_020387DC
-_080BBA44: .4byte gUnknown_083D1374
- thumb_func_end sub_80BBA14
-
- thumb_func_start sub_80BBA48
-sub_80BBA48: @ 80BBA48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BBA6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080BBA7C
- cmp r0, 0x1
- bgt _080BBA70
- cmp r0, 0
- beq _080BBA76
- b _080BBAD0
- .align 2, 0
-_080BBA6C: .4byte gTasks
-_080BBA70:
- cmp r0, 0x2
- beq _080BBA94
- b _080BBAD0
-_080BBA76:
- movs r0, 0x1
- strh r0, [r2, 0x8]
- b _080BBAD0
-_080BBA7C:
- ldr r0, _080BBA90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBAD0
- movs r0, 0x2
- strh r0, [r2, 0x8]
- b _080BBAD0
- .align 2, 0
-_080BBA90: .4byte gPaletteFade
-_080BBA94:
- ldr r0, _080BBAD8 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080BBADC @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BBAE0 @ =0x00001a18
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _080BBAB6
- adds r0, 0x1
- strb r0, [r1]
-_080BBAB6:
- bl sub_80BBA14
- bl warp_in
- ldr r0, _080BBAE4 @ =gUnknown_0300485C
- ldr r1, _080BBAE8 @ =sub_8080990
- str r1, [r0]
- ldr r0, _080BBAEC @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080BBAD0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBAD8: .4byte 0x00004054
-_080BBADC: .4byte gSaveBlock1
-_080BBAE0: .4byte 0x00001a18
-_080BBAE4: .4byte gUnknown_0300485C
-_080BBAE8: .4byte sub_8080990
-_080BBAEC: .4byte CB2_LoadMap
- thumb_func_end sub_80BBA48
-
- thumb_func_start sub_80BBAF0
-sub_80BBAF0: @ 80BBAF0
- push {lr}
- ldr r0, _080BBB1C @ =sub_80BBA48
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _080BBB20 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB1C: .4byte sub_80BBA48
-_080BBB20: .4byte gSaveBlock1
- thumb_func_end sub_80BBAF0
-
- thumb_func_start sub_80BBB24
-sub_80BBB24: @ 80BBB24
- push {lr}
- ldr r0, _080BBB40 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- bne _080BBB48
- ldr r0, _080BBB44 @ =0x00004097
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080BBB48
- movs r0, 0
- b _080BBB4A
- .align 2, 0
-_080BBB40: .4byte gMapHeader
-_080BBB44: .4byte 0x00004097
-_080BBB48:
- movs r0, 0x1
-_080BBB4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80BBB24
-
- thumb_func_start sub_80BBB50
-sub_80BBB50: @ 80BBB50
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080BBB88 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BBB8C @ =gMapObjects
- adds r0, r1
- movs r1, 0x2
- bl FieldObjectTurn
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBB80
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080BBB80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBB88: .4byte gPlayerAvatar
-_080BBB8C: .4byte gMapObjects
- thumb_func_end sub_80BBB50
-
- thumb_func_start sub_80BBB90
-sub_80BBB90: @ 80BBB90
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl HideMapNamePopUpWindow
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x7
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r1, 0x7
- bl CurrentMapDrawMetatileAt
- bl pal_fill_black
- ldr r0, _080BBBE8 @ =sub_80BBB50
- movs r1, 0
- bl CreateTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBBE8: .4byte sub_80BBB50
- thumb_func_end sub_80BBB90
-
- thumb_func_start sub_80BBBEC
-sub_80BBBEC: @ 80BBBEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BBC5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BBC52
- ldr r0, _080BBC60 @ =gUnknown_020387DC
- ldrb r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- ldr r1, _080BBC64 @ =gSaveBlock1
- movs r5, 0x4
- ldrsb r5, [r1, r5]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r4, _080BBC68 @ =gUnknown_083D1374
- lsls r0, 26
- asrs r0, 24
- adds r3, r0, 0x2
- adds r3, r4
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- adds r0, 0x3
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- bl warp1_set
- bl warp_in
- ldr r1, _080BBC6C @ =gUnknown_0300485C
- ldr r0, _080BBC70 @ =sub_80BBB90
- str r0, [r1]
- ldr r0, _080BBC74 @ =CB2_LoadMap
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_080BBC52:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBC5C: .4byte gPaletteFade
-_080BBC60: .4byte gUnknown_020387DC
-_080BBC64: .4byte gSaveBlock1
-_080BBC68: .4byte gUnknown_083D1374
-_080BBC6C: .4byte gUnknown_0300485C
-_080BBC70: .4byte sub_80BBB90
-_080BBC74: .4byte CB2_LoadMap
- thumb_func_end sub_80BBBEC
-
- thumb_func_start sub_80BBC78
-sub_80BBC78: @ 80BBC78
- push {lr}
- ldr r0, _080BBCA0 @ =sub_80BBBEC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BBCA4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BBCA0: .4byte sub_80BBBEC
-_080BBCA4: .4byte gTasks
- thumb_func_end sub_80BBC78
-
- thumb_func_start CurrentMapIsSecretBase
-CurrentMapIsSecretBase: @ 80BBCA8
- push {lr}
- ldr r1, _080BBCC0 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x19
- bne _080BBCC4
- ldrb r0, [r1, 0x5]
- cmp r0, 0x17
- bhi _080BBCC4
- movs r0, 0x1
- b _080BBCC6
- .align 2, 0
-_080BBCC0: .4byte gSaveBlock1
-_080BBCC4:
- movs r0, 0
-_080BBCC6:
- pop {r1}
- bx r1
- thumb_func_end CurrentMapIsSecretBase
-
- thumb_func_start sub_80BBCCC
-sub_80BBCCC: @ 80BBCCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- beq _080BBDBC
- ldr r0, _080BBD70 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- ldr r6, _080BBD74 @ =gSaveBlock1
- mov r4, sp
- ldr r0, _080BBD78 @ =0x00001a2a
- adds r7, r6, r0
-_080BBCFC:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- ldrh r1, [r4]
- adds r2, r0, r1
- ldr r1, _080BBD7C @ =0x00001a1a
- adds r0, r6, r1
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x77
- bhi _080BBD3A
- ldr r0, _080BBD80 @ =gDecorations
- ldrb r3, [r1]
- lsls r1, r3, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- beq _080BBD3A
- adds r0, r2, r7
- ldrb r2, [r0]
- lsrs r0, r2, 4
- adds r0, 0x7
- movs r1, 0xF
- ands r1, r2
- adds r1, 0x7
- adds r2, r3, 0
- bl sub_80FF394
-_080BBD3A:
- ldrh r0, [r4]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4]
- cmp r0, 0xF
- bls _080BBCFC
- cmp r5, 0
- beq _080BBD88
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBD84 @ =0x00000e21
- bl MapGridSetMetatileIdAt
- b _080BBDBC
- .align 2, 0
-_080BBD70: .4byte 0x00004054
-_080BBD74: .4byte gSaveBlock1
-_080BBD78: .4byte 0x00001a2a
-_080BBD7C: .4byte 0x00001a1a
-_080BBD80: .4byte gDecorations
-_080BBD84: .4byte 0x00000e21
-_080BBD88:
- mov r0, r8
- cmp r0, 0x1
- bne _080BBDBC
- ldr r0, _080BBDC8 @ =0x00004089
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080BBDBC
- mov r4, sp
- adds r4, 0x2
- movs r2, 0x88
- lsls r2, 2
- mov r0, sp
- adds r1, r4, 0
- bl sub_80BB764
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x7
- ldr r2, _080BBDCC @ =0x00000e0a
- bl MapGridSetMetatileIdAt
-_080BBDBC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBDC8: .4byte 0x00004089
-_080BBDCC: .4byte 0x00000e0a
- thumb_func_end sub_80BBCCC
-
- thumb_func_start sub_80BBDD0
-sub_80BBDD0: @ 80BBDD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080BBE00 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl CurrentMapIsSecretBase
- lsls r0, 24
- cmp r0, 0
- bne _080BBE08
- ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688
- str r0, [sp, 0x4]
- adds r0, 0xC
- str r0, [sp, 0x8]
- movs r1, 0xC
- str r1, [sp, 0xC]
- b _080BBE1E
- .align 2, 0
-_080BBE00: .4byte 0x00004054
-_080BBE04: .4byte gSaveBlock1 + 0x2688
-_080BBE08:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 5
- ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A
- adds r2, r1, r0
- str r2, [sp, 0x4]
- adds r0, 0x10
- adds r1, r0
- str r1, [sp, 0x8]
- movs r3, 0x10
- str r3, [sp, 0xC]
-_080BBE1E:
- movs r6, 0
- ldr r4, [sp, 0xC]
- cmp r6, r4
- bcc _080BBE28
- b _080BBF6C
-_080BBE28:
- ldr r5, _080BBF80 @ =gSaveBlock1
- mov r10, r5
-_080BBE2C:
- ldr r1, [sp, 0x4]
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r9, r0
- adds r2, r6, 0x1
- str r2, [sp, 0x10]
- cmp r1, 0
- bne _080BBE3E
- b _080BBF5E
-_080BBE3E:
- ldrb r0, [r0]
- lsls r0, 5
- ldr r3, _080BBF84 @ =gDecorations
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _080BBE4E
- b _080BBF5E
-_080BBE4E:
- movs r5, 0
- ldr r0, _080BBF88 @ =gMapHeader
- ldr r2, [r0, 0x4]
- ldrb r3, [r2]
- mov r8, r0
- cmp r5, r3
- bcs _080BBE8E
- ldr r0, [r2, 0x4]
- ldrh r1, [r0, 0x14]
- ldr r4, _080BBF8C @ =gUnknown_0202E8CC
- ldrh r0, [r4]
- adds r0, 0xAE
- adds r7, r4, 0
- cmp r1, r0
- beq _080BBE8E
- adds r4, r2, 0
- adds r2, r3, 0
-_080BBE70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r2
- bcs _080BBE8E
- ldr r1, [r4, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x14]
- ldrh r0, [r7]
- adds r0, 0xAE
- cmp r1, r0
- bne _080BBE70
-_080BBE8E:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldrb r0, [r0]
- cmp r5, r0
- beq _080BBF5E
- ldr r7, _080BBF90 @ =gUnknown_0202E8D0
- ldr r2, [sp, 0x8]
- adds r1, r2, r6
- ldrb r0, [r1]
- lsrs r0, 4
- strh r0, [r7]
- ldr r6, _080BBF94 @ =gUnknown_0202E8D2
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r7]
- adds r0, 0x7
- ldrh r1, [r6]
- adds r1, 0x7
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BBEDA
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BBF5E
-_080BBEDA:
- mov r3, r8
- ldr r0, [r3, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- lsls r4, 3
- adds r1, r4, r1
- ldr r5, _080BBF98 @ =0x00003f20
- adds r0, r5, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080BBF9C @ =gScriptResult
- strh r0, [r1]
- ldrh r0, [r1]
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 5
- ldr r3, _080BBFA0 @ =gDecorations + 0x1C
- adds r1, r3
- ldr r1, [r1]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- ldr r1, _080BBF9C @ =gScriptResult
- strh r0, [r1]
- ldr r2, _080BBF8C @ =gUnknown_0202E8CC
- ldrh r0, [r2]
- adds r0, 0xAE
- lsls r0, 16
- lsrs r0, 16
- bl FlagReset
- ldr r3, _080BBF9C @ =gScriptResult
- ldrb r0, [r3]
- mov r4, r10
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl show_sprite
- ldr r5, _080BBF9C @ =gScriptResult
- ldrb r0, [r5]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- ldrsh r3, [r7, r4]
- movs r5, 0
- ldrsh r4, [r6, r5]
- str r4, [sp]
- bl sub_805C0F8
- ldr r1, _080BBF9C @ =gScriptResult
- ldrb r0, [r1]
- mov r2, r10
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805C78C
- ldr r3, _080BBF8C @ =gUnknown_0202E8CC
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080BBF5E:
- ldr r4, [sp, 0x10]
- lsls r0, r4, 24
- lsrs r6, r0, 24
- ldr r5, [sp, 0xC]
- cmp r6, r5
- bcs _080BBF6C
- b _080BBE2C
-_080BBF6C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
-_080BBF80: .4byte gSaveBlock1
-_080BBF84: .4byte gDecorations
-_080BBF88: .4byte gMapHeader
-_080BBF8C: .4byte gUnknown_0202E8CC
-_080BBF90: .4byte gUnknown_0202E8D0
-_080BBF94: .4byte gUnknown_0202E8D2
-_080BBF98: .4byte 0x00003f20
-_080BBF9C: .4byte gScriptResult
-_080BBFA0: .4byte gDecorations + 0x1C
- thumb_func_end sub_80BBDD0
-
- thumb_func_start sub_80BBFA4
-sub_80BBFA4: @ 80BBFA4
- push {r4,r5,lr}
- ldr r0, _080BBFCC @ =0x00004054
- bl VarGet
- ldr r5, _080BBFD0 @ =0x0000401f
- ldr r4, _080BBFD4 @ =gUnknown_083D13EC
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- bl VarSet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BBFCC: .4byte 0x00004054
-_080BBFD0: .4byte 0x0000401f
-_080BBFD4: .4byte gUnknown_083D13EC
- thumb_func_end sub_80BBFA4
-
- thumb_func_start sub_80BBFD8
-sub_80BBFD8: @ 80BBFD8
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r3, 0
- ldrb r0, [r4, 0x3]
- cmp r3, r0
- bge _080BC030
- ldr r6, _080BC01C @ =gUnknown_020387DC
-_080BBFE8:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r4, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- cmp r0, 0x8
- bne _080BC020
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- ldrh r0, [r2, 0x2]
- adds r0, 0x7
- cmp r1, r0
- bne _080BC020
- ldr r0, [r2, 0x8]
- strb r0, [r6]
- b _080BC030
- .align 2, 0
-_080BC01C: .4byte gUnknown_020387DC
-_080BC020:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- blt _080BBFE8
-_080BC030:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BBFD8
-
- thumb_func_start sub_80BC038
-sub_80BC038: @ 80BC038
- push {lr}
- bl sub_80BBFD8
- bl sub_80BB5E4
- ldr r0, _080BC04C @ =gUnknown_081A2E14
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080BC04C: .4byte gUnknown_081A2E14
- thumb_func_end sub_80BC038
-
- thumb_func_start sub_80BC050
-sub_80BC050: @ 80BC050
- push {lr}
- bl sub_80BB5D0
- bl sub_80BB5E4
- ldr r0, _080BC068 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BC06C
- movs r0, 0x1
- b _080BC06E
- .align 2, 0
-_080BC068: .4byte gScriptResult
-_080BC06C:
- movs r0, 0
-_080BC06E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC050
-
- thumb_func_start sub_80BC074
-sub_80BC074: @ 80BC074
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080BC098 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BC0AC
- cmp r0, 0x1
- bgt _080BC09C
- cmp r0, 0
- beq _080BC0A2
- b _080BC0E4
- .align 2, 0
-_080BC098: .4byte gTasks
-_080BC09C:
- cmp r0, 0x2
- beq _080BC0C4
- b _080BC0E4
-_080BC0A2:
- bl ScriptContext2_Enable
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _080BC0E4
-_080BC0AC:
- ldr r0, _080BC0C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BC0E4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080BC0E4
- .align 2, 0
-_080BC0C0: .4byte gPaletteFade
-_080BC0C4:
- movs r0, 0x7E
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl warp_in
- ldr r0, _080BC0EC @ =gUnknown_0300485C
- ldr r1, _080BC0F0 @ =mapldr_default
- str r1, [r0]
- ldr r0, _080BC0F4 @ =CB2_LoadMap
- bl SetMainCallback2
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
-_080BC0E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC0EC: .4byte gUnknown_0300485C
-_080BC0F0: .4byte mapldr_default
-_080BC0F4: .4byte CB2_LoadMap
- thumb_func_end sub_80BC074
-
- thumb_func_start sub_80BC0F8
-sub_80BC0F8: @ 80BC0F8
- push {lr}
- ldr r0, _080BC110 @ =sub_80BC074
- movs r1, 0
- bl CreateTask
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_080BC110: .4byte sub_80BC074
- thumb_func_end sub_80BC0F8
-
- thumb_func_start sub_80BC114
-sub_80BC114: @ 80BC114
- push {lr}
- ldr r0, _080BC12C @ =gSaveBlock1
- ldr r1, _080BC130 @ =0x00001a08
- adds r0, r1
- ldr r1, _080BC134 @ =gUnknown_020387DC
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BC13C
- ldr r1, _080BC138 @ =gScriptResult
- movs r0, 0x1
- b _080BC140
- .align 2, 0
-_080BC12C: .4byte gSaveBlock1
-_080BC130: .4byte 0x00001a08
-_080BC134: .4byte gUnknown_020387DC
-_080BC138: .4byte gScriptResult
-_080BC13C:
- ldr r1, _080BC148 @ =gScriptResult
- movs r0, 0
-_080BC140:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BC148: .4byte gScriptResult
- thumb_func_end sub_80BC114
-
- thumb_func_start sub_80BC14C
-sub_80BC14C: @ 80BC14C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r5, _080BC174 @ =gSaveBlock1
- ldr r4, _080BC178 @ =0x00001a08
-_080BC158:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BC17C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BC18A
- .align 2, 0
-_080BC174: .4byte gSaveBlock1
-_080BC178: .4byte 0x00001a08
-_080BC17C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC158
- movs r0, 0
-_080BC18A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC14C
-
- thumb_func_start sub_80BC190
-sub_80BC190: @ 80BC190
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 5
- ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A
- adds r4, r0
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _080BC1CC @ =gOtherText_PlayersBase
- adds r0, r5, 0
- bl StringAppend
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
-_080BC1CC: .4byte gOtherText_PlayersBase
- thumb_func_end sub_80BC190
-
- thumb_func_start GetSecretBaseMapName
-GetSecretBaseMapName: @ 80BC1D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- ldr r6, _080BC214 @ =gUnknown_020387DC
- ldr r5, _080BC218 @ =gSaveBlock1
- ldr r4, _080BC21C @ =0x00004054
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r5
- ldr r0, _080BC220 @ =0x00001a08
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r6]
- adds r0, r4, 0
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_80BC190
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC214: .4byte gUnknown_020387DC
-_080BC218: .4byte gSaveBlock1
-_080BC21C: .4byte 0x00004054
-_080BC220: .4byte 0x00001a08
- thumb_func_end GetSecretBaseMapName
-
- thumb_func_start sub_80BC224
-sub_80BC224: @ 80BC224
- push {r4,r5,lr}
- ldr r0, _080BC25C @ =0x00004054
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A
- adds r4, r0
- ldr r5, _080BC264 @ =gStringVar1
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC25C: .4byte 0x00004054
-_080BC260: .4byte gSaveBlock1 + 0x1A0A
-_080BC264: .4byte gStringVar1
- thumb_func_end sub_80BC224
-
- thumb_func_start sub_80BC268
-sub_80BC268: @ 80BC268
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BC288 @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC28C @ =0x00001a09
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 6
- cmp r0, 0
- bne _080BC290
- movs r0, 0
- b _080BC292
- .align 2, 0
-_080BC288: .4byte gSaveBlock1
-_080BC28C: .4byte 0x00001a09
-_080BC290:
- movs r0, 0x1
-_080BC292:
- pop {r1}
- bx r1
- thumb_func_end sub_80BC268
-
- thumb_func_start sub_80BC298
-sub_80BC298: @ 80BC298
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1B
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1C
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1D
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1E
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x1F
- bl GetMonData
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC298
-
- thumb_func_start sub_80BC300
-sub_80BC300: @ 80BC300
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- movs r6, 0
- mov r9, r6
-_080BC314:
- movs r4, 0
- lsls r3, r6, 2
- lsls r2, r6, 1
- ldr r7, _080BC424 @ =gPlayerParty
- adds r1, r6, 0x1
- str r1, [sp]
- adds r1, r3, 0
-_080BC322:
- adds r0, r1, r4
- lsls r0, 1
- ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54
- adds r0, r5, r0
- mov r5, r9
- strh r5, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080BC322
- ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84
- adds r0, r1, r2
- strh r5, [r0]
- ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90
- adds r0, r5, r2
- mov r1, r9
- strh r1, [r0]
- ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C
- adds r0, r2, r6
- mov r5, r9
- strb r5, [r0]
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
- adds r0, r1, r3
- mov r2, r9
- str r2, [r0]
- ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2
- adds r0, r3, r6
- strb r2, [r0]
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- adds r4, r5, r7
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080BC408
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080BC408
- movs r4, 0
- mov r0, r10
- lsls r0, 2
- mov r8, r0
- mov r1, r10
- lsls r7, r1, 1
- adds r1, 0x1
- str r1, [sp, 0x4]
- ldr r2, _080BC424 @ =gPlayerParty
-_080BC38E:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, r2
- str r2, [sp, 0x8]
- bl GetMonData
- mov r3, r8
- adds r1, r3, r4
- lsls r1, 1
- ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54
- adds r1, r3, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x8]
- cmp r4, 0x3
- bls _080BC38E
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080BC424 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84
- adds r1, r5, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90
- adds r1, r2, r7
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C
- add r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
- add r1, r8
- str r0, [r1]
- adds r0, r4, 0
- bl sub_80BC298
- ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2
- add r1, r10
- strb r0, [r1]
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r10, r0
-_080BC408:
- ldr r5, [sp]
- lsls r0, r5, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080BC314
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC424: .4byte gPlayerParty
-_080BC428: .4byte gSaveBlock1 + 0x1A54
-_080BC42C: .4byte gSaveBlock1 + 0x1A84
-_080BC430: .4byte gSaveBlock1 + 0x1A90
-_080BC434: .4byte gSaveBlock1 + 0x1A9C
-_080BC438: .4byte gSaveBlock1 + 0x1A3C
-_080BC43C: .4byte gSaveBlock1 + 0x1AA2
- thumb_func_end sub_80BC300
-
- thumb_func_start sub_80BC440
-sub_80BC440: @ 80BC440
- push {r4,r5,lr}
- ldr r4, _080BC45C @ =gSaveBlock1
- ldr r0, _080BC460 @ =0x00001a16
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl sub_80BB594
- strh r5, [r4]
- bl sub_80BC0F8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC45C: .4byte gSaveBlock1
-_080BC460: .4byte 0x00001a16
- thumb_func_end sub_80BC440
-
- thumb_func_start sub_80BC464
-sub_80BC464: @ 80BC464
- push {lr}
- movs r0, 0x14
- bl sav12_xor_increment
- bl sub_80BC440
- pop {r0}
- bx r0
- thumb_func_end sub_80BC464
-
- thumb_func_start sub_80BC474
-sub_80BC474: @ 80BC474
- push {r4-r7,lr}
- ldr r0, _080BC4CC @ =gMapHeader
- ldr r4, [r0, 0x4]
- movs r6, 0
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcs _080BC504
- ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08
-_080BC484:
- ldr r2, [r4, 0x10]
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x5]
- adds r7, r1, 0
- cmp r0, 0x8
- bne _080BC4F8
- ldrb r1, [r3]
- ldr r0, [r2, 0x8]
- cmp r1, r0
- bne _080BC4F8
- ldrh r0, [r2]
- adds r0, 0x7
- ldrh r1, [r2, 0x2]
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0
- ldr r5, _080BC4D4 @ =gUnknown_083D1358
- lsls r0, 16
- asrs r2, r0, 16
-_080BC4B2:
- lsls r0, r1, 2
- adds r3, r0, r5
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- beq _080BC4D8
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x6
- bls _080BC4B2
-_080BC4C6:
- bl DrawWholeMapView
- b _080BC504
- .align 2, 0
-_080BC4CC: .4byte gMapHeader
-_080BC4D0: .4byte gSaveBlock1 + 0x1A08
-_080BC4D4: .4byte gUnknown_083D1358
-_080BC4D8:
- ldr r0, [r4, 0x10]
- adds r1, r7, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- ldrh r1, [r1, 0x2]
- adds r1, 0x7
- ldrh r3, [r3]
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r2, r3
- bl MapGridSetMetatileIdAt
- b _080BC4C6
-_080BC4F8:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4, 0x3]
- cmp r6, r0
- bcc _080BC484
-_080BC504:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC474
-
- thumb_func_start sub_80BC50C
-sub_80BC50C: @ 80BC50C
- push {r4,r5,lr}
- bl sub_80BC474
- movs r0, 0x14
- bl sav12_xor_increment
- ldr r4, _080BC530 @ =gSaveBlock1
- ldr r0, _080BC534 @ =0x00001a16
- adds r4, r0
- ldrh r5, [r4]
- movs r0, 0
- bl sub_80BB594
- strh r5, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC530: .4byte gSaveBlock1
-_080BC534: .4byte 0x00001a16
- thumb_func_end sub_80BC50C
-
- thumb_func_start sub_80BC538
-sub_80BC538: @ 80BC538
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0x1
-_080BC53E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC554
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC554:
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BC53E
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC538
-
- thumb_func_start sub_80BC56C
-sub_80BC56C: @ 80BC56C
- push {lr}
- ldr r0, _080BC58C @ =gUnknown_020387DC
- ldrb r0, [r0]
- bl sub_80BC14C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC268
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080BC594
- ldr r0, _080BC590 @ =gScriptResult
- strh r1, [r0]
- b _080BC5B2
- .align 2, 0
-_080BC58C: .4byte gUnknown_020387DC
-_080BC590: .4byte gScriptResult
-_080BC594:
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080BC5AC
- ldr r1, _080BC5A8 @ =gScriptResult
- movs r0, 0x2
- b _080BC5B0
- .align 2, 0
-_080BC5A8: .4byte gScriptResult
-_080BC5AC:
- ldr r1, _080BC5B8 @ =gScriptResult
- movs r0, 0
-_080BC5B0:
- strh r0, [r1]
-_080BC5B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5B8: .4byte gScriptResult
- thumb_func_end sub_80BC56C
-
- thumb_func_start sub_80BC5BC
-sub_80BC5BC: @ 80BC5BC
- push {lr}
- ldr r0, _080BC5F8 @ =gUnknown_020387DC
- ldrb r0, [r0]
- bl sub_80BC14C
- ldr r2, _080BC5FC @ =gSaveBlock1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BC600 @ =0x00001a09
- adds r1, r0
- ldrb r3, [r1]
- lsrs r2, r3, 6
- movs r0, 0x1
- eors r2, r0
- lsls r2, 6
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r0, 0x86
- lsls r0, 1
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080BC5F8: .4byte gUnknown_020387DC
-_080BC5FC: .4byte gSaveBlock1
-_080BC600: .4byte 0x00001a09
- thumb_func_end sub_80BC5BC
-
- thumb_func_start sub_80BC604
-sub_80BC604: @ 80BC604
- push {lr}
- ldr r0, _080BC614 @ =sub_80FE264
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC614: .4byte sub_80FE264
- thumb_func_end sub_80BC604
-
- thumb_func_start sub_80BC618
-sub_80BC618: @ 80BC618
- push {lr}
- ldr r0, _080BC628 @ =sub_80BC62C
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080BC628: .4byte sub_80BC62C
- thumb_func_end sub_80BC618
-
- thumb_func_start sub_80BC62C
-sub_80BC62C: @ 80BC62C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl ScriptContext2_Enable
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC688 @ =gTasks + 0x8
- adds r4, r0, r1
- bl sub_80BC538
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- adds r1, r0, 0
- cmp r1, 0
- beq _080BC694
- cmp r1, 0x7
- ble _080BC65E
- movs r0, 0x7
-_080BC65E:
- strh r0, [r4, 0x6]
- movs r0, 0
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BC7D8
- ldr r1, _080BC68C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC690 @ =sub_80BC824
- str r1, [r0]
- b _080BC6A0
- .align 2, 0
-_080BC688: .4byte gTasks + 0x8
-_080BC68C: .4byte gTasks
-_080BC690: .4byte sub_80BC824
-_080BC694:
- ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry
- ldr r2, _080BC6AC @ =sub_80BCC54
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080BC6A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC6A8: .4byte gSecretBaseText_NoRegistry
-_080BC6AC: .4byte sub_80BCC54
- thumb_func_end sub_80BC62C
-
- thumb_func_start sub_80BC6B0
-sub_80BC6B0: @ 80BC6B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BC6D8 @ =gTasks + 0x8
- adds r1, r0
- mov r8, r1
- movs r4, 0
- movs r6, 0
- movs r5, 0x1
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r6, r0
- bne _080BC6DC
- movs r4, 0x1
- b _080BC706
- .align 2, 0
-_080BC6D8: .4byte gTasks + 0x8
-_080BC6DC:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC6F0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BC6F0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bhi _080BC706
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r4, r0
- bne _080BC6DC
- adds r4, r5, 0
-_080BC706:
- adds r5, r4, 0
- cmp r5, 0x13
- bhi _080BC75A
- ldr r7, _080BC7A0 @ =gStringVar1
-_080BC70E:
- adds r0, r5, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC750
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80BC190
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- adds r0, r7, 0
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x8
- beq _080BC75A
-_080BC750:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BC70E
-_080BC75A:
- cmp r6, 0x7
- bhi _080BC7A8
- lsls r3, r6, 1
- adds r4, r3, 0x2
- lsls r4, 24
- lsrs r4, 24
- adds r3, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080BC7A4 @ =gUnknownText_Exit
- movs r1, 0x12
- adds r2, r4, 0
- bl MenuPrint
- movs r0, 0x1
- bl SetBgTilemapBuffer
- cmp r6, 0x7
- beq _080BC7B2
- lsls r1, r6, 25
- movs r0, 0x80
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x12
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- b _080BC7B2
- .align 2, 0
-_080BC7A0: .4byte gStringVar1
-_080BC7A4: .4byte gUnknownText_Exit
-_080BC7A8:
- movs r0, 0x1
- movs r1, 0xBC
- movs r2, 0x98
- bl sub_80F953C
-_080BC7B2:
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080BC7C4
- movs r0, 0
- bl SetBgTilemapBuffer
- b _080BC7CE
-_080BC7C4:
- movs r0, 0
- movs r1, 0xBC
- movs r2, 0x8
- bl sub_80F953C
-_080BC7CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC6B0
-
- thumb_func_start sub_80BC7D8
-sub_80BC7D8: @ 80BC7D8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BC820 @ =gTasks + 0x8
- adds r4, r0
- movs r0, 0x11
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldrb r3, [r4, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- adds r0, r5, 0
- bl sub_80BC6B0
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC820: .4byte gTasks + 0x8
- thumb_func_end sub_80BC7D8
-
- thumb_func_start sub_80BC824
-sub_80BC824: @ 80BC824
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080BC858 @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r2, _080BC85C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BC874
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080BC860
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080BC8B6
- .align 2, 0
-_080BC858: .4byte gTasks + 0x8
-_080BC85C: .4byte gMain
-_080BC860:
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- b _080BC8A4
-_080BC874:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BC8C2
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080BC8AE
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
-_080BC8A4:
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- bl sub_80BC6B0
- b _080BC940
-_080BC8AE:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080BC8B6:
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2]
- b _080BC940
-_080BC8C2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BC91C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080BC8FC
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_80BCC54
- b _080BC940
-_080BC8FC:
- bl sub_8072DEC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BC948
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl sub_80BC980
- b _080BC940
-_080BC91C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BC940
- movs r0, 0x5
- bl PlaySE
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_80BCC54
-_080BC940:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC824
-
- thumb_func_start sub_80BC948
-sub_80BC948: @ 80BC948
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0x1
-_080BC952:
- adds r0, r4, 0
- bl sub_80BC268
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BC96E
- cmp r6, r5
- bne _080BC968
- adds r0, r4, 0
- b _080BC97A
-_080BC968:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080BC96E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _080BC952
- movs r0, 0
-_080BC97A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BC948
-
- thumb_func_start sub_80BC980
-sub_80BC980: @ 80BC980
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r3, _080BC9D8 @ =gUnknown_083D13D4
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x2
- bl InitMenu
- ldr r1, _080BC9DC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BC9E0 @ =sub_80BC9E4
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BC9D8: .4byte gUnknown_083D13D4
-_080BC9DC: .4byte gTasks
-_080BC9E0: .4byte sub_80BC9E4
- thumb_func_end sub_80BC980
-
- thumb_func_start sub_80BC9E4
-sub_80BC9E4: @ 80BC9E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _080BCA14 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BCA18
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080BCA7C
- .align 2, 0
-_080BCA14: .4byte gMain
-_080BCA18:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BCA3A
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080BCA7C
-_080BCA3A:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BCA68
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080BCA64 @ =gUnknown_083D13D4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _080BCA7C
- .align 2, 0
-_080BCA64: .4byte gUnknown_083D13D4
-_080BCA68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BCA7C
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80BCBF8
-_080BCA7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BC9E4
-
- thumb_func_start sub_80BCA84
-sub_80BCA84: @ 80BCA84
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080BCAD8 @ =gTasks + 0x8
- adds r4, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _080BCADC @ =gStringVar1
- ldrb r1, [r4, 0x8]
- bl sub_80BC190
- ldr r4, _080BCAE0 @ =gStringVar4
- ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080BCAE8 @ =sub_80BCAEC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCAD8: .4byte gTasks + 0x8
-_080BCADC: .4byte gStringVar1
-_080BCAE0: .4byte gStringVar4
-_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
-_080BCAE8: .4byte sub_80BCAEC
- thumb_func_end sub_80BCA84
-
- thumb_func_start sub_80BCAEC
-sub_80BCAEC: @ 80BCAEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _080BCB0C @ =gUnknown_083D13E4
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB0C: .4byte gUnknown_083D13E4
- thumb_func_end sub_80BCAEC
-
- thumb_func_start sub_80BCB10
-sub_80BCB10: @ 80BCB10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _080BCB80 @ =gTasks + 0x8
- adds r4, r6, r7
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _080BCB84 @ =gSaveBlock1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r2
- ldr r1, _080BCB88 @ =0x00001a09
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080BCB5C
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
-_080BCB5C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bgt _080BCB6A
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
-_080BCB6A:
- adds r0, r5, 0
- bl sub_80BC7D8
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080BCB8C @ =sub_80BC824
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCB80: .4byte gTasks + 0x8
-_080BCB84: .4byte gSaveBlock1
-_080BCB88: .4byte 0x00001a09
-_080BCB8C: .4byte sub_80BC824
- thumb_func_end sub_80BCB10
-
- thumb_func_start sub_80BCB90
-sub_80BCB90: @ 80BCB90
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted
- ldr r2, _080BCBBC @ =sub_80BCB10
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
-_080BCBBC: .4byte sub_80BCB10
- thumb_func_end sub_80BCB90
-
- thumb_func_start sub_80BCBC0
-sub_80BCBC0: @ 80BCBC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80BC7D8
- ldr r1, _080BCBF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BCBF4 @ =sub_80BC824
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCBF0: .4byte gTasks
-_080BCBF4: .4byte sub_80BC824
- thumb_func_end sub_80BCBC0
-
- thumb_func_start sub_80BCBF8
-sub_80BCBF8: @ 80BCBF8
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, _080BCC4C @ =gTasks + 0x8
- adds r0, r4, r5
- ldrb r3, [r0, 0x6]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r0, 0x2]
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x12
- movs r2, 0x2
- bl InitMenu
- movs r0, 0x1
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x5
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- subs r5, 0x8
- adds r4, r5
- ldr r0, _080BCC50 @ =sub_80BC824
- str r0, [r4]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCC4C: .4byte gTasks + 0x8
-_080BCC50: .4byte sub_80BC824
- thumb_func_end sub_80BCBF8
-
- thumb_func_start sub_80BCC54
-sub_80BCC54: @ 80BCC54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080BCC84 @ =0x00004054
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- cmp r4, 0
- bne _080BCC8C
- ldr r0, _080BCC88 @ =gUnknown_0815F399
- bl ScriptContext1_SetupScript
- b _080BCC92
- .align 2, 0
-_080BCC84: .4byte 0x00004054
-_080BCC88: .4byte gUnknown_0815F399
-_080BCC8C:
- ldr r0, _080BCCA0 @ =gUnknown_0815F49A
- bl ScriptContext1_SetupScript
-_080BCC92:
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCCA0: .4byte gUnknown_0815F49A
- thumb_func_end sub_80BCC54
-
- thumb_func_start sub_80BCCA4
-sub_80BCCA4: @ 80BCCA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BCCDC @ =gSaveBlock1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r1
- ldr r1, _080BCCE0 @ =0x00001a11
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r1, 0x5
- bl __umodsi3
- ldr r1, _080BCCE4 @ =0x00001a09
- adds r4, r1
- ldrb r2, [r4]
- lsls r2, 27
- lsrs r2, 31
- lsls r1, r2, 2
- adds r1, r2
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BCCDC: .4byte gSaveBlock1
-_080BCCE0: .4byte 0x00001a11
-_080BCCE4: .4byte 0x00001a09
- thumb_func_end sub_80BCCA4
-
- thumb_func_start sub_80BCCE8
-sub_80BCCE8: @ 80BCCE8
- push {lr}
- ldr r0, _080BCD08 @ =0x00004054
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- bne _080BCD10
- ldr r0, _080BCD0C @ =UnknownString_81A1BB2
- b _080BCD72
- .align 2, 0
-_080BCD08: .4byte 0x00004054
-_080BCD0C: .4byte UnknownString_81A1BB2
-_080BCD10:
- cmp r0, 0x1
- bne _080BCD1C
- ldr r0, _080BCD18 @ =UnknownString_81A1F67
- b _080BCD72
- .align 2, 0
-_080BCD18: .4byte UnknownString_81A1F67
-_080BCD1C:
- cmp r0, 0x2
- bne _080BCD28
- ldr r0, _080BCD24 @ =UnknownString_81A2254
- b _080BCD72
- .align 2, 0
-_080BCD24: .4byte UnknownString_81A2254
-_080BCD28:
- cmp r0, 0x3
- bne _080BCD34
- ldr r0, _080BCD30 @ =UnknownString_81A25C3
- b _080BCD72
- .align 2, 0
-_080BCD30: .4byte UnknownString_81A25C3
-_080BCD34:
- cmp r0, 0x4
- bne _080BCD40
- ldr r0, _080BCD3C @ =UnknownString_81A2925
- b _080BCD72
- .align 2, 0
-_080BCD3C: .4byte UnknownString_81A2925
-_080BCD40:
- cmp r0, 0x5
- bne _080BCD4C
- ldr r0, _080BCD48 @ =UnknownString_81A1D74
- b _080BCD72
- .align 2, 0
-_080BCD48: .4byte UnknownString_81A1D74
-_080BCD4C:
- cmp r0, 0x6
- bne _080BCD58
- ldr r0, _080BCD54 @ =UnknownString_81A20C9
- b _080BCD72
- .align 2, 0
-_080BCD54: .4byte UnknownString_81A20C9
-_080BCD58:
- cmp r0, 0x7
- bne _080BCD64
- ldr r0, _080BCD60 @ =UnknownString_81A2439
- b _080BCD72
- .align 2, 0
-_080BCD60: .4byte UnknownString_81A2439
-_080BCD64:
- cmp r1, 0x8
- beq _080BCD70
- ldr r0, _080BCD6C @ =UnknownString_81A2B2A
- b _080BCD72
- .align 2, 0
-_080BCD6C: .4byte UnknownString_81A2B2A
-_080BCD70:
- ldr r0, _080BCD78 @ =UnknownString_81A2754
-_080BCD72:
- pop {r1}
- bx r1
- .align 2, 0
-_080BCD78: .4byte UnknownString_81A2754
- thumb_func_end sub_80BCCE8
-
- thumb_func_start unref_sub_80BCD7C
-unref_sub_80BCD7C: @ 80BCD7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r7, _080BCDFC @ =gSaveBlock1
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 5
- ldr r0, _080BCE00 @ =0x00001a3c
- adds r0, r7
- mov r10, r0
- ldr r1, _080BCE04 @ =0x00001a54
- adds r1, r7
- mov r9, r1
- ldr r2, _080BCE08 @ =0x00001a84
- adds r2, r7
- mov r8, r2
- ldr r0, _080BCE0C @ =0x00000115
- mov r12, r0
-_080BCDAA:
- lsls r4, r5, 2
- adds r0, r4, r6
- add r0, r10
- adds r3, r5, 0x1
- str r3, [r0]
- lsls r0, r5, 3
- adds r0, r6
- add r0, r9
- strh r3, [r0]
- lsls r1, r5, 1
- adds r1, r6
- mov r2, r8
- adds r0, r1, r2
- mov r2, r12
- strh r2, [r0]
- ldr r2, _080BCE10 @ =0x00001a90
- adds r0, r7, r2
- adds r1, r0
- strh r3, [r1]
- adds r2, r5, r6
- ldr r1, _080BCE14 @ =0x00001a9c
- adds r0, r7, r1
- adds r0, r2, r0
- adds r1, r5, 0x5
- strb r1, [r0]
- ldr r1, _080BCE18 @ =0x00001aa2
- adds r0, r7, r1
- adds r2, r0
- adds r4, r5
- strb r4, [r2]
- lsls r3, 16
- lsrs r5, r3, 16
- cmp r5, 0
- beq _080BCDAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCDFC: .4byte gSaveBlock1
-_080BCE00: .4byte 0x00001a3c
-_080BCE04: .4byte 0x00001a54
-_080BCE08: .4byte 0x00001a84
-_080BCE0C: .4byte 0x00000115
-_080BCE10: .4byte 0x00001a90
-_080BCE14: .4byte 0x00001a9c
-_080BCE18: .4byte 0x00001aa2
- thumb_func_end unref_sub_80BCD7C
-
- thumb_func_start sub_80BCE1C
-sub_80BCE1C: @ 80BCE1C
- push {r4,lr}
- ldr r0, _080BCE44 @ =0x00004054
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- bl sub_810FB10
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08
- adds r0, r1
- bl CreateSecretBaseEnemyParty
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE44: .4byte 0x00004054
-_080BCE48: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BCE1C
-
- thumb_func_start sub_80BCE4C
-sub_80BCE4C: @ 80BCE4C
- push {lr}
- ldr r0, _080BCE80 @ =0x00004054
- bl VarGet
- ldr r2, _080BCE84 @ =gSaveBlock1
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 5
- adds r1, r2
- ldr r0, _080BCE88 @ =gScriptResult
- ldrb r0, [r0]
- ldr r2, _080BCE8C @ =0x00001a09
- adds r1, r2
- movs r2, 0x1
- ands r2, r0
- lsls r2, 5
- ldrb r3, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BCE80: .4byte 0x00004054
-_080BCE84: .4byte gSaveBlock1
-_080BCE88: .4byte gScriptResult
-_080BCE8C: .4byte 0x00001a09
- thumb_func_end sub_80BCE4C
-
- thumb_func_start sub_80BCE90
-sub_80BCE90: @ 80BCE90
- push {r4-r7,lr}
- ldr r0, _080BCF04 @ =0x00004054
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080BCF08 @ =0x000008c2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BCED4
- movs r3, 0
- ldr r7, _080BCF0C @ =gSaveBlock1
- ldr r4, _080BCF10 @ =0x00001a09
- movs r6, 0x21
- negs r6, r6
-_080BCEB2:
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 5
- adds r1, r7
- adds r1, r4
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x13
- bls _080BCEB2
- ldr r0, _080BCF08 @ =0x000008c2
- bl FlagSet
-_080BCED4:
- ldr r4, _080BCF14 @ =gUnknown_0202E8CC
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80BCCA4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r2, _080BCF18 @ =gScriptResult
- ldr r1, _080BCF0C @ =gSaveBlock1
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r0, r1
- ldr r1, _080BCF10 @ =0x00001a09
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 31
- strh r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BCF04: .4byte 0x00004054
-_080BCF08: .4byte 0x000008c2
-_080BCF0C: .4byte gSaveBlock1
-_080BCF10: .4byte 0x00001a09
-_080BCF14: .4byte gUnknown_0202E8CC
-_080BCF18: .4byte gScriptResult
- thumb_func_end sub_80BCE90
-
- thumb_func_start sub_80BCF1C
-sub_80BCF1C: @ 80BCF1C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080BCF40 @ =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080BCF54
- cmp r0, 0x1
- bgt _080BCF44
- cmp r0, 0
- beq _080BCF4A
- b _080BD02C
- .align 2, 0
-_080BCF40: .4byte gTasks + 0x8
-_080BCF44:
- cmp r0, 0x2
- beq _080BD01C
- b _080BD02C
-_080BCF4A:
- adds r0, r4, 0x4
- adds r1, r4, 0x6
- bl PlayerGetDestCoords
- b _080BD028
-_080BCF54:
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080BCF7C
- movs r0, 0
- ldrsh r1, [r5, r0]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _080BD02C
-_080BCF7C:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFA8
- bl sub_80C6C90
- b _080BD02C
-_080BCFA8:
- adds r0, r4, 0
- bl sub_8057314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFD8
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- mov r1, sp
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- bl sub_80C68A4
- b _080BD02C
-_080BCFD8:
- adds r0, r4, 0
- bl sub_8057328
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BCFF6
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl sub_80C6A54
- b _080BD02C
-_080BCFF6:
- adds r0, r4, 0
- bl sub_805733C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD02C
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- bl sub_80C6C30
- b _080BD02C
-_080BD01C:
- ldrb r0, [r4, 0x8]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080BD02C
-_080BD028:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080BD02C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BCF1C
-
- thumb_func_start sub_80BD034
-sub_80BD034: @ 80BD034
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BD064 @ =gSaveBlock1
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 5
- adds r4, r2
- ldr r2, _080BD068 @ =0x00001a08
- adds r0, r4, r2
- movs r2, 0xA0
- bl memcpy
- ldr r0, _080BD06C @ =0x00001a09
- adds r4, r0
- ldrb r1, [r4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD064: .4byte gSaveBlock1
-_080BD068: .4byte 0x00001a08
-_080BD06C: .4byte 0x00001a09
- thumb_func_end sub_80BD034
-
- thumb_func_start sub_80BD070
-sub_80BD070: @ 80BD070
- push {r4,lr}
- movs r2, 0
- adds r4, r0, 0
- adds r4, 0x9
- adds r3, r1, 0
- adds r3, 0x9
-_080BD07C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD08C
- movs r0, 0
- b _080BD098
-_080BD08C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD07C
- movs r0, 0x1
-_080BD098:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD070
-
- thumb_func_start sub_80BD0A0
-sub_80BD0A0: @ 80BD0A0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r3, 0
- ldrb r0, [r6, 0x2]
- cmp r0, 0xFF
- bne _080BD0B4
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- beq _080BD0E2
-_080BD0B4:
- adds r2, r6, 0x2
- adds r0, r2, r3
- adds r4, r5, 0x2
- adds r1, r4, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080BD0C8
- movs r0, 0
- b _080BD0E4
-_080BD0C8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x6
- bhi _080BD0E2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD0B4
-_080BD0E2:
- movs r0, 0x1
-_080BD0E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0A0
-
- thumb_func_start sub_80BD0EC
-sub_80BD0EC: @ 80BD0EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r2, [r4, 0x1]
- movs r0, 0x10
- adds r1, r0, 0
- ands r1, r2
- ldrb r2, [r5, 0x1]
- ands r0, r2
- cmp r1, r0
- bne _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD070
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD0A0
- lsls r0, 24
- cmp r0, 0
- beq _080BD122
- movs r0, 0x1
- b _080BD124
-_080BD122:
- movs r0, 0
-_080BD124:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD0EC
-
- thumb_func_start sub_80BD12C
-sub_80BD12C: @ 80BD12C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r4, _080BD150 @ =gSaveBlock1
- ldr r3, _080BD154 @ =0x00001a08
-_080BD138:
- lsls r0, r1, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BD158
- adds r0, r1, 0
- b _080BD168
- .align 2, 0
-_080BD150: .4byte gSaveBlock1
-_080BD154: .4byte 0x00001a08
-_080BD158:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD138
- movs r0, 0x1
- negs r0, r0
-_080BD168:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD12C
-
- thumb_func_start sub_80BD170
-sub_80BD170: @ 80BD170
- push {r4,lr}
- movs r2, 0x1
- ldr r4, _080BD194 @ =gSaveBlock1
- ldr r3, _080BD198 @ =0x00001a08
-_080BD178:
- lsls r0, r2, 16
- asrs r1, r0, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD19C
- lsls r0, r2, 24
- lsrs r0, 24
- b _080BD1AA
- .align 2, 0
-_080BD194: .4byte gSaveBlock1
-_080BD198: .4byte 0x00001a08
-_080BD19C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD178
- movs r0, 0
-_080BD1AA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD170
-
- thumb_func_start sub_80BD1B0
-sub_80BD1B0: @ 80BD1B0
- push {r4,lr}
- movs r3, 0x1
- ldr r4, _080BD1DC @ =gSaveBlock1
-_080BD1B6:
- lsls r2, r3, 16
- asrs r1, r2, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 5
- adds r0, r4
- ldr r1, _080BD1E0 @ =0x00001a09
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 6
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r1, 28
- cmp r0, 0
- bne _080BD1E4
- lsls r0, r3, 24
- lsrs r0, 24
- b _080BD1F4
- .align 2, 0
-_080BD1DC: .4byte gSaveBlock1
-_080BD1E0: .4byte 0x00001a09
-_080BD1E4:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r2, r1
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080BD1B6
- movs r0, 0
-_080BD1F4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1B0
-
- thumb_func_start sub_80BD1FC
-sub_80BD1FC: @ 80BD1FC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD278
- ldrb r0, [r5]
- bl sub_80BD12C
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- beq _080BD278
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _080BD254
- ldr r0, _080BD24C @ =gSaveBlock1
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 5
- adds r1, r0
- ldr r0, _080BD250 @ =0x00001a09
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- beq _080BD278
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD246
- ldrb r1, [r5, 0x1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _080BD278
-_080BD246:
- lsls r4, 24
- lsrs r4, 24
- b _080BD26C
- .align 2, 0
-_080BD24C: .4byte gSaveBlock1
-_080BD250: .4byte 0x00001a09
-_080BD254:
- bl sub_80BD170
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BD26C
- bl sub_80BD1B0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080BD278
-_080BD26C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80BD034
- adds r0, r4, 0
- b _080BD27A
-_080BD278:
- movs r0, 0
-_080BD27A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD1FC
-
- thumb_func_start sub_80BD280
-sub_80BD280: @ 80BD280
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xA0
- ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08
- mov r8, r0
- movs r2, 0x1
-_080BD290:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r9, r1
- cmp r5, 0x13
- bhi _080BD30C
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 5
- mov r1, r8
- adds r6, r0, r1
- movs r7, 0xC0
-_080BD2A8:
- ldrb r0, [r6, 0x1]
- adds r3, r7, 0
- ands r3, r0
- cmp r3, 0
- bne _080BD2C6
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x40
- beq _080BD2DE
-_080BD2C6:
- cmp r3, 0x80
- bne _080BD302
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 5
- add r0, r8
- ldrb r1, [r0, 0x1]
- adds r0, r7, 0
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0x80
- beq _080BD302
-_080BD2DE:
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0xA0
- bl memcpy
- adds r4, r5
- lsls r4, 5
- add r4, r8
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0xA0
- bl memcpy
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0xA0
- bl memcpy
-_080BD302:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD2A8
-_080BD30C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _080BD290
- add sp, 0xA0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD324: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD280
-
- thumb_func_start sub_80BD328
-sub_80BD328: @ 80BD328
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0x1
-_080BD332:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 5
- adds r1, r0, r6
- ldrb r0, [r1, 0x1]
- lsrs r0, 6
- cmp r0, r5
- bne _080BD348
- adds r0, r1, 0
- bl sub_80BD1FC
-_080BD348:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _080BD332
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD328
-
- thumb_func_start sub_80BD358
-sub_80BD358: @ 80BD358
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080BD372
- ldrb r0, [r5, 0x1]
- lsls r0, 27
- ldr r1, _080BD378 @ =gSaveBlock2
- lsrs r0, 31
- adds r4, r1, 0
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- beq _080BD37C
-_080BD372:
- movs r0, 0
- b _080BD3D4
- .align 2, 0
-_080BD378: .4byte gSaveBlock2
-_080BD37C:
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x9
- adds r6, r4, 0
- adds r6, 0xA
-_080BD386:
- adds r0, r3, r2
- adds r1, r2, r6
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080BD386
- movs r2, 0
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- bne _080BD3AA
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080BD3D2
-_080BD3AA:
- adds r3, r5, 0x2
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BD372
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bhi _080BD3D2
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BD3AA
-_080BD3D2:
- movs r0, 0x1
-_080BD3D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD358
-
- thumb_func_start sub_80BD3DC
-sub_80BD3DC: @ 80BD3DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r9, r1
- mov r8, r2
- movs r5, 0
- movs r6, 0
-_080BD3F0:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- bne _080BD41A
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r10
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD41A
- adds r0, r4, 0
- bl sub_80BB4AC
- movs r0, 0x1
- orrs r5, r0
-_080BD41A:
- movs r7, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _080BD448
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD448
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD448:
- movs r7, 0x4
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- bne _080BD476
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80BD358
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD476
- adds r0, r4, 0
- bl sub_80BB4AC
- orrs r5, r7
- lsls r0, r5, 24
- lsrs r5, r0, 24
-_080BD476:
- cmp r5, 0x7
- beq _080BD484
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x13
- bls _080BD3F0
-_080BD484:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD3DC
-
- thumb_func_start sub_80BD494
-sub_80BD494: @ 80BD494
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- movs r5, 0
-_080BD4A4:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r8
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD4FE
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80BD0EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BD4FE
- cmp r7, 0
- bne _080BD4D0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4D0:
- ldrh r0, [r6, 0xE]
- ldrh r3, [r4, 0xE]
- cmp r0, r3
- bls _080BD4E0
- adds r0, r4, 0
- bl sub_80BB4AC
- b _080BD508
-_080BD4E0:
- ldrb r0, [r6, 0x1]
- lsls r0, 28
- lsrs r0, 28
- ldrb r1, [r4, 0x1]
- movs r3, 0x10
- negs r3, r3
- adds r2, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x1]
- adds r0, r6, 0
- bl sub_80BB4AC
- movs r0, 0x1
- b _080BD50A
-_080BD4FE:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD4A4
-_080BD508:
- movs r0, 0
-_080BD50A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BD494
-
- thumb_func_start sub_80BD514
-sub_80BD514: @ 80BD514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- adds r7, r1, 0
- mov r8, r2
- adds r6, r3, 0
- movs r5, 0x1
-_080BD526:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- mov r1, r9
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD578
- ldrb r1, [r4, 0x1]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0x40
- bne _080BD54E
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
-_080BD54E:
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD578
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD578:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD526
- movs r5, 0
-_080BD584:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 5
- adds r4, r0, r7
- ldrb r0, [r4]
- cmp r0, 0
- beq _080BD5B8
- ldrb r0, [r4, 0x1]
- movs r2, 0x21
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- mov r1, r8
- adds r2, r5, 0
- bl sub_80BD494
- lsls r0, 24
- cmp r0, 0
- bne _080BD5B8
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5B8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD584
- movs r5, 0
- movs r0, 0x21
- negs r0, r0
- adds r7, r0, 0
-_080BD5CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 5
- mov r2, r8
- adds r1, r4, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5EA
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
- adds r0, r1, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80BD494
-_080BD5EA:
- adds r1, r4, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080BD5F8
- ldrb r0, [r1, 0x1]
- ands r0, r7
- strb r0, [r1, 0x1]
-_080BD5F8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x13
- bls _080BD5CA
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BD514
-
- thumb_func_start sub_80BD610
-sub_80BD610: @ 80BD610
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl sub_80BD3DC
- ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_80BD514
- adds r0, r4, 0
- bl sub_80BD1FC
- adds r0, r5, 0
- bl sub_80BD1FC
- adds r0, r6, 0
- bl sub_80BD1FC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80BD328
- adds r0, r4, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r5, 0
- movs r1, 0
- bl sub_80BD328
- adds r0, r6, 0
- movs r1, 0
- bl sub_80BD328
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD670: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BD610
-
- thumb_func_start sub_80BD674
-sub_80BD674: @ 80BD674
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x60
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080BD68C
- b _080BD790
-_080BD68C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080BD69E
- cmp r0, 0x3
- beq _080BD6BA
- b _080BD6C8
-_080BD69E:
- lsls r4, r5, 1
- adds r0, r6, r4
- movs r1, 0
- adds r2, r5, 0
- bl memset
- adds r4, r5
- adds r4, r6, r4
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- b _080BD6C8
-_080BD6BA:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- movs r1, 0
- adds r2, r5, 0
- bl memset
-_080BD6C8:
- cmp r7, 0x1
- beq _080BD6F0
- cmp r7, 0x1
- bgt _080BD6D6
- cmp r7, 0
- beq _080BD6E0
- b _080BD71C
-_080BD6D6:
- cmp r7, 0x2
- beq _080BD700
- cmp r7, 0x3
- beq _080BD710
- b _080BD71C
-_080BD6E0:
- adds r0, r6, r5
- lsls r2, r5, 1
- adds r1, r6, r2
- adds r2, r5
- adds r2, r6, r2
- bl sub_80BD610
- b _080BD71C
-_080BD6F0:
- lsls r1, r5, 1
- adds r0, r6, r1
- adds r1, r5
- adds r1, r6, r1
- adds r2, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD700:
- lsls r0, r5, 1
- adds r0, r5
- adds r0, r6, r0
- adds r2, r6, r5
- adds r1, r6, 0
- bl sub_80BD610
- b _080BD71C
-_080BD710:
- adds r1, r6, r5
- lsls r2, r5, 1
- adds r2, r6, r2
- adds r0, r6, 0
- bl sub_80BD610
-_080BD71C:
- movs r3, 0x1
- ldr r6, _080BD798 @ =gSaveBlock1
- movs r5, 0x10
- negs r5, r5
- ldr r4, _080BD79C @ =0x00001a09
-_080BD726:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r6
- adds r2, r0, r4
- ldrb r1, [r2]
- lsls r0, r1, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080BD746
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- ands r0, r5
- strb r0, [r2]
-_080BD746:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD726
- bl sub_80BD280
- movs r3, 0x1
- ldr r4, _080BD798 @ =gSaveBlock1
- ldr r6, _080BD79C @ =0x00001a09
- adds r7, r4, 0
- movs r5, 0x3F
-_080BD75E:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 5
- adds r0, r4
- adds r2, r0, r6
- ldrb r1, [r2]
- lsrs r0, r1, 6
- cmp r0, 0x2
- bne _080BD776
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2]
-_080BD776:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _080BD75E
- ldr r0, _080BD7A0 @ =0x00001a16
- adds r2, r7, r0
- ldrh r1, [r2]
- ldr r0, _080BD7A4 @ =0x0000ffff
- cmp r1, r0
- beq _080BD790
- adds r0, r1, 0x1
- strh r0, [r2]
-_080BD790:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD798: .4byte gSaveBlock1
-_080BD79C: .4byte 0x00001a09
-_080BD7A0: .4byte 0x00001a16
-_080BD7A4: .4byte 0x0000ffff
- thumb_func_end sub_80BD674
-
- thumb_func_start sub_80BD7A8
-sub_80BD7A8: @ 80BD7A8
- push {r4-r7,lr}
- movs r3, 0
- ldr r6, _080BD7F0 @ =gSaveBlock1
- movs r4, 0
- ldr r0, _080BD7F4 @ =0x0000273a
- adds r5, r6, r0
-_080BD7B4:
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r1, r2, r6
- ldr r7, _080BD7F8 @ =0x00002738
- adds r0, r1, r7
- strb r4, [r0]
- ldr r0, _080BD7FC @ =0x00002739
- adds r1, r0
- strb r4, [r1]
- movs r1, 0
- adds r3, 0x1
-_080BD7CC:
- adds r0, r1, r2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BD7CC
- lsls r0, r3, 24
- lsrs r3, r0, 24
- cmp r3, 0x18
- bls _080BD7B4
- bl sub_80BEBF4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD7F0: .4byte gSaveBlock1
-_080BD7F4: .4byte 0x0000273a
-_080BD7F8: .4byte 0x00002738
-_080BD7FC: .4byte 0x00002739
- thumb_func_end sub_80BD7A8
-
- thumb_func_start special_0x44
-special_0x44: @ 80BD800
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0x5
- ldr r1, _080BD874 @ =gSaveBlock1
- ldr r2, _080BD878 @ =0x000027ec
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BD834
- adds r2, r1, 0
- ldr r1, _080BD87C @ =0x00002738
-_080BD81A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bhi _080BD834
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BD81A
-_080BD834:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- ldr r7, _080BD874 @ =gSaveBlock1
- ldr r0, _080BD87C @ =0x00002738
- adds r0, r7
- mov r9, r0
-_080BD850:
- lsls r0, r4, 3
- adds r0, r4
- lsls r6, r0, 2
- adds r5, r6, r7
- ldr r1, _080BD87C @ =0x00002738
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _080BD884
- ldr r2, _080BD880 @ =0x00002739
- adds r0, r5, r2
- ldrb r0, [r0]
- b _080BD890
- .align 2, 0
-_080BD874: .4byte gSaveBlock1
-_080BD878: .4byte 0x000027ec
-_080BD87C: .4byte 0x00002738
-_080BD880: .4byte 0x00002739
-_080BD884:
- mov r0, r9
- adds r1, r6, r0
- ldrh r0, [r1, 0x16]
- cmp r0, 0
- bne _080BD898
- ldrb r0, [r1, 0x1]
-_080BD890:
- cmp r0, 0x1
- bne _080BD898
- adds r0, r4, 0
- b _080BD8AC
-_080BD898:
- cmp r4, 0
- bne _080BD8A0
- movs r4, 0x17
- b _080BD8A6
-_080BD8A0:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080BD8A6:
- cmp r4, r8
- bne _080BD850
- movs r0, 0xFF
-_080BD8AC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end special_0x44
-
- thumb_func_start sub_80BD8B8
-sub_80BD8B8: @ 80BD8B8
- push {lr}
- bl special_0x44
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BD8CA
- movs r0, 0xFF
- b _080BD902
-_080BD8CA:
- ldr r2, _080BD8F4 @ =gSaveBlock1
- ldr r3, _080BD8F8 @ =0x00002afc
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BD900
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r2, _080BD8FC @ =0x00002738
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BD900
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BD902
- .align 2, 0
-_080BD8F4: .4byte gSaveBlock1
-_080BD8F8: .4byte 0x00002afc
-_080BD8FC: .4byte 0x00002738
-_080BD900:
- adds r0, r1, 0
-_080BD902:
- pop {r1}
- bx r1
- thumb_func_end sub_80BD8B8
-
- thumb_func_start UpdateTVScreensOnMap
-UpdateTVScreensOnMap: @ 80BD908
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, _080BD938 @ =0x00000831
- bl FlagSet
- bl CheckForBigMovieOrEmergencyNewsOnTV
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BD92C
- cmp r0, 0x2
- beq _080BD97E
- ldr r0, _080BD93C @ =gSaveBlock1
- ldrh r0, [r0, 0x4]
- cmp r0, 0xD
- bne _080BD940
-_080BD92C:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
- b _080BD97E
- .align 2, 0
-_080BD938: .4byte 0x00000831
-_080BD93C: .4byte gSaveBlock1
-_080BD940:
- ldr r0, _080BD984 @ =0x00000832
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
- bl sub_80BD8B8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl sub_80BECA0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080BD96E
- bl IsTVShowInSearchOfTrainersAiring
- lsls r0, 24
- cmp r0, 0
- beq _080BD97E
-_080BD96E:
- ldr r0, _080BD988 @ =0x00000831
- bl FlagReset
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl SetTVMetatilesOnMap
-_080BD97E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BD984: .4byte 0x00000832
-_080BD988: .4byte 0x00000831
- thumb_func_end UpdateTVScreensOnMap
-
- thumb_func_start SetTVMetatilesOnMap
-SetTVMetatilesOnMap: @ 80BD98C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- movs r5, 0
- cmp r5, r10
- bge _080BD9E0
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- mov r8, r2
- mov r1, r8
- orrs r1, r0
- mov r8, r1
-_080BD9B2:
- movs r4, 0
- adds r7, r5, 0x1
- cmp r4, r9
- bge _080BD9DA
- mov r0, r8
- lsls r6, r0, 16
-_080BD9BE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- cmp r0, 0x86
- bne _080BD9D4
- adds r0, r4, 0
- adds r1, r5, 0
- lsrs r2, r6, 16
- bl MapGridSetMetatileIdAt
-_080BD9D4:
- adds r4, 0x1
- cmp r4, r9
- blt _080BD9BE
-_080BD9DA:
- adds r5, r7, 0
- cmp r5, r10
- blt _080BD9B2
-_080BD9E0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetTVMetatilesOnMap
-
- thumb_func_start TurnOffTVScreen
-TurnOffTVScreen: @ 80BD9F0
- push {lr}
- ldr r1, _080BDA08 @ =gUnknown_03004870
- ldr r0, [r1]
- ldr r1, [r1, 0x4]
- movs r2, 0x2
- bl SetTVMetatilesOnMap
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_080BDA08: .4byte gUnknown_03004870
- thumb_func_end TurnOffTVScreen
-
- thumb_func_start sub_80BDA0C
-sub_80BDA0C: @ 80BDA0C
- ldr r2, _080BDA24 @ =gSaveBlock1
- ldr r0, _080BDA28 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BDA2C @ =0x00002738
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080BDA24: .4byte gSaveBlock1
-_080BDA28: .4byte gUnknown_0202E8CC
-_080BDA2C: .4byte 0x00002738
- thumb_func_end sub_80BDA0C
-
- thumb_func_start sub_80BDA30
-sub_80BDA30: @ 80BDA30
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BDA5C @ =gSaveBlock1
-_080BDA36:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldr r4, _080BDA60 @ =0x00002738
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDA64
- cmp r0, 0x29
- beq _080BDA64
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BDA64
- adds r0, r2, 0
- b _080BDA70
- .align 2, 0
-_080BDA5C: .4byte gSaveBlock1
-_080BDA60: .4byte 0x00002738
-_080BDA64:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BDA36
- movs r0, 0xFF
-_080BDA70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BDA30
-
- thumb_func_start special_0x4a
-special_0x4a: @ 80BDA78
- push {lr}
- ldr r2, _080BDAA4 @ =gUnknown_0202E8CC
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BDAAC
- movs r3, 0xF1
- lsls r3, 2
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080BDAAC
- bl sub_80BDA30
- lsls r0, 24
- lsrs r0, 24
- b _080BDAAE
- .align 2, 0
-_080BDAA4: .4byte gUnknown_0202E8CC
-_080BDAA8: .4byte gSaveBlock1 + 0x2738
-_080BDAAC:
- ldrb r0, [r2]
-_080BDAAE:
- pop {r1}
- bx r1
- thumb_func_end special_0x4a
-
- thumb_func_start sub_80BDAB4
-sub_80BDAB4: @ 80BDAB4
- push {r4,lr}
- ldr r2, _080BDAF8 @ =gSaveBlock1
- ldr r1, _080BDAFC @ =0x00002b10
- adds r0, r2, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080BDB00 @ =0x00002b12
- adds r0, r2, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB04 @ =0x00002b16
- adds r1, r2, r0
- ldr r0, _080BDB08 @ =0x0000ffff
- strh r0, [r1]
- adds r4, 0x6
- adds r1, r2, r4
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080BDB0C @ =0x00002b1b
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BDB10 @ =0x00002b18
- adds r0, r2, r1
- strb r3, [r0]
- subs r4, 0x1
- adds r2, r4
- strb r3, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDAF8: .4byte gSaveBlock1
-_080BDAFC: .4byte 0x00002b10
-_080BDB00: .4byte 0x00002b12
-_080BDB04: .4byte 0x00002b16
-_080BDB08: .4byte 0x0000ffff
-_080BDB0C: .4byte 0x00002b1b
-_080BDB10: .4byte 0x00002b18
- thumb_func_end sub_80BDAB4
-
- thumb_func_start GabbyAndTyBeforeInterview
-GabbyAndTyBeforeInterview: @ 80BDB14
- push {r4,r5,lr}
- ldr r2, _080BDB68 @ =gSaveBlock1
- ldr r3, _080BDB6C @ =gUnknown_030042E0
- ldrh r1, [r3, 0x6]
- ldr r4, _080BDB70 @ =0x00002b10
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x26]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldrh r1, [r3, 0x22]
- adds r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r0, _080BDB74 @ =0x00002b19
- adds r4, r2, r0
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _080BDB44
- adds r0, r1, 0x1
- strb r0, [r4]
-_080BDB44:
- ldrb r0, [r3, 0x5]
- lsls r0, 31
- ldr r1, _080BDB78 @ =0x00002b1a
- adds r4, r5, r1
- lsrs r0, 31
- ldrb r1, [r4]
- movs r2, 0x2
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4]
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BDB7C
- movs r0, 0x2
- orrs r2, r0
- b _080BDB82
- .align 2, 0
-_080BDB68: .4byte gSaveBlock1
-_080BDB6C: .4byte gUnknown_030042E0
-_080BDB70: .4byte 0x00002b10
-_080BDB74: .4byte 0x00002b19
-_080BDB78: .4byte 0x00002b1a
-_080BDB7C:
- movs r0, 0x3
- negs r0, r0
- ands r2, r0
-_080BDB82:
- strb r2, [r4]
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _080BDB9C
- ldr r4, _080BDB98 @ =0x00002b1a
- adds r0, r5, r4
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080BDBAA
- .align 2, 0
-_080BDB98: .4byte 0x00002b1a
-_080BDB9C:
- ldr r0, _080BDBDC @ =0x00002b1a
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080BDBAA:
- ldrb r1, [r3, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDBE0
- movs r1, 0
- adds r0, r3, 0
- adds r0, 0x36
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BDBE0
-_080BDBC0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BDBEC
- adds r0, r3, 0
- adds r0, 0x36
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BDBC0
- ldr r4, _080BDBDC @ =0x00002b1a
- adds r0, r5, r4
- b _080BDBE4
- .align 2, 0
-_080BDBDC: .4byte 0x00002b1a
-_080BDBE0:
- ldr r1, _080BDC08 @ =0x00002b1a
- adds r0, r5, r1
-_080BDBE4:
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_080BDBEC:
- bl TakeTVShowInSearchOfTrainersOffTheAir
- ldr r0, _080BDC0C @ =gSaveBlock1
- ldr r4, _080BDC10 @ =0x00002b14
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BDC02
- movs r0, 0x1
- bl FlagSet
-_080BDC02:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC08: .4byte 0x00002b1a
-_080BDC0C: .4byte gSaveBlock1
-_080BDC10: .4byte 0x00002b14
- thumb_func_end GabbyAndTyBeforeInterview
-
- thumb_func_start sub_80BDC14
-sub_80BDC14: @ 80BDC14
- push {r4-r6,lr}
- ldr r4, _080BDC70 @ =gSaveBlock1
- ldr r0, _080BDC74 @ =0x00002b1a
- adds r6, r4, r0
- ldrb r3, [r6]
- lsls r1, r3, 31
- adds r0, 0x1
- adds r5, r4, r0
- lsrs r1, 31
- ldrb r2, [r5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- movs r1, 0x2
- ands r1, r3
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x4
- ands r1, r3
- subs r2, 0x2
- ands r0, r2
- orrs r0, r1
- movs r1, 0x8
- ands r1, r3
- subs r2, 0x4
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- movs r0, 0x10
- orrs r3, r0
- strb r3, [r6]
- ldr r0, _080BDC78 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- ldr r1, _080BDC7C @ =0x00002b18
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x6
- bl sav12_xor_increment
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BDC70: .4byte gSaveBlock1
-_080BDC74: .4byte 0x00002b1a
-_080BDC78: .4byte gMapHeader
-_080BDC7C: .4byte 0x00002b18
- thumb_func_end sub_80BDC14
-
- thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
-TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
- ldr r0, _080BDC94 @ =gSaveBlock1
- ldr r1, _080BDC98 @ =0x00002b1a
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080BDC94: .4byte gSaveBlock1
-_080BDC98: .4byte 0x00002b1a
- thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
-
- thumb_func_start GabbyAndTyGetBattleNum
-GabbyAndTyGetBattleNum: @ 80BDC9C
- push {lr}
- ldr r0, _080BDCBC @ =gSaveBlock1
- ldr r2, _080BDCC0 @ =0x00002b19
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x5
- bls _080BDCB8
- ldrb r0, [r1]
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x6
- lsls r0, 24
- lsrs r0, 24
-_080BDCB8:
- pop {r1}
- bx r1
- .align 2, 0
-_080BDCBC: .4byte gSaveBlock1
-_080BDCC0: .4byte 0x00002b19
- thumb_func_end GabbyAndTyGetBattleNum
-
- thumb_func_start IsTVShowInSearchOfTrainersAiring
-IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
- ldr r0, _080BDCD4 @ =gSaveBlock1
- ldr r1, _080BDCD8 @ =0x00002b1a
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 31
- bx lr
- .align 2, 0
-_080BDCD4: .4byte gSaveBlock1
-_080BDCD8: .4byte 0x00002b1a
- thumb_func_end IsTVShowInSearchOfTrainersAiring
-
- thumb_func_start GabbyAndTyGetLastQuote
-GabbyAndTyGetLastQuote: @ 80BDCDC
- push {r4,r5,lr}
- ldr r0, _080BDD00 @ =gSaveBlock1
- ldr r1, _080BDD04 @ =0x00002b16
- adds r4, r0, r1
- ldrh r0, [r4]
- ldr r5, _080BDD08 @ =0x0000ffff
- cmp r0, r5
- beq _080BDD10
- ldr r0, _080BDD0C @ =gStringVar1
- ldrh r1, [r4]
- bl sub_80EB3FC
- ldrh r1, [r4]
- adds r0, r5, 0
- orrs r0, r1
- strh r0, [r4]
- movs r0, 0x1
- b _080BDD12
- .align 2, 0
-_080BDD00: .4byte gSaveBlock1
-_080BDD04: .4byte 0x00002b16
-_080BDD08: .4byte 0x0000ffff
-_080BDD0C: .4byte gStringVar1
-_080BDD10:
- movs r0, 0
-_080BDD12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GabbyAndTyGetLastQuote
-
- thumb_func_start sub_80BDD18
-sub_80BDD18: @ 80BDD18
- push {lr}
- ldr r0, _080BDD30 @ =gSaveBlock1
- ldr r1, _080BDD34 @ =0x00002b1b
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BDD38
- movs r0, 0x1
- b _080BDD5E
- .align 2, 0
-_080BDD30: .4byte gSaveBlock1
-_080BDD34: .4byte 0x00002b1b
-_080BDD38:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BDD44
- movs r0, 0x2
- b _080BDD5E
-_080BDD44:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080BDD50
- movs r0, 0x3
- b _080BDD5E
-_080BDD50:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080BDD5C
- movs r0, 0
- b _080BDD5E
-_080BDD5C:
- movs r0, 0x4
-_080BDD5E:
- pop {r1}
- bx r1
- thumb_func_end sub_80BDD18
-
- thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
-GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
- push {lr}
- bl GabbyAndTyGetBattleNum
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x7
- bhi _080BDE3C
- lsls r0, 2
- ldr r1, _080BDD80 @ =_080BDD84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDD80: .4byte _080BDD84
- .align 2, 0
-_080BDD84:
- .4byte _080BDDA4
- .4byte _080BDDB8
- .4byte _080BDDCC
- .4byte _080BDDE0
- .4byte _080BDDF4
- .4byte _080BDE08
- .4byte _080BDE1C
- .4byte _080BDE30
-_080BDDA4:
- ldr r1, _080BDDB0 @ =gUnknown_0202E8CC
- movs r0, 0xE
- strh r0, [r1]
- ldr r1, _080BDDB4 @ =gUnknown_0202E8CE
- movs r0, 0xD
- b _080BDE3A
- .align 2, 0
-_080BDDB0: .4byte gUnknown_0202E8CC
-_080BDDB4: .4byte gUnknown_0202E8CE
-_080BDDB8:
- ldr r1, _080BDDC4 @ =gUnknown_0202E8CC
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _080BDDC8 @ =gUnknown_0202E8CE
- movs r0, 0x6
- b _080BDE3A
- .align 2, 0
-_080BDDC4: .4byte gUnknown_0202E8CC
-_080BDDC8: .4byte gUnknown_0202E8CE
-_080BDDCC:
- ldr r1, _080BDDD8 @ =gUnknown_0202E8CC
- movs r0, 0x12
- strh r0, [r1]
- ldr r1, _080BDDDC @ =gUnknown_0202E8CE
- movs r0, 0x11
- b _080BDE3A
- .align 2, 0
-_080BDDD8: .4byte gUnknown_0202E8CC
-_080BDDDC: .4byte gUnknown_0202E8CE
-_080BDDE0:
- ldr r1, _080BDDEC @ =gUnknown_0202E8CC
- movs r0, 0x15
- strh r0, [r1]
- ldr r1, _080BDDF0 @ =gUnknown_0202E8CE
- movs r0, 0x16
- b _080BDE3A
- .align 2, 0
-_080BDDEC: .4byte gUnknown_0202E8CC
-_080BDDF0: .4byte gUnknown_0202E8CE
-_080BDDF4:
- ldr r1, _080BDE00 @ =gUnknown_0202E8CC
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080BDE04 @ =gUnknown_0202E8CE
- movs r0, 0x9
- b _080BDE3A
- .align 2, 0
-_080BDE00: .4byte gUnknown_0202E8CC
-_080BDE04: .4byte gUnknown_0202E8CE
-_080BDE08:
- ldr r1, _080BDE14 @ =gUnknown_0202E8CC
- movs r0, 0x13
- strh r0, [r1]
- ldr r1, _080BDE18 @ =gUnknown_0202E8CE
- movs r0, 0x14
- b _080BDE3A
- .align 2, 0
-_080BDE14: .4byte gUnknown_0202E8CC
-_080BDE18: .4byte gUnknown_0202E8CE
-_080BDE1C:
- ldr r1, _080BDE28 @ =gUnknown_0202E8CC
- movs r0, 0x17
- strh r0, [r1]
- ldr r1, _080BDE2C @ =gUnknown_0202E8CE
- movs r0, 0x18
- b _080BDE3A
- .align 2, 0
-_080BDE28: .4byte gUnknown_0202E8CC
-_080BDE2C: .4byte gUnknown_0202E8CE
-_080BDE30:
- ldr r1, _080BDE40 @ =gUnknown_0202E8CC
- movs r0, 0xA
- strh r0, [r1]
- ldr r1, _080BDE44 @ =gUnknown_0202E8CE
- movs r0, 0xB
-_080BDE3A:
- strh r0, [r1]
-_080BDE3C:
- pop {r0}
- bx r0
- .align 2, 0
-_080BDE40: .4byte gUnknown_0202E8CC
-_080BDE44: .4byte gUnknown_0202E8CE
- thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
-
- thumb_func_start sub_80BDE48
-sub_80BDE48: @ 80BDE48
- push {lr}
- ldr r0, _080BDE60 @ =gUnknown_0202E8CE
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BDEA6
- lsls r0, 2
- ldr r1, _080BDE64 @ =_080BDE68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BDE60: .4byte gUnknown_0202E8CE
-_080BDE64: .4byte _080BDE68
- .align 2, 0
-_080BDE68:
- .4byte _080BDE84
- .4byte _080BDE8A
- .4byte _080BDE90
- .4byte _080BDE96
- .4byte _080BDEA6
- .4byte _080BDE9C
- .4byte _080BDEA2
-_080BDE84:
- bl sub_80BE5FC
- b _080BDEA6
-_080BDE8A:
- bl sub_80BE65C
- b _080BDEA6
-_080BDE90:
- bl sub_80BE6A0
- b _080BDEA6
-_080BDE96:
- bl nullsub_21
- b _080BDEA6
-_080BDE9C:
- bl sub_80BE188
- b _080BDEA6
-_080BDEA2:
- bl sub_80BE320
-_080BDEA6:
- pop {r0}
- bx r0
- thumb_func_end sub_80BDE48
-
- thumb_func_start sub_80BDEAC
-sub_80BDEAC: @ 80BDEAC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2
- ldrb r0, [r1]
- cmp r0, 0xFC
- bne _080BDEC0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x15
- bne _080BDEC0
- movs r2, 0x1
-_080BDEC0:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BDEAC
-
- thumb_func_start sub_80BDEC8
-sub_80BDEC8: @ 80BDEC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- bl sub_80BEB20
- bl sub_80BE778
- ldr r5, _080BDEE8 @ =gUnknown_030042E0
- ldrh r0, [r5, 0x28]
- cmp r0, 0
- bne _080BDEEC
- bl sub_80BE074
- b _080BE012
- .align 2, 0
-_080BDEE8: .4byte gUnknown_030042E0
-_080BDEEC:
- bl sub_80BE028
- ldr r0, _080BDF98 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- beq _080BDEFE
- b _080BE012
-_080BDEFE:
- ldrh r1, [r5, 0x28]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080BDF9C @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0x2A
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080BDF16
- b _080BE012
-_080BDF16:
- ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738
- bl sub_80BF74C
- ldr r1, _080BDFA4 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE012
- movs r0, 0x15
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE012
- movs r2, 0
- adds r7, r5, 0
- adds r1, r7, 0
- adds r1, 0x36
-_080BDF42:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDF42
- cmp r4, 0
- bne _080BDF64
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BE012
-_080BDF64:
- movs r4, 0
- ldr r0, _080BDFA4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- movs r0, 0x15
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldrb r1, [r7, 0x5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BDFAC
- movs r4, 0x1
- movs r0, 0x1
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BDFA8 @ =gSaveBlock2
- mov r8, r1
- adds r6, r5, 0x4
- b _080BDFDE
- .align 2, 0
-_080BDF98: .4byte 0x0000ffff
-_080BDF9C: .4byte gSpeciesNames
-_080BDFA0: .4byte gSaveBlock1 + 0x2738
-_080BDFA4: .4byte gUnknown_03005D38
-_080BDFA8: .4byte gSaveBlock2
-_080BDFAC:
- movs r2, 0
- ldr r0, _080BE01C @ =gUnknown_02024C04
- mov r12, r0
- adds r3, r5, 0
- adds r3, 0x13
- ldr r1, _080BE020 @ =gSaveBlock2
- mov r8, r1
- adds r6, r5, 0x4
- adds r1, r7, 0
- adds r1, 0x36
-_080BDFC0:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bls _080BDFC0
- cmp r4, 0xFF
- bls _080BDFDA
- movs r4, 0xFF
-_080BDFDA:
- mov r1, r12
- ldrh r0, [r1]
-_080BDFDE:
- strb r4, [r5, 0x12]
- strb r0, [r5, 0xF]
- adds r0, r3, 0
- mov r1, r8
- bl StringCopy
- ldr r4, _080BE024 @ =gUnknown_0300430A
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCopy
- subs r4, 0x2A
- ldrh r0, [r4, 0x28]
- strh r0, [r5, 0x10]
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x2]
- adds r0, r6, 0
- bl sub_80BDEAC
- strb r0, [r5, 0x3]
- adds r0, r6, 0
- bl StripExtCtrlCodes
-_080BE012:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE01C: .4byte gUnknown_02024C04
-_080BE020: .4byte gSaveBlock2
-_080BE024: .4byte gUnknown_0300430A
- thumb_func_end sub_80BDEC8
-
- thumb_func_start sub_80BE028
-sub_80BE028: @ 80BE028
- push {r4,lr}
- ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98
- ldrb r0, [r4]
- cmp r0, 0x19
- beq _080BE048
- ldr r1, _080BE068 @ =0xfffffca0
- adds r0, r4, r1
- movs r1, 0x18
- bl sub_80BF55C
- movs r0, 0x5
- bl sub_8053108
- strh r0, [r4, 0x6]
- movs r0, 0x19
- strb r0, [r4]
-_080BE048:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- ldr r1, _080BE06C @ =gUnknown_030042E0
- ldrh r0, [r1, 0x28]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldr r0, _080BE070 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE064: .4byte gSaveBlock1 + 0x2A98
-_080BE068: .4byte 0xfffffca0
-_080BE06C: .4byte gUnknown_030042E0
-_080BE070: .4byte gMapHeader
- thumb_func_end sub_80BE028
-
- thumb_func_start sub_80BE074
-sub_80BE074: @ 80BE074
- push {r4-r7,lr}
- ldr r0, _080BE118 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- cmp r0, 0
- bne _080BE112
- movs r1, 0
- movs r5, 0
- ldr r2, _080BE11C @ =gUnknown_03004316
-_080BE088:
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bls _080BE088
- cmp r5, 0xFF
- bls _080BE0A2
- movs r5, 0xFF
-_080BE0A2:
- cmp r5, 0x2
- bls _080BE112
- ldr r7, _080BE120 @ =gUnknown_02024D26
- ldrb r0, [r7]
- cmp r0, 0x1
- bne _080BE112
- ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r4, _080BE128 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE112
- movs r0, 0x17
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE112
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r6
- movs r1, 0
- movs r0, 0x17
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BE12C @ =gUnknown_030042E0
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x20]
- strh r0, [r4, 0xE]
- strb r5, [r4, 0x10]
- ldrb r0, [r7]
- strb r0, [r4, 0x11]
- ldr r0, _080BE130 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r4, 0x12]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BE134 @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x2]
-_080BE112:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE118: .4byte 0x0000ffff
-_080BE11C: .4byte gUnknown_03004316
-_080BE120: .4byte gUnknown_02024D26
-_080BE124: .4byte gSaveBlock1 + 0x2738
-_080BE128: .4byte gUnknown_03005D38
-_080BE12C: .4byte gUnknown_030042E0
-_080BE130: .4byte gMapHeader
-_080BE134: .4byte gSaveBlock2
- thumb_func_end sub_80BE074
-
- thumb_func_start sub_80BE138
-sub_80BE138: @ 80BE138
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- strb r0, [r4, 0x1E]
- lsrs r2, r0, 8
- strb r2, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- adds r1, 0x1
- strb r2, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x23
- strb r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE138
-
- thumb_func_start sub_80BE160
-sub_80BE160: @ 80BE160
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80BFB94
- adds r1, r4, 0
- adds r1, 0x20
- strb r0, [r1]
- lsrs r1, r0, 8
- adds r2, r4, 0
- adds r2, 0x21
- strb r1, [r2]
- adds r2, 0x1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x23
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE160
-
- thumb_func_start sub_80BE188
-sub_80BE188: @ 80BE188
- push {r4-r6,lr}
- ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98
- ldrb r1, [r6]
- cmp r1, 0x6
- bne _080BE224
- ldr r0, _080BE230 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r2, _080BE234 @ =0xfffffca0
- adds r0, r6, r2
- adds r4, r0
- strb r1, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- ldrh r0, [r6, 0x2]
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- adds r0, 0x16
- ldr r1, _080BE238 @ =gSaveBlock2
- bl StringCopy
- adds r5, r4, 0
- adds r5, 0x8
- adds r1, r6, 0
- adds r1, 0x8
- adds r0, r5, 0
- bl StringCopy
- ldrb r0, [r6, 0x13]
- lsls r0, 29
- lsrs r0, 29
- ldrb r2, [r4, 0x13]
- movs r3, 0x8
- negs r3, r3
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x13]
- ldrb r2, [r6, 0x13]
- movs r0, 0x18
- ands r0, r2
- movs r2, 0x19
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r4, 0x13]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x14]
- ldrb r0, [r6, 0x13]
- movs r1, 0x60
- ands r1, r0
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x13]
- ldrb r1, [r6, 0x13]
- lsls r1, 29
- lsrs r1, 29
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x13]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE224:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE22C: .4byte gSaveBlock1 + 0x2A98
-_080BE230: .4byte gUnknown_03005D38
-_080BE234: .4byte 0xfffffca0
-_080BE238: .4byte gSaveBlock2
- thumb_func_end sub_80BE188
-
- thumb_func_start sub_80BE23C
-sub_80BE23C: @ 80BE23C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98
- bl sub_80BF484
- ldr r0, _080BE27C @ =0xfffffca0
- adds r5, r4, r0
- adds r0, r5, 0
- bl sub_80BF720
- ldr r1, _080BE280 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE270
- adds r0, r5, 0
- movs r1, 0x18
- bl sub_80BF55C
- strh r6, [r4, 0x14]
- movs r0, 0x6
- strb r0, [r4]
-_080BE270:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE278: .4byte gSaveBlock1 + 0x2A98
-_080BE27C: .4byte 0xfffffca0
-_080BE280: .4byte gUnknown_03005D38
- thumb_func_end sub_80BE23C
-
- thumb_func_start sub_80BE284
-sub_80BE284: @ 80BE284
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98
- ldr r1, _080BE308 @ =0xfffffca0
- adds r0, r7, r1
- bl sub_80BF720
- ldr r1, _080BE30C @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE2FE
- movs r3, 0x3
- adds r1, r4, 0
- ands r1, r3
- lsls r1, 5
- ldrb r2, [r7, 0x13]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE310 @ =gUnknown_0203869C
- ldrb r2, [r1]
- movs r1, 0x7
- ands r1, r2
- movs r2, 0x8
- negs r2, r2
- ands r0, r2
- orrs r0, r1
- ldr r1, _080BE314 @ =gUnknown_0203869E
- ldrb r1, [r1]
- ands r3, r1
- lsls r3, 3
- movs r1, 0x19
- negs r1, r1
- ands r0, r1
- orrs r0, r3
- strb r0, [r7, 0x13]
- ldr r6, _080BE318 @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BE31C @ =gPlayerParty
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- adds r2, r7, 0
- adds r2, 0x8
- movs r1, 0x2
- bl GetMonData
-_080BE2FE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE304: .4byte gSaveBlock1 + 0x2A98
-_080BE308: .4byte 0xfffffca0
-_080BE30C: .4byte gUnknown_03005D38
-_080BE310: .4byte gUnknown_0203869C
-_080BE314: .4byte gUnknown_0203869E
-_080BE318: .4byte gUnknown_02038694
-_080BE31C: .4byte gPlayerParty
- thumb_func_end sub_80BE284
-
- thumb_func_start sub_80BE320
-sub_80BE320: @ 80BE320
- push {r4-r6,lr}
- ldr r0, _080BE384 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738
- adds r6, r0, r1
- movs r0, 0x7
- strb r0, [r6]
- movs r0, 0x1
- strb r0, [r6, 0x1]
- adds r0, r6, 0x2
- ldr r4, _080BE38C @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCopy
- adds r0, r6, 0
- adds r0, 0xC
- ldr r2, _080BE390 @ =0x00000484
- adds r1, r4, r2
- bl StringCopy
- movs r1, 0x90
- lsls r1, 3
- adds r0, r4, r1
- ldrh r0, [r0]
- strh r0, [r6, 0xA]
- ldr r2, _080BE394 @ =0x00000482
- adds r0, r4, r2
- ldrh r0, [r0]
- strh r0, [r6, 0x14]
- movs r0, 0xAF
- lsls r0, 3
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_8135D3C
- strh r0, [r6, 0x16]
- ldr r1, _080BE398 @ =0x00000555
- adds r4, r1
- ldrb r0, [r4]
- strb r0, [r6, 0x1C]
- ldrb r0, [r5]
- cmp r0, 0
- bne _080BE39C
- movs r0, 0x32
- b _080BE39E
- .align 2, 0
-_080BE384: .4byte gUnknown_03005D38
-_080BE388: .4byte gSaveBlock1 + 0x2738
-_080BE38C: .4byte gSaveBlock2
-_080BE390: .4byte 0x00000484
-_080BE394: .4byte 0x00000482
-_080BE398: .4byte 0x00000555
-_080BE39C:
- movs r0, 0x64
-_080BE39E:
- strb r0, [r6, 0x1A]
- ldr r0, _080BE3B8 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- strb r0, [r6, 0x1B]
- adds r0, r6, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r6, 0x1D]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE3B8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80BE320
-
- thumb_func_start sub_80BE3BC
-sub_80BE3BC: @ 80BE3BC
- push {r4-r7,lr}
- ldr r0, _080BE460 @ =0x00005555
- bl sub_80BF77C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080BE458
- ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF74C
- ldr r5, _080BE468 @ =gUnknown_03005D38
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE458
- movs r0, 0x16
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BE458
- bl sub_80BF20C
- ldr r2, _080BE46C @ =gUnknown_02038724
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bls _080BE458
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r6
- movs r0, 0x16
- strb r0, [r5]
- strb r4, [r5, 0x1]
- ldr r0, _080BE470 @ =gMapHeader
- ldrb r0, [r0, 0x14]
- strb r0, [r5, 0x12]
- movs r4, 0
- adds r7, r5, 0x6
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0xC
-_080BE420:
- lsls r2, r4, 1
- adds r3, r7, r2
- lsls r1, r4, 2
- add r1, r12
- ldrh r0, [r1]
- strh r0, [r3]
- adds r2, r6, r2
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080BE420
- movs r0, 0x1
- bl GetPriceReduction
- strb r0, [r5, 0x2]
- adds r0, r5, 0
- adds r0, 0x13
- ldr r1, _080BE474 @ =gSaveBlock2
- bl StringCopy
- adds r0, r5, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r5, 0x3]
-_080BE458:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE460: .4byte 0x00005555
-_080BE464: .4byte gSaveBlock1 + 0x2738
-_080BE468: .4byte gUnknown_03005D38
-_080BE46C: .4byte gUnknown_02038724
-_080BE470: .4byte gMapHeader
-_080BE474: .4byte gSaveBlock2
- thumb_func_end sub_80BE3BC
-
- thumb_func_start sub_80BE478
-sub_80BE478: @ 80BE478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_80BF478
- ldr r0, _080BE554 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080BE548
- ldr r0, _080BE558 @ =gUnknown_0202E8CC
- mov r8, r0
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r6, _080BE55C @ =gPlayerParty
- adds r0, r6
- ldr r4, _080BE560 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r1, _080BE564 @ =gSaveBlock2
- mov r9, r1
- mov r0, r9
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080BE548
- ldr r0, _080BE568 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x5
- strb r0, [r4]
- movs r5, 0x1
- strb r5, [r4, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- strb r0, [r4, 0x1A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ands r0, r5
- strb r0, [r4, 0x1B]
- ldrh r0, [r4, 0x2]
- bl sub_80BF674
- strh r0, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0xF
- mov r1, r9
- bl StringCopy
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r7
- adds r0, r6
- adds r5, r4, 0x4
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0x1F]
- adds r0, r5, 0
- bl StripExtCtrlCodes
-_080BE548:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE554: .4byte gScriptResult
-_080BE558: .4byte gUnknown_0202E8CC
-_080BE55C: .4byte gPlayerParty
-_080BE560: .4byte gStringVar1
-_080BE564: .4byte gSaveBlock2
-_080BE568: .4byte gUnknown_03005D38
-_080BE56C: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BE478
-
- thumb_func_start StartMassOutbreak
-StartMassOutbreak: @ 80BE570
- push {r4,lr}
- ldr r0, _080BE5F0 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738
- adds r0, r2
- ldrh r3, [r0, 0xC]
- movs r4, 0xF1
- lsls r4, 2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x10]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x11]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x14]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r3, [r0, 0x2]
- adds r4, 0x1
- adds r1, r2, r4
- strb r3, [r1]
- ldrh r3, [r0, 0xE]
- adds r4, 0x1
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x4]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x6]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0x8]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrh r3, [r0, 0xA]
- adds r4, 0x2
- adds r1, r2, r4
- strh r3, [r1]
- ldrb r3, [r0, 0x3]
- adds r4, 0x2
- adds r1, r2, r4
- strb r3, [r1]
- ldrb r1, [r0, 0x13]
- ldr r3, _080BE5F8 @ =0x000003d5
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x2
- adds r2, r4
- movs r0, 0x2
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE5F0: .4byte gUnknown_0202E8CC
-_080BE5F4: .4byte gSaveBlock1 + 0x2738
-_080BE5F8: .4byte 0x000003d5
- thumb_func_end StartMassOutbreak
-
- thumb_func_start sub_80BE5FC
-sub_80BE5FC: @ 80BE5FC
- push {r4,lr}
- ldr r0, _080BE64C @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE654 @ =gSaveBlock2
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BE658 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE64C: .4byte gUnknown_03005D38
-_080BE650: .4byte gSaveBlock1 + 0x2738
-_080BE654: .4byte gSaveBlock2
-_080BE658: .4byte gPlayerParty
- thumb_func_end sub_80BE5FC
-
- thumb_func_start sub_80BE65C
-sub_80BE65C: @ 80BE65C
- push {r4-r6,lr}
- ldr r0, _080BE694 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r6, 0
- movs r5, 0x2
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, _080BE69C @ =gSaveBlock2
- bl StringCopy
- strh r6, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- strb r5, [r4, 0x18]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE694: .4byte gUnknown_03005D38
-_080BE698: .4byte gSaveBlock1 + 0x2738
-_080BE69C: .4byte gSaveBlock2
- thumb_func_end sub_80BE65C
-
- thumb_func_start sub_80BE6A0
-sub_80BE6A0: @ 80BE6A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080BE760 @ =gUnknown_03005D38
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BE768 @ =gPlayerParty
- adds r0, r6
- movs r1, 0x20
- movs r2, 0
- bl GetMonData
- lsrs r0, 4
- movs r1, 0xF
- ands r0, r1
- ldrb r2, [r4, 0x4]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- ldr r0, _080BE76C @ =gUnknown_0202E8D2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x4]
- adds r0, r4, 0x5
- ldr r1, _080BE770 @ =gSaveBlock2
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r5, r4, 0
- adds r5, 0x10
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0xD]
- adds r0, r5, 0
- bl sub_80BDEAC
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- bl StripExtCtrlCodes
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE760: .4byte gUnknown_03005D38
-_080BE764: .4byte gSaveBlock1 + 0x2738
-_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gUnknown_0202E8D2
-_080BE770: .4byte gSaveBlock2
- thumb_func_end sub_80BE6A0
-
- thumb_func_start nullsub_21
-nullsub_21: @ 80BE774
- bx lr
- thumb_func_end nullsub_21
-
- thumb_func_start sub_80BE778
-sub_80BE778: @ 80BE778
- push {r4-r6,lr}
- ldr r0, _080BE83C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BE836
- movs r1, 0
- ldr r3, _080BE840 @ =gSaveBlock1
- ldr r2, _080BE844 @ =0x00002738
-_080BE78C:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x29
- beq _080BE836
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x17
- bls _080BE78C
- ldr r0, _080BE848 @ =0x00000147
- bl sub_80BF77C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080BE836
- ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738
- adds r0, r6, 0
- bl sub_80BF720
- ldr r4, _080BE850 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BE836
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r4, r1, 3
- adds r4, r1
- lsls r4, 2
- adds r4, r6
- movs r1, 0x29
- strb r1, [r4]
- movs r3, 0x1
- strb r3, [r4, 0x1]
- ldr r2, _080BE854 @ =gUnknown_083D13F8
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0xA]
- strb r0, [r4, 0x14]
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x3]
- ldrh r0, [r1]
- movs r2, 0
- strh r0, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x4]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x6]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x8]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0xA]
- ldrb r0, [r1, 0xB]
- strb r0, [r4, 0x10]
- strb r2, [r4, 0x11]
- strb r2, [r4, 0x12]
- movs r0, 0x32
- strb r0, [r4, 0x13]
- strb r2, [r4, 0x15]
- strh r3, [r4, 0x16]
- adds r0, r4, 0
- bl sub_80BE160
- movs r0, 0x2
- strb r0, [r4, 0x18]
-_080BE836:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE83C: .4byte 0x00000804
-_080BE840: .4byte gSaveBlock1
-_080BE844: .4byte 0x00002738
-_080BE848: .4byte 0x00000147
-_080BE84C: .4byte gSaveBlock1 + 0x2738
-_080BE850: .4byte gUnknown_03005D38
-_080BE854: .4byte gUnknown_083D13F8
- thumb_func_end sub_80BE778
-
- thumb_func_start EndMassOutbreak
-EndMassOutbreak: @ 80BE858
- push {r4,lr}
- ldr r0, _080BE8B4 @ =gSaveBlock1
- ldr r2, _080BE8B8 @ =0x00002afc
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
- strh r2, [r1]
- ldr r4, _080BE8BC @ =0x00002afe
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strh r2, [r1]
- adds r4, 0x2
- adds r1, r0, r4
- strb r3, [r1]
- adds r4, 0x1
- adds r1, r0, r4
- strb r3, [r1]
- ldr r1, _080BE8C0 @ =0x00002b0e
- adds r0, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE8B4: .4byte gSaveBlock1
-_080BE8B8: .4byte 0x00002afc
-_080BE8BC: .4byte 0x00002afe
-_080BE8C0: .4byte 0x00002b0e
- thumb_func_end EndMassOutbreak
-
- thumb_func_start sub_80BE8C4
-sub_80BE8C4: @ 80BE8C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BE8EC
- adds r0, r4, 0
- bl UpdateMassOutbreakTimeLeft
- adds r0, r4, 0
- bl sub_80BEE84
- adds r0, r4, 0
- bl sub_80BEA5C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8C4
-
- thumb_func_start sub_80BE8EC
-sub_80BE8EC: @ 80BE8EC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080BE930 @ =gSaveBlock1
- ldr r2, _080BE934 @ =0x00002afc
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BE94C
- movs r3, 0
- adds r5, r1, 0
- ldr r7, _080BE938 @ =0x00002738
- adds r6, r5, r7
-_080BE906:
- lsls r0, r3, 3
- adds r0, r3
- lsls r2, r0, 2
- adds r1, r2, r5
- ldr r7, _080BE938 @ =0x00002738
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _080BE942
- adds r7, 0x1
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BE942
- adds r1, r2, r6
- ldrh r0, [r1, 0x16]
- cmp r0, r4
- bcs _080BE93C
- movs r0, 0
- strh r0, [r1, 0x16]
- b _080BE94C
- .align 2, 0
-_080BE930: .4byte gSaveBlock1
-_080BE934: .4byte 0x00002afc
-_080BE938: .4byte 0x00002738
-_080BE93C:
- subs r0, r4
- strh r0, [r1, 0x16]
- b _080BE94C
-_080BE942:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x17
- bls _080BE906
-_080BE94C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BE8EC
-
- thumb_func_start UpdateMassOutbreakTimeLeft
-UpdateMassOutbreakTimeLeft: @ 80BE954
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080BE96C @ =gSaveBlock1
- ldr r3, _080BE970 @ =0x00002b0e
- adds r2, r0, r3
- ldrh r0, [r2]
- cmp r0, r1
- bhi _080BE974
- bl EndMassOutbreak
- b _080BE978
- .align 2, 0
-_080BE96C: .4byte gSaveBlock1
-_080BE970: .4byte 0x00002b0e
-_080BE974:
- subs r0, r1
- strh r0, [r2]
-_080BE978:
- pop {r0}
- bx r0
- thumb_func_end UpdateMassOutbreakTimeLeft
-
- thumb_func_start sub_80BE97C
-sub_80BE97C: @ 80BE97C
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- beq _080BE9A4
- ldr r4, _080BE9A0 @ =gUnknown_020387E2
- ldrh r0, [r4]
- lsrs r0, 8
- cmp r0, 0x4
- bls _080BE992
- bl sub_80BE9D4
-_080BE992:
- ldrb r0, [r4]
- strh r0, [r4]
- cmp r0, 0xFF
- beq _080BE9C8
- adds r0, 0x1
- b _080BE9C6
- .align 2, 0
-_080BE9A0: .4byte gUnknown_020387E2
-_080BE9A4:
- ldr r4, _080BE9D0 @ =gUnknown_020387E2
- ldrb r0, [r4]
- cmp r0, 0x4
- bls _080BE9B0
- bl sub_80BE9D4
-_080BE9B0:
- ldrh r0, [r4]
- movs r1, 0xFF
- lsls r1, 8
- ands r1, r0
- strh r1, [r4]
- lsrs r0, r1, 8
- cmp r0, 0xFF
- beq _080BE9C8
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
-_080BE9C6:
- strh r0, [r4]
-_080BE9C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BE9D0: .4byte gUnknown_020387E2
- thumb_func_end sub_80BE97C
-
- thumb_func_start sub_80BE9D4
-sub_80BE9D4: @ 80BE9D4
- push {r4,r5,lr}
- ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738
- adds r0, r5, 0
- bl sub_80BF74C
- ldr r4, _080BEA40 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEA36
- movs r0, 0x18
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEA36
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- movs r1, 0
- movs r0, 0x18
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r1, _080BEA44 @ =gUnknown_020387E2
- ldrh r0, [r1]
- strb r0, [r4, 0x2]
- ldrh r0, [r1]
- lsrs r0, 8
- strb r0, [r4, 0x3]
- ldr r0, _080BEA48 @ =gUnknown_020387E0
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEA4C @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0x6]
-_080BEA36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEA3C: .4byte gSaveBlock1 + 0x2738
-_080BEA40: .4byte gUnknown_03005D38
-_080BEA44: .4byte gUnknown_020387E2
-_080BEA48: .4byte gUnknown_020387E0
-_080BEA4C: .4byte gSaveBlock2
- thumb_func_end sub_80BE9D4
-
- thumb_func_start sub_80BEA50
-sub_80BEA50: @ 80BEA50
- ldr r1, _080BEA58 @ =gUnknown_020387E0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BEA58: .4byte gUnknown_020387E0
- thumb_func_end sub_80BEA50
-
- thumb_func_start sub_80BEA5C
-sub_80BEA5C: @ 80BEA5C
- push {lr}
- ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98
- ldrb r0, [r1]
- cmp r0, 0x19
- bne _080BEA84
- ldrh r0, [r1, 0x2]
- cmp r0, 0x13
- bhi _080BEA80
- ldr r2, _080BEA7C @ =0xfffffca0
- adds r0, r1, r2
- movs r1, 0x18
- bl sub_80BF55C
- b _080BEA84
- .align 2, 0
-_080BEA78: .4byte gSaveBlock1 + 0x2A98
-_080BEA7C: .4byte 0xfffffca0
-_080BEA80:
- bl sub_80BEA88
-_080BEA84:
- pop {r0}
- bx r0
- thumb_func_end sub_80BEA5C
-
- thumb_func_start sub_80BEA88
-sub_80BEA88: @ 80BEA88
- push {r4-r7,lr}
- ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98
- ldr r0, _080BEB10 @ =0x0000ffff
- bl sub_80BF77C
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080BEB04
- ldr r0, _080BEB14 @ =0xfffffca0
- adds r7, r5, r0
- adds r0, r7, 0
- bl sub_80BF74C
- ldr r4, _080BEB18 @ =gUnknown_03005D38
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEB04
- movs r0, 0x19
- bl sub_80BF1B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEB04
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r7
- movs r0, 0x19
- strb r0, [r4]
- strb r6, [r4, 0x1]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- movs r0, 0x5
- bl sub_8053108
- ldrh r1, [r5, 0x6]
- subs r0, r1
- strh r0, [r4, 0x6]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x8]
- ldrb r0, [r5, 0xA]
- strb r0, [r4, 0xA]
- adds r0, r4, 0
- adds r0, 0x13
- ldr r1, _080BEB1C @ =gSaveBlock2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80BE138
- movs r0, 0x2
- strb r0, [r4, 0xB]
-_080BEB04:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEB0C: .4byte gSaveBlock1 + 0x2A98
-_080BEB10: .4byte 0x0000ffff
-_080BEB14: .4byte 0xfffffca0
-_080BEB18: .4byte gUnknown_03005D38
-_080BEB1C: .4byte gSaveBlock2
- thumb_func_end sub_80BEA88
-
- thumb_func_start sub_80BEB20
-sub_80BEB20: @ 80BEB20
- push {r4-r6,lr}
- ldr r0, _080BEBAC @ =0x00000804
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080BEBA6
- ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC
- adds r0, r6, 0
- bl sub_80BEBC8
- ldr r5, _080BEBB4 @ =gUnknown_03005D38
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BEBA6
- ldr r0, _080BEBB8 @ =0x0000028f
- bl sub_80BF77C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80BEE48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEBA6
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- ldr r1, _080BEBBC @ =0xffffd544
- adds r2, r6, r1
- adds r0, r6, r0
- strb r4, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC0 @ =0x00002abe
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0]
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, _080BEBC4 @ =0x00002abd
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080BEBA6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEBAC: .4byte 0x00000804
-_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
-_080BEBB4: .4byte gUnknown_03005D38
-_080BEBB8: .4byte 0x0000028f
-_080BEBBC: .4byte 0xffffd544
-_080BEBC0: .4byte 0x00002abe
-_080BEBC4: .4byte 0x00002abd
- thumb_func_end sub_80BEB20
-
- thumb_func_start sub_80BEBC8
-sub_80BEBC8: @ 80BEBC8
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BEBCE:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BEBE0
- adds r0, r1, 0
- b _080BEBF0
-_080BEBE0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0xF
- ble _080BEBCE
- movs r0, 0x1
- negs r0, r0
-_080BEBF0:
- pop {r1}
- bx r1
- thumb_func_end sub_80BEBC8
-
- thumb_func_start sub_80BEBF4
-sub_80BEBF4: @ 80BEBF4
- push {r4,lr}
- movs r4, 0
-_080BEBF8:
- adds r0, r4, 0
- bl sub_80BEC10
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080BEBF8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEBF4
-
- thumb_func_start sub_80BEC10
-sub_80BEC10: @ 80BEC10
- lsls r0, 24
- ldr r1, _080BEC30 @ =gSaveBlock1
- lsrs r0, 22
- adds r0, r1
- ldr r2, _080BEC34 @ =0x00002abc
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _080BEC38 @ =0x00002abd
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _080BEC3C @ =0x00002abe
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080BEC30: .4byte gSaveBlock1
-_080BEC34: .4byte 0x00002abc
-_080BEC38: .4byte 0x00002abd
-_080BEC3C: .4byte 0x00002abe
- thumb_func_end sub_80BEC10
-
- thumb_func_start sub_80BEC40
-sub_80BEC40: @ 80BEC40
- push {r4-r7,lr}
- movs r1, 0
- ldr r6, _080BEC80 @ =gSaveBlock1
-_080BEC46:
- ldr r3, _080BEC80 @ =gSaveBlock1
- lsls r2, r1, 2
- adds r0, r2, r3
- ldr r4, _080BEC84 @ =0x00002abc
- adds r0, r4
- ldrb r0, [r0]
- adds r5, r1, 0x1
- cmp r0, 0
- bne _080BEC92
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _080BEC92
- adds r4, r3, r4
- adds r3, r2, r4
-_080BEC64:
- lsls r2, r1, 2
- adds r0, r2, r6
- ldr r7, _080BEC84 @ =0x00002abc
- adds r0, r7
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BEC88
- adds r0, r2, r4
- ldr r0, [r0]
- str r0, [r3]
- adds r0, r1, 0
- bl sub_80BEC10
- b _080BEC92
- .align 2, 0
-_080BEC80: .4byte gSaveBlock1
-_080BEC84: .4byte 0x00002abc
-_080BEC88:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEC64
-_080BEC92:
- lsls r0, r5, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080BEC46
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BEC40
-
- thumb_func_start sub_80BECA0
-sub_80BECA0: @ 80BECA0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080BECCC @ =gSaveBlock1
-_080BECA6:
- lsls r0, r2, 2
- adds r1, r0, r3
- ldr r4, _080BECD0 @ =0x00002abc
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080BECD4
- adds r4, 0x1
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r0, 0x2
- bhi _080BECD4
- adds r0, r2, 0
- b _080BECE0
- .align 2, 0
-_080BECCC: .4byte gSaveBlock1
-_080BECD0: .4byte 0x00002abc
-_080BECD4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BECA6
- movs r0, 0xFF
-_080BECE0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BECA0
-
- thumb_func_start sub_80BECE8
-sub_80BECE8: @ 80BECE8
- push {r4,lr}
- bl sub_80BECA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- bne _080BED00
- ldr r1, _080BECFC @ =gScriptResult
- movs r0, 0
- b _080BED86
- .align 2, 0
-_080BECFC: .4byte gScriptResult
-_080BED00:
- ldr r0, _080BED2C @ =gSaveBlock1
- lsls r1, 2
- adds r4, r1, r0
- ldr r0, _080BED30 @ =0x00002abe
- adds r1, r4, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080BED5C
- ldr r2, _080BED34 @ =0x00002abd
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080BED38 @ =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x13
- bgt _080BED40
- ldr r1, _080BED3C @ =gUnknown_083D1444
- subs r2, 0x1
- b _080BED44
- .align 2, 0
-_080BED2C: .4byte gSaveBlock1
-_080BED30: .4byte 0x00002abe
-_080BED34: .4byte 0x00002abd
-_080BED38: .4byte gLocalTime
-_080BED3C: .4byte gUnknown_083D1444
-_080BED40:
- ldr r1, _080BED54 @ =gUnknown_083D1454
- ldr r2, _080BED58 @ =0x00002abc
-_080BED44:
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- b _080BED82
- .align 2, 0
-_080BED54: .4byte gUnknown_083D1454
-_080BED58: .4byte 0x00002abc
-_080BED5C:
- ldrh r1, [r1]
- ldr r0, _080BED90 @ =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080BED94 @ =0x00002abd
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080BED98 @ =gUnknown_083D1434
- ldr r2, _080BED9C @ =0x00002abc
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
-_080BED82:
- ldr r1, _080BEDA0 @ =gScriptResult
- movs r0, 0x1
-_080BED86:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BED90: .4byte gStringVar1
-_080BED94: .4byte 0x00002abd
-_080BED98: .4byte gUnknown_083D1434
-_080BED9C: .4byte 0x00002abc
-_080BEDA0: .4byte gScriptResult
- thumb_func_end sub_80BECE8
-
- thumb_func_start GetPriceReduction
-GetPriceReduction: @ 80BEDA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080BEDB4
- b _080BEDF6
-_080BEDB0:
- movs r0, 0x1
- b _080BEDF8
-_080BEDB4:
- movs r2, 0
- ldr r4, _080BEDE0 @ =gSaveBlock1
-_080BEDB8:
- lsls r0, r2, 2
- adds r1, r0, r4
- ldr r5, _080BEDE4 @ =0x00002abc
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r3
- bne _080BEDEC
- ldr r2, _080BEDE8 @ =0x00002abd
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080BEDF6
- adds r0, r3, 0
- bl IsPriceDiscounted
- lsls r0, 24
- cmp r0, 0
- bne _080BEDB0
- b _080BEDF6
- .align 2, 0
-_080BEDE0: .4byte gSaveBlock1
-_080BEDE4: .4byte 0x00002abc
-_080BEDE8: .4byte 0x00002abd
-_080BEDEC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _080BEDB8
-_080BEDF6:
- movs r0, 0
-_080BEDF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetPriceReduction
-
- thumb_func_start IsPriceDiscounted
-IsPriceDiscounted: @ 80BEE00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BEE12
- cmp r0, 0x3
- beq _080BEE30
-_080BEE0E:
- movs r0, 0x1
- b _080BEE3C
-_080BEE12:
- ldr r0, _080BEE28 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _080BEE3A
- ldr r0, _080BEE2C @ =gUnknown_0202E8DE
- ldrh r0, [r0]
- cmp r0, 0x1A
- beq _080BEE0E
- b _080BEE3A
- .align 2, 0
-_080BEE28: .4byte gSaveBlock1
-_080BEE2C: .4byte gUnknown_0202E8DE
-_080BEE30:
- ldr r0, _080BEE40 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- ldr r0, _080BEE44 @ =0x0000160d
- cmp r1, r0
- beq _080BEE0E
-_080BEE3A:
- movs r0, 0
-_080BEE3C:
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE40: .4byte gSaveBlock1
-_080BEE44: .4byte 0x0000160d
- thumb_func_end IsPriceDiscounted
-
- thumb_func_start sub_80BEE48
-sub_80BEE48: @ 80BEE48
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080BEE56
-_080BEE52:
- movs r0, 0x1
- b _080BEE74
-_080BEE56:
- movs r1, 0
- ldr r4, _080BEE7C @ =gSaveBlock1
- ldr r3, _080BEE80 @ =0x00002abc
-_080BEE5C:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- beq _080BEE52
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080BEE5C
- movs r0, 0
-_080BEE74:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080BEE7C: .4byte gSaveBlock1
-_080BEE80: .4byte 0x00002abc
- thumb_func_end sub_80BEE48
-
- thumb_func_start sub_80BEE84
-sub_80BEE84: @ 80BEE84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
- ldr r0, _080BEEB8 @ =gSaveBlock1
- mov r8, r0
-_080BEE94:
- lsls r0, r5, 2
- mov r1, r8
- adds r2, r0, r1
- ldr r3, _080BEEBC @ =0x00002abc
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0
- beq _080BEEEC
- ldr r1, _080BEEC0 @ =0x00002abe
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r7
- bcs _080BEEC4
- adds r0, r5, 0
- bl sub_80BEC10
- b _080BEEEC
- .align 2, 0
-_080BEEB8: .4byte gSaveBlock1
-_080BEEBC: .4byte 0x00002abc
-_080BEEC0: .4byte 0x00002abe
-_080BEEC4:
- ldr r3, _080BEF04 @ =0x00002abd
- adds r4, r2, r3
- ldrb r0, [r4]
- cmp r0, 0
- bne _080BEEDE
- ldr r0, _080BEF08 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BEEDE
- strb r0, [r4]
-_080BEEDE:
- mov r0, r8
- adds r1, r6, r0
- ldr r3, _080BEF0C @ =0x00002abe
- adds r1, r3
- ldrh r0, [r1]
- subs r0, r7
- strh r0, [r1]
-_080BEEEC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080BEE94
- bl sub_80BEC40
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF04: .4byte 0x00002abd
-_080BEF08: .4byte 0x00000804
-_080BEF0C: .4byte 0x00002abe
- thumb_func_end sub_80BEE84
-
- thumb_func_start sub_80BEF10
-sub_80BEF10: @ 80BEF10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x1
- beq _080BEF50
- cmp r1, 0x1
- bgt _080BEF2A
- cmp r1, 0
- beq _080BEF34
- b _080BEF98
-_080BEF2A:
- cmp r2, 0x2
- beq _080BEF6C
- cmp r2, 0x3
- beq _080BEF88
- b _080BEF98
-_080BEF34:
- ldr r1, _080BEF48 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF4C @ =gUnknown_083CE048
- ldr r1, [r1, 0x14]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF48: .4byte gUnknown_083D1464
-_080BEF4C: .4byte gUnknown_083CE048
-_080BEF50:
- ldr r1, _080BEF64 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF68 @ =gUnknown_083CE048
- ldr r1, [r1, 0x18]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF64: .4byte gUnknown_083D1464
-_080BEF68: .4byte gUnknown_083CE048
-_080BEF6C:
- ldr r1, _080BEF80 @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEF84 @ =gUnknown_083CE048
- ldr r1, [r1, 0x1C]
- bl StringCopy
- b _080BEF98
- .align 2, 0
-_080BEF80: .4byte gUnknown_083D1464
-_080BEF84: .4byte gUnknown_083CE048
-_080BEF88:
- ldr r1, _080BEF9C @ =gUnknown_083D1464
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFA0 @ =gUnknown_083CE048
- ldr r1, [r1, 0x20]
- bl StringCopy
-_080BEF98:
- pop {r0}
- bx r0
- .align 2, 0
-_080BEF9C: .4byte gUnknown_083D1464
-_080BEFA0: .4byte gUnknown_083CE048
- thumb_func_end sub_80BEF10
-
- thumb_func_start CopyContestCategoryToStringVar
-CopyContestCategoryToStringVar: @ 80BEFA4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x4
- bhi _080BF054
- lsls r0, 2
- ldr r1, _080BEFBC @ =_080BEFC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BEFBC: .4byte _080BEFC0
- .align 2, 0
-_080BEFC0:
- .4byte _080BEFD4
- .4byte _080BEFF0
- .4byte _080BF00C
- .4byte _080BF028
- .4byte _080BF044
-_080BEFD4:
- ldr r1, _080BEFE8 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BEFEC @ =gUnknown_083CE048
- ldr r1, [r1]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BEFE8: .4byte gUnknown_083D1464
-_080BEFEC: .4byte gUnknown_083CE048
-_080BEFF0:
- ldr r1, _080BF004 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF008 @ =gUnknown_083CE048
- ldr r1, [r1, 0x4]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF004: .4byte gUnknown_083D1464
-_080BF008: .4byte gUnknown_083CE048
-_080BF00C:
- ldr r1, _080BF020 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF024 @ =gUnknown_083CE048
- ldr r1, [r1, 0x8]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF020: .4byte gUnknown_083D1464
-_080BF024: .4byte gUnknown_083CE048
-_080BF028:
- ldr r1, _080BF03C @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF040 @ =gUnknown_083CE048
- ldr r1, [r1, 0xC]
- bl StringCopy
- b _080BF054
- .align 2, 0
-_080BF03C: .4byte gUnknown_083D1464
-_080BF040: .4byte gUnknown_083CE048
-_080BF044:
- ldr r1, _080BF058 @ =gUnknown_083D1464
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080BF05C @ =gUnknown_083CE048
- ldr r1, [r1, 0x10]
- bl StringCopy
-_080BF054:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF058: .4byte gUnknown_083D1464
-_080BF05C: .4byte gUnknown_083CE048
- thumb_func_end CopyContestCategoryToStringVar
-
- thumb_func_start SetContestCategoryStringVarForInterview
-SetContestCategoryStringVarForInterview: @ 80BF060
- push {lr}
- ldr r0, _080BF080 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrb r1, [r0, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- pop {r0}
- bx r0
- .align 2, 0
-_080BF080: .4byte gUnknown_0202E8CC
-_080BF084: .4byte gSaveBlock1 + 0x2738
- thumb_func_end SetContestCategoryStringVarForInterview
-
- thumb_func_start sub_80BF088
-sub_80BF088: @ 80BF088
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- ldr r0, _080BF0B4 @ =gUnknown_083D1464
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF0B4: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF088
-
- thumb_func_start sub_80BF0B8
-sub_80BF0B8: @ 80BF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xA
- bl __divsi3
- cmp r0, 0
- beq _080BF144
- adds r0, r4, 0
- movs r1, 0x64
- bl __divsi3
- cmp r0, 0
- bne _080BF0D6
- movs r0, 0x2
- b _080BF14E
-_080BF0D6:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0E8
- movs r0, 0x3
- b _080BF14E
-_080BF0E8:
- ldr r1, _080BF0F8 @ =0x00002710
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF0FC
- movs r0, 0x4
- b _080BF14E
- .align 2, 0
-_080BF0F8: .4byte 0x00002710
-_080BF0FC:
- ldr r1, _080BF10C @ =0x000186a0
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF110
- movs r0, 0x5
- b _080BF14E
- .align 2, 0
-_080BF10C: .4byte 0x000186a0
-_080BF110:
- ldr r1, _080BF120 @ =0x000f4240
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF124
- movs r0, 0x6
- b _080BF14E
- .align 2, 0
-_080BF120: .4byte 0x000f4240
-_080BF124:
- ldr r1, _080BF134 @ =0x00989680
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080BF138
- movs r0, 0x7
- b _080BF14E
- .align 2, 0
-_080BF134: .4byte 0x00989680
-_080BF138:
- ldr r1, _080BF148 @ =0x05f5e100
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- beq _080BF14C
-_080BF144:
- movs r0, 0x1
- b _080BF14E
- .align 2, 0
-_080BF148: .4byte 0x05f5e100
-_080BF14C:
- movs r0, 0x8
-_080BF14E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF0B8
-
- thumb_func_start sub_80BF154
-sub_80BF154: @ 80BF154
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- movs r5, 0
-_080BF166:
- lsls r4, r5, 1
- adds r0, r6, 0x6
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0
- beq _080BF186
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- adds r1, 0xC
- adds r1, r4
- ldrh r1, [r1]
- muls r0, r1
- adds r7, r0
-_080BF186:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF166
- ldrb r0, [r6, 0x2]
- cmp r0, 0x1
- bne _080BF1A0
- asrs r1, r7, 1
- mov r0, r8
- bl sub_80BF088
- b _080BF1A8
-_080BF1A0:
- mov r0, r8
- adds r1, r7, 0
- bl sub_80BF088
-_080BF1A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF154
-
- thumb_func_start sub_80BF1B4
-sub_80BF1B4: @ 80BF1B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738
- bl sub_80BFB94
- adds r5, r0, 0
- movs r4, 0x5
-_080BF1C4:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _080BF1F8
- movs r3, 0xFF
- adds r0, r5, 0
- ands r0, r3
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r2, [r2]
- cmp r0, r2
- bne _080BF1F8
- lsrs r0, r5, 8
- ands r0, r3
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080BF1F8
- movs r0, 0x1
- b _080BF204
- .align 2, 0
-_080BF1F4: .4byte gSaveBlock1 + 0x2738
-_080BF1F8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x17
- bls _080BF1C4
- movs r0, 0
-_080BF204:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF1B4
-
- thumb_func_start sub_80BF20C
-sub_80BF20C: @ 80BF20C
- push {r4-r7,lr}
- movs r2, 0
-_080BF210:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- adds r7, r1, 0
- cmp r5, 0x2
- bhi _080BF248
- ldr r6, _080BF258 @ =gUnknown_02038724
- lsls r0, r2, 2
- adds r4, r0, r6
-_080BF222:
- lsls r0, r5, 2
- adds r3, r0, r6
- ldrh r0, [r4, 0x2]
- ldrh r1, [r3, 0x2]
- cmp r0, r1
- bcs _080BF23E
- ldrh r1, [r4]
- adds r2, r0, 0
- ldrh r0, [r3]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- strh r0, [r4, 0x2]
- strh r1, [r3]
- strh r2, [r3, 0x2]
-_080BF23E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080BF222
-_080BF248:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bls _080BF210
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF258: .4byte gUnknown_02038724
- thumb_func_end sub_80BF20C
-
- thumb_func_start sub_80BF25C
-sub_80BF25C: @ 80BF25C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0
- ldr r3, _080BF28C @ =gSaveBlock1
- ldr r0, _080BF290 @ =0x00002738
- adds r4, r3, r0
-_080BF26A:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldr r6, _080BF290 @ =0x00002738
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r5
- bne _080BF2AE
- ldr r3, _080BF294 @ =0x00002739
- adds r0, r2, r3
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _080BF29C
- ldr r0, _080BF298 @ =gScriptResult
- strh r2, [r0]
- b _080BF2BC
- .align 2, 0
-_080BF28C: .4byte gSaveBlock1
-_080BF290: .4byte 0x00002738
-_080BF294: .4byte 0x00002739
-_080BF298: .4byte gScriptResult
-_080BF29C:
- adds r0, r4, 0
- bl sub_80BF55C
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80BF6D8
- b _080BF2BC
-_080BF2AE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF26A
- bl sub_80BF6D8
-_080BF2BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF25C
-
- thumb_func_start sub_80BF2C4
-sub_80BF2C4: @ 80BF2C4
- push {lr}
- ldr r1, _080BF2E0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080BF2E4 @ =gUnknown_0202E8CE
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080BF330
- lsls r0, 2
- ldr r1, _080BF2E8 @ =_080BF2EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BF2E0: .4byte gScriptResult
-_080BF2E4: .4byte gUnknown_0202E8CE
-_080BF2E8: .4byte _080BF2EC
- .align 2, 0
-_080BF2EC:
- .4byte _080BF308
- .4byte _080BF30E
- .4byte _080BF314
- .4byte _080BF31A
- .4byte _080BF320
- .4byte _080BF326
- .4byte _080BF32C
-_080BF308:
- bl sub_80BF334
- b _080BF330
-_080BF30E:
- bl sub_80BF3A4
- b _080BF330
-_080BF314:
- bl sub_80BF3DC
- b _080BF330
-_080BF31A:
- bl sub_80BF46C
- b _080BF330
-_080BF320:
- bl sub_80BF478
- b _080BF330
-_080BF326:
- bl sub_80BF484
- b _080BF330
-_080BF32C:
- bl sub_80BF4BC
-_080BF330:
- pop {r0}
- bx r0
- thumb_func_end sub_80BF2C4
-
- thumb_func_start sub_80BF334
-sub_80BF334: @ 80BF334
- push {r4,lr}
- movs r0, 0x1
- bl sub_80BF25C
- ldr r0, _080BF38C @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF384
- ldr r4, _080BF390 @ =gStringVar1
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080BF394 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF398 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r0, _080BF39C @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF384:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF38C: .4byte gScriptResult
-_080BF390: .4byte gStringVar1
-_080BF394: .4byte gPlayerParty
-_080BF398: .4byte gSpeciesNames
-_080BF39C: .4byte gUnknown_03005D38
-_080BF3A0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF334
-
- thumb_func_start sub_80BF3A4
-sub_80BF3A4: @ 80BF3A4
- push {lr}
- movs r0, 0x2
- bl sub_80BF25C
- ldr r0, _080BF3D0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF3CC
- ldr r0, _080BF3D4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x6
- bl sub_80EB6FC
-_080BF3CC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3D0: .4byte gScriptResult
-_080BF3D4: .4byte gUnknown_03005D38
-_080BF3D8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3A4
-
- thumb_func_start sub_80BF3DC
-sub_80BF3DC: @ 80BF3DC
- push {r4-r6,lr}
- movs r0, 0x3
- bl sub_80BF25C
- ldr r0, _080BF450 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF448
- ldr r6, _080BF454 @ =gStringVar1
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080BF458 @ =gPlayerParty
- adds r0, r4
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080BF45C @ =gSpeciesNames
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- muls r0, r5
- adds r0, r4
- ldr r4, _080BF460 @ =gStringVar2
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- ldr r0, _080BF464 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x1C
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF448:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF450: .4byte gScriptResult
-_080BF454: .4byte gStringVar1
-_080BF458: .4byte gPlayerParty
-_080BF45C: .4byte gSpeciesNames
-_080BF460: .4byte gStringVar2
-_080BF464: .4byte gUnknown_03005D38
-_080BF468: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF3DC
-
- thumb_func_start sub_80BF46C
-sub_80BF46C: @ 80BF46C
- ldr r1, _080BF474 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080BF474: .4byte gScriptResult
- thumb_func_end sub_80BF46C
-
- thumb_func_start sub_80BF478
-sub_80BF478: @ 80BF478
- push {lr}
- movs r0, 0x5
- bl sub_80BF25C
- pop {r0}
- bx r0
- thumb_func_end sub_80BF478
-
- thumb_func_start sub_80BF484
-sub_80BF484: @ 80BF484
- push {lr}
- movs r0, 0x6
- bl sub_80BF25C
- ldr r0, _080BF4B0 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4AC
- ldr r0, _080BF4B4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x4
- movs r1, 0x2
- bl sub_80EB6FC
-_080BF4AC:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4B0: .4byte gScriptResult
-_080BF4B4: .4byte gUnknown_03005D38
-_080BF4B8: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF484
-
- thumb_func_start sub_80BF4BC
-sub_80BF4BC: @ 80BF4BC
- push {lr}
- movs r0, 0x7
- bl sub_80BF25C
- ldr r0, _080BF4E8 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _080BF4E4
- ldr r0, _080BF4EC @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- adds r0, 0x18
- movs r1, 0x1
- bl sub_80EB6FC
-_080BF4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF4E8: .4byte gScriptResult
-_080BF4EC: .4byte gUnknown_03005D38
-_080BF4F0: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BF4BC
-
- thumb_func_start sub_80BF4F4
-sub_80BF4F4: @ 80BF4F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080BF530 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080BF534 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080BF538 @ =gSpeciesNames
- adds r0, r1
- adds r1, r5, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF53C
- movs r0, 0x1
- b _080BF53E
- .align 2, 0
-_080BF530: .4byte gPlayerParty
-_080BF534: .4byte gStringVar1
-_080BF538: .4byte gSpeciesNames
-_080BF53C:
- movs r0, 0
-_080BF53E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF4F4
-
- thumb_func_start sub_80BF544
-sub_80BF544: @ 80BF544
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80BF4F4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80BF544
-
- thumb_func_start sub_80BF55C
-sub_80BF55C: @ 80BF55C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- movs r0, 0
- strb r0, [r2]
- strb r0, [r2, 0x1]
- movs r1, 0
- adds r2, 0x2
- movs r3, 0
-_080BF576:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x21
- bls _080BF576
- pop {r0}
- bx r0
- thumb_func_end sub_80BF55C
-
- thumb_func_start sub_80BF588
-sub_80BF588: @ 80BF588
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
-_080BF58E:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF5D2
- adds r0, r5, 0x1
- b _080BF5CA
-_080BF5A0:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF5C8
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF5D2
-_080BF5C8:
- adds r0, r2, 0x1
-_080BF5CA:
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _080BF5A0
-_080BF5D2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080BF58E
- movs r5, 0x5
-_080BF5DE:
- lsls r0, r5, 3
- adds r0, r5
- lsls r1, r0, 2
- adds r0, r1, r4
- ldrb r0, [r0]
- adds r5, 0x1
- cmp r0, 0
- bne _080BF62A
- lsls r0, r5, 24
- b _080BF624
-_080BF5F2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _080BF620
- adds r1, r4
- adds r0, r3, 0
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738
- adds r1, r2, 0
- bl sub_80BF55C
- b _080BF62A
- .align 2, 0
-_080BF61C: .4byte gSaveBlock1 + 0x2738
-_080BF620:
- adds r0, r2, 0x1
- lsls r0, 24
-_080BF624:
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080BF5F2
-_080BF62A:
- lsls r0, r5, 24
- lsrs r5, r0, 24
- cmp r5, 0x17
- bls _080BF5DE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF588
-
- thumb_func_start sub_80BF638
-sub_80BF638: @ 80BF638
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80BF674
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080BF66C @ =gUnknown_083D1464
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0xB
- muls r1, r5
- ldr r2, _080BF670 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BF66C: .4byte gUnknown_083D1464
-_080BF670: .4byte gSpeciesNames
- thumb_func_end sub_80BF638
-
- thumb_func_start sub_80BF674
-sub_80BF674: @ 80BF674
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080BF694 @ =0x0000019b
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- b _080BF6B2
- .align 2, 0
-_080BF694: .4byte 0x0000019b
-_080BF698:
- cmp r4, 0x1
- bne _080BF6A4
- ldr r4, _080BF6A0 @ =0x0000019b
- b _080BF6AA
- .align 2, 0
-_080BF6A0: .4byte 0x0000019b
-_080BF6A4:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080BF6AA:
- cmp r4, r6
- bne _080BF6B2
- adds r4, r5, 0
- b _080BF6CE
-_080BF6B2:
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _080BF698
- cmp r4, r5
- beq _080BF698
-_080BF6CE:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF674
-
- thumb_func_start sub_80BF6D8
-sub_80BF6D8: @ 80BF6D8
- push {lr}
- ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738
- bl sub_80BF720
- ldr r1, _080BF704 @ =gUnknown_03005D38
- strb r0, [r1]
- ldr r2, _080BF708 @ =gUnknown_0202E8D0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- strh r1, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080BF710
- ldr r1, _080BF70C @ =gScriptResult
- movs r0, 0x1
- b _080BF714
- .align 2, 0
-_080BF700: .4byte gSaveBlock1 + 0x2738
-_080BF704: .4byte gUnknown_03005D38
-_080BF708: .4byte gUnknown_0202E8D0
-_080BF70C: .4byte gScriptResult
-_080BF710:
- ldr r1, _080BF71C @ =gScriptResult
- movs r0, 0
-_080BF714:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BF71C: .4byte gScriptResult
- thumb_func_end sub_80BF6D8
-
- thumb_func_start sub_80BF720
-sub_80BF720: @ 80BF720
- push {lr}
- adds r2, r0, 0
- movs r1, 0
-_080BF726:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF73A
- lsls r0, r1, 24
- asrs r0, 24
- b _080BF748
-_080BF73A:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF726
- movs r0, 0x1
- negs r0, r0
-_080BF748:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF720
-
- thumb_func_start sub_80BF74C
-sub_80BF74C: @ 80BF74C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x5
-_080BF752:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF768
- adds r0, r1, 0
- b _080BF778
-_080BF768:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080BF752
- movs r0, 0x1
- negs r0, r0
-_080BF778:
- pop {r1}
- bx r1
- thumb_func_end sub_80BF74C
-
- thumb_func_start sub_80BF77C
-sub_80BF77C: @ 80BF77C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bls _080BF794
- movs r0, 0x1
- b _080BF796
-_080BF794:
- movs r0, 0
-_080BF796:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF77C
-
- thumb_func_start sub_80BF79C
-sub_80BF79C: @ 80BF79C
- push {r4-r6,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r4, 0x4
- ldr r6, _080BF7B8 @ =0x0000ffff
- b _080BF7C2
- .align 2, 0
-_080BF7B8: .4byte 0x0000ffff
-_080BF7BC:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080BF7C2:
- cmp r2, 0x6
- bne _080BF7C8
- movs r2, 0
-_080BF7C8:
- lsls r1, r2, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- adds r3, r4, 0x4
- cmp r0, r6
- beq _080BF7BC
- ldr r0, _080BF7E4 @ =gStringVar3
- adds r1, r3, r1
- ldrh r1, [r1]
- bl sub_80EB3FC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF7E4: .4byte gStringVar3
- thumb_func_end sub_80BF79C
-
- thumb_func_start sub_80BF7E8
-sub_80BF7E8: @ 80BF7E8
- push {lr}
- adds r2, r0, 0
- movs r3, 0
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0xFF
- beq _080BF814
- adds r2, 0x4
-_080BF7F8:
- adds r0, r2, r1
- ldrb r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xA
- bhi _080BF814
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080BF7F8
-_080BF814:
- movs r0, 0x7
- ands r3, r0
- adds r0, r3, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80BF7E8
-
- thumb_func_start sub_80BF820
-sub_80BF820: @ 80BF820
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0
- movs r7, 0xFF
-_080BF844:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080BF844
- cmp r3, 0
- bne _080BF8A6
- ldr r4, [sp, 0x20]
- adds r4, 0xF
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF874
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF874:
- cmp r6, 0x1
- bne _080BF880
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF880:
- cmp r6, 0x2
- bne _080BF892
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF892:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8A6:
- cmp r3, 0x1
- bne _080BF8F4
- ldr r4, [sp, 0x20]
- adds r4, 0x4
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF8C2
- mov r0, sp
- adds r1, r4, r5
- b _080BF920
-_080BF8C2:
- cmp r6, 0x1
- bne _080BF8CE
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4, r1
- b _080BF920
-_080BF8CE:
- cmp r6, 0x2
- bne _080BF8E0
- mov r1, sp
- adds r0, r4, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- adds r0, r4, r0
- b _080BF950
-_080BF8E0:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4, r0
- b _080BF950
-_080BF8F4:
- movs r0, 0xB
- muls r4, r0
- ldr r7, _080BF910 @ =gSpeciesNames
- adds r0, r4, r7
- bl StringLength
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r6, 0
- bne _080BF914
- mov r0, sp
- adds r1, r5, r4
- b _080BF91E
- .align 2, 0
-_080BF910: .4byte gSpeciesNames
-_080BF914:
- cmp r6, 0x1
- bne _080BF926
- mov r0, sp
- subs r1, r2, r5
- adds r1, r4
-_080BF91E:
- adds r1, r7
-_080BF920:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080BF954
-_080BF926:
- cmp r6, 0x2
- bne _080BF93A
- mov r1, sp
- adds r0, r5, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- adds r0, r5, r0
- b _080BF94E
-_080BF93A:
- mov r1, sp
- subs r0, r2, 0x2
- subs r0, r5
- adds r0, r4
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- subs r0, r2, 0x1
- subs r0, r5
- adds r0, r4
-_080BF94E:
- adds r0, r7
-_080BF950:
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
-_080BF954:
- ldr r0, _080BF970 @ =gUnknown_083D1464
- mov r2, r8
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- mov r1, sp
- bl StringCopy
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF970: .4byte gUnknown_083D1464
- thumb_func_end sub_80BF820
-
- thumb_func_start sub_80BF974
-sub_80BF974: @ 80BF974
- push {r4,lr}
- movs r1, 0
- ldr r4, _080BF994 @ =gSaveBlock1
- ldr r0, _080BF998 @ =gUnknown_0202E8CC
- ldrh r2, [r0]
- ldr r3, _080BF99C @ =0x00002738
-_080BF980:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080BF9A0
- movs r0, 0x1
- b _080BF9AC
- .align 2, 0
-_080BF994: .4byte gSaveBlock1
-_080BF998: .4byte gUnknown_0202E8CC
-_080BF99C: .4byte 0x00002738
-_080BF9A0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080BF980
- movs r0, 0
-_080BF9AC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF974
-
- thumb_func_start sub_80BF9B4
-sub_80BF9B4: @ 80BF9B4
- push {r4,lr}
- ldr r0, _080BF9E0 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BF9E4 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080BF9E8 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080BF9EC @ =gStringVar3
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _080BF9F0
- bl sub_80BE478
- movs r0, 0x1
- b _080BF9F2
- .align 2, 0
-_080BF9E0: .4byte gUnknown_0202E8CC
-_080BF9E4: .4byte gPlayerParty
-_080BF9E8: .4byte gStringVar1
-_080BF9EC: .4byte gStringVar3
-_080BF9F0:
- movs r0, 0
-_080BF9F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80BF9B4
-
- thumb_func_start sub_80BF9F8
-sub_80BF9F8: @ 80BF9F8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _080BFAA0 @ =gUnknown_0202E8CC
- mov r9, r0
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080BFAA4 @ =gPlayerParty
- adds r0, r6
- ldr r2, _080BFAA8 @ =gStringVar3
- movs r1, 0x2
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- ldr r1, _080BFAAC @ =gStringVar2
- mov r10, r1
- movs r1, 0x2
- mov r2, r10
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _080BFAB0 @ =c2_080CC144
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFAA0: .4byte gUnknown_0202E8CC
-_080BFAA4: .4byte gPlayerParty
-_080BFAA8: .4byte gStringVar3
-_080BFAAC: .4byte gStringVar2
-_080BFAB0: .4byte c2_080CC144
- thumb_func_end sub_80BF9F8
-
- thumb_func_start c2_080CC144
-c2_080CC144: @ 80BFAB4
- push {lr}
- ldr r0, _080BFAD4 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFAD8 @ =gPlayerParty
- adds r0, r1
- ldr r2, _080BFADC @ =gStringVar2
- movs r1, 0x2
- bl SetMonData
- bl c2_exit_to_overworld_1_continue_scripts_restart_music
- pop {r0}
- bx r0
- .align 2, 0
-_080BFAD4: .4byte gUnknown_0202E8CC
-_080BFAD8: .4byte gPlayerParty
-_080BFADC: .4byte gStringVar2
- thumb_func_end c2_080CC144
-
- thumb_func_start sub_80BFAE0
-sub_80BFAE0: @ 80BFAE0
- push {r4,lr}
- ldr r0, _080BFB04 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB08 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080BFB0C @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB04: .4byte gUnknown_0202E8CC
-_080BFB08: .4byte gPlayerParty
-_080BFB0C: .4byte gStringVar1
- thumb_func_end sub_80BFAE0
-
- thumb_func_start sub_80BFB10
-sub_80BFB10: @ 80BFB10
- push {r4,lr}
- bl sub_80BFB94
- adds r4, r0, 0
- ldr r0, _080BFB38 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080BFB3C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _080BFB44
- ldr r1, _080BFB40 @ =gScriptResult
- movs r0, 0
- b _080BFB48
- .align 2, 0
-_080BFB38: .4byte gUnknown_0202E8CC
-_080BFB3C: .4byte gPlayerParty
-_080BFB40: .4byte gScriptResult
-_080BFB44:
- ldr r1, _080BFB50 @ =gScriptResult
- movs r0, 0x1
-_080BFB48:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFB50: .4byte gScriptResult
- thumb_func_end sub_80BFB10
-
- thumb_func_start sub_80BFB54
-sub_80BFB54: @ 80BFB54
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, r1, 0
- cmp r1, 0
- beq _080BFB8A
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB6E
- movs r0, 0x2
- b _080BFB90
-_080BFB6E:
- adds r0, r1, 0
- subs r0, 0x15
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _080BFB7E
- movs r0, 0x3
- b _080BFB90
-_080BFB7E:
- adds r0, r2, 0
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _080BFB8E
-_080BFB8A:
- movs r0, 0
- b _080BFB90
-_080BFB8E:
- movs r0, 0x4
-_080BFB90:
- pop {r1}
- bx r1
- thumb_func_end sub_80BFB54
-
- thumb_func_start sub_80BFB94
-sub_80BFB94: @ 80BFB94
- ldr r2, _080BFBAC @ =gSaveBlock2
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- ldrb r1, [r2, 0xC]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0xB]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0xA]
- orrs r0, r1
- bx lr
- .align 2, 0
-_080BFBAC: .4byte gSaveBlock2
- thumb_func_end sub_80BFB94
-
- thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
-CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
- push {lr}
- ldr r1, _080BFBD0 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFBCC
- ldr r0, _080BFBD4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFBD8
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- beq _080BFBE0
-_080BFBCC:
- movs r0, 0
- b _080BFC0A
- .align 2, 0
-_080BFBD0: .4byte gSaveBlock1
-_080BFBD4: .4byte gSaveBlock2
-_080BFBD8:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFBCC
-_080BFBE0:
- ldr r0, _080BFC04 @ =0x0000085d
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFBFE
- movs r0, 0x83
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFC08
-_080BFBFE:
- movs r0, 0x1
- b _080BFC0A
- .align 2, 0
-_080BFC04: .4byte 0x0000085d
-_080BFC08:
- movs r0, 0x2
-_080BFC0A:
- pop {r1}
- bx r1
- thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
-
- thumb_func_start GetMomOrDadStringForTVMessage
-GetMomOrDadStringForTVMessage: @ 80BFC10
- push {r4,lr}
- ldr r1, _080BFC40 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- bne _080BFC6C
- ldr r0, _080BFC44 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080BFC54
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080BFC6C
- ldr r0, _080BFC48 @ =gStringVar1
- ldr r1, _080BFC4C @ =gOtherText_Mom
- bl StringCopy
- ldr r0, _080BFC50 @ =0x00004003
- movs r1, 0x1
- bl VarSet
- b _080BFC6C
- .align 2, 0
-_080BFC40: .4byte gSaveBlock1
-_080BFC44: .4byte gSaveBlock2
-_080BFC48: .4byte gStringVar1
-_080BFC4C: .4byte gOtherText_Mom
-_080BFC50: .4byte 0x00004003
-_080BFC54:
- movs r0, 0x5
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080BFC6C
- ldr r0, _080BFCB4 @ =gStringVar1
- ldr r1, _080BFCB8 @ =gOtherText_Mom
- bl StringCopy
- ldr r0, _080BFCBC @ =0x00004003
- movs r1, 0x1
- bl VarSet
-_080BFC6C:
- ldr r4, _080BFCBC @ =0x00004003
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080BFCAA
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _080BFCC0
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bls _080BFCD4
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080BFCC0
-_080BFCAA:
- ldr r0, _080BFCB4 @ =gStringVar1
- ldr r1, _080BFCB8 @ =gOtherText_Mom
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCB4: .4byte gStringVar1
-_080BFCB8: .4byte gOtherText_Mom
-_080BFCBC: .4byte 0x00004003
-_080BFCC0:
- ldr r0, _080BFCCC @ =gStringVar1
- ldr r1, _080BFCD0 @ =gOtherText_Dad
- bl StringCopy
- b _080BFD10
- .align 2, 0
-_080BFCCC: .4byte gStringVar1
-_080BFCD0: .4byte gOtherText_Dad
-_080BFCD4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BFD00
- ldr r0, _080BFCF8 @ =gStringVar1
- ldr r1, _080BFCFC @ =gOtherText_Mom
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x1
- bl VarSet
- b _080BFD10
- .align 2, 0
-_080BFCF8: .4byte gStringVar1
-_080BFCFC: .4byte gOtherText_Mom
-_080BFD00:
- ldr r0, _080BFD18 @ =gStringVar1
- ldr r1, _080BFD1C @ =gOtherText_Dad
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- bl VarSet
-_080BFD10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD18: .4byte gStringVar1
-_080BFD1C: .4byte gOtherText_Dad
- thumb_func_end GetMomOrDadStringForTVMessage
-
- thumb_func_start sub_80BFD20
-sub_80BFD20: @ 80BFD20
- push {lr}
- ldr r0, _080BFD3C @ =0x000040bc
- movs r1, 0
- bl VarSet
- ldr r0, _080BFD40 @ =gSaveBlock1
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x5
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_080BFD3C: .4byte 0x000040bc
-_080BFD40: .4byte gSaveBlock1
- thumb_func_end sub_80BFD20
-
- thumb_func_start sub_80BFD44
-sub_80BFD44: @ 80BFD44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r4, 0
-_080BFD54:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 5
- adds r0, r4
- lsls r0, 2
- ldr r5, _080BFD8C @ =0x02007000
- adds r0, r5
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080BFD54
- adds r4, r5, 0
- cmp r6, 0x1
- beq _080BFDBC
- cmp r6, 0x1
- bgt _080BFD90
- cmp r6, 0
- beq _080BFD9A
- b _080BFDFC
- .align 2, 0
-_080BFD8C: .4byte 0x02007000
-_080BFD90:
- cmp r6, 0x2
- beq _080BFDCC
- cmp r6, 0x3
- beq _080BFDE8
- b _080BFDFC
-_080BFD9A:
- ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738
- movs r2, 0xE1
- lsls r2, 2
- adds r1, r4, r2
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r4, r3
- ldr r5, _080BFDB8 @ =0x00000a8c
- adds r3, r4, r5
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDB4: .4byte gSaveBlock1 + 0x2738
-_080BFDB8: .4byte 0x00000a8c
-_080BFDBC:
- ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738
- movs r0, 0xE1
- lsls r0, 3
- adds r2, r4, r0
- b _080BFDD4
- .align 2, 0
-_080BFDC8: .4byte gSaveBlock1 + 0x2738
-_080BFDCC:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r4, r0
- ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738
-_080BFDD4:
- ldr r5, _080BFDE4 @ =0x00000a8c
- adds r3, r4, r5
- adds r0, r4, 0
- bl sub_80BFE24
- b _080BFDFC
- .align 2, 0
-_080BFDE0: .4byte gSaveBlock1 + 0x2738
-_080BFDE4: .4byte 0x00000a8c
-_080BFDE8:
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r5, r0
- movs r3, 0xE1
- lsls r3, 3
- adds r2, r5, r3
- ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738
- adds r0, r5, 0
- bl sub_80BFE24
-_080BFDFC:
- ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C04A0
- adds r0, r4, 0
- bl sub_80BF588
- bl sub_80C01D4
- bl sub_80C0408
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BFE20: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80BFD44
-
- thumb_func_start sub_80BFE24
-sub_80BFE24: @ 80BFE24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080BFEA0 @ =gUnknown_03000720
- strb r0, [r1]
-_080BFE50:
- movs r6, 0
- ldr r0, _080BFEA0 @ =gUnknown_03000720
- ldrb r1, [r0]
- cmp r6, r1
- bcs _080BFE50
- mov r10, r0
-_080BFE5C:
- cmp r6, 0
- bne _080BFE64
- ldr r2, _080BFEA4 @ =gUnknown_020387E4
- strb r6, [r2]
-_080BFE64:
- lsls r4, r6, 2
- mov r3, sp
- adds r0, r3, r4
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80C019C
- ldr r1, _080BFEA8 @ =gUnknown_03000722
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r7, r4, 0
- cmp r0, r1
- bne _080BFEAC
- ldr r1, _080BFEA4 @ =gUnknown_020387E4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r0, r2
- beq _080BFF58
- adds r6, 0x1
- mov r9, r6
- b _080BFF3C
- .align 2, 0
-_080BFEA0: .4byte gUnknown_03000720
-_080BFEA4: .4byte gUnknown_020387E4
-_080BFEA8: .4byte gUnknown_03000722
-_080BFEAC:
- movs r5, 0
- mov r3, r10
- ldrb r0, [r3]
- subs r0, 0x1
- adds r2, r6, 0x1
- mov r9, r2
- cmp r5, r0
- bge _080BFF22
- ldr r3, _080BFF4C @ =gUnknown_03000720
- mov r8, r3
-_080BFEC0:
- adds r0, r6, r5
- adds r4, r0, 0x1
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BF74C
- ldr r1, _080BFF50 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080BFF12
- mov r2, r8
- ldrb r1, [r2]
- adds r0, r4, 0
- bl __modsi3
- adds r2, r0, 0
- lsls r0, r2, 2
- add r0, sp
- ldr r0, [r0]
- mov r3, sp
- adds r1, r3, r7
- ldr r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- bl sub_80BFF68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BFF22
-_080BFF12:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080BFEC0
-_080BFF22:
- mov r2, r10
- ldrb r0, [r2]
- subs r0, 0x1
- cmp r5, r0
- bne _080BFF3C
- mov r3, sp
- adds r0, r3, r7
- ldr r0, [r0]
- ldr r0, [r0]
- ldr r1, _080BFF54 @ =gUnknown_03000722
- ldrb r1, [r1]
- bl sub_80BF55C
-_080BFF3C:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r6, r0, 24
- mov r2, r10
- ldrb r2, [r2]
- cmp r6, r2
- bcc _080BFE5C
- b _080BFE50
- .align 2, 0
-_080BFF4C: .4byte gUnknown_03000720
-_080BFF50: .4byte gUnknown_03005D38
-_080BFF54: .4byte gUnknown_03000722
-_080BFF58:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BFE24
-
- thumb_func_start sub_80BFF68
-sub_80BFF68: @ 80BFF68
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r4, [r0]
- ldr r6, [r1]
- movs r5, 0
- ldr r2, _080BFFA4 @ =gUnknown_03000722
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0]
- str r2, [sp]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- ldr r2, [sp]
- cmp r0, 0x3
- beq _080BFFD8
- cmp r0, 0x3
- bgt _080BFFA8
- cmp r0, 0x2
- beq _080BFFAE
- b _080C0026
- .align 2, 0
-_080BFFA4: .4byte gUnknown_03000722
-_080BFFA8:
- cmp r1, 0x4
- beq _080C0000
- b _080C0026
-_080BFFAE:
- ldr r0, _080BFFD4 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C004C
- b _080C0022
- .align 2, 0
-_080BFFD4: .4byte gUnknown_03005D38
-_080BFFD8:
- ldr r0, _080BFFFC @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C00B4
- b _080C0022
- .align 2, 0
-_080BFFFC: .4byte gUnknown_03005D38
-_080C0000:
- ldr r0, _080C0030 @ =gUnknown_03005D38
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r6, r1
- adds r2, r7, 0
- bl sub_80C0134
-_080C0022:
- lsls r0, 24
- lsrs r5, r0, 24
-_080C0026:
- cmp r5, 0x1
- beq _080C0034
- movs r0, 0
- b _080C0040
- .align 2, 0
-_080C0030: .4byte gUnknown_03005D38
-_080C0034:
- ldr r0, _080C0048 @ =gUnknown_03000722
- ldrb r1, [r0]
- adds r0, r6, 0
- bl sub_80BF55C
- movs r0, 0x1
-_080C0040:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C0048: .4byte gUnknown_03000722
- thumb_func_end sub_80BFF68
-
- thumb_func_start sub_80C004C
-sub_80C004C: @ 80C004C
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C007C
- movs r0, 0
- b _080C00AC
-_080C007C:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C00AC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C004C
-
- thumb_func_start sub_80C00B4
-sub_80C00B4: @ 80C00B4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r2, r0, 0
- movs r3, 0xFF
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C00E0
- lsrs r0, r2, 8
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C0100
-_080C00E0:
- movs r3, 0xFF
- adds r0, r2, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x22
- lsrs r5, r2, 8
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
- adds r0, r5, 0
- ands r0, r3
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0104
-_080C0100:
- movs r0, 0
- b _080C012C
-_080C0104:
- ldrb r1, [r4, 0x1E]
- adds r0, r4, 0
- adds r0, 0x20
- strb r1, [r0]
- ldrb r0, [r4, 0x1F]
- adds r1, r4, 0
- adds r1, 0x21
- strb r0, [r1]
- strb r2, [r4, 0x1E]
- strb r5, [r4, 0x1F]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
-_080C012C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C00B4
-
- thumb_func_start sub_80C0134
-sub_80C0134: @ 80C0134
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r0, r2, 24
- lsrs r0, 24
- bl GetLinkPlayerTrainerId
- adds r5, r0, 0
- movs r2, 0xFF
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- lsrs r0, r5, 8
- ands r0, r2
- adds r1, r4, 0
- adds r1, 0x23
- ldrb r1, [r1]
- cmp r0, r1
- bne _080C0164
- movs r0, 0
- b _080C0196
-_080C0164:
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r0, [r1]
- adds r2, r4, 0
- adds r2, 0x22
- strb r0, [r2]
- adds r3, r4, 0
- adds r3, 0x21
- ldrb r0, [r3]
- adds r2, 0x1
- strb r0, [r2]
- strb r5, [r1]
- lsrs r0, r5, 8
- strb r0, [r3]
- adds r1, r6, 0
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r0, 0x1
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x16]
-_080C0196:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C0134
-
- thumb_func_start sub_80C019C
-sub_80C019C: @ 80C019C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
-_080C01A2:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r3
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080C01C2
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bhi _080C01C2
- lsls r0, r2, 24
- asrs r0, 24
- b _080C01D0
-_080C01C2:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x17
- bls _080C01A2
- movs r0, 0x1
- negs r0, r0
-_080C01D0:
- pop {r1}
- bx r1
- thumb_func_end sub_80C019C
-
- thumb_func_start sub_80C01D4
-sub_80C01D4: @ 80C01D4
- push {r4-r6,lr}
- movs r6, 0
-_080C01D8:
- ldr r0, _080C01F8 @ =gSaveBlock1
- lsls r2, r6, 3
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldr r0, _080C01FC @ =0x00002738
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x29
- bls _080C01EE
- b _080C038C
-_080C01EE:
- lsls r0, 2
- ldr r1, _080C0200 @ =_080C0204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C01F8: .4byte gSaveBlock1
-_080C01FC: .4byte 0x00002738
-_080C0200: .4byte _080C0204
- .align 2, 0
-_080C0204:
- .4byte _080C0394
- .4byte _080C02AC
- .4byte _080C0394
- .4byte _080C02BC
- .4byte _080C02CC
- .4byte _080C02DC
- .4byte _080C02F8
- .4byte _080C0308
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0324
- .4byte _080C0394
- .4byte _080C0334
- .4byte _080C0350
- .4byte _080C0368
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C038C
- .4byte _080C0394
-_080C02AC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02B8: .4byte gSaveBlock1 + 0x2738
-_080C02BC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C02C8: .4byte gSaveBlock1 + 0x2738
-_080C02CC:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x6]
- b _080C035A
- .align 2, 0
-_080C02D8: .4byte gSaveBlock1 + 0x2738
-_080C02DC:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0x2]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x1C]
- b _080C037E
- .align 2, 0
-_080C02F4: .4byte gSaveBlock1 + 0x2738
-_080C02F8:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x2]
- b _080C035A
- .align 2, 0
-_080C0304: .4byte gSaveBlock1 + 0x2738
-_080C0308:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0xA]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x14]
- b _080C037E
- .align 2, 0
-_080C0320: .4byte gSaveBlock1 + 0x2738
-_080C0324:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x10]
- b _080C035A
- .align 2, 0
-_080C0330: .4byte gSaveBlock1 + 0x2738
-_080C0334:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C034C @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0xC]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0xE]
- b _080C037E
- .align 2, 0
-_080C034C: .4byte gSaveBlock1 + 0x2738
-_080C0350:
- adds r0, r2, r6
- lsls r0, 2
- ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738
- adds r0, r1
- ldrh r0, [r0, 0x4]
-_080C035A:
- lsls r1, r6, 24
- lsrs r1, 24
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0364: .4byte gSaveBlock1 + 0x2738
-_080C0368:
- adds r4, r2, r6
- lsls r4, 2
- ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldrh r0, [r4, 0x8]
- lsls r5, r6, 24
- lsrs r5, 24
- adds r1, r5, 0
- bl sub_80C03C8
- ldrh r0, [r4, 0x4]
-_080C037E:
- adds r1, r5, 0
- bl sub_80C03C8
- b _080C0394
- .align 2, 0
-_080C0388: .4byte gSaveBlock1 + 0x2738
-_080C038C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_80C03A8
-_080C0394:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x17
- bhi _080C03A0
- b _080C01D8
-_080C03A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80C01D4
-
- thumb_func_start sub_80C03A8
-sub_80C03A8: @ 80C03A8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C03C0 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080C03C4 @ =0x00002739
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C03C0: .4byte gSaveBlock1
-_080C03C4: .4byte 0x00002739
- thumb_func_end sub_80C03A8
-
- thumb_func_start sub_80C03C8
-sub_80C03C8: @ 80C03C8
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- asrs r2, r0, 24
- cmp r2, 0
- bne _080C03F8
- ldr r1, _080C0400 @ =gSaveBlock1
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _080C0404 @ =0x00002739
- adds r0, r1
- strb r2, [r0]
-_080C03F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0400: .4byte gSaveBlock1
-_080C0404: .4byte 0x00002739
- thumb_func_end sub_80C03C8
-
- thumb_func_start sub_80C0408
-sub_80C0408: @ 80C0408
- push {r4-r6,lr}
- ldr r0, _080C044C @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C0444
- movs r2, 0
- ldr r6, _080C0450 @ =gSaveBlock1
- ldr r4, _080C0454 @ =0x00002739
- movs r3, 0
- ldr r5, _080C0458 @ =0x00002738
-_080C0422:
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080C0436
- cmp r0, 0x29
- bne _080C043A
-_080C0436:
- adds r0, r1, r4
- strb r3, [r0]
-_080C043A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x17
- bls _080C0422
-_080C0444:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C044C: .4byte 0x00000804
-_080C0450: .4byte gSaveBlock1
-_080C0454: .4byte 0x00002739
-_080C0458: .4byte 0x00002738
- thumb_func_end sub_80C0408
-
- thumb_func_start sub_80C045C
-sub_80C045C: @ 80C045C
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _080C0494 @ =gSaveBlock1
-_080C0462:
- lsls r0, r5, 3
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r6
- ldr r1, _080C0498 @ =0x00002738
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80BFB54
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C0484
- ldr r0, _080C049C @ =0x00002739
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
-_080C0484:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080C0462
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0494: .4byte gSaveBlock1
-_080C0498: .4byte 0x00002738
-_080C049C: .4byte 0x00002739
- thumb_func_end sub_80C045C
-
- thumb_func_start sub_80C04A0
-sub_80C04A0: @ 80C04A0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0x5
- ldr r5, _080C0508 @ =gSaveBlock1
- ldr r4, _080C050C @ =0x00002738
-_080C04AA:
- lsls r0, r2, 24
- asrs r1, r0, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C04C8
- lsls r0, r3, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r3, r0, 24
-_080C04C8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x17
- ble _080C04AA
- movs r2, 0
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0x5
- subs r0, r1, r0
- cmp r2, r0
- bge _080C0502
- adds r5, r0, 0
-_080C04E4:
- lsls r1, r2, 24
- asrs r4, r1, 24
- movs r0, 0xA0
- lsls r0, 19
- adds r1, r0
- lsrs r1, 24
- ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738
- bl sub_80BF55C
- adds r4, 0x1
- lsls r4, 24
- lsrs r2, r4, 24
- asrs r4, 24
- cmp r4, r5
- blt _080C04E4
-_080C0502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0508: .4byte gSaveBlock1
-_080C050C: .4byte 0x00002738
-_080C0510: .4byte gSaveBlock1 + 0x2738
- thumb_func_end sub_80C04A0
-
- thumb_func_start sub_80C0514
-sub_80C0514: @ 80C0514
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
-_080C0524:
- lsls r0, r4, 6
- ldr r6, _080C0550 @ =0x02007000
- adds r0, r6
- adds r1, r4, 0
- muls r1, r7
- add r1, r8
- movs r2, 0x40
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080C0524
- adds r4, r6, 0
- cmp r5, 0x1
- beq _080C0578
- cmp r5, 0x1
- bgt _080C0554
- cmp r5, 0
- beq _080C055E
- b _080C05AC
- .align 2, 0
-_080C0550: .4byte 0x02007000
-_080C0554:
- cmp r5, 0x2
- beq _080C0584
- cmp r5, 0x3
- beq _080C059C
- b _080C05AC
-_080C055E:
- ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC
- adds r1, r4, 0
- adds r1, 0x40
- adds r2, r4, 0
- adds r2, 0x80
- adds r3, r4, 0
- adds r3, 0xC0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0574: .4byte gSaveBlock1 + 0x2ABC
-_080C0578:
- ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC
- adds r2, r4, 0
- adds r2, 0x80
- b _080C058A
- .align 2, 0
-_080C0580: .4byte gSaveBlock1 + 0x2ABC
-_080C0584:
- adds r1, r4, 0
- adds r1, 0x40
- ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC
-_080C058A:
- adds r3, r4, 0
- adds r3, 0xC0
- adds r0, r4, 0
- bl sub_80C05C4
- b _080C05AC
- .align 2, 0
-_080C0598: .4byte gSaveBlock1 + 0x2ABC
-_080C059C:
- adds r1, r6, 0
- adds r1, 0x40
- adds r2, r6, 0
- adds r2, 0x80
- ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC
- adds r0, r6, 0
- bl sub_80C05C4
-_080C05AC:
- bl sub_80C0750
- bl sub_80C0788
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C05C0: .4byte gSaveBlock1 + 0x2ABC
- thumb_func_end sub_80C0514
-
- thumb_func_start sub_80C05C4
-sub_80C05C4: @ 80C05C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- add r0, sp, 0x10
- str r0, [sp]
- add r0, sp, 0x14
- str r0, [sp, 0x4]
- add r0, sp, 0x18
- str r0, [sp, 0x8]
- add r0, sp, 0x1C
- str r0, [sp, 0xC]
- bl GetLinkPlayerCount
- ldr r1, _080C0600 @ =gUnknown_03000721
- strb r0, [r1]
- movs r0, 0
- mov r10, r0
-_080C05F4:
- movs r7, 0
- mov r1, r10
- adds r1, 0x1
- str r1, [sp, 0x20]
- b _080C068C
- .align 2, 0
-_080C0600: .4byte gUnknown_03000721
-_080C0604:
- lsls r4, r7, 2
- mov r1, sp
- adds r0, r1, r4
- ldr r0, [r0]
- ldr r0, [r0]
- mov r1, r10
- bl sub_80C0730
- ldr r1, _080C06B0 @ =gUnknown_03000722
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- mov r8, r4
- adds r1, r7, 0x1
- mov r9, r1
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0686
- movs r5, 0
- ldr r1, _080C06B4 @ =gUnknown_03000721
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- bge _080C0686
- adds r6, r1, 0
-_080C0638:
- adds r0, r7, r5
- adds r4, r0, 0x1
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r0, [r0]
- bl sub_80BEBC8
- ldr r1, _080C06B8 @ =gUnknown_03005D38
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080C0678
- ldrb r1, [r6]
- adds r0, r4, 0
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- mov r1, sp
- add r1, r8
- ldr r1, [r1]
- bl sub_80C06BC
-_080C0678:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6]
- subs r0, 0x1
- cmp r5, r0
- blt _080C0638
-_080C0686:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r7, r0, 24
-_080C068C:
- ldr r0, _080C06B4 @ =gUnknown_03000721
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080C0604
- ldr r1, [sp, 0x20]
- lsls r0, r1, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0xF
- bls _080C05F4
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C06B0: .4byte gUnknown_03000722
-_080C06B4: .4byte gUnknown_03000721
-_080C06B8: .4byte gUnknown_03005D38
- thumb_func_end sub_80C05C4
-
- thumb_func_start sub_80C06BC
-sub_80C06BC: @ 80C06BC
- push {lr}
- ldr r0, [r0]
- ldr r1, [r1]
- ldr r2, _080C06E0 @ =gUnknown_03000722
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r2, 2
- adds r1, r2
- ldr r2, _080C06E4 @ =gUnknown_03005D38
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- bl sub_80C06E8
- pop {r0}
- bx r0
- .align 2, 0
-_080C06E0: .4byte gUnknown_03000722
-_080C06E4: .4byte gUnknown_03005D38
- thumb_func_end sub_80C06BC
-
- thumb_func_start sub_80C06E8
-sub_80C06E8: @ 80C06E8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r3, [r5]
- adds r0, r3, 0
- cmp r0, 0
- bne _080C06FE
-_080C06FA:
- movs r0, 0
- b _080C072A
-_080C06FE:
- movs r1, 0
- adds r2, r3, 0
- adds r3, r0, 0
-_080C0704:
- lsls r0, r1, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _080C06FA
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C0704
- lsls r0, r6, 24
- asrs r0, 22
- adds r0, r4
- strb r2, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- ldrh r1, [r5, 0x2]
- strh r1, [r0, 0x2]
- movs r0, 0x1
-_080C072A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C06E8
-
- thumb_func_start sub_80C0730
-sub_80C0730: @ 80C0730
- push {lr}
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C0746
- lsls r0, r2, 24
- asrs r0, 24
- b _080C074A
-_080C0746:
- movs r0, 0x1
- negs r0, r0
-_080C074A:
- pop {r1}
- bx r1
- thumb_func_end sub_80C0730
-
- thumb_func_start sub_80C0750
-sub_80C0750: @ 80C0750
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C0780 @ =gSaveBlock1
-_080C0756:
- lsls r0, r4, 2
- adds r0, r5
- ldr r1, _080C0784 @ =0x00002abc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _080C076A
- adds r0, r4, 0
- bl sub_80BEC10
-_080C076A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080C0756
- bl sub_80BEC40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0780: .4byte gSaveBlock1
-_080C0784: .4byte 0x00002abc
- thumb_func_end sub_80C0750
-
- thumb_func_start sub_80C0788
-sub_80C0788: @ 80C0788
- push {r4,lr}
- ldr r0, _080C07B8 @ =0x00000804
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C07B2
- movs r1, 0
- ldr r4, _080C07BC @ =gSaveBlock1
- ldr r3, _080C07C0 @ =0x00002abd
- movs r2, 0
-_080C07A0:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080C07A0
-_080C07B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C07B8: .4byte 0x00000804
-_080C07BC: .4byte gSaveBlock1
-_080C07C0: .4byte 0x00002abd
- thumb_func_end sub_80C0788
-
- thumb_func_start sub_80C07C4
-sub_80C07C4: @ 80C07C4
- push {lr}
- ldr r2, _080C07F8 @ =gSaveBlock1
- ldr r0, _080C07FC @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldr r2, _080C0800 @ =0x00002739
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C07E0
- b _080C08F8
-_080C07E0:
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x28
- bls _080C07EE
- b _080C08F8
-_080C07EE:
- lsls r0, 2
- ldr r1, _080C0804 @ =_080C0808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C07F8: .4byte gSaveBlock1
-_080C07FC: .4byte gUnknown_0202E8CC
-_080C0800: .4byte 0x00002739
-_080C0804: .4byte _080C0808
- .align 2, 0
-_080C0808:
- .4byte _080C08AC
- .4byte _080C08B2
- .4byte _080C08B8
- .4byte _080C08BE
- .4byte _080C08E2
- .4byte _080C08CA
- .4byte _080C08D0
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08D6
- .4byte _080C08DC
- .4byte _080C08E8
- .4byte _080C08EE
- .4byte _080C08F4
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08F8
- .4byte _080C08C4
-_080C08AC:
- bl DoTVShowPokemonFanClubLetter
- b _080C08F8
-_080C08B2:
- bl DoTVShowRecentHappenings
- b _080C08F8
-_080C08B8:
- bl DoTVShowPokemonFanClubOpinions
- b _080C08F8
-_080C08BE:
- bl nullsub_22
- b _080C08F8
-_080C08C4:
- bl DoTVShowPokemonNewsMassOutbreak
- b _080C08F8
-_080C08CA:
- bl DoTVShowBravoTrainerPokemonProfile
- b _080C08F8
-_080C08D0:
- bl sub_80C0B9C
- b _080C08F8
-_080C08D6:
- bl DoTVShowPokemonTodaySuccessfulCapture
- b _080C08F8
-_080C08DC:
- bl DoTVShowTodaysSmartShopper
- b _080C08F8
-_080C08E2:
- bl DoTVShowTheNameRaterShow
- b _080C08F8
-_080C08E8:
- bl DoTVShowPokemonTodayFailedCapture
- b _080C08F8
-_080C08EE:
- bl DoTVShowPokemonAngler
- b _080C08F8
-_080C08F4:
- bl DoTVShowTheWorldOfMasters
-_080C08F8:
- pop {r0}
- bx r0
- thumb_func_end sub_80C07C4
-
- thumb_func_start sub_80C08FC
-sub_80C08FC: @ 80C08FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r2, 24
- lsrs r4, 24
- bl StringCopy
- cmp r4, 0x1
- bhi _080C0914
- adds r0, r5, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C0914:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C08FC
-
- thumb_func_start DoTVShowBravoTrainerPokemonProfile
-DoTVShowBravoTrainerPokemonProfile: @ 80C091C
- push {r4,r5,lr}
- ldr r0, _080C0948 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C094C @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C0950 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0954 @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x8
- bls _080C093C
- b _080C0B7A
-_080C093C:
- lsls r0, r5, 2
- ldr r1, _080C0958 @ =_080C095C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0948: .4byte gUnknown_0202E8CC
-_080C094C: .4byte gSaveBlock1 + 0x2738
-_080C0950: .4byte gScriptResult
-_080C0954: .4byte gUnknown_020387E8
-_080C0958: .4byte _080C095C
- .align 2, 0
-_080C095C:
- .4byte _080C0980
- .4byte _080C09D8
- .4byte _080C0A10
- .4byte _080C0A40
- .4byte _080C0A74
- .4byte _080C0AA8
- .4byte _080C0AEC
- .4byte _080C0B34
- .4byte _080C0B64
-_080C0980:
- ldr r0, _080C09C0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldrb r1, [r4, 0x13]
- lsls r1, 27
- lsrs r1, 30
- movs r0, 0x2
- bl sub_80BEF10
- ldrh r1, [r4, 0x2]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080C09C4 @ =gSpeciesNames
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _080C09CC
- ldr r1, _080C09C8 @ =gUnknown_020387E8
- movs r0, 0x8
- b _080C0B78
- .align 2, 0
-_080C09C0: .4byte gStringVar1
-_080C09C4: .4byte gSpeciesNames
-_080C09C8: .4byte gUnknown_020387E8
-_080C09CC:
- ldr r1, _080C09D4 @ =gUnknown_020387E8
- movs r0, 0x1
- b _080C0B78
- .align 2, 0
-_080C09D4: .4byte gUnknown_020387E8
-_080C09D8:
- ldr r0, _080C0A04 @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0A08 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0A0C @ =gStringVar2
- adds r1, r4, 0
- adds r1, 0x8
- ldrb r2, [r4, 0x1F]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x2
- bl CopyContestCategoryToStringVar
- b _080C0B74
- .align 2, 0
-_080C0A04: .4byte gStringVar1
-_080C0A08: .4byte gSpeciesNames
-_080C0A0C: .4byte gStringVar2
-_080C0A10:
- ldr r0, _080C0A2C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _080C0A34
- ldr r1, _080C0A30 @ =gUnknown_020387E8
- movs r0, 0x3
- b _080C0B78
- .align 2, 0
-_080C0A2C: .4byte gStringVar1
-_080C0A30: .4byte gUnknown_020387E8
-_080C0A34:
- ldr r1, _080C0A3C @ =gUnknown_020387E8
- movs r0, 0x4
- b _080C0B78
- .align 2, 0
-_080C0A3C: .4byte gUnknown_020387E8
-_080C0A40:
- ldr r0, _080C0A68 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0A6C @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0A70 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A68: .4byte gStringVar1
-_080C0A6C: .4byte gStringVar2
-_080C0A70: .4byte gUnknown_020387E8
-_080C0A74:
- ldr r0, _080C0A9C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0AA0 @ =gStringVar2
- ldrh r1, [r4, 0x4]
- bl sub_80EB3FC
- ldrb r1, [r4, 0x13]
- lsls r1, 25
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldr r1, _080C0AA4 @ =gUnknown_020387E8
- movs r0, 0x5
- b _080C0B78
- .align 2, 0
-_080C0A9C: .4byte gStringVar1
-_080C0AA0: .4byte gStringVar2
-_080C0AA4: .4byte gUnknown_020387E8
-_080C0AA8:
- ldr r0, _080C0AD4 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldrb r1, [r4, 0x13]
- lsls r1, 29
- lsrs r1, 29
- movs r0, 0x1
- bl CopyContestCategoryToStringVar
- ldr r0, _080C0AD8 @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldrh r0, [r4, 0x14]
- cmp r0, 0
- beq _080C0AE0
- ldr r1, _080C0ADC @ =gUnknown_020387E8
- movs r0, 0x6
- b _080C0B78
- .align 2, 0
-_080C0AD4: .4byte gStringVar1
-_080C0AD8: .4byte gStringVar3
-_080C0ADC: .4byte gUnknown_020387E8
-_080C0AE0:
- ldr r1, _080C0AE8 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0AE8: .4byte gUnknown_020387E8
-_080C0AEC:
- ldr r0, _080C0B1C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B20 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B24 @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C0B28 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C0B2C @ =gStringVar3
- ldrh r1, [r4, 0x6]
- bl sub_80EB3FC
- ldr r1, _080C0B30 @ =gUnknown_020387E8
- movs r0, 0x7
- b _080C0B78
- .align 2, 0
-_080C0B1C: .4byte gStringVar1
-_080C0B20: .4byte gSpeciesNames
-_080C0B24: .4byte gStringVar2
-_080C0B28: .4byte gMoveNames
-_080C0B2C: .4byte gStringVar3
-_080C0B30: .4byte gUnknown_020387E8
-_080C0B34:
- ldr r0, _080C0B58 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x16
- ldrb r2, [r4, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C0B5C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B60 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- b _080C0B7A
- .align 2, 0
-_080C0B58: .4byte gStringVar1
-_080C0B5C: .4byte gStringVar2
-_080C0B60: .4byte gSpeciesNames
-_080C0B64:
- ldr r0, _080C0B8C @ =gStringVar1
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0B90 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
-_080C0B74:
- ldr r1, _080C0B94 @ =gUnknown_020387E8
- movs r0, 0x2
-_080C0B78:
- strb r0, [r1]
-_080C0B7A:
- ldr r0, _080C0B98 @ =gUnknown_083D1524
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0B8C: .4byte gStringVar1
-_080C0B90: .4byte gSpeciesNames
-_080C0B94: .4byte gUnknown_020387E8
-_080C0B98: .4byte gUnknown_083D1524
- thumb_func_end DoTVShowBravoTrainerPokemonProfile
-
- thumb_func_start sub_80C0B9C
-sub_80C0B9C: @ 80C0B9C
- push {r4,r5,lr}
- ldr r0, _080C0BC8 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C0BD0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0BD4 @ =gUnknown_020387E8
- ldrb r5, [r0]
- adds r2, r0, 0
- cmp r5, 0xE
- bls _080C0BBE
- b _080C0DDE
-_080C0BBE:
- lsls r0, r5, 2
- ldr r1, _080C0BD8 @ =_080C0BDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0BC8: .4byte gUnknown_0202E8CC
-_080C0BCC: .4byte gSaveBlock1 + 0x2738
-_080C0BD0: .4byte gScriptResult
-_080C0BD4: .4byte gUnknown_020387E8
-_080C0BD8: .4byte _080C0BDC
- .align 2, 0
-_080C0BDC:
- .4byte _080C0C18
- .4byte _080C0C5C
- .4byte _080C0C8C
- .4byte _080C0CB0
- .4byte _080C0CDC
- .4byte _080C0D24
- .4byte _080C0D30
- .4byte _080C0D3C
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D42
- .4byte _080C0D5C
- .4byte _080C0D88
- .4byte _080C0D88
- .4byte _080C0DC0
-_080C0C18:
- ldr r0, _080C0C40 @ =gStringVar1
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0C44 @ =gStringVar2
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0C48 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrh r0, [r4, 0x16]
- cmp r0, 0x6
- bls _080C0C50
- ldr r1, _080C0C4C @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C40: .4byte gStringVar1
-_080C0C44: .4byte gStringVar2
-_080C0C48: .4byte gSpeciesNames
-_080C0C4C: .4byte gUnknown_020387E8
-_080C0C50:
- ldr r1, _080C0C58 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C58: .4byte gUnknown_020387E8
-_080C0C5C:
- ldrb r1, [r4, 0x1A]
- movs r0, 0
- bl sub_80BF088
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- bl sub_80BF088
- ldrb r0, [r4, 0x1C]
- cmp r0, 0x1
- bne _080C0C80
- ldr r1, _080C0C7C @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C7C: .4byte gUnknown_020387E8
-_080C0C80:
- ldr r1, _080C0C88 @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0C88: .4byte gUnknown_020387E8
-_080C0C8C:
- ldr r0, _080C0CAC @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldrh r1, [r4, 0x16]
- adds r1, 0x1
- movs r0, 0x1
- bl sub_80BF088
-_080C0CA2:
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- beq _080C0CFE
- b _080C0D18
- .align 2, 0
-_080C0CAC: .4byte gStringVar1
-_080C0CB0:
- ldr r0, _080C0CD0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0CD4 @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0CD8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- b _080C0CA2
- .align 2, 0
-_080C0CD0: .4byte gStringVar1
-_080C0CD4: .4byte gStringVar2
-_080C0CD8: .4byte gSpeciesNames
-_080C0CDC:
- ldr r0, _080C0D08 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0D0C @ =gStringVar2
- ldrh r2, [r4, 0x14]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0D10 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D18
-_080C0CFE:
- ldr r1, _080C0D14 @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D08: .4byte gStringVar1
-_080C0D0C: .4byte gStringVar2
-_080C0D10: .4byte gSpeciesNames
-_080C0D14: .4byte gUnknown_020387E8
-_080C0D18:
- ldr r1, _080C0D20 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D20: .4byte gUnknown_020387E8
-_080C0D24:
- ldr r0, _080C0D2C @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D2C: .4byte gStringVar1
-_080C0D30:
- ldr r0, _080C0D38 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0xC
- b _080C0D46
- .align 2, 0
-_080C0D38: .4byte gStringVar1
-_080C0D3C:
- movs r0, 0xB
- strb r0, [r2]
- b _080C0DDE
-_080C0D42:
- ldr r0, _080C0D54 @ =gStringVar1
- adds r1, r4, 0x2
-_080C0D46:
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r1, _080C0D58 @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D54: .4byte gStringVar1
-_080C0D58: .4byte gUnknown_020387E8
-_080C0D5C:
- ldr r0, _080C0D74 @ =gStringVar1
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080C0D7C
- ldr r1, _080C0D78 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D74: .4byte gStringVar1
-_080C0D78: .4byte gUnknown_020387E8
-_080C0D7C:
- ldr r1, _080C0D84 @ =gUnknown_020387E8
- movs r0, 0xD
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0D84: .4byte gUnknown_020387E8
-_080C0D88:
- ldr r0, _080C0DB0 @ =gStringVar1
- ldrh r1, [r4, 0x18]
- bl sub_80EB3FC
- ldr r0, _080C0DB4 @ =gStringVar2
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0DB8 @ =gStringVar3
- adds r1, r4, 0
- adds r1, 0xC
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r1, _080C0DBC @ =gUnknown_020387E8
- movs r0, 0xE
- strb r0, [r1]
- b _080C0DDE
- .align 2, 0
-_080C0DB0: .4byte gStringVar1
-_080C0DB4: .4byte gStringVar2
-_080C0DB8: .4byte gStringVar3
-_080C0DBC: .4byte gUnknown_020387E8
-_080C0DC0:
- ldr r0, _080C0DF0 @ =gStringVar1
- adds r1, r4, 0x2
- ldrb r2, [r4, 0x1D]
- bl sub_80C08FC
- ldr r0, _080C0DF4 @ =gStringVar2
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C0DF8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C0DDE:
- ldr r0, _080C0DFC @ =gUnknown_083D1548
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C0DF0: .4byte gStringVar1
-_080C0DF4: .4byte gStringVar2
-_080C0DF8: .4byte gSpeciesNames
-_080C0DFC: .4byte gUnknown_083D1548
- thumb_func_end sub_80C0B9C
-
- thumb_func_start DoTVShowTodaysSmartShopper
-DoTVShowTodaysSmartShopper: @ 80C0E00
- push {r4-r6,lr}
- ldr r0, _080C0E2C @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C0E34 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C0E38 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xC
- bls _080C0E22
- b _080C1014
-_080C0E22:
- lsls r0, r6, 2
- ldr r1, _080C0E3C @ =_080C0E40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C0E2C: .4byte gUnknown_0202E8CC
-_080C0E30: .4byte gSaveBlock1 + 0x2738
-_080C0E34: .4byte gScriptResult
-_080C0E38: .4byte gUnknown_020387E8
-_080C0E3C: .4byte _080C0E40
- .align 2, 0
-_080C0E40:
- .4byte _080C0E74
- .4byte _080C0EB0
- .4byte _080C0EF8
- .4byte _080C0F0A
- .4byte _080C0EF8
- .4byte _080C0EF8
- .4byte _080C0F34
- .4byte _080C0F64
- .4byte _080C0F94
- .4byte _080C0FA0
- .4byte _080C0FAE
- .4byte _080C0FC0
- .4byte _080C1004
-_080C0E74:
- ldr r0, _080C0E98 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r0, _080C0E9C @ =gStringVar2
- ldrb r1, [r5, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0EA4
- ldr r1, _080C0EA0 @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0E98: .4byte gStringVar1
-_080C0E9C: .4byte gStringVar2
-_080C0EA0: .4byte gUnknown_020387E8
-_080C0EA4:
- ldr r1, _080C0EAC @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0EAC: .4byte gUnknown_020387E8
-_080C0EB0:
- ldr r0, _080C0EEC @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C0EF0 @ =gStringVar2
- ldrh r0, [r5, 0x6]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xC]
- movs r0, 0x2
- bl sub_80BF088
- ldr r4, _080C0EF4 @ =gUnknown_020387E8
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C1014
- .align 2, 0
-_080C0EEC: .4byte gStringVar1
-_080C0EF0: .4byte gStringVar2
-_080C0EF4: .4byte gUnknown_020387E8
-_080C0EF8:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F04
- movs r0, 0x6
- strb r0, [r2]
- b _080C1014
-_080C0F04:
- movs r0, 0xA
- strb r0, [r2]
- b _080C1014
-_080C0F0A:
- ldrh r1, [r5, 0xC]
- adds r1, 0x1
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _080C0F28
- ldr r1, _080C0F24 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F24: .4byte gUnknown_020387E8
-_080C0F28:
- ldr r1, _080C0F30 @ =gUnknown_020387E8
- movs r0, 0xA
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F30: .4byte gUnknown_020387E8
-_080C0F34:
- ldr r4, _080C0F5C @ =gStringVar2
- ldrh r0, [r5, 0x8]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0xE]
- movs r0, 0x2
- bl sub_80BF088
- ldrh r0, [r5, 0xA]
- cmp r0, 0
- beq _080C0F7C
- ldr r1, _080C0F60 @ =gUnknown_020387E8
- movs r0, 0x7
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F5C: .4byte gStringVar2
-_080C0F60: .4byte gUnknown_020387E8
-_080C0F64:
- ldr r4, _080C0F8C @ =gStringVar2
- ldrh r0, [r5, 0xA]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF088
-_080C0F7C:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- beq _080C0FE2
- ldr r1, _080C0F90 @ =gUnknown_020387E8
- movs r0, 0x9
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0F8C: .4byte gStringVar2
-_080C0F90: .4byte gUnknown_020387E8
-_080C0F94:
- ldrh r0, [r5, 0xC]
- cmp r0, 0xFE
- bls _080C0FBA
- movs r0, 0xC
- strb r0, [r2]
- b _080C1014
-_080C0FA0:
- movs r0, 0x1
- adds r1, r5, 0
- bl sub_80BF154
- bl TVShowDone
- b _080C1014
-_080C0FAE:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FBA
- movs r0, 0x8
- strb r0, [r2]
- b _080C1014
-_080C0FBA:
- movs r0, 0x9
- strb r0, [r2]
- b _080C1014
-_080C0FC0:
- ldr r0, _080C0FEC @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C0FF0 @ =gStringVar2
- ldrh r0, [r5, 0x6]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r0, [r5, 0x2]
- cmp r0, 0x1
- bne _080C0FF8
-_080C0FE2:
- ldr r1, _080C0FF4 @ =gUnknown_020387E8
- movs r0, 0x8
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C0FEC: .4byte gStringVar1
-_080C0FF0: .4byte gStringVar2
-_080C0FF4: .4byte gUnknown_020387E8
-_080C0FF8:
- ldr r1, _080C1000 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C1014
- .align 2, 0
-_080C1000: .4byte gUnknown_020387E8
-_080C1004:
- ldr r0, _080C1028 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- bl TVShowDone
-_080C1014:
- ldr r0, _080C102C @ =gUnknown_083D14F0
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1028: .4byte gStringVar1
-_080C102C: .4byte gUnknown_083D14F0
- thumb_func_end DoTVShowTodaysSmartShopper
-
- thumb_func_start DoTVShowTheNameRaterShow
-DoTVShowTheNameRaterShow: @ 80C1030
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080C1060 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738
- adds r6, r0, r1
- ldr r1, _080C1068 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C106C @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x12
- bls _080C1054
- b _080C138A
-_080C1054:
- lsls r0, r7, 2
- ldr r1, _080C1070 @ =_080C1074
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1060: .4byte gUnknown_0202E8CC
-_080C1064: .4byte gSaveBlock1 + 0x2738
-_080C1068: .4byte gScriptResult
-_080C106C: .4byte gUnknown_020387E8
-_080C1070: .4byte _080C1074
- .align 2, 0
-_080C1074:
- .4byte _080C10C0
- .4byte _080C1108
- .4byte _080C112A
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1108
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C1170
- .4byte _080C136C
- .4byte _080C11CC
- .4byte _080C1228
- .4byte _080C127C
- .4byte _080C12D4
- .4byte _080C1314
- .4byte _080C1370
-_080C10C0:
- ldr r0, _080C10F4 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- ldr r0, _080C10F8 @ =gStringVar2
- ldrh r2, [r6, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C10FC @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1100 @ =gStringVar3
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldr r4, _080C1104 @ =gUnknown_020387E8
- adds r0, r6, 0
- bl sub_80BF7E8
- adds r0, 0x1
- strb r0, [r4]
- b _080C138A
- .align 2, 0
-_080C10F4: .4byte gStringVar1
-_080C10F8: .4byte gStringVar2
-_080C10FC: .4byte gSpeciesNames
-_080C1100: .4byte gStringVar3
-_080C1104: .4byte gUnknown_020387E8
-_080C1108:
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C1114
- movs r0, 0x9
- strb r0, [r2]
- b _080C138A
-_080C1114:
- cmp r0, 0x1
- bne _080C111E
- movs r0, 0xA
- strb r0, [r2]
- b _080C138A
-_080C111E:
- cmp r0, 0x2
- beq _080C1124
- b _080C138A
-_080C1124:
- movs r0, 0xB
- strb r0, [r2]
- b _080C138A
-_080C112A:
- ldr r0, _080C1144 @ =gStringVar1
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- ldrb r0, [r6, 0x1A]
- cmp r0, 0
- bne _080C114C
- ldr r1, _080C1148 @ =gUnknown_020387E8
- movs r0, 0x9
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1144: .4byte gStringVar1
-_080C1148: .4byte gUnknown_020387E8
-_080C114C:
- cmp r0, 0x1
- bne _080C115C
- ldr r1, _080C1158 @ =gUnknown_020387E8
- movs r0, 0xA
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1158: .4byte gUnknown_020387E8
-_080C115C:
- cmp r0, 0x2
- beq _080C1162
- b _080C138A
-_080C1162:
- ldr r1, _080C116C @ =gUnknown_020387E8
- movs r0, 0xB
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C116C: .4byte gUnknown_020387E8
-_080C1170:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11BC @ =gStringVar3
- ldr r4, _080C11C0 @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C11C4 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- adds r0, r4, 0
- bl sub_80C08FC
- ldr r1, _080C11C8 @ =gUnknown_020387E8
- movs r0, 0xC
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C11BC: .4byte gStringVar3
-_080C11C0: .4byte gStringVar1
-_080C11C4: .4byte gStringVar2
-_080C11C8: .4byte gUnknown_020387E8
-_080C11CC:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1218 @ =gStringVar3
- ldr r4, _080C121C @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1220 @ =gStringVar2
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl sub_80C08FC
- ldr r1, _080C1224 @ =gUnknown_020387E8
- movs r0, 0xE
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1218: .4byte gStringVar3
-_080C121C: .4byte gStringVar1
-_080C1220: .4byte gStringVar2
-_080C1224: .4byte gUnknown_020387E8
-_080C1228:
- movs r5, 0
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_80BF820
- ldr r0, _080C1270 @ =gStringVar3
- ldr r4, _080C1274 @ =gStringVar1
- ldrb r2, [r6, 0x1E]
- adds r1, r4, 0
- bl sub_80C08FC
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1278 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- adds r0, r4, 0
- bl sub_80C08FC
- b _080C1354
- .align 2, 0
-_080C1270: .4byte gStringVar3
-_080C1274: .4byte gStringVar1
-_080C1278: .4byte gStringVar2
-_080C127C:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C12C4 @ =gStringVar1
- ldr r4, _080C12C8 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- ldrh r1, [r6, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C12CC @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C12D0 @ =gUnknown_020387E8
- movs r0, 0x10
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C12C4: .4byte gStringVar1
-_080C12C8: .4byte gStringVar2
-_080C12CC: .4byte gSpeciesNames
-_080C12D0: .4byte gUnknown_020387E8
-_080C12D4:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C1308 @ =gStringVar3
- ldr r1, _080C130C @ =gStringVar1
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldrh r0, [r6, 0x2]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl sub_80BF820
- ldr r1, _080C1310 @ =gUnknown_020387E8
- movs r0, 0x11
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C1308: .4byte gStringVar3
-_080C130C: .4byte gStringVar1
-_080C1310: .4byte gUnknown_020387E8
-_080C1314:
- movs r0, 0
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_80BF820
- ldr r0, _080C135C @ =gStringVar1
- ldr r4, _080C1360 @ =gStringVar2
- ldrb r2, [r6, 0x1F]
- adds r1, r4, 0
- bl sub_80C08FC
- ldrh r0, [r6, 0x1C]
- str r0, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80BF820
- ldrh r1, [r6, 0x1C]
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080C1364 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
-_080C1354:
- ldr r1, _080C1368 @ =gUnknown_020387E8
- movs r0, 0x12
- strb r0, [r1]
- b _080C138A
- .align 2, 0
-_080C135C: .4byte gStringVar1
-_080C1360: .4byte gStringVar2
-_080C1364: .4byte gSpeciesNames
-_080C1368: .4byte gUnknown_020387E8
-_080C136C:
- movs r7, 0x12
- strb r7, [r2]
-_080C1370:
- ldr r0, _080C13A0 @ =gStringVar1
- adds r1, r6, 0x4
- ldrb r2, [r6, 0x1F]
- bl sub_80C08FC
- ldr r0, _080C13A4 @ =gStringVar2
- adds r1, r6, 0
- adds r1, 0xF
- ldrb r2, [r6, 0x1E]
- bl sub_80C08FC
- bl TVShowDone
-_080C138A:
- ldr r0, _080C13A8 @ =gUnknown_083D1584
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C13A0: .4byte gStringVar1
-_080C13A4: .4byte gStringVar2
-_080C13A8: .4byte gUnknown_083D1584
- thumb_func_end DoTVShowTheNameRaterShow
-
- thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
-DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
- push {r4-r6,lr}
- ldr r0, _080C13D8 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C13E0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C13E4 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r2, r0, 0
- cmp r6, 0xB
- bls _080C13CE
- b _080C15DC
-_080C13CE:
- lsls r0, r6, 2
- ldr r1, _080C13E8 @ =_080C13EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C13D8: .4byte gUnknown_0202E8CC
-_080C13DC: .4byte gSaveBlock1 + 0x2738
-_080C13E0: .4byte gScriptResult
-_080C13E4: .4byte gUnknown_020387E8
-_080C13E8: .4byte _080C13EC
- .align 2, 0
-_080C13EC:
- .4byte _080C141C
- .4byte _080C1470
- .4byte _080C1476
- .4byte _080C14B0
- .4byte _080C14E8
- .4byte _080C14EE
- .4byte _080C1524
- .4byte _080C1578
- .4byte _080C1578
- .4byte _080C15A8
- .4byte _080C15A8
- .4byte _080C15D8
-_080C141C:
- ldr r0, _080C1450 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1454 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1458 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C145C @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldrb r0, [r5, 0xF]
- cmp r0, 0x1
- bne _080C1464
- ldr r1, _080C1460 @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1450: .4byte gStringVar1
-_080C1454: .4byte gStringVar2
-_080C1458: .4byte gSpeciesNames
-_080C145C: .4byte gStringVar3
-_080C1460: .4byte gUnknown_020387E8
-_080C1464:
- ldr r1, _080C146C @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C146C: .4byte gUnknown_020387E8
-_080C1470:
- movs r0, 0x2
- strb r0, [r2]
- b _080C15DC
-_080C1476:
- ldr r4, _080C149C @ =gStringVar2
- ldrb r0, [r5, 0xF]
- bl itemid_get_item
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldrb r1, [r5, 0x12]
- movs r0, 0x2
- bl sub_80BF088
- ldrb r0, [r5, 0x12]
- cmp r0, 0x3
- bhi _080C14A4
- ldr r1, _080C14A0 @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C149C: .4byte gStringVar2
-_080C14A0: .4byte gUnknown_020387E8
-_080C14A4:
- ldr r1, _080C14AC @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C14AC: .4byte gUnknown_020387E8
-_080C14B0:
- ldr r0, _080C14D8 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C14DC @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C14E0 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C14E4 @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- b _080C150A
- .align 2, 0
-_080C14D8: .4byte gStringVar1
-_080C14DC: .4byte gStringVar2
-_080C14E0: .4byte gSpeciesNames
-_080C14E4: .4byte gStringVar3
-_080C14E8:
- movs r0, 0x6
- strb r0, [r2]
- b _080C15DC
-_080C14EE:
- ldr r0, _080C1514 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1518 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C151C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
-_080C150A:
- ldr r1, _080C1520 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C15DC
- .align 2, 0
-_080C1514: .4byte gStringVar1
-_080C1518: .4byte gStringVar2
-_080C151C: .4byte gSpeciesNames
-_080C1520: .4byte gUnknown_020387E8
-_080C1524:
- ldr r0, _080C1564 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x13
- ldrb r2, [r5, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1568 @ =gStringVar2
- ldrh r2, [r5, 0x10]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C156C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1570 @ =gStringVar3
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldr r4, _080C1574 @ =gUnknown_020387E8
- bl Random
- ldrb r2, [r4]
- adds r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, r2
- strb r0, [r4]
- b _080C15DC
- .align 2, 0
-_080C1564: .4byte gStringVar1
-_080C1568: .4byte gStringVar2
-_080C156C: .4byte gSpeciesNames
-_080C1570: .4byte gStringVar3
-_080C1574: .4byte gUnknown_020387E8
-_080C1578:
- ldr r0, _080C159C @ =gStringVar1
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15A0 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15A4 @ =gStringVar2
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
- ldrh r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80BF638
- b _080C15C2
- .align 2, 0
-_080C159C: .4byte gStringVar1
-_080C15A0: .4byte gSpeciesNames
-_080C15A4: .4byte gStringVar2
-_080C15A8:
- ldr r0, _080C15C8 @ =gStringVar1
- ldrh r1, [r5, 0x10]
- movs r4, 0xB
- muls r1, r4
- ldr r2, _080C15CC @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C15D0 @ =gStringVar2
- adds r1, r5, 0x4
- ldrb r2, [r5, 0x3]
- bl sub_80C08FC
-_080C15C2:
- ldr r0, _080C15D4 @ =gUnknown_020387E8
- strb r4, [r0]
- b _080C15DC
- .align 2, 0
-_080C15C8: .4byte gStringVar1
-_080C15CC: .4byte gSpeciesNames
-_080C15D0: .4byte gStringVar2
-_080C15D4: .4byte gUnknown_020387E8
-_080C15D8:
- bl TVShowDone
-_080C15DC:
- ldr r0, _080C15F0 @ =gUnknown_083D14C0
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C15F0: .4byte gUnknown_083D14C0
- thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
-
- thumb_func_start DoTVShowPokemonTodayFailedCapture
-DoTVShowPokemonTodayFailedCapture: @ 80C15F4
- push {r4,r5,lr}
- ldr r0, _080C1620 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1628 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C162C @ =gUnknown_020387E8
- ldrb r5, [r0]
- cmp r5, 0x6
- bls _080C1614
- b _080C173C
-_080C1614:
- lsls r0, r5, 2
- ldr r1, _080C1630 @ =_080C1634
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1620: .4byte gUnknown_0202E8CC
-_080C1624: .4byte gSaveBlock1 + 0x2738
-_080C1628: .4byte gScriptResult
-_080C162C: .4byte gUnknown_020387E8
-_080C1630: .4byte _080C1634
- .align 2, 0
-_080C1634:
- .4byte _080C1650
- .4byte _080C1684
- .4byte _080C16D8
- .4byte _080C16D8
- .4byte _080C171C
- .4byte _080C171C
- .4byte _080C1738
-_080C1650:
- ldr r0, _080C1674 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r0, _080C1678 @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C167C @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1680 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1674: .4byte gStringVar1
-_080C1678: .4byte gStringVar2
-_080C167C: .4byte gSpeciesNames
-_080C1680: .4byte gUnknown_020387E8
-_080C1684:
- ldr r0, _080C16B8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r0, _080C16BC @ =gStringVar2
- ldrb r1, [r4, 0x12]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C16C0 @ =gStringVar3
- ldrh r2, [r4, 0xE]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C16C4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r0, [r4, 0x11]
- cmp r0, 0x1
- bne _080C16CC
- ldr r1, _080C16C8 @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16B8: .4byte gStringVar1
-_080C16BC: .4byte gStringVar2
-_080C16C0: .4byte gStringVar3
-_080C16C4: .4byte gSpeciesNames
-_080C16C8: .4byte gUnknown_020387E8
-_080C16CC:
- ldr r1, _080C16D4 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C16D4: .4byte gUnknown_020387E8
-_080C16D8:
- ldr r0, _080C1708 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- bl sub_80BF088
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080C1710
- ldr r1, _080C170C @ =gUnknown_020387E8
- movs r0, 0x5
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1708: .4byte gStringVar1
-_080C170C: .4byte gUnknown_020387E8
-_080C1710:
- ldr r1, _080C1718 @ =gUnknown_020387E8
- movs r0, 0x4
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1718: .4byte gUnknown_020387E8
-_080C171C:
- ldr r0, _080C1730 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x2]
- bl sub_80C08FC
- ldr r1, _080C1734 @ =gUnknown_020387E8
- movs r0, 0x6
- strb r0, [r1]
- b _080C173C
- .align 2, 0
-_080C1730: .4byte gStringVar1
-_080C1734: .4byte gUnknown_020387E8
-_080C1738:
- bl TVShowDone
-_080C173C:
- ldr r0, _080C1750 @ =gUnknown_083D15D0
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1750: .4byte gUnknown_083D15D0
- thumb_func_end DoTVShowPokemonTodayFailedCapture
-
- thumb_func_start DoTVShowPokemonFanClubLetter
-DoTVShowPokemonFanClubLetter: @ 80C1754
- push {r4-r7,lr}
- ldr r0, _080C1780 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C1788 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C178C @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r6, r0, 0
- cmp r7, 0x33
- bls _080C1776
- b _080C1960
-_080C1776:
- lsls r0, r7, 2
- ldr r1, _080C1790 @ =_080C1794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1780: .4byte gUnknown_0202E8CC
-_080C1784: .4byte gSaveBlock1 + 0x2738
-_080C1788: .4byte gScriptResult
-_080C178C: .4byte gUnknown_020387E8
-_080C1790: .4byte _080C1794
- .align 2, 0
-_080C1794:
- .4byte _080C1864
- .4byte _080C1898
- .4byte _080C18C4
- .4byte _080C18CA
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18E2
- .4byte _080C18F4
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1960
- .4byte _080C1916
- .4byte _080C193C
-_080C1864:
- ldr r0, _080C1888 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl sub_80C08FC
- ldr r0, _080C188C @ =gStringVar2
- ldrh r2, [r5, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1890 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r1, _080C1894 @ =gUnknown_020387E8
- movs r0, 0x32
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C1888: .4byte gStringVar1
-_080C188C: .4byte gStringVar2
-_080C1890: .4byte gSpeciesNames
-_080C1894: .4byte gUnknown_020387E8
-_080C1898:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r2, r0, 0x1
- cmp r2, 0x1
- bne _080C18B8
- ldr r1, _080C18B4 @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18B4: .4byte gUnknown_020387E8
-_080C18B8:
- ldr r1, _080C18C0 @ =gUnknown_020387E8
- adds r0, r2, 0x2
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18C0: .4byte gUnknown_020387E8
-_080C18C4:
- movs r0, 0x33
- strb r0, [r6]
- b _080C1960
-_080C18CA:
- bl Random
- ldrb r4, [r6]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r6]
- b _080C1960
-_080C18E2:
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C18F0 @ =gUnknown_020387E8
- movs r0, 0x7
- strb r0, [r1]
- b _080C1960
- .align 2, 0
-_080C18F0: .4byte gUnknown_020387E8
-_080C18F4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- bl __umodsi3
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x2
- adds r1, r2, 0
- bl sub_80BF088
- bl TVShowDone
- b _080C1960
-_080C1916:
- ldr r4, _080C1934 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1938 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1934: .4byte gStringVar4
-_080C1938: .4byte gUnknown_020387E8
-_080C193C:
- ldr r4, _080C1958 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C195C @ =gUnknown_020387E8
- movs r0, 0x3
- strb r0, [r1]
- b _080C196C
- .align 2, 0
-_080C1958: .4byte gStringVar4
-_080C195C: .4byte gUnknown_020387E8
-_080C1960:
- ldr r0, _080C1974 @ =gUnknown_083D1470
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C196C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1974: .4byte gUnknown_083D1470
- thumb_func_end DoTVShowPokemonFanClubLetter
-
- thumb_func_start DoTVShowRecentHappenings
-DoTVShowRecentHappenings: @ 80C1978
- push {r4-r7,lr}
- ldr r0, _080C19A4 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738
- adds r5, r0, r1
- ldr r1, _080C19AC @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080C19B0 @ =gUnknown_020387E8
- ldrb r6, [r0]
- adds r7, r0, 0
- cmp r6, 0x32
- bls _080C199A
- b _080C1AF0
-_080C199A:
- lsls r0, r6, 2
- ldr r1, _080C19B4 @ =_080C19B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C19A4: .4byte gUnknown_0202E8CC
-_080C19A8: .4byte gSaveBlock1 + 0x2738
-_080C19AC: .4byte gScriptResult
-_080C19B0: .4byte gUnknown_020387E8
-_080C19B4: .4byte _080C19B8
- .align 2, 0
-_080C19B8:
- .4byte _080C1A84
- .4byte _080C1AA8
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC0
- .4byte _080C1AC6
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1AF0
- .4byte _080C1ACC
-_080C1A84:
- ldr r0, _080C1AA0 @ =gStringVar1
- adds r1, r5, 0
- adds r1, 0x10
- ldrb r2, [r5, 0x18]
- bl sub_80C08FC
- adds r0, r5, 0
- bl sub_80BF79C
- ldr r1, _080C1AA4 @ =gUnknown_020387E8
- movs r0, 0x32
- strb r0, [r1]
- b _080C1AF0
- .align 2, 0
-_080C1AA0: .4byte gStringVar1
-_080C1AA4: .4byte gUnknown_020387E8
-_080C1AA8:
- bl Random
- ldrb r4, [r7]
- adds r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, r4
- strb r0, [r7]
- b _080C1AF0
-_080C1AC0:
- movs r0, 0x5
- strb r0, [r7]
- b _080C1AF0
-_080C1AC6:
- bl TVShowDone
- b _080C1AF0
-_080C1ACC:
- ldr r4, _080C1AE8 @ =gStringVar4
- adds r1, r5, 0x4
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldMessage
- ldr r1, _080C1AEC @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1AFC
- .align 2, 0
-_080C1AE8: .4byte gStringVar4
-_080C1AEC: .4byte gUnknown_020387E8
-_080C1AF0:
- ldr r0, _080C1B04 @ =gUnknown_083D1490
- lsls r1, r6, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_080C1AFC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1B04: .4byte gUnknown_083D1490
- thumb_func_end DoTVShowRecentHappenings
-
- thumb_func_start DoTVShowPokemonFanClubOpinions
-DoTVShowPokemonFanClubOpinions: @ 80C1B08
- push {r4-r6,lr}
- ldr r0, _080C1B30 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1B38 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1B3C @ =gUnknown_020387E8
- ldrb r5, [r6]
- cmp r5, 0x3
- bgt _080C1B40
- cmp r5, 0x1
- bge _080C1B88
- cmp r5, 0
- beq _080C1B46
- b _080C1BD6
- .align 2, 0
-_080C1B30: .4byte gUnknown_0202E8CC
-_080C1B34: .4byte gSaveBlock1 + 0x2738
-_080C1B38: .4byte gScriptResult
-_080C1B3C: .4byte gUnknown_020387E8
-_080C1B40:
- cmp r5, 0x4
- beq _080C1BC0
- b _080C1BD6
-_080C1B46:
- ldr r0, _080C1B78 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1B7C @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1B80 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1B84 @ =gStringVar3
- adds r1, r4, 0
- adds r1, 0x10
- ldrb r2, [r4, 0xE]
- bl sub_80C08FC
- ldrb r0, [r4, 0x4]
- lsrs r0, 4
- adds r0, 0x1
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1B78: .4byte gStringVar1
-_080C1B7C: .4byte gStringVar2
-_080C1B80: .4byte gSpeciesNames
-_080C1B84: .4byte gStringVar3
-_080C1B88:
- ldr r0, _080C1BB0 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1BB4 @ =gStringVar2
- ldrh r2, [r4, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1BB8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1BBC @ =gStringVar3
- ldrh r1, [r4, 0x1C]
- bl sub_80EB3FC
- movs r0, 0x4
- strb r0, [r6]
- b _080C1BD6
- .align 2, 0
-_080C1BB0: .4byte gStringVar1
-_080C1BB4: .4byte gStringVar2
-_080C1BB8: .4byte gSpeciesNames
-_080C1BBC: .4byte gStringVar3
-_080C1BC0:
- ldr r0, _080C1BE8 @ =gStringVar1
- adds r1, r4, 0x5
- ldrb r2, [r4, 0xD]
- bl sub_80C08FC
- ldr r0, _080C1BEC @ =gStringVar3
- ldrh r1, [r4, 0x1E]
- bl sub_80EB3FC
- bl TVShowDone
-_080C1BD6:
- ldr r0, _080C1BF0 @ =gUnknown_083D14A8
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1BE8: .4byte gStringVar1
-_080C1BEC: .4byte gStringVar3
-_080C1BF0: .4byte gUnknown_083D14A8
- thumb_func_end DoTVShowPokemonFanClubOpinions
-
- thumb_func_start nullsub_22
-nullsub_22: @ 80C1BF4
- bx lr
- thumb_func_end nullsub_22
-
- thumb_func_start DoTVShowPokemonNewsMassOutbreak
-DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
- push {r4,lr}
- ldr r0, _080C1C40 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738
- adds r4, r0
- ldr r0, _080C1C48 @ =gStringVar1
- ldrb r1, [r4, 0x10]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1C4C @ =gStringVar2
- ldrh r2, [r4, 0xC]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1C50 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
- bl StartMassOutbreak
- ldr r1, _080C1C54 @ =gUnknown_083D14BC
- ldr r0, _080C1C58 @ =gUnknown_020387E8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1C40: .4byte gUnknown_0202E8CC
-_080C1C44: .4byte gSaveBlock1 + 0x2738
-_080C1C48: .4byte gStringVar1
-_080C1C4C: .4byte gStringVar2
-_080C1C50: .4byte gSpeciesNames
-_080C1C54: .4byte gUnknown_083D14BC
-_080C1C58: .4byte gUnknown_020387E8
- thumb_func_end DoTVShowPokemonNewsMassOutbreak
-
- thumb_func_start DoTVShowInSearchOfTrainers
-DoTVShowInSearchOfTrainers: @ 80C1C5C
- push {r4-r7,lr}
- ldr r0, _080C1C7C @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080C1C80 @ =gUnknown_020387E8
- ldrb r7, [r0]
- adds r2, r0, 0
- cmp r7, 0x8
- bls _080C1C70
- b _080C1DF8
-_080C1C70:
- lsls r0, r7, 2
- ldr r1, _080C1C84 @ =_080C1C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C1C7C: .4byte gScriptResult
-_080C1C80: .4byte gUnknown_020387E8
-_080C1C84: .4byte _080C1C88
- .align 2, 0
-_080C1C88:
- .4byte _080C1CAC
- .4byte _080C1CF0
- .4byte _080C1CF6
- .4byte _080C1D44
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB0
- .4byte _080C1DB6
-_080C1CAC:
- ldr r0, _080C1CD0 @ =gStringVar1
- ldr r4, _080C1CD4 @ =gSaveBlock1
- ldr r2, _080C1CD8 @ =0x00002b18
- adds r1, r4, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1CDC @ =0x00002b19
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080C1CE4
- ldr r1, _080C1CE0 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CD0: .4byte gStringVar1
-_080C1CD4: .4byte gSaveBlock1
-_080C1CD8: .4byte 0x00002b18
-_080C1CDC: .4byte 0x00002b19
-_080C1CE0: .4byte gUnknown_020387E8
-_080C1CE4:
- ldr r1, _080C1CEC @ =gUnknown_020387E8
- movs r0, 0x2
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1CEC: .4byte gUnknown_020387E8
-_080C1CF0:
- movs r0, 0x2
- strb r0, [r2]
- b _080C1DF8
-_080C1CF6:
- ldr r0, _080C1D0C @ =gSaveBlock1
- ldr r1, _080C1D10 @ =0x00002b1a
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C1D14
- movs r0, 0x4
- strb r0, [r2]
- b _080C1DF8
- .align 2, 0
-_080C1D0C: .4byte gSaveBlock1
-_080C1D10: .4byte 0x00002b1a
-_080C1D14:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080C1D22
- movs r0, 0x5
- strb r0, [r2]
- b _080C1DF8
-_080C1D22:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080C1D30
- movs r0, 0x6
- strb r0, [r2]
- b _080C1DF8
-_080C1D30:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C1D3E
- movs r0, 0x7
- strb r0, [r2]
- b _080C1DF8
-_080C1D3E:
- movs r0, 0x3
- strb r0, [r2]
- b _080C1DF8
-_080C1D44:
- ldr r0, _080C1D88 @ =gStringVar1
- ldr r4, _080C1D8C @ =gSaveBlock1
- ldr r2, _080C1D90 @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1D94 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1D98 @ =gStringVar2
- ldr r2, _080C1D9C @ =0x00002b14
- adds r1, r4, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _080C1DA0 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, _080C1DA4 @ =gStringVar3
- ldr r1, _080C1DA8 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1DAC @ =gUnknown_020387E8
- movs r0, 0x8
- strb r0, [r1]
- b _080C1DF8
- .align 2, 0
-_080C1D88: .4byte gStringVar1
-_080C1D8C: .4byte gSaveBlock1
-_080C1D90: .4byte 0x00002b10
-_080C1D94: .4byte gSpeciesNames
-_080C1D98: .4byte gStringVar2
-_080C1D9C: .4byte 0x00002b14
-_080C1DA0: .4byte gMoveNames
-_080C1DA4: .4byte gStringVar3
-_080C1DA8: .4byte 0x00002b12
-_080C1DAC: .4byte gUnknown_020387E8
-_080C1DB0:
- movs r0, 0x8
- strb r0, [r2]
- b _080C1DF8
-_080C1DB6:
- ldr r0, _080C1E0C @ =gStringVar1
- ldr r4, _080C1E10 @ =gSaveBlock1
- ldr r2, _080C1E14 @ =0x00002b16
- adds r1, r4, r2
- ldrh r1, [r1]
- bl sub_80EB3FC
- ldr r0, _080C1E18 @ =gStringVar2
- ldr r2, _080C1E1C @ =0x00002b10
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r6, 0xB
- muls r1, r6
- ldr r5, _080C1E20 @ =gSpeciesNames
- adds r1, r5
- bl StringCopy
- ldr r0, _080C1E24 @ =gStringVar3
- ldr r1, _080C1E28 @ =0x00002b12
- adds r4, r1
- ldrh r1, [r4]
- muls r1, r6
- adds r1, r5
- bl StringCopy
- ldr r1, _080C1E2C @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C1E30 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bl TakeTVShowInSearchOfTrainersOffTheAir
-_080C1DF8:
- ldr r0, _080C1E34 @ =gUnknown_083D1600
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1E0C: .4byte gStringVar1
-_080C1E10: .4byte gSaveBlock1
-_080C1E14: .4byte 0x00002b16
-_080C1E18: .4byte gStringVar2
-_080C1E1C: .4byte 0x00002b10
-_080C1E20: .4byte gSpeciesNames
-_080C1E24: .4byte gStringVar3
-_080C1E28: .4byte 0x00002b12
-_080C1E2C: .4byte gScriptResult
-_080C1E30: .4byte gUnknown_020387E8
-_080C1E34: .4byte gUnknown_083D1600
- thumb_func_end DoTVShowInSearchOfTrainers
-
- thumb_func_start DoTVShowPokemonAngler
-DoTVShowPokemonAngler: @ 80C1E38
- push {r4,r5,lr}
- ldr r0, _080C1E5C @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r0, _080C1E64 @ =gScriptResult
- movs r1, 0
- strh r1, [r0]
- ldrb r0, [r4, 0x2]
- ldrb r2, [r4, 0x3]
- cmp r0, r2
- bcs _080C1E6C
- ldr r0, _080C1E68 @ =gUnknown_020387E8
- strb r1, [r0]
- b _080C1E74
- .align 2, 0
-_080C1E5C: .4byte gUnknown_0202E8CC
-_080C1E60: .4byte gSaveBlock1 + 0x2738
-_080C1E64: .4byte gScriptResult
-_080C1E68: .4byte gUnknown_020387E8
-_080C1E6C:
- ldr r1, _080C1E80 @ =gUnknown_020387E8
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_080C1E74:
- ldrb r5, [r0]
- cmp r5, 0
- beq _080C1E84
- cmp r5, 0x1
- beq _080C1EBC
- b _080C1EE4
- .align 2, 0
-_080C1E80: .4byte gUnknown_020387E8
-_080C1E84:
- ldr r0, _080C1EB0 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl sub_80C08FC
- ldr r0, _080C1EB4 @ =gStringVar2
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1EB8 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x3]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
- b _080C1EE4
- .align 2, 0
-_080C1EB0: .4byte gStringVar1
-_080C1EB4: .4byte gStringVar2
-_080C1EB8: .4byte gSpeciesNames
-_080C1EBC:
- ldr r0, _080C1EF8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0x6]
- bl sub_80C08FC
- ldr r0, _080C1EFC @ =gStringVar2
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F00 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrb r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- bl TVShowDone
-_080C1EE4:
- ldr r0, _080C1F04 @ =gUnknown_083D15EC
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1EF8: .4byte gStringVar1
-_080C1EFC: .4byte gStringVar2
-_080C1F00: .4byte gSpeciesNames
-_080C1F04: .4byte gUnknown_083D15EC
- thumb_func_end DoTVShowPokemonAngler
-
- thumb_func_start DoTVShowTheWorldOfMasters
-DoTVShowTheWorldOfMasters: @ 80C1F08
- push {r4-r6,lr}
- ldr r0, _080C1F30 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738
- adds r4, r0, r1
- ldr r1, _080C1F38 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r6, _080C1F3C @ =gUnknown_020387E8
- ldrb r5, [r6]
- cmp r5, 0x1
- beq _080C1F6C
- cmp r5, 0x1
- bgt _080C1F40
- cmp r5, 0
- beq _080C1F46
- b _080C1FB6
- .align 2, 0
-_080C1F30: .4byte gUnknown_0202E8CC
-_080C1F34: .4byte gSaveBlock1 + 0x2738
-_080C1F38: .4byte gScriptResult
-_080C1F3C: .4byte gUnknown_020387E8
-_080C1F40:
- cmp r5, 0x2
- beq _080C1F8C
- b _080C1FB6
-_080C1F46:
- ldr r0, _080C1F68 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl sub_80C08FC
- ldrh r1, [r4, 0x6]
- movs r0, 0x1
- bl sub_80BF088
- ldrh r1, [r4, 0x2]
- movs r0, 0x2
- bl sub_80BF088
- movs r0, 0x1
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F68: .4byte gStringVar1
-_080C1F6C:
- ldr r0, _080C1F84 @ =gStringVar1
- ldrh r2, [r4, 0x8]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1F88 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- movs r0, 0x2
- strb r0, [r6]
- b _080C1FB6
- .align 2, 0
-_080C1F84: .4byte gStringVar1
-_080C1F88: .4byte gSpeciesNames
-_080C1F8C:
- ldr r0, _080C1FC8 @ =gStringVar1
- adds r1, r4, 0
- adds r1, 0x13
- ldrb r2, [r4, 0xB]
- bl sub_80C08FC
- ldr r0, _080C1FCC @ =gStringVar2
- ldrb r1, [r4, 0xA]
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080C1FD0 @ =gStringVar3
- ldrh r2, [r4, 0x4]
- movs r1, 0xB
- muls r1, r2
- ldr r2, _080C1FD4 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- bl TVShowDone
-_080C1FB6:
- ldr r0, _080C1FD8 @ =gUnknown_083D15F4
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C1FC8: .4byte gStringVar1
-_080C1FCC: .4byte gStringVar2
-_080C1FD0: .4byte gStringVar3
-_080C1FD4: .4byte gSpeciesNames
-_080C1FD8: .4byte gUnknown_083D15F4
- thumb_func_end DoTVShowTheWorldOfMasters
-
- thumb_func_start TVShowDone
-TVShowDone: @ 80C1FDC
- ldr r1, _080C2000 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, _080C2004 @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- ldr r2, _080C2008 @ =gSaveBlock1
- ldr r0, _080C200C @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080C2010 @ =0x00002739
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080C2000: .4byte gScriptResult
-_080C2004: .4byte gUnknown_020387E8
-_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gUnknown_0202E8CC
-_080C2010: .4byte 0x00002739
- thumb_func_end TVShowDone
-
- thumb_func_start sub_80C2014
-sub_80C2014: @ 80C2014
- ldr r1, _080C201C @ =gUnknown_020387E8
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080C201C: .4byte gUnknown_020387E8
- thumb_func_end sub_80C2014
-
- thumb_func_start sub_80C2020
-sub_80C2020: @ 80C2020
- push {r4,r5,lr}
- movs r5, 0x80
- lsls r5, 19
- movs r0, 0x40
- strh r0, [r5]
- ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _080C20F4 @ =gMenuWindow
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _080C20F8 @ =REG_BG0CNT
- movs r2, 0xF8
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C20FC @ =0x00001803
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080C2100 @ =0x00001c03
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080C2104 @ =0x00003a03
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2108 @ =REG_MOSAIC
- movs r2, 0
- strh r2, [r0]
- adds r1, 0x3A
- ldr r3, _080C210C @ =0x00003f3f
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r3, 0x11
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080C2110 @ =REG_WIN0H
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, 0xA
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- subs r0, 0x44
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldrh r0, [r5]
- movs r3, 0xFE
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r5]
- ldr r0, _080C2114 @ =gUnknown_030042A4
- strh r2, [r0]
- ldr r0, _080C2118 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r0, _080C211C @ =gUnknown_030042C0
- strh r2, [r0]
- ldr r0, _080C2120 @ =gUnknown_030041B4
- strh r2, [r0]
- ldr r0, _080C2124 @ =gUnknown_03004288
- strh r2, [r0]
- ldr r0, _080C2128 @ =gUnknown_03004280
- strh r2, [r0]
- ldr r0, _080C212C @ =gUnknown_030041B0
- strh r2, [r0]
- ldr r0, _080C2130 @ =gUnknown_030041B8
- strh r2, [r0]
- ldr r0, _080C2134 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _080C2138 @ =gUnknown_03004240
- strh r2, [r0]
- ldr r0, _080C213C @ =gUnknown_03004200
- strh r2, [r0]
- ldr r0, _080C2140 @ =gUnknown_03004244
- strh r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C20F0: .4byte gWindowConfig_81E6FA0
-_080C20F4: .4byte gMenuWindow
-_080C20F8: .4byte REG_BG0CNT
-_080C20FC: .4byte 0x00001803
-_080C2100: .4byte 0x00001c03
-_080C2104: .4byte 0x00003a03
-_080C2108: .4byte REG_MOSAIC
-_080C210C: .4byte 0x00003f3f
-_080C2110: .4byte REG_WIN0H
-_080C2114: .4byte gUnknown_030042A4
-_080C2118: .4byte gUnknown_030042A0
-_080C211C: .4byte gUnknown_030042C0
-_080C2120: .4byte gUnknown_030041B4
-_080C2124: .4byte gUnknown_03004288
-_080C2128: .4byte gUnknown_03004280
-_080C212C: .4byte gUnknown_030041B0
-_080C2130: .4byte gUnknown_030041B8
-_080C2134: .4byte gUnknown_030042C4
-_080C2138: .4byte gUnknown_03004240
-_080C213C: .4byte gUnknown_03004200
-_080C2140: .4byte gUnknown_03004244
- thumb_func_end sub_80C2020
-
- thumb_func_start sub_80C2144
-sub_80C2144: @ 80C2144
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- ldr r0, _080C220C @ =gUnknown_08D1977C
- mov r12, r0
- movs r5, 0
- ldr r1, _080C2210 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _080C2214 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_080C2162:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080C2162
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r12
- bl LZDecompressVram
- ldr r0, _080C2218 @ =gUnknown_08D1A490
- ldr r1, _080C221C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _080C2220 @ =gUnknown_08D1A364
- ldr r1, _080C2224 @ =0x0600e000
- bl LZDecompressVram
- ldr r0, _080C2228 @ =gUnknown_08D1A250
- ldr r1, _080C222C @ =0x0600f000
- bl LZDecompressVram
- bl sub_80C37E4
- ldr r0, _080C2230 @ =gUnknown_08D1A618
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadCompressedPalette
- ldr r0, _080C2234 @ =gWindowConfig_81E6FA0
- bl LoadFontDefaultPalette
- movs r6, 0
-_080C21C0:
- lsls r5, r6, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C3990
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80C39E4
- movs r5, 0
- lsls r1, r6, 1
- adds r2, r6, 0x1
- mov r12, r2
- lsls r4, 24
- asrs r7, r4, 24
- adds r1, r6
- lsls r1, 6
- lsls r4, r0, 24
-_080C21EC:
- ldr r6, _080C2238 @ =0x000060b2
- cmp r5, r7
- bge _080C21F4
- adds r6, 0x2
-_080C21F4:
- asrs r2, r4, 24
- adds r0, r2, 0
- cmp r2, 0
- bge _080C21FE
- negs r0, r2
-_080C21FE:
- cmp r5, r0
- bge _080C2240
- ldr r3, _080C223C @ =0x000060a4
- cmp r2, 0
- bge _080C2242
- adds r3, 0x2
- b _080C2242
- .align 2, 0
-_080C220C: .4byte gUnknown_08D1977C
-_080C2210: .4byte 0x040000d4
-_080C2214: .4byte 0x85000400
-_080C2218: .4byte gUnknown_08D1A490
-_080C221C: .4byte 0x0600d000
-_080C2220: .4byte gUnknown_08D1A364
-_080C2224: .4byte 0x0600e000
-_080C2228: .4byte gUnknown_08D1A250
-_080C222C: .4byte 0x0600f000
-_080C2230: .4byte gUnknown_08D1A618
-_080C2234: .4byte gWindowConfig_81E6FA0
-_080C2238: .4byte 0x000060b2
-_080C223C: .4byte 0x000060a4
-_080C2240:
- ldr r3, _080C2264 @ =0x000060a2
-_080C2242:
- ldr r2, _080C2268 @ =0x0600c166
- adds r0, r1, r2
- strh r6, [r0]
- adds r2, 0x40
- adds r0, r1, r2
- strh r3, [r0]
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, 0x9
- ble _080C21EC
- mov r6, r12
- cmp r6, 0x3
- ble _080C21C0
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2264: .4byte 0x000060a2
-_080C2268: .4byte 0x0600c166
- thumb_func_end sub_80C2144
-
- thumb_func_start sub_80C226C
-sub_80C226C: @ 80C226C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C2288 @ =gUnknown_02038695
- ldrb r0, [r0]
- cmp r5, r0
- bne _080C2294
- ldr r0, _080C228C @ =gUnknown_020238CC
- ldr r1, _080C2290 @ =gUnknown_083D17DC
- bl StringCopy
- adds r2, r0, 0
- b _080C2296
- .align 2, 0
-_080C2288: .4byte gUnknown_02038695
-_080C228C: .4byte gUnknown_020238CC
-_080C2290: .4byte gUnknown_083D17DC
-_080C2294:
- ldr r2, _080C22E8 @ =gUnknown_020238CC
-_080C2296:
- movs r4, 0xFC
- strb r4, [r2]
- movs r0, 0x6
- strb r0, [r2, 0x1]
- movs r0, 0x4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r6, r5, 6
- ldr r7, _080C22EC @ =gUnknown_02038572
- adds r1, r6, r7
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- strb r4, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- movs r0, 0x32
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r1, _080C22F0 @ =gUnknown_083D17E0
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080C22F4 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C22FC
- lsls r4, r5, 3
- subs r1, r4, r5
- lsls r1, 2
- ldr r0, _080C22F8 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- b _080C230A
- .align 2, 0
-_080C22E8: .4byte gUnknown_020238CC
-_080C22EC: .4byte gUnknown_02038572
-_080C22F0: .4byte gUnknown_083D17E0
-_080C22F4: .4byte gUnknown_0203869A
-_080C22F8: .4byte gLinkPlayers + 0x8
-_080C22FC:
- adds r1, r7, 0
- adds r1, 0xB
- adds r1, r6, r1
- adds r0, r2, 0
- bl StringCopy
- lsls r4, r5, 3
-_080C230A:
- ldr r0, _080C2334 @ =gMenuWindow
- ldr r1, _080C2338 @ =gUnknown_020238CC
- adds r2, r4, r5
- lsls r2, 18
- ldr r3, _080C233C @ =0x03020000
- adds r2, r3
- lsrs r2, 16
- lsls r3, r5, 1
- adds r3, r5
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x7
- bl sub_8003460
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2334: .4byte gMenuWindow
-_080C2338: .4byte gUnknown_020238CC
-_080C233C: .4byte 0x03020000
- thumb_func_end sub_80C226C
-
- thumb_func_start sub_80C2340
-sub_80C2340: @ 80C2340
- push {r4,lr}
- movs r4, 0
-_080C2344:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80C226C
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2344
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C2340
-
- thumb_func_start sub_80C2358
-sub_80C2358: @ 80C2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080C240C @ =gPaletteFade
- ldrb r0, [r5, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r5, 0x8]
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80C2020
- bl dp12_8087EA4
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl sub_80C2144
- bl sub_80C310C
- movs r0, 0
- movs r1, 0x1
- bl sub_80C30D4
- bl sub_80C2340
- ldr r4, _080C2410 @ =0x02018000
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x18
- bl memset
- adds r0, r4, 0
- adds r0, 0x18
- movs r1, 0
- movs r2, 0x50
- bl memset
- bl sub_80C33DC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrb r1, [r5, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5, 0x8]
- ldr r0, _080C2414 @ =sub_80C24F4
- movs r1, 0x5
- bl CreateTask
- strb r0, [r4, 0x2]
- ldr r0, _080C2418 @ =sub_80C2430
- bl SetMainCallback2
- ldr r1, _080C241C @ =gUnknown_03004200
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2420 @ =gUnknown_03004244
- ldr r2, _080C2424 @ =0x000080a0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080C2428 @ =sub_80C2F28
- movs r1, 0x14
- bl CreateTask
- bl sub_80C3F00
- movs r0, 0xDF
- lsls r0, 1
- bl PlayBGM
- ldr r0, _080C242C @ =sub_80C2448
- bl SetVBlankCallback
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C240C: .4byte gPaletteFade
-_080C2410: .4byte 0x02018000
-_080C2414: .4byte sub_80C24F4
-_080C2418: .4byte sub_80C2430
-_080C241C: .4byte gUnknown_03004200
-_080C2420: .4byte gUnknown_03004244
-_080C2424: .4byte 0x000080a0
-_080C2428: .4byte sub_80C2F28
-_080C242C: .4byte sub_80C2448
- thumb_func_end sub_80C2358
-
- thumb_func_start sub_80C2430
-sub_80C2430: @ 80C2430
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80C2430
-
- thumb_func_start sub_80C2448
-sub_80C2448: @ 80C2448
- push {lr}
- ldr r1, _080C24C0 @ =REG_BG0HOFS
- ldr r0, _080C24C4 @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24C8 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24CC @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D0 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D4 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24D8 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24DC @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _080C24E0 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _080C24E4 @ =gUnknown_030042C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24E8 @ =gUnknown_03004240
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _080C24EC @ =gUnknown_03004200
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _080C24F0 @ =gUnknown_03004244
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080C24C0: .4byte REG_BG0HOFS
-_080C24C4: .4byte gUnknown_030042A4
-_080C24C8: .4byte gUnknown_030042A0
-_080C24CC: .4byte gUnknown_030042C0
-_080C24D0: .4byte gUnknown_030041B4
-_080C24D4: .4byte gUnknown_03004288
-_080C24D8: .4byte gUnknown_03004280
-_080C24DC: .4byte gUnknown_030041B0
-_080C24E0: .4byte gUnknown_030041B8
-_080C24E4: .4byte gUnknown_030042C4
-_080C24E8: .4byte gUnknown_03004240
-_080C24EC: .4byte gUnknown_03004200
-_080C24F0: .4byte gUnknown_03004244
- thumb_func_end sub_80C2448
-
- thumb_func_start sub_80C24F4
-sub_80C24F4: @ 80C24F4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- ldr r0, _080C252C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C254E
- ldr r0, _080C2530 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2540
- ldr r0, _080C2534 @ =gOtherText_LinkStandby
- bl sub_80C3698
- ldr r1, _080C2538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C253C @ =sub_80C255C
- str r1, [r0]
- b _080C254E
- .align 2, 0
-_080C252C: .4byte gPaletteFade
-_080C2530: .4byte gUnknown_0203869A
-_080C2534: .4byte gOtherText_LinkStandby
-_080C2538: .4byte gTasks
-_080C253C: .4byte sub_80C255C
-_080C2540:
- ldr r0, _080C2554 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2558 @ =sub_80C2600
- str r0, [r1]
-_080C254E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2554: .4byte gTasks
-_080C2558: .4byte sub_80C2600
- thumb_func_end sub_80C24F4
-
- thumb_func_start sub_80C255C
-sub_80C255C: @ 80C255C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C258C
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C258C
- ldr r0, _080C2598 @ =sub_80C25A4
- movs r1, 0
- bl CreateTask
- ldr r1, _080C259C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C25A0 @ =TaskDummy
- str r1, [r0]
-_080C258C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2594: .4byte gReceivedRemoteLinkPlayers
-_080C2598: .4byte sub_80C25A4
-_080C259C: .4byte gTasks
-_080C25A0: .4byte TaskDummy
- thumb_func_end sub_80C255C
-
- thumb_func_start sub_80C25A4
-sub_80C25A4: @ 80C25A4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C25B8 @ =sub_80C89DC
- ldr r2, _080C25BC @ =sub_80C25C0
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C25B8: .4byte sub_80C89DC
-_080C25BC: .4byte sub_80C25C0
- thumb_func_end sub_80C25A4
-
- thumb_func_start sub_80C25C0
-sub_80C25C0: @ 80C25C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C25EC
- adds r0, r4, 0
- bl DestroyTask
- ldr r2, _080C25F4 @ =gTasks
- ldr r0, _080C25F8 @ =0x02018000
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080C25FC @ =sub_80C2600
- str r1, [r0]
- bl sub_80C3764
-_080C25EC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C25F4: .4byte gTasks
-_080C25F8: .4byte 0x02018000
-_080C25FC: .4byte sub_80C2600
- thumb_func_end sub_80C25C0
-
- thumb_func_start sub_80C2600
-sub_80C2600: @ 80C2600
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2644 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrh r1, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080C2654
- ldr r0, _080C2648 @ =sub_80C2F64
- movs r1, 0x14
- bl CreateTask
- ldr r4, _080C264C @ =gContestText_AnnounceResults
- ldr r0, _080C2650 @ =0x02018000
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- movs r2, 0x78
- b _080C26A6
- .align 2, 0
-_080C2644: .4byte gTasks
-_080C2648: .4byte sub_80C2F64
-_080C264C: .4byte gContestText_AnnounceResults
-_080C2650: .4byte 0x02018000
-_080C2654:
- cmp r0, 0x1
- bne _080C2668
- ldr r0, _080C2664 @ =0x02018000
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080C26D4
- b _080C267C
- .align 2, 0
-_080C2664: .4byte 0x02018000
-_080C2668:
- cmp r0, 0x2
- bne _080C2684
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C26D4
- movs r0, 0
-_080C267C:
- strh r0, [r5, 0xA]
- adds r0, r1, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
-_080C2684:
- cmp r0, 0x3
- bne _080C26C0
- ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
- ldr r0, _080C26B8 @ =0x02018000
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C26BC @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
-_080C26A6:
- bl sub_80C34CC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080C26D4
- .align 2, 0
-_080C26B4: .4byte gContestText_PreliminaryResults
-_080C26B8: .4byte 0x02018000
-_080C26BC: .4byte 0x0000ffff
-_080C26C0:
- cmp r0, 0x4
- bne _080C26D4
- ldr r0, _080C26DC @ =0x02018000
- ldrb r0, [r0, 0x4]
- cmp r0, 0x2
- bne _080C26D4
- movs r0, 0
- strh r0, [r5, 0x8]
- ldr r0, _080C26E0 @ =sub_80C26E4
- str r0, [r5]
-_080C26D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C26DC: .4byte 0x02018000
-_080C26E0: .4byte sub_80C26E4
- thumb_func_end sub_80C2600
-
- thumb_func_start sub_80C26E4
-sub_80C26E4: @ 80C26E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2708 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C2744
- cmp r0, 0x1
- bgt _080C270C
- cmp r0, 0
- beq _080C2712
- b _080C2766
- .align 2, 0
-_080C2708: .4byte gTasks
-_080C270C:
- cmp r0, 0x2
- beq _080C2754
- b _080C2766
-_080C2712:
- ldr r5, _080C2738 @ =0x02018000
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C2766
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C273C
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2738: .4byte 0x02018000
-_080C273C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2766
-_080C2744:
- ldr r0, _080C2750 @ =0x02018000
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C2766
- strh r0, [r4, 0x8]
- b _080C2766
- .align 2, 0
-_080C2750: .4byte 0x02018000
-_080C2754:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xC]
- ldr r0, _080C276C @ =sub_80C2770
- str r0, [r4]
-_080C2766:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C276C: .4byte sub_80C2770
- thumb_func_end sub_80C26E4
-
- thumb_func_start sub_80C2770
-sub_80C2770: @ 80C2770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r5, _080C27BC @ =0x02018000
- ldrb r3, [r5, 0x4]
- cmp r3, 0
- bne _080C27CC
- ldr r1, _080C27C0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080C27DE
- strh r3, [r1, 0xA]
- ldr r4, _080C27C4 @ =gContestText_Round2Results
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C27C8 @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
- b _080C27DE
- .align 2, 0
-_080C27BC: .4byte 0x02018000
-_080C27C0: .4byte gTasks
-_080C27C4: .4byte gContestText_Round2Results
-_080C27C8: .4byte 0x0000ffff
-_080C27CC:
- cmp r3, 0x2
- bne _080C27DE
- ldr r0, _080C27E4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C27E8 @ =sub_80C27EC
- str r0, [r1]
-_080C27DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C27E4: .4byte gTasks
-_080C27E8: .4byte sub_80C27EC
- thumb_func_end sub_80C2770
-
- thumb_func_start sub_80C27EC
-sub_80C27EC: @ 80C27EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C2810 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C284C
- cmp r0, 0x1
- bgt _080C2814
- cmp r0, 0
- beq _080C281A
- b _080C286C
- .align 2, 0
-_080C2810: .4byte gTasks
-_080C2814:
- cmp r0, 0x2
- beq _080C285C
- b _080C286C
-_080C281A:
- ldr r5, _080C2840 @ =0x02018000
- ldrb r0, [r5, 0xA]
- cmp r0, 0
- bne _080C286C
- ldrh r1, [r4, 0xC]
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_80C40D4
- ldrb r0, [r5, 0x14]
- cmp r0, 0
- bne _080C2844
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2840: .4byte 0x02018000
-_080C2844:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C286C
-_080C284C:
- ldr r0, _080C2858 @ =0x02018000
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080C286C
- strh r0, [r4, 0x8]
- b _080C286C
- .align 2, 0
-_080C2858: .4byte 0x02018000
-_080C285C:
- movs r0, 0x88
- lsls r0, 3
- bl sub_80C3520
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _080C2874 @ =sub_80C2878
- str r0, [r4]
-_080C286C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2874: .4byte sub_80C2878
- thumb_func_end sub_80C27EC
-
- thumb_func_start sub_80C2878
-sub_80C2878: @ 80C2878
- push {r4-r7,lr}
- sub sp, 0x64
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C28A0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _080C2896
- b _080C2A80
-_080C2896:
- lsls r0, 2
- ldr r1, _080C28A4 @ =_080C28A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C28A0: .4byte gTasks
-_080C28A4: .4byte _080C28A8
- .align 2, 0
-_080C28A8:
- .4byte _080C28C0
- .4byte _080C28E0
- .4byte _080C28FE
- .4byte _080C2938
- .4byte _080C299C
- .4byte _080C2A70
-_080C28C0:
- ldr r0, _080C28DC @ =0x02018000
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080C28CA
- b _080C2A80
-_080C28CA:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2A80
- .align 2, 0
-_080C28DC: .4byte 0x02018000
-_080C28E0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C28F8
- b _080C2A80
-_080C28F8:
- movs r0, 0
- strh r0, [r1, 0xA]
- b _080C2A4A
-_080C28FE:
- movs r4, 0
- lsls r6, r5, 2
- ldr r7, _080C292C @ =gTasks
-_080C2904:
- ldr r0, _080C2930 @ =sub_80C3A5C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- ldr r0, _080C2934 @ =gUnknown_02038690
- adds r0, r4, r0
- ldrb r0, [r0]
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C2904
- b _080C2A42
- .align 2, 0
-_080C292C: .4byte gTasks
-_080C2930: .4byte sub_80C3A5C
-_080C2934: .4byte gUnknown_02038690
-_080C2938:
- ldr r0, _080C2990 @ =0x02018000
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _080C2942
- b _080C2A80
-_080C2942:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r2
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- beq _080C295A
- b _080C2A80
-_080C295A:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldr r0, _080C2994 @ =sub_80C3B30
- movs r1, 0xA
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r4, 0
- ldr r1, _080C2998 @ =gUnknown_02038690
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C2984
-_080C2976:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C2984
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2976
-_080C2984:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0xE
- bl sub_80C3E60
- b _080C2A80
- .align 2, 0
-_080C2990: .4byte 0x02018000
-_080C2994: .4byte sub_80C3B30
-_080C2998: .4byte gUnknown_02038690
-_080C299C:
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r2, r0, r2
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r0, 0x15
- bne _080C2A80
- movs r0, 0
- strh r0, [r2, 0xA]
- movs r4, 0
- ldr r2, _080C29F4 @ =gUnknown_02038690
- ldrb r0, [r2]
- ldr r1, _080C29F8 @ =gUnknown_0203869A
- ldr r3, _080C29FC @ =gStringVar1
- cmp r0, 0
- beq _080C29D4
-_080C29C6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080C29D4
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C29C6
-_080C29D4:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2A04
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r0, _080C2A00 @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- lsls r4, 6
- b _080C2A10
- .align 2, 0
-_080C29F4: .4byte gUnknown_02038690
-_080C29F8: .4byte gUnknown_0203869A
-_080C29FC: .4byte gStringVar1
-_080C2A00: .4byte gLinkPlayers + 0x8
-_080C2A04:
- lsls r4, 6
- ldr r1, _080C2A54 @ =gUnknown_0203857D
- adds r1, r4, r1
- adds r0, r3, 0
- bl StringCopy
-_080C2A10:
- ldr r0, _080C2A58 @ =gStringVar2
- ldr r1, _080C2A5C @ =gUnknown_02038572
- adds r1, r4, r1
- bl StringCopy
- ldr r1, _080C2A60 @ =gContestText_PokeWon
- mov r0, sp
- bl StringExpandPlaceholders
- ldr r0, _080C2A64 @ =0x02018000
- ldrb r1, [r0]
- mov r0, sp
- bl sub_80C3158
- mov r0, sp
- bl sub_80C34AC
- lsls r0, 16
- asrs r0, 16
- ldr r2, _080C2A68 @ =0x0000ffff
- movs r3, 0x88
- lsls r3, 3
- movs r1, 0x90
- bl sub_80C34CC
-_080C2A42:
- ldr r0, _080C2A6C @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
-_080C2A4A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2A80
- .align 2, 0
-_080C2A54: .4byte gUnknown_0203857D
-_080C2A58: .4byte gStringVar2
-_080C2A5C: .4byte gUnknown_02038572
-_080C2A60: .4byte gContestText_PokeWon
-_080C2A64: .4byte 0x02018000
-_080C2A68: .4byte 0x0000ffff
-_080C2A6C: .4byte gTasks
-_080C2A70:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080C2A88 @ =sub_80C2A8C
- str r1, [r0]
-_080C2A80:
- add sp, 0x64
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2A88: .4byte sub_80C2A8C
- thumb_func_end sub_80C2878
-
- thumb_func_start sub_80C2A8C
-sub_80C2A8C: @ 80C2A8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C2ABC @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080C2AB2
- b _080C2D04
-_080C2AB2:
- lsls r0, 2
- ldr r1, _080C2AC0 @ =_080C2AC4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C2ABC: .4byte gTasks
-_080C2AC0: .4byte _080C2AC4
- .align 2, 0
-_080C2AC4:
- .4byte _080C2ADC
- .4byte _080C2C04
- .4byte _080C2C54
- .4byte _080C2C64
- .4byte _080C2CA8
- .4byte _080C2CE8
-_080C2ADC:
- ldr r1, _080C2BC4 @ =gUnknown_030042C4
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _080C2BC8 @ =gUnknown_03004240
- ldr r3, _080C2BCC @ =0x00005050
- adds r0, r3, 0
- strh r0, [r1]
- movs r1, 0
- ldr r3, _080C2BD0 @ =gUnknown_02038690
- ldrb r0, [r3]
- lsls r4, r7, 2
- mov r10, r4
- ldr r2, _080C2BD4 @ =gUnknown_02038570
- ldr r5, _080C2BD8 @ =gMonFrontPicTable
- mov r12, r5
- ldr r4, _080C2BDC @ =gMonFrontPicCoords
- mov r8, r4
- ldr r5, _080C2BE0 @ =gUnknown_081FAF4C
- mov r9, r5
- cmp r0, 0
- beq _080C2B14
-_080C2B06:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080C2B14
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C2B06
-_080C2B14:
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r4, [r0]
- adds r0, r2, 0
- adds r0, 0x3C
- adds r1, r0
- ldr r1, [r1]
- str r1, [sp, 0xC]
- lsls r0, r6, 3
- add r0, r12
- lsls r2, r6, 2
- add r2, r8
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- mov r5, r9
- ldr r3, [r5, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r3, _080C2BE4 @ =0x02000000
- bl sub_800D334
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- adds r2, r4, 0
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C2BE8 @ =gUnknown_02024E8C
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _080C2BEC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r3, r2, r5
- strh r6, [r3, 0x30]
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- strb r1, [r3, 0x5]
- adds r5, 0x1C
- adds r2, r5
- ldr r1, _080C2BF0 @ =sub_80C3C44
- str r1, [r2]
- ldr r2, _080C2BE4 @ =0x02000000
- movs r3, 0xC0
- lsls r3, 9
- adds r1, r2, r3
- strb r0, [r1, 0x8]
- ldr r0, _080C2BF4 @ =gUnknown_083D17CC
- bl LoadCompressedObjectPic
- ldr r0, _080C2BF8 @ =gUnknown_083D17D4
- bl LoadCompressedObjectPalette
- ldr r0, _080C2BFC @ =sub_80C3D04
- movs r1, 0xA
- bl CreateTask
- ldr r0, _080C2C00 @ =gTasks
- mov r4, r10
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2BC4: .4byte gUnknown_030042C4
-_080C2BC8: .4byte gUnknown_03004240
-_080C2BCC: .4byte 0x00005050
-_080C2BD0: .4byte gUnknown_02038690
-_080C2BD4: .4byte gUnknown_02038570
-_080C2BD8: .4byte gMonFrontPicTable
-_080C2BDC: .4byte gMonFrontPicCoords
-_080C2BE0: .4byte gUnknown_081FAF4C
-_080C2BE4: .4byte 0x02000000
-_080C2BE8: .4byte gUnknown_02024E8C
-_080C2BEC: .4byte gSprites
-_080C2BF0: .4byte sub_80C3C44
-_080C2BF4: .4byte gUnknown_083D17CC
-_080C2BF8: .4byte gUnknown_083D17D4
-_080C2BFC: .4byte sub_80C3D04
-_080C2C00: .4byte gTasks
-_080C2C04:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080C2D04
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080C2C30
- movs r0, 0x20
- strh r0, [r4, 0xC]
-_080C2C30:
- ldrb r2, [r4, 0xC]
- ldr r3, _080C2C50 @ =gUnknown_03004240
- movs r0, 0x50
- subs r0, r2
- lsls r0, 8
- adds r1, r2, 0
- adds r1, 0x50
- orrs r0, r1
- strh r0, [r3]
- cmp r2, 0x20
- bne _080C2D04
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C50: .4byte gUnknown_03004240
-_080C2C54:
- ldr r0, _080C2C60 @ =0x02018000
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _080C2D04
- b _080C2CD0
- .align 2, 0
-_080C2C60: .4byte 0x02018000
-_080C2C64:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r4
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x79
- bne _080C2D04
- movs r0, 0
- strh r0, [r3, 0xA]
- ldr r2, _080C2C9C @ =gSprites
- ldr r0, _080C2CA0 @ =0x02018000
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080C2CA4 @ =sub_80C3CB8
- str r1, [r0]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2C9C: .4byte gSprites
-_080C2CA0: .4byte 0x02018000
-_080C2CA4: .4byte sub_80C3CB8
-_080C2CA8:
- ldr r0, _080C2CE0 @ =0x02018000
- ldrb r0, [r0, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- ldr r3, _080C2CE4 @ =gUnknown_03004240
- ldrh r0, [r3]
- lsrs r2, r0, 8
- adds r0, r2, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x50
- bls _080C2CC2
- movs r2, 0x50
-_080C2CC2:
- lsls r1, r2, 8
- movs r0, 0xA0
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
- cmp r2, 0x50
- bne _080C2D04
-_080C2CD0:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C2D04
- .align 2, 0
-_080C2CE0: .4byte 0x02018000
-_080C2CE4: .4byte gUnknown_03004240
-_080C2CE8:
- ldr r2, _080C2D14 @ =0x02018000
- ldrb r0, [r2, 0x6]
- cmp r0, 0x2
- bne _080C2D04
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x9]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r4
- strh r1, [r0, 0x8]
- ldr r1, _080C2D18 @ =sub_80C2D1C
- str r1, [r0]
-_080C2D04:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D14: .4byte 0x02018000
-_080C2D18: .4byte sub_80C2D1C
- thumb_func_end sub_80C2A8C
-
- thumb_func_start sub_80C2D1C
-sub_80C2D1C: @ 80C2D1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080C2D6C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C2D66
- ldr r0, _080C2D70 @ =gUnknown_0203869A
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r6, r7, 2
- cmp r0, 0
- bne _080C2D5A
- ldr r5, _080C2D74 @ =gUnknown_02038570
- movs r4, 0x3
-_080C2D42:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- adds r5, 0x40
- subs r4, 0x1
- cmp r4, 0
- bge _080C2D42
-_080C2D5A:
- ldr r0, _080C2D78 @ =gTasks
- adds r1, r6, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2D7C @ =sub_80C2D80
- str r0, [r1]
-_080C2D66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2D6C: .4byte gMain
-_080C2D70: .4byte gUnknown_0203869A
-_080C2D74: .4byte gUnknown_02038570
-_080C2D78: .4byte gTasks
-_080C2D7C: .4byte sub_80C2D80
- thumb_func_end sub_80C2D1C
-
- thumb_func_start sub_80C2D80
-sub_80C2D80: @ 80C2D80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2DAC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C2DBC
- ldr r0, _080C2DB0 @ =gOtherText_LinkStandby
- bl sub_80C3698
- bl sub_800832C
- ldr r1, _080C2DB4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2DB8 @ =sub_80C2DD8
- str r1, [r0]
- b _080C2DCA
- .align 2, 0
-_080C2DAC: .4byte gUnknown_0203869A
-_080C2DB0: .4byte gOtherText_LinkStandby
-_080C2DB4: .4byte gTasks
-_080C2DB8: .4byte sub_80C2DD8
-_080C2DBC:
- ldr r0, _080C2DD0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C2DD4 @ =sub_80C2E14
- str r0, [r1]
-_080C2DCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2DD0: .4byte gTasks
-_080C2DD4: .4byte sub_80C2E14
- thumb_func_end sub_80C2D80
-
- thumb_func_start sub_80C2DD8
-sub_80C2DD8: @ 80C2DD8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C2DFC
- ldr r0, _080C2E08 @ =gUnknown_0203869A
- strb r1, [r0]
- bl sub_80C3764
- ldr r1, _080C2E0C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E10 @ =sub_80C2E14
- str r1, [r0]
-_080C2DFC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E04: .4byte gReceivedRemoteLinkPlayers
-_080C2E08: .4byte gUnknown_0203869A
-_080C2E0C: .4byte gTasks
-_080C2E10: .4byte sub_80C2E14
- thumb_func_end sub_80C2DD8
-
- thumb_func_start sub_80C2E14
-sub_80C2E14: @ 80C2E14
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080C2E80 @ =gUnknown_02038690
- ldr r0, _080C2E84 @ =gUnknown_02038695
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80BE284
- movs r0, 0x2
- bl sub_810FB10
- ldr r0, _080C2E88 @ =gUnknown_0203869E
- ldrb r0, [r0]
- bl sub_80B2A7C
- movs r0, 0xFE
- bl sub_80B2A7C
- ldr r4, _080C2E8C @ =0x02000000
- ldr r0, _080C2E90 @ =0x00015ddf
- adds r1, r4, r0
- movs r6, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C2E94 @ =0x00015dde
- adds r4, r1
- strb r0, [r4]
- str r6, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _080C2E98 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C2E9C @ =sub_80C2EA0
- str r1, [r0]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2E80: .4byte gUnknown_02038690
-_080C2E84: .4byte gUnknown_02038695
-_080C2E88: .4byte gUnknown_0203869E
-_080C2E8C: .4byte 0x02000000
-_080C2E90: .4byte 0x00015ddf
-_080C2E94: .4byte 0x00015dde
-_080C2E98: .4byte gTasks
-_080C2E9C: .4byte sub_80C2EA0
- thumb_func_end sub_80C2E14
-
- thumb_func_start sub_80C2EA0
-sub_80C2EA0: @ 80C2EA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- ldr r0, _080C2ED8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080C2F18
- ldr r1, _080C2EDC @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C2EE8
- ldr r0, _080C2EE0 @ =0x02018000
- ldrb r0, [r0, 0x3]
- bl DestroyTask
- ldr r0, _080C2EE4 @ =0x0000ffff
- b _080C2EEE
- .align 2, 0
-_080C2ED8: .4byte gPaletteFade
-_080C2EDC: .4byte gTasks
-_080C2EE0: .4byte 0x02018000
-_080C2EE4: .4byte 0x0000ffff
-_080C2EE8:
- cmp r0, 0x1
- bne _080C2F04
- ldr r0, _080C2F00 @ =0xffff0000
-_080C2EEE:
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080C2F18
- .align 2, 0
-_080C2F00: .4byte 0xffff0000
-_080C2F04:
- ldr r0, _080C2F20 @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x4
- strh r3, [r0]
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080C2F18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F20: .4byte REG_BLDCNT
-_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C2EA0
-
- thumb_func_start sub_80C2F28
-sub_80C2F28: @ 80C2F28
- push {r4,r5,lr}
- ldr r2, _080C2F5C @ =gUnknown_030041B0
- ldrh r3, [r2]
- adds r0, r3, 0x2
- strh r0, [r2]
- ldr r4, _080C2F60 @ =gUnknown_030041B8
- ldrh r5, [r4]
- adds r1, r5, 0x1
- strh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F48
- adds r0, r3, 0
- subs r0, 0xFD
- strh r0, [r2]
-_080C2F48:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0xFF
- bls _080C2F56
- adds r0, r5, 0
- subs r0, 0xFE
- strh r0, [r4]
-_080C2F56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C2F5C: .4byte gUnknown_030041B0
-_080C2F60: .4byte gUnknown_030041B8
- thumb_func_end sub_80C2F28
-
- thumb_func_start sub_80C2F64
-sub_80C2F64: @ 80C2F64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C2F94 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080C2FE6
- movs r0, 0
- strh r0, [r2, 0x8]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080C2F98
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- b _080C2F9C
- .align 2, 0
-_080C2F94: .4byte gTasks
-_080C2F98:
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
-_080C2F9C:
- strh r0, [r2, 0xA]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x10
- bne _080C2FB2
- movs r0, 0x1
- b _080C2FB6
-_080C2FB2:
- cmp r0, 0
- bne _080C2FB8
-_080C2FB6:
- strh r0, [r1, 0xC]
-_080C2FB8:
- ldr r0, _080C3000 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3004 @ =0x00002ede
- movs r0, 0x6B
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C3008 @ =0x00007fff
- movs r0, 0x68
- movs r1, 0x1
- bl BlendPalette
- ldrb r2, [r4, 0xA]
- ldr r3, _080C300C @ =0x000077be
- movs r0, 0x6E
- movs r1, 0x1
- bl BlendPalette
-_080C2FE6:
- ldr r1, _080C3000 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r4, [r0, r3]
- cmp r4, 0
- bne _080C3014
- ldr r0, _080C3010 @ =0x02018000
- strb r4, [r0, 0xA]
- b _080C301A
- .align 2, 0
-_080C3000: .4byte gTasks
-_080C3004: .4byte 0x00002ede
-_080C3008: .4byte 0x00007fff
-_080C300C: .4byte 0x000077be
-_080C3010: .4byte 0x02018000
-_080C3014:
- ldr r1, _080C3020 @ =0x02018000
- movs r0, 0x1
- strb r0, [r1, 0xA]
-_080C301A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3020: .4byte 0x02018000
- thumb_func_end sub_80C2F64
-
- thumb_func_start sub_80C3024
-sub_80C3024: @ 80C3024
- push {r4-r6,lr}
- ldr r6, [sp, 0x10]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- cmp r3, 0
- beq _080C30B0
- adds r1, r6, 0
- bl sub_809D4F4
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30A0 @ =0x06004000
- adds r1, r2
- ldr r2, _080C30A4 @ =0x040000d4
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080C30A8 @ =0x84000060
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, r4, 0
- adds r1, 0xA
- lsls r1, 28
- lsls r0, r4, 20
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- orrs r0, r1
- lsrs r1, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 21
- movs r2, 0x83
- lsls r2, 16
- adds r0, r2
- lsrs r5, r0, 16
- movs r2, 0
- ldr r6, _080C30AC @ =0x0600c000
-_080C307C:
- lsls r0, r2, 5
- adds r4, r2, 0x1
- adds r0, r5
- movs r3, 0x3
- lsls r0, 1
- adds r2, r0, r6
-_080C3088:
- strh r1, [r2]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3088
- adds r2, r4, 0
- cmp r2, 0x2
- ble _080C307C
- b _080C30CA
- .align 2, 0
-_080C30A0: .4byte 0x06004000
-_080C30A4: .4byte 0x040000d4
-_080C30A8: .4byte 0x84000060
-_080C30AC: .4byte 0x0600c000
-_080C30B0:
- adds r1, r6, 0
- bl sub_809D4F4
- lsls r1, r5, 9
- adds r0, r1
- adds r0, 0x80
- lsls r1, r4, 9
- ldr r2, _080C30D0 @ =0x06004000
- adds r1, r2
- movs r2, 0xC0
- lsls r2, 1
- bl RequestSpriteCopy
-_080C30CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C30D0: .4byte 0x06004000
- thumb_func_end sub_80C3024
-
- thumb_func_start sub_80C30D4
-sub_80C30D4: @ 80C30D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r5, 0
- ldr r4, _080C3108 @ =gUnknown_02038570
-_080C30E4:
- ldrh r0, [r4]
- lsls r1, r5, 24
- lsrs r1, 24
- ldr r2, [r4, 0x38]
- str r2, [sp]
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_80C3024
- adds r4, 0x40
- adds r5, 0x1
- cmp r5, 0x3
- ble _080C30E4
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3108: .4byte gUnknown_02038570
- thumb_func_end sub_80C30D4
-
- thumb_func_start sub_80C310C
-sub_80C310C: @ 80C310C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080C314C @ =gMonIconPaletteIndices
- movs r5, 0xA0
- lsls r5, 16
-_080C3116:
- ldr r1, _080C3150 @ =gUnknown_02038570
- lsls r0, r4, 6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080C3154 @ =gMonIconPalettes
- adds r0, r1
- lsrs r1, r5, 16
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x80
- lsls r0, 13
- adds r5, r0
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C3116
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C314C: .4byte gMonIconPaletteIndices
-_080C3150: .4byte gUnknown_02038570
-_080C3154: .4byte gMonIconPalettes
- thumb_func_end sub_80C310C
-
- thumb_func_start sub_80C3158
-sub_80C3158: @ 80C3158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r3, _080C32C0 @ =gSprites
- adds r2, r3
- mov r1, sp
- ldrh r0, [r2, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1]
- mov r4, sp
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x2]
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x4]
- movs r0, 0x32
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r4, 0x6]
- ldr r1, _080C32C4 @ =gWindowConfig_81E7278
- mov r8, r1
- ldr r7, _080C32C8 @ =0x06010000
- ldr r2, _080C32CC @ =0x040000d4
- ldr r6, _080C32D0 @ =0x85000100
- mov r1, sp
- movs r5, 0
- add r3, sp, 0x8
- movs r4, 0x3
-_080C31CE:
- ldrh r0, [r1]
- lsls r0, 5
- adds r0, r7
- str r5, [sp, 0x8]
- str r3, [r2]
- str r0, [r2, 0x4]
- str r6, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080C31CE
- mov r0, r8
- mov r1, r9
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080C32D4 @ =gUnknown_020238CC
- ldr r1, _080C32D8 @ =gUnknown_083D17E2
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- mvns r0, r5
- adds r1, r0, 0x1
- movs r0, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080C3218
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- lsrs r0, r1, 1
- strb r0, [r2, 0x2]
- adds r2, 0x3
-_080C3218:
- adds r6, r5, 0x7
- movs r1, 0x8
- negs r1, r1
- adds r0, r1, 0
- ands r6, r0
- lsls r6, 24
- lsrs r5, r6, 24
- adds r0, r2, 0
- mov r1, r9
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- strb r5, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r0, _080C32DC @ =0x02018068
- mov r10, r0
- ldr r1, _080C32D4 @ =gUnknown_020238CC
- bl sub_80034D4
- mov r0, sp
- ldrh r4, [r0]
- lsls r4, 5
- ldr r1, _080C32C8 @ =0x06010000
- adds r7, r4, r1
- ldr r0, _080C32E0 @ =gUnknown_083D1624
- mov r9, r0
- ldr r1, _080C32E4 @ =REG_BG0CNT
- mov r8, r1
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- mov r5, r9
- adds r5, 0x80
- ldr r0, _080C32E8 @ =0x06010100
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- ldr r0, _080C32EC @ =0x06010200
- adds r1, r4, r0
- adds r0, r5, 0
- mov r2, r8
- bl CpuSet
- mov r0, r9
- adds r0, 0x40
- ldr r1, _080C32F0 @ =0x06010300
- adds r4, r1
- adds r1, r4, 0
- mov r2, r8
- bl CpuSet
- lsrs r5, r6, 27
- movs r4, 0
- cmp r4, r5
- bgt _080C3382
- mov r6, sp
- mov r0, r10
- adds r0, 0x20
- str r0, [sp, 0xC]
- mov r1, r10
- str r1, [sp, 0x10]
- ldr r0, _080C32F4 @ =0x0600fd20
- str r0, [sp, 0x14]
- ldr r1, _080C32F8 @ =0x0600fe20
- str r1, [sp, 0x18]
- ldr r0, _080C32FC @ =0x0600ff20
- mov r10, r0
- ldr r1, _080C3300 @ =0x06010020
- mov r9, r1
-_080C32B2:
- cmp r4, 0x6
- bgt _080C3304
- ldrh r0, [r6]
- lsls r0, 5
- mov r1, r9
- b _080C3322
- .align 2, 0
-_080C32C0: .4byte gSprites
-_080C32C4: .4byte gWindowConfig_81E7278
-_080C32C8: .4byte 0x06010000
-_080C32CC: .4byte 0x040000d4
-_080C32D0: .4byte 0x85000100
-_080C32D4: .4byte gUnknown_020238CC
-_080C32D8: .4byte gUnknown_083D17E2
-_080C32DC: .4byte 0x02018068
-_080C32E0: .4byte gUnknown_083D1624
-_080C32E4: .4byte REG_BG0CNT
-_080C32E8: .4byte 0x06010100
-_080C32EC: .4byte 0x06010200
-_080C32F0: .4byte 0x06010300
-_080C32F4: .4byte 0x0600fd20
-_080C32F8: .4byte 0x0600fe20
-_080C32FC: .4byte 0x0600ff20
-_080C3300: .4byte 0x06010020
-_080C3304:
- cmp r4, 0xE
- bgt _080C3310
- ldrh r0, [r6, 0x2]
- lsls r0, 5
- mov r1, r10
- b _080C3322
-_080C3310:
- cmp r4, 0x16
- bgt _080C331C
- ldrh r0, [r6, 0x4]
- lsls r0, 5
- ldr r1, [sp, 0x18]
- b _080C3322
-_080C331C:
- ldrh r0, [r6, 0x6]
- lsls r0, 5
- ldr r1, [sp, 0x14]
-_080C3322:
- adds r7, r0, r1
- cmp r4, r5
- beq _080C3382
- ldr r0, _080C33D0 @ =gUnknown_083D16E4
- adds r1, r7, 0
- mov r2, r8
- bl CpuSet
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, _080C33D0 @ =gUnknown_083D16E4
- adds r0, 0x20
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- ldr r0, [sp, 0x10]
- mov r2, r8
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- ldr r0, [sp, 0xC]
- mov r2, r8
- bl CpuSet
- ldr r1, [sp, 0xC]
- adds r1, 0x40
- str r1, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r0, 0x40
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- adds r1, 0x20
- str r1, [sp, 0x14]
- ldr r0, [sp, 0x18]
- adds r0, 0x20
- str r0, [sp, 0x18]
- movs r1, 0x20
- add r10, r1
- add r9, r1
- adds r4, 0x1
- cmp r4, r5
- ble _080C32B2
-_080C3382:
- ldr r4, _080C33D4 @ =gUnknown_083D1644
- ldr r5, _080C33D8 @ =REG_BG0CNT
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl CpuSet
- adds r6, r4, 0
- adds r6, 0x80
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x80
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r6, 0
- adds r2, r5, 0
- bl CpuSet
- adds r4, 0x40
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r7, r0
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C33D0: .4byte gUnknown_083D16E4
-_080C33D4: .4byte gUnknown_083D1644
-_080C33D8: .4byte REG_BG0CNT
- thumb_func_end sub_80C3158
-
- thumb_func_start sub_80C33DC
-sub_80C33DC: @ 80C33DC
- push {r4-r6,lr}
- sub sp, 0x20
- mov r1, sp
- ldr r0, _080C3498 @ =gSpriteTemplate_83D174C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- add r5, sp, 0x18
- ldr r6, _080C349C @ =gUnknown_083D1764
- movs r4, 0x7
-_080C33F2:
- adds r0, r6, 0
- bl LoadSpriteSheet
- adds r6, 0x8
- subs r4, 0x1
- cmp r4, 0
- bge _080C33F2
- ldr r0, _080C34A0 @ =gUnknown_083D17A4
- bl LoadSpritePalette
- movs r4, 0
- mov r6, sp
-_080C340A:
- mov r0, sp
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- adds r1, r5, r4
- strb r0, [r1]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- adds r4, 0x1
- cmp r4, 0x7
- ble _080C340A
- ldr r2, _080C34A4 @ =gSprites
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x1]
- movs r3, 0
- strh r1, [r0, 0x2E]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x2]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x3]
- strh r1, [r0, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x5]
- strh r1, [r0, 0x2E]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x6]
- strh r1, [r0, 0x30]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r5, 0x7]
- strh r1, [r0, 0x32]
- ldr r1, _080C34A8 @ =0x02018000
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r1, 0x4]
- ldrb r0, [r5, 0x4]
- strb r0, [r1, 0x1]
- bl sub_80C3764
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3498: .4byte gSpriteTemplate_83D174C
-_080C349C: .4byte gUnknown_083D1764
-_080C34A0: .4byte gUnknown_083D17A4
-_080C34A4: .4byte gSprites
-_080C34A8: .4byte 0x02018000
- thumb_func_end sub_80C33DC
-
- thumb_func_start sub_80C34AC
-sub_80C34AC: @ 80C34AC
- push {lr}
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 25
- lsrs r1, 25
- movs r0, 0x70
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80C34AC
-
- thumb_func_start sub_80C34CC
-sub_80C34CC: @ 80C34CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _080C3514 @ =0x02018000
- mov r8, r4
- ldrb r5, [r4]
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r5, _080C3518 @ =gSprites
- adds r4, r5
- movs r6, 0
- movs r5, 0x88
- lsls r5, 1
- strh r5, [r4, 0x20]
- strh r1, [r4, 0x22]
- strh r6, [r4, 0x24]
- strh r6, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- adds r0, 0x20
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- strh r3, [r4, 0x3A]
- strh r6, [r4, 0x3C]
- ldr r0, _080C351C @ =sub_80C3588
- str r0, [r4, 0x1C]
- movs r0, 0x1
- mov r1, r8
- strb r0, [r1, 0x4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3514: .4byte 0x02018000
-_080C3518: .4byte gSprites
-_080C351C: .4byte sub_80C3588
- thumb_func_end sub_80C34CC
-
- thumb_func_start sub_80C3520
-sub_80C3520: @ 80C3520
- push {r4,r5,lr}
- ldr r4, _080C3558 @ =0x02018000
- ldrb r2, [r4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _080C355C @ =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- movs r3, 0
- strh r2, [r1, 0x20]
- ldrh r2, [r1, 0x26]
- ldrh r5, [r1, 0x22]
- adds r2, r5
- strh r2, [r1, 0x22]
- strh r3, [r1, 0x26]
- strh r3, [r1, 0x24]
- strh r0, [r1, 0x3A]
- strh r3, [r1, 0x3C]
- ldr r0, _080C3560 @ =sub_80C3630
- str r0, [r1, 0x1C]
- movs r0, 0x3
- strb r0, [r4, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3558: .4byte 0x02018000
-_080C355C: .4byte gSprites
-_080C3560: .4byte sub_80C3630
- thumb_func_end sub_80C3520
-
- thumb_func_start sub_80C3564
-sub_80C3564: @ 80C3564
- movs r3, 0
- movs r2, 0
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r1, 0x90
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x26]
- strh r2, [r0, 0x24]
- ldr r1, _080C3580 @ =SpriteCallbackDummy
- str r1, [r0, 0x1C]
- ldr r0, _080C3584 @ =0x02018000
- strb r3, [r0, 0x4]
- bx lr
- .align 2, 0
-_080C3580: .4byte SpriteCallbackDummy
-_080C3584: .4byte 0x02018000
- thumb_func_end sub_80C3564
-
- thumb_func_start sub_80C3588
-sub_80C3588: @ 80C3588
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x3C]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r3, 0x36]
- movs r4, 0x36
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _080C35B2
- strh r2, [r3, 0x20]
-_080C35B2:
- movs r4, 0
- ldr r6, _080C35F4 @ =gSprites
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C35BC:
- movs r7, 0
- ldrsh r0, [r2, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C35BC
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bne _080C35EC
- ldr r0, _080C35F8 @ =sub_80C35FC
- str r0, [r3, 0x1C]
-_080C35EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C35F4: .4byte gSprites
-_080C35F8: .4byte sub_80C35FC
- thumb_func_end sub_80C3588
-
- thumb_func_start sub_80C35FC
-sub_80C35FC: @ 80C35FC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080C3628 @ =0x02018000
- movs r1, 0x2
- strb r1, [r0, 0x4]
- ldrh r3, [r2, 0x38]
- ldr r1, _080C362C @ =0xffff0000
- lsrs r0, r1, 16
- cmp r3, r0
- beq _080C3624
- subs r0, r3, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- asrs r1, 16
- cmp r0, r1
- bne _080C3624
- ldrh r0, [r2, 0x3A]
- bl sub_80C3520
-_080C3624:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3628: .4byte 0x02018000
-_080C362C: .4byte 0xffff0000
- thumb_func_end sub_80C35FC
-
- thumb_func_start sub_80C3630
-sub_80C3630: @ 80C3630
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- ldrh r0, [r3, 0x3C]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x3C]
- movs r4, 0
- ldr r6, _080C3694 @ =gSprites
- movs r5, 0x40
- adds r2, r3, 0
- adds r2, 0x2E
-_080C3654:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r3, 0x24]
- ldrh r7, [r3, 0x20]
- adds r0, r7
- adds r0, r5
- strh r0, [r1, 0x20]
- adds r5, 0x40
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _080C3654
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- adds r0, r1
- movs r1, 0xE0
- negs r1, r1
- cmp r0, r1
- bge _080C368C
- adds r0, r3, 0
- bl sub_80C3564
-_080C368C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3694: .4byte gSprites
- thumb_func_end sub_80C3630
-
- thumb_func_start sub_80C3698
-sub_80C3698: @ 80C3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080C374C @ =0x02018000
- ldrb r1, [r5, 0x1]
- bl sub_80C3158
- adds r0, r4, 0
- bl sub_80C34AC
- lsls r0, 16
- lsrs r0, 16
- ldrb r2, [r5, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r3, _080C3750 @ =gSprites
- adds r4, r1, r3
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x50
- strh r0, [r4, 0x22]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r5]
- movs r5, 0
- adds r6, r3, 0
- mov r12, r2
- movs r3, 0x40
-_080C36DA:
- lsls r0, r5, 1
- adds r2, r4, 0
- adds r2, 0x2E
- adds r2, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r4, 0x24]
- ldrh r7, [r4, 0x20]
- adds r0, r7
- adds r0, r3
- strh r0, [r1, 0x20]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x22]
- strh r1, [r0, 0x22]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- adds r3, 0x40
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C36DA
- ldr r1, _080C3754 @ =gUnknown_030042C4
- movs r0, 0xF0
- strh r0, [r1]
- ldr r2, _080C3758 @ =gUnknown_03004240
- ldrh r1, [r4, 0x22]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 8
- adds r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080C375C @ =REG_WININ
- ldr r2, _080C3760 @ =0x00003f3e
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C374C: .4byte 0x02018000
-_080C3750: .4byte gSprites
-_080C3754: .4byte gUnknown_030042C4
-_080C3758: .4byte gUnknown_03004240
-_080C375C: .4byte REG_WININ
-_080C3760: .4byte 0x00003f3e
- thumb_func_end sub_80C3698
-
- thumb_func_start sub_80C3764
-sub_80C3764: @ 80C3764
- push {r4-r7,lr}
- ldr r0, _080C37C8 @ =0x02018000
- ldrb r0, [r0, 0x1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r3, _080C37CC @ =gSprites
- adds r2, r3
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r7, _080C37D0 @ =gUnknown_030042C4
- ldr r6, _080C37D4 @ =gUnknown_03004240
- adds r5, r3, 0
- movs r4, 0x4
- adds r2, 0x2E
- movs r3, 0x2
-_080C3790:
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3790
- movs r1, 0
- strh r1, [r7]
- strh r1, [r6]
- ldr r0, _080C37D8 @ =REG_WIN0H
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080C37DC @ =REG_WININ
- ldr r2, _080C37E0 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C37C8: .4byte 0x02018000
-_080C37CC: .4byte gSprites
-_080C37D0: .4byte gUnknown_030042C4
-_080C37D4: .4byte gUnknown_03004240
-_080C37D8: .4byte REG_WIN0H
-_080C37DC: .4byte REG_WININ
-_080C37E0: .4byte 0x00003f3f
- thumb_func_end sub_80C3764
-
- thumb_func_start sub_80C37E4
-sub_80C37E4: @ 80C37E4
- push {r4-r6,lr}
- sub sp, 0x10
- movs r5, 0x1
- movs r4, 0
- ldr r0, _080C3808 @ =gUnknown_0203869A
- ldrb r0, [r0]
- adds r1, r5, 0
- ands r1, r0
- cmp r1, 0
- beq _080C3814
- ldr r0, _080C380C @ =0x0600e000
- ldr r3, _080C3810 @ =gUnknown_08E964B8
- movs r1, 0x9
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- b _080C386A
- .align 2, 0
-_080C3808: .4byte gUnknown_0203869A
-_080C380C: .4byte 0x0600e000
-_080C3810: .4byte gUnknown_08E964B8
-_080C3814:
- ldr r0, _080C3830 @ =gUnknown_0203869E
- ldrh r2, [r0]
- cmp r2, 0
- bne _080C383C
- movs r4, 0x1
- ldr r0, _080C3834 @ =0x0600e000
- ldr r3, _080C3838 @ =gUnknown_08E964B8
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _080C3870
- .align 2, 0
-_080C3830: .4byte gUnknown_0203869E
-_080C3834: .4byte 0x0600e000
-_080C3838: .4byte gUnknown_08E964B8
-_080C383C:
- cmp r2, 0x1
- bne _080C385C
- ldr r0, _080C3854 @ =0x0600e000
- ldr r3, _080C3858 @ =gUnknown_08E964B8
- movs r1, 0x9
- str r1, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _080C3870
- .align 2, 0
-_080C3854: .4byte 0x0600e000
-_080C3858: .4byte gUnknown_08E964B8
-_080C385C:
- cmp r2, 0x2
- bne _080C3884
- ldr r0, _080C387C @ =0x0600e000
- ldr r3, _080C3880 @ =gUnknown_08E964B8
- movs r1, 0x11
- str r1, [sp]
- str r4, [sp, 0x4]
-_080C386A:
- movs r1, 0x8
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
-_080C3870:
- movs r1, 0x5
- movs r2, 0x1
- bl sub_809D104
- b _080C389E
- .align 2, 0
-_080C387C: .4byte 0x0600e000
-_080C3880: .4byte gUnknown_08E964B8
-_080C3884:
- movs r4, 0x1
- ldr r0, _080C38C0 @ =0x0600e000
- ldr r3, _080C38C4 @ =gUnknown_08E964B8
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r1, 0x5
- movs r2, 0x1
- bl sub_809D104
-_080C389E:
- adds r4, 0xD
- ldr r0, _080C38C8 @ =gUnknown_0203869C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080C38CC
- movs r6, 0
- ldr r0, _080C38C0 @ =0x0600e000
- ldr r3, _080C38C4 @ =gUnknown_08E964B8
- movs r1, 0x11
- str r1, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- b _080C392A
- .align 2, 0
-_080C38C0: .4byte 0x0600e000
-_080C38C4: .4byte gUnknown_08E964B8
-_080C38C8: .4byte gUnknown_0203869C
-_080C38CC:
- cmp r0, 0x1
- bne _080C38EC
- movs r6, 0x1
- ldr r0, _080C38E4 @ =0x0600e000
- ldr r3, _080C38E8 @ =gUnknown_08E964B8
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xB
- b _080C3924
- .align 2, 0
-_080C38E4: .4byte 0x0600e000
-_080C38E8: .4byte gUnknown_08E964B8
-_080C38EC:
- cmp r0, 0x2
- bne _080C3910
- movs r6, 0x2
- ldr r0, _080C3908 @ =0x0600e000
- ldr r3, _080C390C @ =gUnknown_08E964B8
- movs r1, 0xB
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- b _080C392A
- .align 2, 0
-_080C3908: .4byte 0x0600e000
-_080C390C: .4byte gUnknown_08E964B8
-_080C3910:
- cmp r0, 0x3
- bne _080C393C
- movs r6, 0x3
- ldr r0, _080C3934 @ =0x0600e000
- ldr r3, _080C3938 @ =gUnknown_08E964B8
- movs r1, 0x15
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0xA
-_080C3924:
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
-_080C392A:
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809D104
- b _080C395A
- .align 2, 0
-_080C3934: .4byte 0x0600e000
-_080C3938: .4byte gUnknown_08E964B8
-_080C393C:
- movs r6, 0x4
- ldr r0, _080C3984 @ =0x0600e000
- ldr r3, _080C3988 @ =gUnknown_08E964B8
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809D104
-_080C395A:
- ldr r5, _080C398C @ =0x00000fff
- lsls r4, r6, 12
- ldr r2, _080C3984 @ =0x0600e000
- movs r3, 0x7F
-_080C3962:
- ldrh r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r2]
- adds r0, r4, 0
- orrs r0, r1
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3962
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3984: .4byte 0x0600e000
-_080C3988: .4byte gUnknown_08E964B8
-_080C398C: .4byte 0x00000fff
- thumb_func_end sub_80C37E4
-
- thumb_func_start sub_80C3990
-sub_80C3990: @ 80C3990
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r1, _080C39DC @ =gUnknown_02038670
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x3F
- bl __udivsi3
- adds r1, r0, 0
- ldr r0, _080C39E0 @ =0x0000ffff
- ands r0, r1
- cmp r0, 0
- beq _080C39BC
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
-_080C39BC:
- lsrs r1, 16
- cmp r1, 0
- bne _080C39C8
- cmp r4, 0
- beq _080C39C8
- movs r1, 0x1
-_080C39C8:
- cmp r5, 0
- beq _080C39D2
- cmp r1, 0xA
- bls _080C39D2
- movs r1, 0xA
-_080C39D2:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080C39DC: .4byte gUnknown_02038670
-_080C39E0: .4byte 0x0000ffff
- thumb_func_end sub_80C3990
-
- thumb_func_start sub_80C39E4
-sub_80C39E4: @ 80C39E4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080C3A44 @ =gUnknown_02038688
- lsls r0, r5, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bge _080C3A00
- negs r0, r0
-_080C3A00:
- lsls r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x50
- bl __udivsi3
- adds r2, r0, 0
- ldr r0, _080C3A48 @ =0x0000ffff
- ands r0, r2
- cmp r0, 0
- beq _080C3A1A
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
-_080C3A1A:
- lsrs r2, 16
- cmp r2, 0
- bne _080C3A26
- cmp r4, 0
- beq _080C3A26
- movs r2, 0x1
-_080C3A26:
- cmp r6, 0
- beq _080C3A30
- cmp r2, 0xA
- bls _080C3A30
- movs r2, 0xA
-_080C3A30:
- lsls r0, r5, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _080C3A4C
- negs r0, r2
- lsls r0, 24
- b _080C3A4E
- .align 2, 0
-_080C3A44: .4byte gUnknown_02038688
-_080C3A48: .4byte 0x0000ffff
-_080C3A4C:
- lsls r0, r2, 24
-_080C3A4E:
- lsrs r0, 24
- lsls r0, 24
- asrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C39E4
-
- thumb_func_start sub_80C3A5C
-sub_80C3A5C: @ 80C3A5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _080C3A90 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0x1C]
- movs r1, 0x1C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C3A94
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- movs r1, 0x3
- subs r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- strh r0, [r3, 0x1E]
- adds r0, r2, 0x1
- strh r0, [r3, 0x1C]
- b _080C3B12
- .align 2, 0
-_080C3A90: .4byte gTasks
-_080C3A94:
- cmp r0, 0x1
- bne _080C3B12
- ldrh r0, [r3, 0x1E]
- subs r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080C3B12
- movs r0, 0x8
- ldrsh r2, [r3, r0]
- lsls r2, 17
- ldr r1, _080C3B18 @ =0x50430000
- adds r2, r1
- lsrs r2, 16
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B1C @ =0x0600e142
- adds r0, r1
- strh r2, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B20 @ =0x0600e144
- adds r0, r1
- adds r1, r2, 0x1
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B24 @ =0x0600e182
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x10
- strh r1, [r0]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 6
- ldr r1, _080C3B28 @ =0x0600e184
- adds r0, r1
- adds r2, 0x11
- strh r2, [r0]
- ldr r1, _080C3B2C @ =0x02018000
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0x18
- bl PlaySE
-_080C3B12:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3B18: .4byte 0x50430000
-_080C3B1C: .4byte 0x0600e142
-_080C3B20: .4byte 0x0600e144
-_080C3B24: .4byte 0x0600e182
-_080C3B28: .4byte 0x0600e184
-_080C3B2C: .4byte 0x02018000
- thumb_func_end sub_80C3A5C
-
- thumb_func_start sub_80C3B30
-sub_80C3B30: @ 80C3B30
- 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 r5, 0
- ldr r1, _080C3BC0 @ =gUnknown_02038690
- ldrb r0, [r1]
- ldr r2, _080C3BC4 @ =gTasks
- mov r10, r2
- cmp r0, 0
- beq _080C3B5C
-_080C3B4E:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _080C3B5C
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C3B4E
-_080C3B5C:
- movs r1, 0
- lsls r0, r5, 1
- mov r2, r12
- lsls r2, 2
- mov r9, r2
- adds r0, r5
- lsls r0, 5
- mov r8, r0
- ldr r7, _080C3BC8 @ =0x00000fff
- movs r0, 0x90
- lsls r0, 8
- adds r6, r0, 0
-_080C3B74:
- lsls r0, r1, 5
- adds r4, r1, 0x1
- add r0, r8
- movs r3, 0x1D
- lsls r0, 1
- ldr r1, _080C3BCC @ =0x0600e100
- adds r2, r0, r1
-_080C3B82:
- ldrh r1, [r2]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strh r0, [r2]
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C3B82
- adds r1, r4, 0
- cmp r1, 0x2
- ble _080C3B74
- mov r0, r9
- add r0, r12
- lsls r0, 3
- add r0, r10
- strh r5, [r0, 0x1C]
- movs r1, 0x1
- strh r1, [r0, 0x20]
- ldr r2, _080C3BD0 @ =sub_80C3BD8
- str r2, [r0]
- mov r1, r12
- ldr r0, _080C3BD4 @ =0x02018000
- strb r1, [r0, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3BC0: .4byte gUnknown_02038690
-_080C3BC4: .4byte gTasks
-_080C3BC8: .4byte 0x00000fff
-_080C3BCC: .4byte 0x0600e100
-_080C3BD0: .4byte sub_80C3BD8
-_080C3BD4: .4byte 0x02018000
- thumb_func_end sub_80C3B30
-
- thumb_func_start sub_80C3BD8
-sub_80C3BD8: @ 80C3BD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3C24 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x1
- bne _080C3C3C
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r2, [r4, 0x20]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080C3C28 @ =0x00006f8d
- movs r0, 0x91
- movs r1, 0x1
- bl BlendPalette
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C3C2C
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080C3C3C
- strh r5, [r4, 0x22]
- b _080C3C3C
- .align 2, 0
-_080C3C24: .4byte gTasks
-_080C3C28: .4byte 0x00006f8d
-_080C3C2C:
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080C3C3C
- strh r0, [r4, 0x22]
-_080C3C3C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3BD8
-
- thumb_func_start sub_80C3C44
-sub_80C3C44: @ 80C3C44
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x9
- bgt _080C3C6C
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080C3CA8
- ldrh r0, [r4, 0x30]
- movs r1, 0
- bl PlayCry1
- movs r0, 0
- strh r0, [r4, 0x30]
- b _080C3CA8
-_080C3C6C:
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r1, [r4, 0x30]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x77
- bgt _080C3C92
- movs r0, 0x78
- strh r0, [r4, 0x20]
-_080C3C92:
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- bne _080C3CA8
- ldr r0, _080C3CB0 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080C3CB4 @ =0x02018000
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_080C3CA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CB0: .4byte SpriteCallbackDummy
-_080C3CB4: .4byte 0x02018000
- thumb_func_end sub_80C3C44
-
- thumb_func_start sub_80C3CB8
-sub_80C3CB8: @ 80C3CB8
- push {lr}
- adds r3, r0, 0
- movs r0, 0xC0
- lsls r0, 3
- adds r2, r0, 0
- ldrh r0, [r3, 0x30]
- adds r2, r0
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x20]
- subs r0, r1
- strh r0, [r3, 0x20]
- movs r1, 0xFF
- ands r2, r1
- strh r2, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080C3CF8
- ldr r0, _080C3CFC @ =SpriteCallbackDummy
- str r0, [r3, 0x1C]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080C3D00 @ =0x02018000
- movs r0, 0x2
- strb r0, [r1, 0x6]
-_080C3CF8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C3CFC: .4byte SpriteCallbackDummy
-_080C3D00: .4byte 0x02018000
- thumb_func_end sub_80C3CB8
-
- thumb_func_start sub_80C3D04
-sub_80C3D04: @ 80C3D04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080C3DD8 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080C3DBE
- movs r0, 0
- strh r0, [r1, 0x8]
- ldr r0, _080C3DDC @ =0x02018000
- mov r8, r0
- ldrb r0, [r0, 0x7]
- cmp r0, 0x27
- bhi _080C3DBE
- ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r1, r0, 0
- subs r1, 0x14
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x2C
- movs r3, 0x5
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- ldr r1, _080C3DE4 @ =gSprites
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r1
- lsls r0, 23
- lsrs r0, 23
- strh r0, [r5, 0x2E]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- adds r0, 0x10
- strh r0, [r5, 0x30]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xFF
- ands r0, r1
- adds r0, 0x30
- strh r0, [r5, 0x32]
- bl Random
- ldrh r6, [r5, 0x4]
- lsls r4, r6, 22
- lsrs r4, 22
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r4, r0
- ldr r1, _080C3DE8 @ =0x000003ff
- adds r0, r1, 0
- ands r4, r0
- ldr r0, _080C3DEC @ =0xfffffc00
- ands r0, r6
- orrs r0, r4
- strh r0, [r5, 0x4]
- mov r1, r8
- ldrb r0, [r1, 0x7]
- adds r0, 0x1
- strb r0, [r1, 0x7]
-_080C3DBE:
- ldr r0, _080C3DDC @ =0x02018000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- beq _080C3DCC
- adds r0, r7, 0
- bl DestroyTask
-_080C3DCC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3DD8: .4byte gTasks
-_080C3DDC: .4byte 0x02018000
-_080C3DE0: .4byte gSpriteTemplate_83D17B4
-_080C3DE4: .4byte gSprites
-_080C3DE8: .4byte 0x000003ff
-_080C3DEC: .4byte 0xfffffc00
- thumb_func_end sub_80C3D04
-
- thumb_func_start sub_80C3DF0
-sub_80C3DF0: @ 80C3DF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x32]
- ldrh r0, [r4, 0x36]
- adds r1, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x36]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldr r5, _080C3E5C @ =0x02018000
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- beq _080C3E3A
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080C3E3A:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xF8
- bgt _080C3E4A
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x74
- ble _080C3E56
-_080C3E4A:
- adds r0, r4, 0
- bl DestroySprite
- ldrb r0, [r5, 0x7]
- subs r0, 0x1
- strb r0, [r5, 0x7]
-_080C3E56:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E5C: .4byte 0x02018000
- thumb_func_end sub_80C3DF0
-
- thumb_func_start sub_80C3E60
-sub_80C3E60: @ 80C3E60
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080C3E98 @ =sub_80C3EA4
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3E9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- ldr r0, _080C3EA0 @ =gUnknown_02038570
- lsls r4, 6
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r1, 0xC]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3E98: .4byte sub_80C3EA4
-_080C3E9C: .4byte gTasks
-_080C3EA0: .4byte gUnknown_02038570
- thumb_func_end sub_80C3E60
-
- thumb_func_start sub_80C3EA4
-sub_80C3EA4: @ 80C3EA4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C3EF8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrb r5, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080C3EEE
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xC]
- ldrb r2, [r4, 0x1E]
- ldr r1, _080C3EFC @ =gUnknown_02038570
- lsls r3, r5, 6
- adds r1, 0x38
- adds r3, r1
- ldr r1, [r3]
- str r1, [sp]
- adds r1, r5, 0
- movs r3, 0
- bl sub_80C3024
- ldrh r0, [r4, 0x1E]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x1E]
-_080C3EEE:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C3EF8: .4byte gTasks
-_080C3EFC: .4byte gUnknown_02038570
- thumb_func_end sub_80C3EA4
-
- thumb_func_start sub_80C3F00
-sub_80C3F00: @ 80C3F00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080C4098 @ =gUnknown_02038678
- ldrh r2, [r0]
- adds r4, r0, 0
- adds r3, r4, 0x2
- movs r0, 0x2
- mov r8, r0
-_080C3F16:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- bge _080C3F24
- ldrh r2, [r3]
-_080C3F24:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- mov r1, r8
- cmp r1, 0
- bge _080C3F16
- lsls r0, r2, 16
- mov r9, r0
- cmp r0, 0
- bge _080C3F62
- ldrh r2, [r4]
- adds r3, r4, 0x2
- movs r4, 0x2
- mov r8, r4
-_080C3F42:
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0
- ldrsh r1, [r3, r5]
- cmp r0, r1
- ble _080C3F50
- ldrh r2, [r3]
-_080C3F50:
- adds r3, 0x2
- movs r0, 0x1
- negs r0, r0
- add r8, r0
- lsls r1, r2, 16
- mov r9, r1
- mov r4, r8
- cmp r4, 0
- bge _080C3F42
-_080C3F62:
- movs r5, 0
- mov r8, r5
- mov r10, r5
-_080C3F68:
- ldr r0, _080C409C @ =gUnknown_02038670
- mov r1, r8
- lsls r7, r1, 1
- adds r0, r7, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- mov r4, r9
- asrs r6, r4, 16
- adds r1, r6, 0
- cmp r6, 0
- bge _080C3F8A
- negs r1, r6
-_080C3F8A:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3F9C
- adds r4, 0xA
-_080C3F9C:
- ldr r0, _080C40A0 @ =0x02018018
- mov r1, r10
- adds r5, r1, r0
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- ldr r0, _080C40A4 @ =gUnknown_02038688
- adds r7, r0
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r1, 0
- bge _080C3FBA
- negs r1, r1
-_080C3FBA:
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r6, 0
- cmp r1, 0
- bge _080C3FCC
- negs r1, r1
-_080C3FCC:
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C3FDE
- adds r4, 0xA
-_080C3FDE:
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- str r0, [r5, 0x4]
- movs r4, 0
- ldrsh r0, [r7, r4]
- cmp r0, 0
- bge _080C3FF4
- movs r0, 0x1
- strb r0, [r5, 0x10]
-_080C3FF4:
- ldr r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- movs r4, 0xFF
- ands r0, r4
- cmp r0, 0x7F
- bls _080C4016
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
-_080C4016:
- lsrs r0, r1, 8
- str r0, [r5, 0x8]
- ldr r1, [r5, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r0, r1
- lsls r0, 11
- movs r1, 0x64
- bl __divsi3
- adds r1, r0, 0
- ands r0, r4
- cmp r0, 0x7F
- bls _080C403A
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
-_080C403A:
- lsrs r0, r1, 8
- str r0, [r5, 0xC]
- mov r0, r8
- lsls r4, r0, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C3990
- strb r0, [r5, 0x11]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80C39E4
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080C4060
- negs r0, r0
-_080C4060:
- strb r0, [r5, 0x12]
- ldr r0, _080C40A8 @ =gUnknown_02038690
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C40B4
- ldr r4, [r5, 0x8]
- ldrh r2, [r5, 0x8]
- ldr r3, [r5, 0xC]
- ldrh r1, [r5, 0xC]
- ldrb r0, [r5, 0x10]
- cmp r0, 0
- beq _080C4080
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080C4080:
- lsls r0, r2, 16
- asrs r2, r0, 16
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r0, r2, r1
- cmp r0, 0x58
- bne _080C40B4
- cmp r1, 0
- ble _080C40AC
- subs r0, r3, 0x1
- str r0, [r5, 0xC]
- b _080C40B4
- .align 2, 0
-_080C4098: .4byte gUnknown_02038678
-_080C409C: .4byte gUnknown_02038670
-_080C40A0: .4byte 0x02018018
-_080C40A4: .4byte gUnknown_02038688
-_080C40A8: .4byte gUnknown_02038690
-_080C40AC:
- cmp r2, 0
- ble _080C40B4
- subs r0, r4, 0x1
- str r0, [r5, 0x8]
-_080C40B4:
- movs r1, 0x14
- add r10, r1
- movs r2, 0x1
- add r8, r2
- mov r4, r8
- cmp r4, 0x3
- bgt _080C40C4
- b _080C3F68
-_080C40C4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C3F00
-
- thumb_func_start sub_80C40D4
-sub_80C40D4: @ 80C40D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- mov r10, r1
- movs r2, 0
- str r2, [sp]
- cmp r0, 0
- bne _080C4198
- mov r8, r2
- ldr r0, _080C417C @ =0x02018018
- subs r1, 0x18
- adds r1, r0
- mov r9, r1
- adds r4, r0, 0
- adds r4, 0x8
- movs r6, 0xA0
-_080C4102:
- ldrb r0, [r4, 0x9]
- cmp r7, r0
- bcs _080C416A
- adds r0, 0x13
- adds r0, r6, r0
- subs r0, r7
- lsls r0, 1
- ldr r2, _080C4180 @ =0x0600bffe
- adds r0, r2
- ldr r2, _080C4184 @ =0x000060b3
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _080C4188 @ =sub_80C42C0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r4]
- lsls r0, 16
- ldrb r1, [r4, 0x9]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C418C @ =0x0000ffff
- ands r0, r3
- ldr r1, _080C4190 @ =0x00007fff
- cmp r0, r1
- bls _080C4146
- movs r0, 0x80
- lsls r0, 9
- adds r3, r0
-_080C4146:
- ldr r1, _080C4194 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
- lsrs r1, r3, 16
- strh r1, [r0, 0xA]
- mov r2, r9
- ldrb r0, [r2, 0x14]
- adds r0, 0x1
- strb r0, [r2, 0x14]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C416A:
- adds r4, 0x14
- adds r6, 0x60
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _080C4102
- b _080C4292
- .align 2, 0
-_080C417C: .4byte 0x02018018
-_080C4180: .4byte 0x0600bffe
-_080C4184: .4byte 0x000060b3
-_080C4188: .4byte sub_80C42C0
-_080C418C: .4byte 0x0000ffff
-_080C4190: .4byte 0x00007fff
-_080C4194: .4byte gTasks
-_080C4198:
- movs r2, 0
- mov r8, r2
- ldr r0, _080C4220 @ =0x02018018
- mov r12, r0
- mov r9, r2
- movs r1, 0xC0
- str r1, [sp, 0x4]
-_080C41A6:
- mov r6, r9
- add r6, r12
- ldrb r1, [r6, 0x12]
- ldrb r0, [r6, 0x10]
- ldr r2, _080C4224 @ =0x000060a3
- cmp r0, 0
- beq _080C41B6
- adds r2, 0x2
-_080C41B6:
- lsls r0, r1, 24
- asrs r0, 24
- cmp r7, r0
- bge _080C427E
- adds r0, 0x13
- ldr r1, [sp, 0x4]
- adds r0, r1, r0
- subs r0, r7
- lsls r0, 1
- ldr r1, _080C4228 @ =0x0600bffe
- adds r0, r1
- strh r2, [r0]
- ldr r0, _080C422C @ =sub_80C42C0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r6, 0xC]
- lsls r0, 16
- ldrb r1, [r6, 0x12]
- bl __udivsi3
- adds r1, r7, 0x1
- adds r3, r0, 0
- muls r3, r1
- ldr r0, _080C4230 @ =0x0000ffff
- ands r0, r3
- ldr r1, _080C4234 @ =0x00007fff
- cmp r0, r1
- bls _080C41FA
- movs r2, 0x80
- lsls r2, 9
- adds r3, r2
-_080C41FA:
- ldr r1, _080C4238 @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r4, r0, r1
- mov r0, r8
- strh r0, [r4, 0x8]
- ldrb r0, [r6, 0x10]
- adds r6, r1, 0
- cmp r0, 0
- beq _080C423C
- movs r0, 0x1
- strh r0, [r4, 0xC]
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- b _080C4246
- .align 2, 0
-_080C4220: .4byte 0x02018018
-_080C4224: .4byte 0x000060a3
-_080C4228: .4byte 0x0600bffe
-_080C422C: .4byte sub_80C42C0
-_080C4230: .4byte 0x0000ffff
-_080C4234: .4byte 0x00007fff
-_080C4238: .4byte gTasks
-_080C423C:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_080C4246:
- ldr r0, _080C4264 @ =0x02018018
- mov r1, r9
- adds r4, r1, r0
- ldrb r1, [r4, 0x10]
- mov r12, r0
- cmp r1, 0
- beq _080C4268
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- subs r1, r2
- b _080C4274
- .align 2, 0
-_080C4264: .4byte 0x02018018
-_080C4268:
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r6
- lsrs r2, r3, 16
- ldr r1, [r4, 0x8]
- adds r1, r2
-_080C4274:
- strh r1, [r0, 0xA]
- ldr r1, _080C42BC @ =0x02018000
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
-_080C427E:
- movs r2, 0x14
- add r9, r2
- ldr r0, [sp, 0x4]
- adds r0, 0x60
- str r0, [sp, 0x4]
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x3
- ble _080C41A6
-_080C4292:
- ldr r0, [sp]
- cmp r0, 0
- beq _080C429E
- movs r0, 0x16
- bl PlaySE
-_080C429E:
- mov r1, r10
- cmp r1, 0
- beq _080C42AA
- movs r0, 0x15
- bl PlaySE
-_080C42AA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C42BC: .4byte 0x02018000
- thumb_func_end sub_80C40D4
-
- thumb_func_start sub_80C42C0
-sub_80C42C0: @ 80C42C0
- 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
- mov r9, r6
- ldr r1, _080C4308 @ =gTasks
- lsls r0, 2
- add r0, r12
- lsls r0, 3
- adds r0, r1
- ldrb r5, [r0, 0x8]
- ldrh r7, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- mov r8, r1
- movs r2, 0xC
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080C4310
- ldr r1, _080C430C @ =0x02018000
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0
- bgt _080C4328
- b _080C4326
- .align 2, 0
-_080C4308: .4byte gTasks
-_080C430C: .4byte 0x02018000
-_080C4310:
- ldr r1, _080C4350 @ =0x02018000
- lsls r2, r5, 1
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r2, r0
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r10, r1
- adds r4, r2, 0
- cmp r0, 0x57
- ble _080C4328
-_080C4326:
- movs r6, 0x1
-_080C4328:
- mov r0, r10
- adds r0, 0xC
- adds r3, r4, r0
- ldrh r2, [r3]
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _080C4340
- movs r1, 0x1
- mov r9, r1
-_080C4340:
- mov r0, r9
- cmp r0, 0
- bne _080C4362
- cmp r6, 0
- beq _080C4354
- strh r7, [r3]
- b _080C4362
- .align 2, 0
-_080C4350: .4byte 0x02018000
-_080C4354:
- mov r1, r8
- cmp r1, 0
- beq _080C435E
- subs r0, r2, 0x1
- b _080C4360
-_080C435E:
- adds r0, r2, 0x1
-_080C4360:
- strh r0, [r3]
-_080C4362:
- cmp r6, 0
- bne _080C43C8
- mov r2, r9
- cmp r2, 0
- bne _080C43CE
- movs r2, 0
- ldr r0, _080C4388 @ =0x0201800c
- adds r6, r4, r0
- adds r0, r4, r5
- lsls r5, r0, 5
-_080C4376:
- movs r0, 0
- ldrsh r3, [r6, r0]
- adds r0, r2, 0x1
- lsls r1, r0, 3
- adds r4, r0, 0
- cmp r3, r1
- blt _080C438C
- movs r0, 0x8
- b _080C43A8
- .align 2, 0
-_080C4388: .4byte 0x0201800c
-_080C438C:
- lsls r0, r2, 3
- cmp r3, r0
- blt _080C43A6
- adds r0, r3, 0
- cmp r3, 0
- bge _080C439A
- adds r0, r3, 0x7
-_080C439A:
- asrs r0, 3
- lsls r0, 3
- subs r0, r3, r0
- lsls r0, 24
- lsrs r0, 24
- b _080C43A8
-_080C43A6:
- movs r0, 0
-_080C43A8:
- cmp r0, 0x3
- bhi _080C43B4
- ldr r3, _080C43B0 @ =0x0000504c
- b _080C43B6
- .align 2, 0
-_080C43B0: .4byte 0x0000504c
-_080C43B4:
- ldr r3, _080C43EC @ =0x00005057
-_080C43B6:
- adds r1, r0, r3
- adds r0, r5, r2
- lsls r0, 1
- ldr r2, _080C43F0 @ =0x0600e18e
- adds r0, r2
- strh r1, [r0]
- adds r2, r4, 0
- cmp r2, 0xA
- ble _080C4376
-_080C43C8:
- mov r3, r9
- cmp r3, 0
- beq _080C43DC
-_080C43CE:
- mov r1, r10
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- mov r0, r12
- bl DestroyTask
-_080C43DC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C43EC: .4byte 0x00005057
-_080C43F0: .4byte 0x0600e18e
- thumb_func_end sub_80C42C0
-
- thumb_func_start sub_80C43F4
-sub_80C43F4: @ 80C43F4
- push {r4,r5,lr}
- ldr r0, _080C442C @ =gUnknown_02038694
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080C4430 @ =gPlayerParty
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0
- beq _080C4422
- ldr r4, _080C4434 @ =gUnknown_0203869C
- ldrb r0, [r4]
- ldr r1, _080C4438 @ =gUnknown_0203869E
- ldrb r1, [r1]
- bl sub_80AE398
- ldrb r0, [r4]
- bl sub_80AE82C
-_080C4422:
- ldr r0, _080C443C @ =gScriptResult
- strh r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C442C: .4byte gUnknown_02038694
-_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gUnknown_0203869C
-_080C4438: .4byte gUnknown_0203869E
-_080C443C: .4byte gScriptResult
- thumb_func_end sub_80C43F4
-
- thumb_func_start sub_80C4440
-sub_80C4440: @ 80C4440
- push {r4,lr}
- movs r4, 0
- ldr r0, _080C4464 @ =gUnknown_02038694
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C4468 @ =gPlayerParty
- adds r2, r1, r0
- ldr r0, _080C446C @ =gUnknown_0203869C
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C44B2
- lsls r0, 2
- ldr r1, _080C4470 @ =_080C4474
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4464: .4byte gUnknown_02038694
-_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gUnknown_0203869C
-_080C4470: .4byte _080C4474
- .align 2, 0
-_080C4474:
- .4byte _080C4488
- .4byte _080C448E
- .4byte _080C4494
- .4byte _080C449A
- .4byte _080C44A0
-_080C4488:
- adds r0, r2, 0
- movs r1, 0x32
- b _080C44A4
-_080C448E:
- adds r0, r2, 0
- movs r1, 0x33
- b _080C44A4
-_080C4494:
- adds r0, r2, 0
- movs r1, 0x34
- b _080C44A4
-_080C449A:
- adds r0, r2, 0
- movs r1, 0x35
- b _080C44A4
-_080C44A0:
- adds r0, r2, 0
- movs r1, 0x36
-_080C44A4:
- bl GetMonData
- ldr r1, _080C44BC @ =gUnknown_0203869E
- ldrh r1, [r1]
- cmp r0, r1
- bls _080C44B2
- movs r4, 0x1
-_080C44B2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C44BC: .4byte gUnknown_0203869E
- thumb_func_end sub_80C4440
-
- thumb_func_start sub_80C44C0
-sub_80C44C0: @ 80C44C0
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080C44E8 @ =gUnknown_02038690
- ldr r0, _080C44EC @ =gUnknown_02038695
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C44D4
- b _080C465E
-_080C44D4:
- ldr r0, _080C44F0 @ =gUnknown_0203869C
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _080C44DE
- b _080C465E
-_080C44DE:
- lsls r0, 2
- ldr r1, _080C44F4 @ =_080C44F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C44E8: .4byte gUnknown_02038690
-_080C44EC: .4byte gUnknown_02038695
-_080C44F0: .4byte gUnknown_0203869C
-_080C44F4: .4byte _080C44F8
- .align 2, 0
-_080C44F8:
- .4byte _080C450C
- .4byte _080C4554
- .4byte _080C4598
- .4byte _080C45DC
- .4byte _080C4624
-_080C450C:
- ldr r6, _080C4548 @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C454C @ =gPlayerParty
- adds r0, r4
- movs r1, 0x32
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- mov r0, sp
- strb r1, [r0]
- ldr r0, _080C4550 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r1, r0
- bls _080C4530
- b _080C465E
-_080C4530:
- adds r0, r1, 0
- cmp r0, 0x3
- bls _080C4538
- b _080C465E
-_080C4538:
- adds r1, r0, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x32
- b _080C4610
- .align 2, 0
-_080C4548: .4byte gUnknown_02038694
-_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gUnknown_0203869E
-_080C4554:
- mov r4, sp
- ldr r7, _080C458C @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C4590 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x33
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4594 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x33
- b _080C4610
- .align 2, 0
-_080C458C: .4byte gUnknown_02038694
-_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gUnknown_0203869E
-_080C4598:
- mov r4, sp
- ldr r7, _080C45D0 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C45D4 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x34
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C45D8 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x34
- b _080C4610
- .align 2, 0
-_080C45D0: .4byte gUnknown_02038694
-_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gUnknown_0203869E
-_080C45DC:
- mov r4, sp
- ldr r7, _080C4618 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C461C @ =gPlayerParty
- adds r0, r5
- movs r1, 0x35
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4620 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x35
-_080C4610:
- mov r2, sp
- bl SetMonData
- b _080C465E
- .align 2, 0
-_080C4618: .4byte gUnknown_02038694
-_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gUnknown_0203869E
-_080C4624:
- mov r4, sp
- ldr r7, _080C4668 @ =gUnknown_02038694
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080C466C @ =gPlayerParty
- adds r0, r5
- movs r1, 0x36
- bl GetMonData
- strb r0, [r4]
- mov r0, sp
- ldrb r2, [r0]
- ldr r0, _080C4670 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r2, r0
- bhi _080C465E
- cmp r2, 0x3
- bhi _080C465E
- mov r1, sp
- adds r0, r2, 0x1
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x36
- mov r2, sp
- bl SetMonData
-_080C465E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4668: .4byte gUnknown_02038694
-_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gUnknown_0203869E
- thumb_func_end sub_80C44C0
-
- thumb_func_start sub_80C4674
-sub_80C4674: @ 80C4674
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C4690
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C4690
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_080C4690:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4674
-
- thumb_func_start sub_80C4698
-sub_80C4698: @ 80C4698
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r4, 6
- ldr r0, _080C46E0 @ =gUnknown_02038572
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
- ldr r0, _080C46E4 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C46DA
- ldr r0, _080C46E8 @ =gLinkPlayers
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- cmp r0, 0x1
- bne _080C46DA
- adds r0, r5, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl ConvertInternationalString
-_080C46DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C46E0: .4byte gUnknown_02038572
-_080C46E4: .4byte gUnknown_0203869A
-_080C46E8: .4byte gLinkPlayers
- thumb_func_end sub_80C4698
-
- thumb_func_start sub_80C46EC
-sub_80C46EC: @ 80C46EC
- push {lr}
- ldr r0, _080C4710 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4720
- ldr r0, _080C4714 @ =gStringVar1
- ldr r1, _080C4718 @ =gUnknown_0202E8D0
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r2, _080C471C @ =gLinkPlayers + 0x8
- adds r1, r2
- bl sub_80C4674
- b _080C4730
- .align 2, 0
-_080C4710: .4byte gUnknown_0203869A
-_080C4714: .4byte gStringVar1
-_080C4718: .4byte gUnknown_0202E8D0
-_080C471C: .4byte gLinkPlayers + 0x8
-_080C4720:
- ldr r0, _080C4734 @ =gStringVar1
- ldr r1, _080C4738 @ =gUnknown_0202E8D0
- ldrh r1, [r1]
- lsls r1, 6
- ldr r2, _080C473C @ =gUnknown_0203857D
- adds r1, r2
- bl sub_80C4674
-_080C4730:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4734: .4byte gStringVar1
-_080C4738: .4byte gUnknown_0202E8D0
-_080C473C: .4byte gUnknown_0203857D
- thumb_func_end sub_80C46EC
-
- thumb_func_start sub_80C4740
-sub_80C4740: @ 80C4740
- push {lr}
- ldr r0, _080C4750 @ =gStringVar3
- ldr r1, _080C4754 @ =gUnknown_0202E8D0
- ldrb r1, [r1]
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4750: .4byte gStringVar3
-_080C4754: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4740
-
- thumb_func_start sub_80C4758
-sub_80C4758: @ 80C4758
- push {r4-r6,lr}
- movs r1, 0
- movs r2, 0
- ldr r5, _080C4794 @ =gUnknown_0202E8CC
- ldr r4, _080C4798 @ =gUnknown_02038670
- ldr r0, _080C479C @ =gUnknown_0202E8D0
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r4
- movs r6, 0
- ldrsh r3, [r0, r6]
-_080C476E:
- lsls r0, r1, 1
- adds r0, r4
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r3, r0
- bge _080C4780
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4780:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C476E
- strh r2, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4794: .4byte gUnknown_0202E8CC
-_080C4798: .4byte gUnknown_02038670
-_080C479C: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4758
-
- thumb_func_start sub_80C47A0
-sub_80C47A0: @ 80C47A0
- ldr r2, _080C47B4 @ =gUnknown_0202E8CC
- ldr r1, _080C47B8 @ =gUnknown_02038670
- ldr r0, _080C47BC @ =gUnknown_0202E8D0
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C47B4: .4byte gUnknown_0202E8CC
-_080C47B8: .4byte gUnknown_02038670
-_080C47BC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C47A0
-
- thumb_func_start sub_80C47C0
-sub_80C47C0: @ 80C47C0
- push {lr}
- movs r1, 0
- ldr r2, _080C47E8 @ =gUnknown_02038690
- ldrb r0, [r2]
- ldr r3, _080C47EC @ =gUnknown_0202E8CE
- cmp r0, 0
- beq _080C47E0
-_080C47CE:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C47E0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C47CE
-_080C47E0:
- strh r1, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_080C47E8: .4byte gUnknown_02038690
-_080C47EC: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80C47C0
-
- thumb_func_start sub_80C47F0
-sub_80C47F0: @ 80C47F0
- push {r4,lr}
- movs r2, 0
- ldr r3, _080C4830 @ =gUnknown_02038690
- ldrb r0, [r3]
- ldr r1, _080C4834 @ =gUnknown_0203869A
- ldr r4, _080C4838 @ =gStringVar3
- cmp r0, 0
- beq _080C4812
-_080C4800:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _080C4812
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4800
-_080C4812:
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4840
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _080C483C @ =gLinkPlayers + 0x8
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
- b _080C484C
- .align 2, 0
-_080C4830: .4byte gUnknown_02038690
-_080C4834: .4byte gUnknown_0203869A
-_080C4838: .4byte gStringVar3
-_080C483C: .4byte gLinkPlayers + 0x8
-_080C4840:
- lsls r1, r2, 6
- ldr r0, _080C4854 @ =gUnknown_0203857D
- adds r1, r0
- adds r0, r4, 0
- bl sub_80C4674
-_080C484C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4854: .4byte gUnknown_0203857D
- thumb_func_end sub_80C47F0
-
- thumb_func_start sub_80C4858
-sub_80C4858: @ 80C4858
- push {lr}
- movs r1, 0
- ldr r2, _080C4884 @ =gUnknown_02038690
- ldrb r0, [r2]
- ldr r3, _080C4888 @ =gStringVar1
- cmp r0, 0
- beq _080C4878
-_080C4866:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080C4878
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4866
-_080C4878:
- adds r0, r3, 0
- bl sub_80C4698
- pop {r0}
- bx r0
- .align 2, 0
-_080C4884: .4byte gUnknown_02038690
-_080C4888: .4byte gStringVar1
- thumb_func_end sub_80C4858
-
- thumb_func_start sub_80C488C
-sub_80C488C: @ 80C488C
- push {lr}
- ldr r0, _080C4898 @ =sub_80AB47C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4898: .4byte sub_80AB47C
- thumb_func_end sub_80C488C
-
- thumb_func_start sub_80C489C
-sub_80C489C: @ 80C489C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C48C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C48BA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C48C4 @ =sub_80C488C
- bl SetMainCallback2
-_080C48BA:
- pop {r0}
- bx r0
- .align 2, 0
-_080C48C0: .4byte gPaletteFade
-_080C48C4: .4byte sub_80C488C
- thumb_func_end sub_80C489C
-
- thumb_func_start sub_80C48C8
-sub_80C48C8: @ 80C48C8
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C48F0 @ =sub_80C489C
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C48F0: .4byte sub_80C489C
- thumb_func_end sub_80C48C8
-
- thumb_func_start sub_80C48F4
-sub_80C48F4: @ 80C48F4
- ldr r2, _080C4908 @ =gUnknown_0202E8CC
- ldr r1, _080C490C @ =gUnknown_02038570
- ldr r0, _080C4910 @ =gUnknown_0202E8D0
- ldrh r0, [r0]
- lsls r0, 6
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080C4908: .4byte gUnknown_0202E8CC
-_080C490C: .4byte gUnknown_02038570
-_080C4910: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C48F4
-
- thumb_func_start sub_80C4914
-sub_80C4914: @ 80C4914
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C4938 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C4932
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080C493C @ =sub_80C2358
- bl SetMainCallback2
-_080C4932:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4938: .4byte gPaletteFade
-_080C493C: .4byte sub_80C2358
- thumb_func_end sub_80C4914
-
- thumb_func_start sub_80C4940
-sub_80C4940: @ 80C4940
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080C4968 @ =sub_80C4914
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C4968: .4byte sub_80C4914
- thumb_func_end sub_80C4940
-
- thumb_func_start sub_80C496C
-sub_80C496C: @ 80C496C
- ldr r0, _080C4978 @ =gUnknown_0202E8CC
- ldr r1, _080C497C @ =gUnknown_02038695
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080C4978: .4byte gUnknown_0202E8CC
-_080C497C: .4byte gUnknown_02038695
- thumb_func_end sub_80C496C
-
- thumb_func_start sub_80C4980
-sub_80C4980: @ 80C4980
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl ScriptContext2_Enable
- ldr r6, _080C49B8 @ =sub_80C8604
- adds r0, r6, 0
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080C49BC @ =sub_80C49C4
- adds r0, r4, 0
- adds r1, r6, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _080C49C0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49B8: .4byte sub_80C8604
-_080C49BC: .4byte sub_80C49C4
-_080C49C0: .4byte gTasks
- thumb_func_end sub_80C4980
-
- thumb_func_start sub_80C49C4
-sub_80C49C4: @ 80C49C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C49E4 @ =gUnknown_02038694
- ldrb r0, [r0]
- bl sub_80AE098
- ldr r1, _080C49E8 @ =sub_80C8734
- ldr r2, _080C49EC @ =sub_80C49F0
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C49E4: .4byte gUnknown_02038694
-_080C49E8: .4byte sub_80C8734
-_080C49EC: .4byte sub_80C49F0
- thumb_func_end sub_80C49C4
-
- thumb_func_start sub_80C49F0
-sub_80C49F0: @ 80C49F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A04 @ =sub_80C88AC
- ldr r2, _080C4A08 @ =sub_80C4A0C
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A04: .4byte sub_80C88AC
-_080C4A08: .4byte sub_80C4A0C
- thumb_func_end sub_80C49F0
-
- thumb_func_start sub_80C4A0C
-sub_80C4A0C: @ 80C4A0C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A20 @ =sub_80C8E1C
- ldr r2, _080C4A24 @ =sub_80C4A28
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A20: .4byte sub_80C8E1C
-_080C4A24: .4byte sub_80C4A28
- thumb_func_end sub_80C4A0C
-
- thumb_func_start sub_80C4A28
-sub_80C4A28: @ 80C4A28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C4A3C @ =sub_80C8938
- ldr r2, _080C4A40 @ =sub_80C4A44
- bl SetTaskFuncWithFollowupFunc
- pop {r0}
- bx r0
- .align 2, 0
-_080C4A3C: .4byte sub_80C8938
-_080C4A40: .4byte sub_80C4A44
- thumb_func_end sub_80C4A28
-
- thumb_func_start sub_80C4A44
-sub_80C4A44: @ 80C4A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r0, _080C4AA0 @ =gUnknown_0202E8CC
- mov r8, r0
- add r1, sp, 0x4
- mov r12, r1
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r4, r0, 3
- ldr r6, _080C4AA4 @ =gTasks + 0x8
- adds r7, r1, 0
-_080C4A64:
- mov r0, sp
- adds r2, r0, r3
- adds r1, r3, 0x1
- lsls r0, r1, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r3, 0x3
- bls _080C4A64
- movs r3, 0
- mov r2, sp
-_080C4A80:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bhi _080C4A96
- mov r0, sp
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080C4A80
-_080C4A96:
- cmp r3, 0x4
- bne _080C4AA8
- movs r0, 0
- b _080C4AAA
- .align 2, 0
-_080C4AA0: .4byte gUnknown_0202E8CC
-_080C4AA4: .4byte gTasks + 0x8
-_080C4AA8:
- movs r0, 0x1
-_080C4AAA:
- mov r1, r8
- strh r0, [r1]
- movs r3, 0
- mov r4, r12
- adds r0, r7, r5
- lsls r2, r0, 3
- ldr r6, _080C4AF8 @ =gTasks + 0x8
-_080C4AB8:
- adds r1, r4, r3
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r2
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _080C4AB8
- mov r0, r12
- bl sub_80C4B34
- ldr r1, _080C4AFC @ =gUnknown_0203869B
- strb r0, [r1]
- ldr r0, _080C4B00 @ =gUnknown_0203869C
- ldrb r0, [r0]
- bl sub_80AE82C
- ldr r1, _080C4B04 @ =sub_80C8EBC
- ldr r2, _080C4B08 @ =sub_80C4B0C
- adds r0, r5, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4AF8: .4byte gTasks + 0x8
-_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gUnknown_0203869C
-_080C4B04: .4byte sub_80C8EBC
-_080C4B08: .4byte sub_80C4B0C
- thumb_func_end sub_80C4A44
-
- thumb_func_start sub_80C4B0C
-sub_80C4B0C: @ 80C4B0C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80B0F28
- ldr r1, _080C4B2C @ =sub_80C8F34
- ldr r2, _080C4B30 @ =sub_80C4B5C
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4B2C: .4byte sub_80C8F34
-_080C4B30: .4byte sub_80C4B5C
- thumb_func_end sub_80C4B0C
-
- thumb_func_start sub_80C4B34
-sub_80C4B34: @ 80C4B34
- push {r4,lr}
- adds r3, r0, 0
- movs r4, 0
- movs r2, 0x1
-_080C4B3C:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080C4B4C
- lsls r0, r2, 24
- lsrs r4, r0, 24
-_080C4B4C:
- adds r2, 0x1
- cmp r2, 0x3
- ble _080C4B3C
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C4B34
-
- thumb_func_start sub_80C4B5C
-sub_80C4B5C: @ 80C4B5C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C4B84 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080C4B90
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C4B9E
- ldr r0, _080C4B88 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C4B8C @ =sub_80C4BA4
- str r0, [r1]
- b _080C4B9E
- .align 2, 0
-_080C4B84: .4byte gUnknown_0202E8CC
-_080C4B88: .4byte gTasks
-_080C4B8C: .4byte sub_80C4BA4
-_080C4B90:
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4B9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C4B5C
-
- thumb_func_start sub_80C4BA4
-sub_80C4BA4: @ 80C4BA4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800832C
- ldr r1, _080C4BC4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C4BC8 @ =sub_80C4BCC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BC4: .4byte gTasks
-_080C4BC8: .4byte sub_80C4BCC
- thumb_func_end sub_80C4BA4
-
- thumb_func_start sub_80C4BCC
-sub_80C4BCC: @ 80C4BCC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4BE8
- adds r0, r1, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_080C4BE8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4BEC: .4byte gReceivedRemoteLinkPlayers
- thumb_func_end sub_80C4BCC
-
- thumb_func_start sub_80C4BF0
-sub_80C4BF0: @ 80C4BF0
- push {r4,lr}
- ldr r2, _080C4C1C @ =gSaveBlock1
- ldr r1, _080C4C20 @ =gUnknown_02038570
- ldrb r3, [r1, 0x15]
- movs r4, 0x9B
- lsls r4, 5
- adds r0, r2, r4
- strh r3, [r0]
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r3, [r0]
- adds r4, 0x2
- adds r0, r2, r4
- strh r3, [r0]
- adds r1, 0x95
- ldrb r0, [r1]
- ldr r1, _080C4C24 @ =0x00001364
- adds r2, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C1C: .4byte gSaveBlock1
-_080C4C20: .4byte gUnknown_02038570
-_080C4C24: .4byte 0x00001364
- thumb_func_end sub_80C4BF0
-
- thumb_func_start sub_80C4C28
-sub_80C4C28: @ 80C4C28
- push {lr}
- ldr r0, _080C4C40 @ =gUnknown_0202E8CE
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080C4C4E
- cmp r0, 0x1
- bgt _080C4C44
- cmp r0, 0
- beq _080C4C4A
- b _080C4C56
- .align 2, 0
-_080C4C40: .4byte gUnknown_0202E8CE
-_080C4C44:
- cmp r1, 0x2
- beq _080C4C52
- b _080C4C56
-_080C4C4A:
- movs r1, 0x3
- b _080C4C58
-_080C4C4E:
- movs r1, 0x4
- b _080C4C58
-_080C4C52:
- movs r1, 0x5
- b _080C4C58
-_080C4C56:
- movs r1, 0x64
-_080C4C58:
- ldr r0, _080C4C60 @ =gUnknown_0202E8CC
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4C60: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4C28
-
- thumb_func_start sub_80C4C64
-sub_80C4C64: @ 80C4C64
- push {lr}
- bl sub_80C46EC
- bl sub_80C4740
- bl sub_80C48F4
- pop {r0}
- bx r0
- thumb_func_end sub_80C4C64
-
- thumb_func_start sub_80C4C78
-sub_80C4C78: @ 80C4C78
- push {lr}
- ldr r0, _080C4C8C @ =gUnknown_0203869C
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080C4CB8
- lsls r0, 2
- ldr r1, _080C4C90 @ =_080C4C94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C4C8C: .4byte gUnknown_0203869C
-_080C4C90: .4byte _080C4C94
- .align 2, 0
-_080C4C94:
- .4byte _080C4CA8
- .4byte _080C4CAC
- .4byte _080C4CB0
- .4byte _080C4CB4
- .4byte _080C4CB8
-_080C4CA8:
- movs r0, 0x8
- b _080C4CBA
-_080C4CAC:
- movs r0, 0x9
- b _080C4CBA
-_080C4CB0:
- movs r0, 0xA
- b _080C4CBA
-_080C4CB4:
- movs r0, 0xB
- b _080C4CBA
-_080C4CB8:
- movs r0, 0xC
-_080C4CBA:
- ldr r1, _080C4CD0 @ =gSaveBlock1
- lsls r0, 5
- adds r0, r1
- ldr r1, _080C4CD4 @ =0x00002e04
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _080C4CDC
- ldr r0, _080C4CD8 @ =gUnknown_0202E8CC
- strh r1, [r0]
- b _080C4CE2
- .align 2, 0
-_080C4CD0: .4byte gSaveBlock1
-_080C4CD4: .4byte 0x00002e04
-_080C4CD8: .4byte gUnknown_0202E8CC
-_080C4CDC:
- ldr r1, _080C4CE8 @ =gUnknown_0202E8CC
- movs r0, 0x1
- strh r0, [r1]
-_080C4CE2:
- pop {r0}
- bx r0
- .align 2, 0
-_080C4CE8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4C78
-
- thumb_func_start sub_80C4CEC
-sub_80C4CEC: @ 80C4CEC
- push {lr}
- movs r0, 0xFF
- bl sub_80B2A7C
- pop {r0}
- bx r0
- thumb_func_end sub_80C4CEC
-
- thumb_func_start sub_80C4CF8
-sub_80C4CF8: @ 80C4CF8
- push {lr}
- ldr r0, _080C4D28 @ =gUnknown_02038690
- ldr r1, _080C4D2C @ =gUnknown_02038695
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C4D40
- ldr r0, _080C4D30 @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C4D40
- ldr r1, _080C4D34 @ =gUnknown_02038678
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C4D38 @ =0x0000031f
- cmp r1, r0
- ble _080C4D40
- ldr r1, _080C4D3C @ =gUnknown_0202E8CC
- movs r0, 0x1
- b _080C4D44
- .align 2, 0
-_080C4D28: .4byte gUnknown_02038690
-_080C4D2C: .4byte gUnknown_02038695
-_080C4D30: .4byte gUnknown_0203869E
-_080C4D34: .4byte gUnknown_02038678
-_080C4D38: .4byte 0x0000031f
-_080C4D3C: .4byte gUnknown_0202E8CC
-_080C4D40:
- ldr r1, _080C4D4C @ =gUnknown_0202E8CC
- movs r0, 0
-_080C4D44:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C4D4C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80C4CF8
-
- thumb_func_start sub_80C4D50
-sub_80C4D50: @ 80C4D50
- push {lr}
- movs r3, 0
- ldr r0, _080C4D78 @ =gSaveBlock1
- ldr r1, _080C4D7C @ =0x00002f04
- adds r2, r0, r1
- movs r1, 0x4
-_080C4D5C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _080C4D68
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C4D68:
- adds r2, 0x20
- subs r1, 0x1
- cmp r1, 0
- bge _080C4D5C
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C4D78: .4byte gSaveBlock1
-_080C4D7C: .4byte 0x00002f04
- thumb_func_end sub_80C4D50
-
- thumb_func_start sub_80C4D80
-sub_80C4D80: @ 80C4D80
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _080C4EA0 @ =gUnknown_02038670
- mov r12, r0
- ldr r1, _080C4EA4 @ =gUnknown_0202E8D0
- mov r8, r1
- ldr r2, _080C4EA8 @ =gStringVar1
- mov r9, r2
- mov r2, r12
- mov r1, sp
- movs r6, 0x3
-_080C4D9E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080C4D9E
- movs r6, 0
-_080C4DAE:
- movs r1, 0x3
- cmp r1, r6
- ble _080C4DD8
-_080C4DB4:
- subs r4, r1, 0x1
- lsls r0, r4, 1
- mov r5, sp
- adds r3, r5, r0
- lsls r0, r1, 1
- adds r2, r5, r0
- ldrh r5, [r3]
- movs r7, 0
- ldrsh r1, [r3, r7]
- movs r7, 0
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080C4DD2
- strh r5, [r2]
- strh r0, [r3]
-_080C4DD2:
- adds r1, r4, 0
- cmp r1, r6
- bgt _080C4DB4
-_080C4DD8:
- adds r6, 0x1
- cmp r6, 0x2
- ble _080C4DAE
- mov r2, r8
- ldrh r0, [r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- movs r2, 0
- movs r7, 0
- movs r6, 0
- lsls r0, 16
- asrs r4, r0, 16
- adds r3, r0, 0
- mov r1, sp
-_080C4DF6:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _080C4E12
- lsls r0, r2, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r2, r0, 24
- mov r5, r8
- ldrh r5, [r5]
- cmp r6, r5
- bne _080C4E12
- adds r7, r2, 0
-_080C4E12:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080C4DF6
- movs r6, 0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r1, r3, 16
- lsls r2, 24
- mov r10, r2
- cmp r0, r1
- beq _080C4E40
- adds r2, r1, 0
- mov r1, sp
-_080C4E30:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E40
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r2
- bne _080C4E30
-_080C4E40:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r2, r7, 0
- movs r6, 0
- asrs r5, r3, 16
- mov r8, r5
- mov r1, r12
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r8, r0
- bne _080C4E60
- cmp r7, 0x1
- beq _080C4E78
-_080C4E5A:
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080C4E60:
- adds r6, 0x1
- cmp r6, 0x3
- bgt _080C4E78
- lsls r0, r6, 1
- add r0, r12
- asrs r1, r3, 16
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080C4E60
- cmp r2, 0x1
- bne _080C4E5A
-_080C4E78:
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r9
- bl sub_80C4698
- ldr r0, _080C4EAC @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C4EB8
- ldr r0, _080C4EB0 @ =gStringVar2
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8
- adds r1, r2
- bl sub_80C4674
- b _080C4EC4
- .align 2, 0
-_080C4EA0: .4byte gUnknown_02038670
-_080C4EA4: .4byte gUnknown_0202E8D0
-_080C4EA8: .4byte gStringVar1
-_080C4EAC: .4byte gUnknown_0203869A
-_080C4EB0: .4byte gStringVar2
-_080C4EB4: .4byte gLinkPlayers + 0x8
-_080C4EB8:
- ldr r0, _080C4ED8 @ =gStringVar2
- lsls r1, r6, 6
- ldr r2, _080C4EDC @ =gUnknown_0203857D
- adds r1, r2
- bl sub_80C4674
-_080C4EC4:
- mov r1, r10
- asrs r0, r1, 24
- cmp r0, 0x1
- beq _080C4ED0
- cmp r7, r0
- bne _080C4EE4
-_080C4ED0:
- ldr r0, _080C4EE0 @ =gUnknown_0202E8D0
- strh r4, [r0]
- b _080C4EEA
- .align 2, 0
-_080C4ED8: .4byte gStringVar2
-_080C4EDC: .4byte gUnknown_0203857D
-_080C4EE0: .4byte gUnknown_0202E8D0
-_080C4EE4:
- ldr r1, _080C4EFC @ =gUnknown_0202E8D0
- adds r0, r4, 0x4
- strh r0, [r1]
-_080C4EEA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4EFC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_80C4D80
-
- thumb_func_start sub_80C4F00
-sub_80C4F00: @ 80C4F00
- push {lr}
- ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C4F00
-
- thumb_func_start sub_80C4F10
-sub_80C4F10: @ 80C4F10
- push {r4-r6,lr}
- ldr r6, _080C4F54 @ =gUnknown_0203856C
- ldrb r0, [r6]
- cmp r0, 0
- beq _080C4F40
- bl sub_80AAF30
- ldr r4, _080C4F58 @ =0x02000000
- ldr r0, _080C4F5C @ =0x00015ddf
- adds r1, r4, r0
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0xFE
- movs r1, 0
- bl sub_80B2C4C
- ldr r1, _080C4F60 @ =0x00015dde
- adds r4, r1
- strb r0, [r4]
- movs r0, 0x3
- bl sub_80B2A7C
- strb r5, [r6]
-_080C4F40:
- ldr r0, _080C4F64 @ =sub_8106668
- bl SetMainCallback2
- ldr r1, _080C4F68 @ =gMain
- ldr r0, _080C4F6C @ =sub_80C4F00
- str r0, [r1, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4F54: .4byte gUnknown_0203856C
-_080C4F58: .4byte 0x02000000
-_080C4F5C: .4byte 0x00015ddf
-_080C4F60: .4byte 0x00015dde
-_080C4F64: .4byte sub_8106668
-_080C4F68: .4byte gMain
-_080C4F6C: .4byte sub_80C4F00
- thumb_func_end sub_80C4F10
-
- thumb_func_start sub_80C4F70
-sub_80C4F70: @ 80C4F70
- push {r4,lr}
- ldr r0, _080C4FA8 @ =0x00004010
- ldr r4, _080C4FAC @ =gUnknown_02038570
- ldrb r1, [r4, 0x15]
- bl VarSet
- ldr r0, _080C4FB0 @ =0x00004011
- adds r1, r4, 0
- adds r1, 0x55
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB4 @ =0x00004012
- adds r1, r4, 0
- adds r1, 0x95
- ldrb r1, [r1]
- bl VarSet
- ldr r0, _080C4FB8 @ =0x00004013
- adds r1, r4, 0
- adds r1, 0xD5
- ldrb r1, [r1]
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C4FA8: .4byte 0x00004010
-_080C4FAC: .4byte gUnknown_02038570
-_080C4FB0: .4byte 0x00004011
-_080C4FB4: .4byte 0x00004012
-_080C4FB8: .4byte 0x00004013
- thumb_func_end sub_80C4F70
-
- thumb_func_start sub_80C4FBC
-sub_80C4FBC: @ 80C4FBC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080C501C @ =gUnknown_02038694
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080C5020 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x46
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C5024 @ =gUnknown_02038690
- ldr r1, _080C5028 @ =gUnknown_02038695
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080C5038
- ldr r0, _080C502C @ =gUnknown_0203869E
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080C5038
- ldr r1, _080C5030 @ =gUnknown_02038678
- lsls r0, r2, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _080C5034 @ =0x0000031f
- cmp r1, r0
- ble _080C5038
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0x46
- mov r2, sp
- bl SetMonData
- movs r0, 0x1
- b _080C503A
- .align 2, 0
-_080C501C: .4byte gUnknown_02038694
-_080C5020: .4byte gPlayerParty
-_080C5024: .4byte gUnknown_02038690
-_080C5028: .4byte gUnknown_02038695
-_080C502C: .4byte gUnknown_0203869E
-_080C5030: .4byte gUnknown_02038678
-_080C5034: .4byte 0x0000031f
-_080C5038:
- movs r0, 0
-_080C503A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C4FBC
-
- thumb_func_start sub_80C5044
-sub_80C5044: @ 80C5044
- ldr r0, _080C504C @ =gUnknown_0203856C
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080C504C: .4byte gUnknown_0203856C
- thumb_func_end sub_80C5044
-
- thumb_func_start sub_80C5050
-sub_80C5050: @ 80C5050
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r4, _080C513C @ =sub_80C5190
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080C512A
- movs r0, 0xA
- mov r10, r0
- movs r7, 0x3
- movs r1, 0x3
- movs r2, 0x13
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r2, _080C5140 @ =gUnknown_02038570
- ldr r0, _080C5144 @ =gUnknown_0202E8D0
- ldrh r1, [r0]
- lsls r1, 6
- adds r0, r1, r2
- ldrh r6, [r0]
- adds r0, r2, 0
- adds r0, 0x38
- adds r0, r1, r0
- ldr r0, [r0]
- mov r8, r0
- adds r2, 0x3C
- adds r1, r2
- ldr r1, [r1]
- mov r9, r1
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C5148 @ =gTasks
- lsls r5, r0, 2
- adds r5, r0
- lsls r5, 3
- adds r5, r1
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r6, [r5, 0xA]
- lsls r0, r6, 3
- ldr r1, _080C514C @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _080C5150 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _080C5154 @ =gUnknown_081FAF4C
- ldr r3, [r4]
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r6, [sp, 0x4]
- mov r4, r8
- str r4, [sp, 0x8]
- bl sub_800D334
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl sub_80409C8
- adds r4, r0, 0
- bl LoadCompressedObjectPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080C5158 @ =gUnknown_02024E8C
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x2]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- mov r1, r10
- strh r1, [r5, 0xE]
- strh r7, [r5, 0x10]
- ldr r3, _080C515C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _080C5160 @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_080C512A:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C513C: .4byte sub_80C5190
-_080C5140: .4byte gUnknown_02038570
-_080C5144: .4byte gUnknown_0202E8D0
-_080C5148: .4byte gTasks
-_080C514C: .4byte gMonFrontPicTable
-_080C5150: .4byte gMonFrontPicCoords
-_080C5154: .4byte gUnknown_081FAF4C
-_080C5158: .4byte gUnknown_02024E8C
-_080C515C: .4byte gSprites
-_080C5160: .4byte SpriteCallbackDummy
- thumb_func_end sub_80C5050
-
- thumb_func_start sub_80C5164
-sub_80C5164: @ 80C5164
- push {lr}
- ldr r0, _080C5188 @ =sub_80C5190
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080C5184
- ldr r0, _080C518C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5184:
- pop {r0}
- bx r0
- .align 2, 0
-_080C5188: .4byte sub_80C5190
-_080C518C: .4byte gTasks
- thumb_func_end sub_80C5164
-
- thumb_func_start sub_80C5190
-sub_80C5190: @ 80C5190
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C51B4 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C5222
- cmp r0, 0x1
- bgt _080C51B8
- cmp r0, 0
- beq _080C51F8
- b _080C5222
- .align 2, 0
-_080C51B4: .4byte gTasks
-_080C51B8:
- cmp r0, 0x2
- beq _080C51C2
- cmp r0, 0x3
- beq _080C5204
- b _080C5222
-_080C51C2:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C5200 @ =gSprites
- adds r5, r0, r1
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrb r0, [r5, 0x1]
- lsls r0, 30
- cmp r0, 0
- beq _080C51F2
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080C51F2:
- adds r0, r5, 0
- bl DestroySprite
-_080C51F8:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C5222
- .align 2, 0
-_080C5200: .4byte gSprites
-_080C5204:
- ldrb r2, [r4, 0xE]
- adds r0, r2, 0
- ldrb r3, [r4, 0x10]
- adds r1, r3, 0
- adds r2, 0x9
- lsls r2, 24
- lsrs r2, 24
- adds r3, 0xA
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl DestroyTask
-_080C5222:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C5190
-
- thumb_func_start sub_80C5228
-sub_80C5228: @ 80C5228
- push {r4,lr}
- ldr r0, _080C5244 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C524C
- ldr r4, _080C5248 @ =gScriptResult
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _080C5252
- .align 2, 0
-_080C5244: .4byte gUnknown_0203869A
-_080C5248: .4byte gScriptResult
-_080C524C:
- ldr r1, _080C5258 @ =gScriptResult
- movs r0, 0x4
- strh r0, [r1]
-_080C5252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5258: .4byte gScriptResult
- thumb_func_end sub_80C5228
-
- thumb_func_start sub_80C525C
-sub_80C525C: @ 80C525C
- push {r4,lr}
- ldr r0, _080C5280 @ =gUnknown_0203869A
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C5294
- ldr r2, _080C5284 @ =gUnknown_03005D28
- ldr r1, [r2]
- ldr r0, _080C5288 @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080C528C @ =0x00006073
- adds r0, r1
- str r0, [r2]
- lsrs r0, 16
- ldr r4, _080C5290 @ =gScriptResult
- b _080C529E
- .align 2, 0
-_080C5280: .4byte gUnknown_0203869A
-_080C5284: .4byte gUnknown_03005D28
-_080C5288: .4byte 0x41c64e6d
-_080C528C: .4byte 0x00006073
-_080C5290: .4byte gScriptResult
-_080C5294:
- ldr r4, _080C52AC @ =gScriptResult
- bl Random
- lsls r0, 16
- lsrs r0, 16
-_080C529E:
- ldrh r1, [r4]
- bl __umodsi3
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C52AC: .4byte gScriptResult
- thumb_func_end sub_80C525C
-
- thumb_func_start sp000_heal_pokemon
-sp000_heal_pokemon: @ 80C52B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- ldr r0, _080C536C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcs _080C535C
- ldr r1, _080C5370 @ =gPlayerParty
- mov r10, r1
- mov r6, sp
-_080C52CE:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r1, r0, 16
- strb r0, [r6]
- lsrs r1, 24
- strb r1, [r6, 0x1]
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_080C5304:
- adds r1, r5, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- adds r2, r5, 0
- bl CalculatePPWithBonus
- strb r0, [r6]
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _080C5304
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strb r0, [r6, 0x2]
- strb r0, [r6, 0x3]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- add r0, r10
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080C536C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080C52CE
-_080C535C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C536C: .4byte gPlayerPartyCount
-_080C5370: .4byte gPlayerParty
- thumb_func_end sp000_heal_pokemon
-
- thumb_func_start sub_80C5374
-sub_80C5374: @ 80C5374
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x78
- adds r5, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 16
- lsrs r0, r4, 16
- mov r8, r0
- add r6, sp, 0x14
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r3, 0
- movs r3, 0x20
- bl CreateMon
- add r0, sp, 0x10
- mov r1, r8
- strb r1, [r0]
- lsrs r4, 24
- strb r4, [r0, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r6, 0
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0x1
- bgt _080C53E8
- cmp r4, 0
- blt _080C53E8
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8090D90
-_080C53E8:
- adds r0, r4, 0
- add sp, 0x78
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5374
-
- thumb_func_start sub_80C53F8
-sub_80C53F8: @ 80C53F8
- push {lr}
- sub sp, 0x68
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r0, sp
- movs r2, 0x1
- bl sub_8042044
- add r2, sp, 0x64
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- mov r0, sp
- bl GiveMonToPlayer
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x68
- pop {r1}
- bx r1
- thumb_func_end sub_80C53F8
-
- thumb_func_start sub_80C5428
-sub_80C5428: @ 80C5428
- push {lr}
- bl sub_803DAA0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _080C5444
- cmp r1, 0x1
- bgt _080C5440
- cmp r1, 0
- beq _080C5444
- b _080C5448
-_080C5440:
- cmp r1, 0x2
- bne _080C5448
-_080C5444:
- ldr r0, _080C544C @ =gScriptResult
- strh r1, [r0]
-_080C5448:
- pop {r0}
- bx r0
- .align 2, 0
-_080C544C: .4byte gScriptResult
- thumb_func_end sub_80C5428
-
- thumb_func_start sub_80C5450
-sub_80C5450: @ 80C5450
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- movs r7, 0xCE
- lsls r7, 1
-_080C545C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C548C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080C5490
- cmp r0, r7
- beq _080C5490
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, r6
- bne _080C5490
- movs r0, 0x1
- b _080C5498
- .align 2, 0
-_080C548C: .4byte gPlayerParty
-_080C5490:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C545C
- movs r0, 0
-_080C5498:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5450
-
- thumb_func_start sub_80C54A0
-sub_80C54A0: @ 80C54A0
- push {r4,lr}
- movs r0, 0xAF
- bl sub_80C5450
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x1
- bne _080C54C2
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080C54CC @ =gStringVar1
- bl GetBerryNameByBerryType
-_080C54C2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C54CC: .4byte gStringVar1
- thumb_func_end sub_80C54A0
-
- thumb_func_start sub_80C54D0
-sub_80C54D0: @ 80C54D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r7, r2, 16
- lsrs r6, r7, 16
- bl ZeroEnemyPartyMons
- ldr r0, _080C552C @ =gEnemyParty
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x20
- bl CreateMon
- cmp r6, 0
- beq _080C551E
- add r0, sp, 0x10
- strb r6, [r0]
- adds r1, r0, 0
- lsrs r0, r7, 24
- strb r0, [r1, 0x1]
- mov r0, r8
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_080C551E:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C552C: .4byte gEnemyParty
- thumb_func_end sub_80C54D0
-
- thumb_func_start sub_80C5530
-sub_80C5530: @ 80C5530
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r3, 0x6
- bls _080C554C
- ldr r0, _080C5560 @ =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_080C554C:
- movs r0, 0x64
- muls r0, r3
- ldr r1, _080C5564 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl SetMonMoveSlot
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5560: .4byte gPlayerPartyCount
-_080C5564: .4byte gPlayerParty
- thumb_func_end sub_80C5530
-
- thumb_func_start sub_80C5568
-sub_80C5568: @ 80C5568
- push {lr}
- ldr r1, _080C5578 @ =gMain
- ldr r0, _080C557C @ =sub_80C5580
- str r0, [r1, 0x8]
- bl sub_8121E10
- pop {r0}
- bx r0
- .align 2, 0
-_080C5578: .4byte gMain
-_080C557C: .4byte sub_80C5580
- thumb_func_end sub_80C5568
-
- thumb_func_start sub_80C5580
-sub_80C5580: @ 80C5580
- push {lr}
- ldr r0, _080C5590 @ =gUnknown_02039270
- ldrb r1, [r0]
- cmp r1, 0
- bne _080C5598
- ldr r0, _080C5594 @ =gScriptResult
- strh r1, [r0]
- b _080C559E
- .align 2, 0
-_080C5590: .4byte gUnknown_02039270
-_080C5594: .4byte gScriptResult
-_080C5598:
- ldr r1, _080C55A8 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080C559E:
- ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080C55A8: .4byte gScriptResult
-_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C5580
-
- thumb_func_start sub_80C55B0
-sub_80C55B0: @ 80C55B0
- push {lr}
- ldr r1, _080C55C0 @ =gMain
- ldr r0, _080C55C4 @ =sub_80C55C8
- str r0, [r1, 0x8]
- bl sub_8121E34
- pop {r0}
- bx r0
- .align 2, 0
-_080C55C0: .4byte gMain
-_080C55C4: .4byte sub_80C55C8
- thumb_func_end sub_80C55B0
-
- thumb_func_start sub_80C55C8
-sub_80C55C8: @ 80C55C8
- push {r4,lr}
- ldr r0, _080C55DC @ =gUnknown_02039270
- ldrb r4, [r0]
- cmp r4, 0
- bne _080C55E4
- bl copy_player_party_from_sav1
- ldr r0, _080C55E0 @ =gScriptResult
- strh r4, [r0]
- b _080C55EE
- .align 2, 0
-_080C55DC: .4byte gUnknown_02039270
-_080C55E0: .4byte gScriptResult
-_080C55E4:
- bl sub_80C5604
- ldr r1, _080C55FC @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080C55EE:
- ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C55FC: .4byte gScriptResult
-_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C55C8
-
- thumb_func_start sub_80C5604
-sub_80C5604: @ 80C5604
- push {r4-r7,lr}
- sub sp, 0x134
- add r0, sp, 0x12C
- movs r1, 0
- str r1, [r0]
- ldr r2, _080C5674 @ =0x0500004b
- mov r1, sp
- bl CpuSet
- movs r5, 0
- movs r7, 0x64
- ldr r6, _080C5678 @ =gPlayerParty
- mov r4, sp
-_080C561E:
- ldr r0, _080C567C @ =gUnknown_02039270
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080C5638
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
-_080C5638:
- adds r4, 0x64
- adds r5, 0x1
- cmp r5, 0x2
- ble _080C561E
- add r0, sp, 0x130
- movs r1, 0
- str r1, [r0]
- ldr r4, _080C5678 @ =gPlayerParty
- ldr r2, _080C5680 @ =0x05000096
- adds r1, r4, 0
- bl CpuSet
- mov r5, sp
- add r6, sp, 0xC8
-_080C5654:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x64
- cmp r5, r6
- ble _080C5654
- bl CalculatePlayerPartyCount
- add sp, 0x134
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5674: .4byte 0x0500004b
-_080C5678: .4byte gPlayerParty
-_080C567C: .4byte gUnknown_02039270
-_080C5680: .4byte 0x05000096
- thumb_func_end sub_80C5604
-
- thumb_func_start sub_80C5684
-sub_80C5684: @ 80C5684
- push {lr}
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080C569C
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _080C56A0
-_080C569C:
- movs r0, 0
- b _080C56A2
-_080C56A0:
- movs r0, 0x1
-_080C56A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80C5684
-
- thumb_func_start sub_80C56A8
-sub_80C56A8: @ 80C56A8
- push {r4,r5,lr}
- ldr r4, _080C56C8 @ =gPlayerParty
- movs r5, 0
-_080C56AE:
- adds r0, r4, 0
- bl sub_80C5684
- cmp r0, 0
- beq _080C56CC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080C56CC
- movs r0, 0
- b _080C56D6
- .align 2, 0
-_080C56C8: .4byte gPlayerParty
-_080C56CC:
- adds r5, 0x1
- adds r4, 0x64
- cmp r5, 0x5
- ble _080C56AE
- movs r0, 0x1
-_080C56D6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C56A8
-
- thumb_func_start sub_80C56DC
-sub_80C56DC: @ 80C56DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080C5720 @ =gPlayerParty
- adds r4, r0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x7
- bl AdjustFriendship
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r5, _080C5724 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r5, 0
- bl StringGetEnd10
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5720: .4byte gPlayerParty
-_080C5724: .4byte gStringVar1
- thumb_func_end sub_80C56DC
-
- thumb_func_start sub_80C5728
-sub_80C5728: @ 80C5728
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080C5764 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- bl sub_80C5684
- cmp r0, 0
- beq _080C5768
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C5768
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C5768
- movs r0, 0x1
- b _080C576A
- .align 2, 0
-_080C5764: .4byte gPlayerParty
-_080C5768:
- movs r0, 0
-_080C576A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5728
-
- thumb_func_start sub_80C5770
-sub_80C5770: @ 80C5770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C5794 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C57CA
- cmp r0, 0x1
- bgt _080C5798
- cmp r0, 0
- beq _080C579E
- b _080C581A
- .align 2, 0
-_080C5794: .4byte gTasks + 0x8
-_080C5798:
- cmp r0, 0x2
- beq _080C57DC
- b _080C581A
-_080C579E:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bgt _080C57C4
-_080C57A8:
- lsls r0, r1, 24
- lsrs r0, 24
- bl sub_80C5728
- cmp r0, 0
- bne _080C57F4
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r1, r0, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C57A8
-_080C57C4:
- movs r0, 0x2
- strh r0, [r4]
- b _080C581A
-_080C57CA:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080C581A
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- b _080C581A
-_080C57DC:
- bl sub_80C56A8
- adds r1, r0, 0
- cmp r1, 0
- beq _080C580C
- ldr r1, _080C57F0 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _080C5810
- .align 2, 0
-_080C57F0: .4byte gScriptResult
-_080C57F4:
- ldrb r0, [r4, 0x2]
- bl sub_80C56DC
- ldr r0, _080C5808 @ =UnknownString_81A1132
- bl ShowFieldMessage
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080C581A
- .align 2, 0
-_080C5808: .4byte UnknownString_81A1132
-_080C580C:
- ldr r0, _080C5820 @ =gScriptResult
- strh r1, [r0]
-_080C5810:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080C581A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5820: .4byte gScriptResult
- thumb_func_end sub_80C5770
-
- thumb_func_start sub_80C5824
-sub_80C5824: @ 80C5824
- push {lr}
- ldr r0, _080C5838 @ =sub_80C5770
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080C5838: .4byte sub_80C5770
- thumb_func_end sub_80C5824
-
- thumb_func_start overworld_poison
-overworld_poison: @ 80C583C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _080C58A8 @ =gPlayerParty
- movs r7, 0
- movs r6, 0
- movs r5, 0x5
-_080C5848:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _080C588C
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C588C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- beq _080C587E
- subs r0, 0x1
- str r0, [sp]
- cmp r0, 0
- bne _080C5880
-_080C587E:
- adds r6, 0x1
-_080C5880:
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r7, 0x1
-_080C588C:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _080C5848
- cmp r6, 0
- bne _080C589C
- cmp r7, 0
- beq _080C58A0
-_080C589C:
- bl overworld_posion_effect
-_080C58A0:
- cmp r6, 0
- beq _080C58AC
- movs r0, 0x2
- b _080C58B6
- .align 2, 0
-_080C58A8: .4byte gPlayerParty
-_080C58AC:
- cmp r7, 0
- bne _080C58B4
- movs r0, 0
- b _080C58B6
-_080C58B4:
- movs r0, 0x1
-_080C58B6:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end overworld_poison
-
- thumb_func_start sub_80C58C0
-sub_80C58C0: @ 80C58C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r1, 0
- bl GetMonData
- lsls r0, 16
- str r0, [sp, 0x4]
- lsrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x27
- bl GetMonData
- adds r7, r0, 0
- movs r6, 0xF
- ands r7, r6
- adds r0, r5, 0
- movs r1, 0x28
- bl GetMonData
- mov r8, r0
- mov r1, r8
- ands r1, r6
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0x29
- bl GetMonData
- mov r9, r0
- mov r3, r9
- ands r3, r6
- mov r9, r3
- adds r0, r5, 0
- movs r1, 0x2A
- bl GetMonData
- mov r10, r0
- ands r0, r6
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x2B
- bl GetMonData
- adds r4, r0, 0
- ands r4, r6
- adds r0, r5, 0
- movs r1, 0x2C
- bl GetMonData
- adds r2, r0, 0
- ands r2, r6
- mov r1, r8
- mov r3, r9
- eors r1, r3
- mov r8, r1
- mov r0, r8
- muls r0, r7
- movs r1, 0xFF
- ldr r3, [sp]
- ands r3, r1
- eors r0, r3
- eors r4, r2
- mov r1, r10
- muls r1, r4
- ldr r3, [sp, 0x4]
- lsrs r2, r3, 24
- eors r1, r2
- lsls r0, 8
- adds r0, r1
- 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_80C58C0
-
- thumb_func_start sub_80C5964
-sub_80C5964: @ 80C5964
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x1
- ldr r3, _080C5980 @ =gUnknown_083D180C
-_080C596E:
- lsls r0, r1, 3
- adds r0, r3
- ldrh r0, [r0, 0x4]
- cmp r2, r0
- bcs _080C5984
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _080C5990
- .align 2, 0
-_080C5980: .4byte gUnknown_083D180C
-_080C5984:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080C596E
- adds r0, r1, 0
-_080C5990:
- pop {r1}
- bx r1
- thumb_func_end sub_80C5964
-
- thumb_func_start sub_80C5994
-sub_80C5994: @ 80C5994
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r6, 16
- lsrs r6, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D54
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- bl sub_80C5964
- lsls r0, 24
- ldr r1, _080C5A04 @ =gUnknown_083D180C
- lsrs r0, 21
- adds r0, r1
- ldrh r1, [r0]
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldrb r2, [r0, 0x2]
- movs r3, 0
- ldrh r4, [r0, 0x4]
- movs r5, 0
- adds r0, r6, 0
- movs r1, 0
- subs r0, r4
- sbcs r1, r5
- bl __udivdi3
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- adds r2, r0
- adcs r3, r1
- str r2, [sp]
- str r3, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- bl __muldi3
- movs r2, 0xA
- movs r3, 0
- bl __udivdi3
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5A04: .4byte gUnknown_083D180C
- thumb_func_end sub_80C5994
-
- thumb_func_start sub_80C5A08
-sub_80C5A08: @ 80C5A08
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r1, _080C5A78 @ =gUnknown_083D188C
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 1
- adds r0, r4, 0
- bl __floatsidf
- cmp r4, 0
- bge _080C5A32
- ldr r2, _080C5A7C @ =0x41f00000
- ldr r3, _080C5A80 @ =0x00000000
- bl __adddf3
-_080C5A32:
- ldr r2, _080C5A84 @ =0x40396666
- ldr r3, _080C5A88 @ =0x66666666
- bl __divdf3
- bl __fixunsdfsi
- adds r5, r0, 0
- movs r1, 0xA
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- mov r1, sp
- bl StringAppend
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5A78: .4byte gUnknown_083D188C
-_080C5A7C: .4byte 0x41f00000
-_080C5A80: .4byte 0x00000000
-_080C5A84: .4byte 0x40396666
-_080C5A88: .4byte 0x66666666
- thumb_func_end sub_80C5A08
-
- thumb_func_start sub_80C5A8C
-sub_80C5A8C: @ 80C5A8C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080C5AA4 @ =gScriptResult
- ldrh r0, [r1]
- cmp r0, 0xFF
- bne _080C5AA8
- movs r0, 0
- b _080C5B12
- .align 2, 0
-_080C5AA4: .4byte gScriptResult
-_080C5AA8:
- ldrh r1, [r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C5AD0 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080C5ACA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, r6
- beq _080C5AD4
-_080C5ACA:
- movs r0, 0x1
- b _080C5B12
- .align 2, 0
-_080C5AD0: .4byte gPlayerParty
-_080C5AD4:
- mov r4, sp
- adds r0, r5, 0
- bl sub_80C58C0
- strh r0, [r4]
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r6, 0
- bl sub_80C5994
- adds r5, r0, 0
- ldrh r1, [r7]
- adds r0, r6, 0
- bl sub_80C5994
- adds r4, r0, 0
- ldr r0, _080C5B0C @ =gStringVar2
- adds r1, r5, 0
- bl sub_80C5A08
- cmp r5, r4
- bls _080C5B10
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r7]
- movs r0, 0x3
- b _080C5B12
- .align 2, 0
-_080C5B0C: .4byte gStringVar2
-_080C5B10:
- movs r0, 0x2
-_080C5B12:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5A8C
-
- thumb_func_start sub_80C5B1C
-sub_80C5B1C: @ 80C5B1C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r1, [r5]
- adds r0, r4, 0
- bl sub_80C5994
- adds r1, r0, 0
- ldr r0, _080C5B58 @ =gStringVar3
- bl sub_80C5A08
- ldr r0, _080C5B5C @ =gStringVar1
- movs r1, 0xB
- muls r1, r4
- ldr r2, _080C5B60 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrh r1, [r5]
- movs r0, 0x81
- lsls r0, 8
- cmp r1, r0
- bne _080C5B6C
- ldr r0, _080C5B64 @ =gStringVar2
- ldr r1, _080C5B68 @ =gOtherText_Marco
- bl StringCopy
- b _080C5B74
- .align 2, 0
-_080C5B58: .4byte gStringVar3
-_080C5B5C: .4byte gStringVar1
-_080C5B60: .4byte gSpeciesNames
-_080C5B64: .4byte gStringVar2
-_080C5B68: .4byte gOtherText_Marco
-_080C5B6C:
- ldr r0, _080C5B7C @ =gStringVar2
- ldr r1, _080C5B80 @ =gSaveBlock2
- bl StringCopy
-_080C5B74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B7C: .4byte gStringVar2
-_080C5B80: .4byte gSaveBlock2
- thumb_func_end sub_80C5B1C
-
- thumb_func_start sub_80C5B84
-sub_80C5B84: @ 80C5B84
- push {lr}
- ldr r0, _080C5B94 @ =0x00004047
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B94: .4byte 0x00004047
- thumb_func_end sub_80C5B84
-
- thumb_func_start sub_80C5B98
-sub_80C5B98: @ 80C5B98
- push {lr}
- ldr r0, _080C5BB0 @ =0x00004047
- bl GetVarPointer
- adds r1, r0, 0
- movs r0, 0x99
- lsls r0, 1
- bl sub_80C5B1C
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BB0: .4byte 0x00004047
- thumb_func_end sub_80C5B98
-
- thumb_func_start sub_80C5BB4
-sub_80C5BB4: @ 80C5BB4
- push {r4,lr}
- ldr r0, _080C5BD4 @ =0x00004047
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5BD8 @ =gScriptResult
- movs r0, 0x99
- lsls r0, 1
- bl sub_80C5A8C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BD4: .4byte 0x00004047
-_080C5BD8: .4byte gScriptResult
- thumb_func_end sub_80C5BB4
-
- thumb_func_start sub_80C5BDC
-sub_80C5BDC: @ 80C5BDC
- push {lr}
- ldr r0, _080C5BEC @ =0x0000404f
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BEC: .4byte 0x0000404f
- thumb_func_end sub_80C5BDC
-
- thumb_func_start sub_80C5BF0
-sub_80C5BF0: @ 80C5BF0
- push {lr}
- ldr r0, _080C5C04 @ =0x0000404f
- bl GetVarPointer
- adds r1, r0, 0
- ldr r0, _080C5C08 @ =0x00000143
- bl sub_80C5B1C
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C04: .4byte 0x0000404f
-_080C5C08: .4byte 0x00000143
- thumb_func_end sub_80C5BF0
-
- thumb_func_start sub_80C5C0C
-sub_80C5C0C: @ 80C5C0C
- push {r4,lr}
- ldr r0, _080C5C2C @ =0x0000404f
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5C30 @ =gScriptResult
- ldr r0, _080C5C34 @ =0x00000143
- bl sub_80C5A8C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C2C: .4byte 0x0000404f
-_080C5C30: .4byte gScriptResult
-_080C5C34: .4byte 0x00000143
- thumb_func_end sub_80C5C0C
-
- thumb_func_start sub_80C5C38
-sub_80C5C38: @ 80C5C38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r7, 0
- add r4, sp, 0x8
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080C5CC0 @ =gUnknown_083D188E
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r8, r4
- cmp r6, 0xA
- bhi _080C5CB2
- cmp r5, 0x40
- bhi _080C5CB2
- ldr r0, _080C5CC4 @ =gSaveBlock1
- ldr r1, _080C5CC8 @ =0x00003110
- adds r0, r1
- adds r0, r6, r0
- strb r5, [r0]
- movs r5, 0
-_080C5C70:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C5CCC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C5CA2
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _080C5CA2
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r8
- bl SetMonData
- movs r7, 0x1
-_080C5CA2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C5C70
- cmp r7, 0
- beq _080C5CB2
- ldr r0, _080C5CD0 @ =0x0000083b
- bl FlagSet
-_080C5CB2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5CC0: .4byte gUnknown_083D188E
-_080C5CC4: .4byte gSaveBlock1
-_080C5CC8: .4byte 0x00003110
-_080C5CCC: .4byte gPlayerParty
-_080C5CD0: .4byte 0x0000083b
- thumb_func_end sub_80C5C38
-
- thumb_func_start sub_80C5CD4
-sub_80C5CD4: @ 80C5CD4
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5D64 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5D68 @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5D70 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x1
- strh r0, [r7, 0xC]
- strh r6, [r7, 0xA]
- strh r6, [r7, 0x8]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5D4E
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5D4E:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5D58
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5D58:
- ldr r0, _080C5D74 @ =gUnknown_020387EC
- str r7, [r0]
- movs r4, 0
- ldr r5, _080C5D78 @ =gSprites
- b _080C5D94
- .align 2, 0
-_080C5D64: .4byte gUnknown_083D1898
-_080C5D68: .4byte gUnknown_083D18A0
-_080C5D6C: .4byte gSpriteTemplate_83D18A8
-_080C5D70: .4byte 0xffff0000
-_080C5D74: .4byte gUnknown_020387EC
-_080C5D78: .4byte gSprites
-_080C5D7C:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r7, 0x4]
- cmp r4, 0x3
- bhi _080C5D8C
- negs r1, r1
-_080C5D8C:
- strh r1, [r0, 0x2E]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080C5D94:
- cmp r4, 0x7
- bhi _080C5DB2
- lsls r1, r4, 5
- adds r1, 0x8
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080C5D7C
-_080C5DB2:
- ldr r1, _080C5DC8 @ =REG_BLDCNT
- movs r0, 0xBF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5DC8: .4byte REG_BLDCNT
- thumb_func_end sub_80C5CD4
-
- thumb_func_start sub_80C5DCC
-sub_80C5DCC: @ 80C5DCC
- push {r4,lr}
- ldr r4, _080C5E10 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- bne _080C5DF0
- ldr r0, [r1, 0x10]
- ldr r2, _080C5E14 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5E18 @ =sub_80C603C
- bl sub_80C61B0
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C5DF0:
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- cmp r0, 0x7
- bls _080C5E0A
- ldrh r0, [r1, 0x6]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- movs r2, 0
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- bgt _080C5E1C
-_080C5E0A:
- movs r0, 0
- b _080C5E2E
- .align 2, 0
-_080C5E10: .4byte gUnknown_020387EC
-_080C5E14: .4byte 0x0000ffff
-_080C5E18: .4byte sub_80C603C
-_080C5E1C:
- movs r0, 0x50
- strh r0, [r1, 0xC]
- ldr r0, _080C5E34 @ =REG_BLDCNT
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- bl ClearGpuRegBits
- movs r0, 0x1
-_080C5E2E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5E34: .4byte REG_BLDCNT
- thumb_func_end sub_80C5DCC
-
- thumb_func_start sub_80C5E38
-sub_80C5E38: @ 80C5E38
- push {r4-r7,lr}
- sub sp, 0x28
- adds r7, r0, 0
- ldr r0, _080C5EC8 @ =gUnknown_083D1898
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- ldr r0, _080C5ECC @ =gUnknown_083D18A0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldrh r3, [r7]
- lsls r2, r3, 16
- add r0, sp, 0x18
- ldrh r1, [r0, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- mov r1, sp
- movs r6, 0
- strh r3, [r1]
- ldrh r2, [r7, 0x2]
- ldr r5, _080C5ED4 @ =0xffff0000
- add r4, sp, 0x20
- ldr r1, [r4, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r4, 0x4]
- mov r1, sp
- strh r2, [r1, 0x2]
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- movs r0, 0x50
- strh r0, [r7, 0xC]
- strh r6, [r7, 0x8]
- strh r6, [r7, 0xA]
- ldrh r0, [r7, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- bics r5, r1
- str r5, [r7, 0x10]
- ldrh r0, [r7, 0x4]
- cmp r0, 0
- bne _080C5EB2
- movs r0, 0x10
- strh r0, [r7, 0x4]
-_080C5EB2:
- ldrh r0, [r7, 0x6]
- cmp r0, 0
- bne _080C5EBC
- movs r0, 0x14
- strh r0, [r7, 0x6]
-_080C5EBC:
- ldr r0, _080C5ED8 @ =gUnknown_020387EC
- str r7, [r0]
- movs r5, 0
- ldr r6, _080C5EDC @ =gSprites
- b _080C5F4A
- .align 2, 0
-_080C5EC8: .4byte gUnknown_083D1898
-_080C5ECC: .4byte gUnknown_083D18A0
-_080C5ED0: .4byte gSpriteTemplate_83D18C0
-_080C5ED4: .4byte 0xffff0000
-_080C5ED8: .4byte gUnknown_020387EC
-_080C5EDC: .4byte gSprites
-_080C5EE0:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- strh r0, [r1, 0x2E]
- movs r0, 0x1
- strh r0, [r1, 0x30]
- ldr r1, _080C5EF4 @ =gSprites
- b _080C5F2A
- .align 2, 0
-_080C5EF4: .4byte gSprites
-_080C5EF8:
- lsls r1, r5, 21
- movs r0, 0x80
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080C5F6E
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x4]
- negs r0, r0
- strh r0, [r1, 0x2E]
- ldr r0, _080C5F88 @ =0x0000ffff
- strh r0, [r1, 0x30]
- ldr r1, _080C5F8C @ =gSprites
- lsls r4, r5, 5
-_080C5F2A:
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- movs r2, 0
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x36]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080C5F4A:
- cmp r5, 0x7
- bhi _080C5F6E
- cmp r5, 0x3
- bhi _080C5EF8
- lsls r4, r5, 5
- adds r1, r4, 0
- subs r1, 0x70
- lsls r1, 16
- asrs r1, 16
- mov r0, sp
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080C5EE0
-_080C5F6E:
- ldr r1, _080C5F90 @ =REG_BLDCNT
- movs r0, 0xFF
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080C5F94 @ =sub_80C6078
- bl sub_80C61B0
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5F88: .4byte 0x0000ffff
-_080C5F8C: .4byte gSprites
-_080C5F90: .4byte REG_BLDCNT
-_080C5F94: .4byte sub_80C6078
- thumb_func_end sub_80C5E38
-
- thumb_func_start sub_80C5F98
-sub_80C5F98: @ 80C5F98
- push {r4,lr}
- ldr r4, _080C5FB0 @ =gUnknown_020387EC
- ldr r2, [r4]
- ldrh r0, [r2, 0x8]
- cmp r0, 0x1
- beq _080C5FEC
- cmp r0, 0x1
- bgt _080C5FB4
- cmp r0, 0
- beq _080C5FBA
- b _080C602C
- .align 2, 0
-_080C5FB0: .4byte gUnknown_020387EC
-_080C5FB4:
- cmp r0, 0x2
- beq _080C6008
- b _080C602C
-_080C5FBA:
- ldrh r0, [r2, 0xC]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _080C6034
- ldr r0, [r2, 0x10]
- ldr r2, _080C5FE4 @ =0x0000ffff
- movs r1, 0x10
- bl BlendPalettes
- ldr r0, _080C5FE8 @ =sub_80C603C
- bl SetHBlankCallback
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _080C6000
- .align 2, 0
-_080C5FE4: .4byte 0x0000ffff
-_080C5FE8: .4byte sub_80C603C
-_080C5FEC:
- ldrh r0, [r2, 0xA]
- cmp r0, 0x8
- bne _080C6034
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, [r4]
-_080C6000:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _080C6034
-_080C6008:
- ldr r0, _080C6030 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldrh r0, [r2]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- bl ClearGpuRegBits
- ldr r1, [r4]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C602C:
- movs r0, 0x1
- b _080C6036
- .align 2, 0
-_080C6030: .4byte REG_BLDCNT
-_080C6034:
- movs r0, 0
-_080C6036:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C5F98
-
- thumb_func_start sub_80C603C
-sub_80C603C: @ 80C603C
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C6060 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r3, 0xFF
- adds r0, r3, 0
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x50
- bne _080C6068
- ldr r1, _080C6064 @ =REG_BLDCNT
- movs r0, 0x8F
- strh r0, [r1]
- b _080C606C
- .align 2, 0
-_080C6060: .4byte REG_VCOUNT
-_080C6064: .4byte REG_BLDCNT
-_080C6068:
- ldr r0, _080C6074 @ =REG_BLDCNT
- strh r3, [r0]
-_080C606C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6074: .4byte REG_BLDCNT
- thumb_func_end sub_80C603C
-
- thumb_func_start sub_80C6078
-sub_80C6078: @ 80C6078
- push {lr}
- sub sp, 0x4
- mov r2, sp
- ldr r0, _080C60B0 @ =REG_VCOUNT
- ldrh r1, [r0]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r2]
- mov r0, sp
- ldrh r1, [r0]
- ldr r0, _080C60B4 @ =gUnknown_020387EC
- ldr r0, [r0]
- movs r3, 0xC
- ldrsh r2, [r0, r3]
- movs r0, 0x50
- subs r0, r2
- cmp r1, r0
- ble _080C60BC
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x50
- cmp r1, r0
- bge _080C60BC
- ldr r1, _080C60B8 @ =REG_BLDY
- movs r0, 0
- b _080C60C0
- .align 2, 0
-_080C60B0: .4byte REG_VCOUNT
-_080C60B4: .4byte gUnknown_020387EC
-_080C60B8: .4byte REG_BLDY
-_080C60BC:
- ldr r1, _080C60C8 @ =REG_BLDY
- movs r0, 0x10
-_080C60C0:
- strh r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C60C8: .4byte REG_BLDY
- thumb_func_end sub_80C6078
-
- thumb_func_start sub_80C60CC
-sub_80C60CC: @ 80C60CC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bls _080C611C
- adds r0, r2, 0
- bl DestroySprite
- ldr r4, _080C6124 @ =gUnknown_020387EC
- ldr r1, [r4]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080C611C
- ldrh r0, [r1]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- ldr r2, _080C6128 @ =0x0000ffff
- movs r1, 0
- bl BlendPalettes
- ldr r0, _080C612C @ =sub_80C6078
- bl SetHBlankCallback
-_080C611C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6124: .4byte gUnknown_020387EC
-_080C6128: .4byte 0x0000ffff
-_080C612C: .4byte sub_80C6078
- thumb_func_end sub_80C60CC
-
- thumb_func_start sub_80C6130
-sub_80C6130: @ 80C6130
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080C61AA
- ldr r1, _080C6184 @ =gUnknown_020387EC
- ldr r0, [r1]
- movs r3, 0xC
- ldrsh r4, [r0, r3]
- adds r5, r1, 0
- cmp r4, 0x1
- bne _080C61AA
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bhi _080C616C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080C616C:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080C6188
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- blt _080C6196
- b _080C6194
- .align 2, 0
-_080C6184: .4byte gUnknown_020387EC
-_080C6188:
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bgt _080C6196
-_080C6194:
- strh r4, [r2, 0x36]
-_080C6196:
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080C61AA
- ldr r0, [r5]
- ldrh r1, [r0, 0xA]
- adds r1, 0x1
- strh r1, [r0, 0xA]
- ldrh r0, [r2, 0x32]
- strh r0, [r2, 0x20]
-_080C61AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6130
-
- thumb_func_start sub_80C61B0
-sub_80C61B0: @ 80C61B0
- push {r4-r6,lr}
- ldr r2, _080C61F0 @ =INTR_CHECK
- ldrh r1, [r2]
- movs r5, 0x2
- orrs r1, r5
- strh r1, [r2]
- ldr r3, _080C61F4 @ =REG_DISPSTAT
- ldrh r1, [r3]
- movs r2, 0x10
- orrs r1, r2
- strh r1, [r3]
- ldr r4, _080C61F8 @ =0x04000208
- ldrh r2, [r4]
- movs r6, 0
- strh r6, [r4]
- ldr r3, _080C61FC @ =0x04000200
- ldrh r1, [r3]
- orrs r1, r5
- strh r1, [r3]
- strh r2, [r4]
- ldr r2, _080C6200 @ =gMain
- ldrh r1, [r2, 0x1C]
- orrs r1, r5
- ldrh r3, [r2, 0x1C]
- orrs r1, r6
- strh r1, [r2, 0x1C]
- bl SetHBlankCallback
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C61F0: .4byte INTR_CHECK
-_080C61F4: .4byte REG_DISPSTAT
-_080C61F8: .4byte 0x04000208
-_080C61FC: .4byte 0x04000200
-_080C6200: .4byte gMain
- thumb_func_end sub_80C61B0
-
- thumb_func_start ClearGpuRegBits
-ClearGpuRegBits: @ 80C6204
- push {r4,r5,lr}
- ldr r3, _080C6248 @ =INTR_CHECK
- ldrh r1, [r3]
- ldr r2, _080C624C @ =0x0000fffd
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r3, _080C6250 @ =REG_DISPSTAT
- ldrh r1, [r3]
- ldr r0, _080C6254 @ =0x0000ffef
- ands r0, r1
- strh r0, [r3]
- ldr r4, _080C6258 @ =0x04000208
- ldrh r3, [r4]
- movs r0, 0
- strh r0, [r4]
- ldr r5, _080C625C @ =0x04000200
- ldrh r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r5]
- strh r3, [r4]
- ldr r0, _080C6260 @ =gMain
- ldrh r1, [r0, 0x1C]
- ands r2, r1
- ldrh r1, [r0, 0x1C]
- strh r2, [r0, 0x1C]
- movs r0, 0
- bl SetHBlankCallback
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6248: .4byte INTR_CHECK
-_080C624C: .4byte 0x0000fffd
-_080C6250: .4byte REG_DISPSTAT
-_080C6254: .4byte 0x0000ffef
-_080C6258: .4byte 0x04000208
-_080C625C: .4byte 0x04000200
-_080C6260: .4byte gMain
- thumb_func_end ClearGpuRegBits
-
- thumb_func_start sub_80C6264
-sub_80C6264: @ 80C6264
- push {lr}
- ldr r0, _080C6278 @ =gUnknown_0203923C
- ldr r1, _080C627C @ =gMapHeader
- ldr r1, [r1, 0x4]
- bl sub_80BBFD8
- bl sub_80BB5E4
- pop {r0}
- bx r0
- .align 2, 0
-_080C6278: .4byte gUnknown_0203923C
-_080C627C: .4byte gMapHeader
- thumb_func_end sub_80C6264
-
- thumb_func_start sub_80C6280
-sub_80C6280: @ 80C6280
- push {lr}
- ldr r1, _080C6294 @ =gUnknown_0202FF84
- ldr r0, [r1, 0x4]
- cmp r0, 0x2
- beq _080C62AA
- cmp r0, 0x2
- bgt _080C6298
- cmp r0, 0x1
- beq _080C62A2
- b _080C62BE
- .align 2, 0
-_080C6294: .4byte gUnknown_0202FF84
-_080C6298:
- cmp r0, 0x3
- beq _080C62AE
- cmp r0, 0x4
- beq _080C62B8
- b _080C62BE
-_080C62A2:
- movs r0, 0x8
- str r0, [r1, 0x14]
- movs r0, 0x28
- b _080C62BC
-_080C62AA:
- movs r0, 0x8
- b _080C62BA
-_080C62AE:
- movs r0, 0x8
- negs r0, r0
- str r0, [r1, 0x14]
- movs r0, 0x18
- b _080C62BC
-_080C62B8:
- movs r0, 0x18
-_080C62BA:
- str r0, [r1, 0x14]
-_080C62BC:
- str r0, [r1, 0x18]
-_080C62BE:
- pop {r0}
- bx r0
- thumb_func_end sub_80C6280
-
- thumb_func_start SetUpFieldMove_SecretPower
-SetUpFieldMove_SecretPower: @ 80C62C4
- push {r4,lr}
- bl sub_80BB63C
- ldr r0, _080C6318 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080C636E
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080C636E
- ldr r4, _080C631C @ =gUnknown_0203923C
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80571EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6330
- bl sub_80C6264
- ldr r1, _080C6320 @ =gUnknown_0300485C
- ldr r0, _080C6324 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080C6328 @ =gUnknown_03005CE4
- ldr r0, _080C632C @ =sub_80C639C
- b _080C6380
- .align 2, 0
-_080C6318: .4byte gScriptResult
-_080C631C: .4byte gUnknown_0203923C
-_080C6320: .4byte gUnknown_0300485C
-_080C6324: .4byte sub_808AB90
-_080C6328: .4byte gUnknown_03005CE4
-_080C632C: .4byte sub_80C639C
-_080C6330:
- adds r0, r4, 0
- bl sub_805720C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6360
- bl sub_80C6264
- ldr r1, _080C6350 @ =gUnknown_0300485C
- ldr r0, _080C6354 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080C6358 @ =gUnknown_03005CE4
- ldr r0, _080C635C @ =sub_80C64A8
- b _080C6380
- .align 2, 0
-_080C6350: .4byte gUnknown_0300485C
-_080C6354: .4byte sub_808AB90
-_080C6358: .4byte gUnknown_03005CE4
-_080C635C: .4byte sub_80C64A8
-_080C6360:
- adds r0, r4, 0
- bl is_tile_x98
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C6372
-_080C636E:
- movs r0, 0
- b _080C6384
-_080C6372:
- bl sub_80C6264
- ldr r1, _080C638C @ =gUnknown_0300485C
- ldr r0, _080C6390 @ =sub_808AB90
- str r0, [r1]
- ldr r1, _080C6394 @ =gUnknown_03005CE4
- ldr r0, _080C6398 @ =sub_80C660C
-_080C6380:
- str r0, [r1]
- movs r0, 0x1
-_080C6384:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C638C: .4byte gUnknown_0300485C
-_080C6390: .4byte sub_808AB90
-_080C6394: .4byte gUnknown_03005CE4
-_080C6398: .4byte sub_80C660C
- thumb_func_end SetUpFieldMove_SecretPower
-
- thumb_func_start sub_80C639C
-sub_80C639C: @ 80C639C
- push {lr}
- ldr r1, _080C63B0 @ =gUnknown_0202FF84
- ldr r0, _080C63B4 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C63B8 @ =gUnknown_081A2CE6
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C63B0: .4byte gUnknown_0202FF84
-_080C63B4: .4byte gUnknown_03005CE0
-_080C63B8: .4byte gUnknown_081A2CE6
- thumb_func_end sub_80C639C
-
- thumb_func_start FldEff_UseSecretPowerCave
-FldEff_UseSecretPowerCave: @ 80C63BC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C63E0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C63E4 @ =sub_80C63E8
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C63E0: .4byte gTasks
-_080C63E4: .4byte sub_80C63E8
- thumb_func_end FldEff_UseSecretPowerCave
-
- thumb_func_start sub_80C63E8
-sub_80C63E8: @ 80C63E8
- push {lr}
- movs r0, 0xB
- bl FieldEffectActiveListRemove
- movs r0, 0x37
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C63E8
-
- thumb_func_start FldEff_SecretPowerCave
-FldEff_SecretPowerCave: @ 80C63FC
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C643C @ =gSpriteTemplate_83D2614
- ldr r3, _080C6440 @ =gSprites
- ldr r1, _080C6444 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6448 @ =gUnknown_0202FF84
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C643C: .4byte gSpriteTemplate_83D2614
-_080C6440: .4byte gSprites
-_080C6444: .4byte gPlayerAvatar
-_080C6448: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_SecretPowerCave
-
- thumb_func_start sub_80C644C
-sub_80C644C: @ 80C644C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x83
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C6464 @ =sub_80C6468
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6464: .4byte sub_80C6468
- thumb_func_end sub_80C644C
-
- thumb_func_start sub_80C6468
-sub_80C6468: @ 80C6468
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C6488
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6490
- bl sub_80BB800
- b _080C6490
-_080C6488:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6494 @ =sub_80C6498
- str r0, [r1, 0x1C]
-_080C6490:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6494: .4byte sub_80C6498
- thumb_func_end sub_80C6468
-
- thumb_func_start sub_80C6498
-sub_80C6498: @ 80C6498
- push {lr}
- movs r1, 0x37
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6498
-
- thumb_func_start sub_80C64A8
-sub_80C64A8: @ 80C64A8
- push {lr}
- ldr r1, _080C64BC @ =gUnknown_0202FF84
- ldr r0, _080C64C0 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C64C4 @ =gUnknown_081A2D3E
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C64BC: .4byte gUnknown_0202FF84
-_080C64C0: .4byte gUnknown_03005CE0
-_080C64C4: .4byte gUnknown_081A2D3E
- thumb_func_end sub_80C64A8
-
- thumb_func_start FldEff_UseSecretPowerTree
-FldEff_UseSecretPowerTree: @ 80C64C8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C64EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C64F0 @ =sub_80C64F4
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C64EC: .4byte gTasks
-_080C64F0: .4byte sub_80C64F4
- thumb_func_end FldEff_UseSecretPowerTree
-
- thumb_func_start sub_80C64F4
-sub_80C64F4: @ 80C64F4
- push {lr}
- movs r0, 0x1A
- bl FieldEffectActiveListRemove
- movs r0, 0x38
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C64F4
-
- thumb_func_start FldEff_SecretPowerTree
-FldEff_SecretPowerTree: @ 80C6508
- push {r4,lr}
- ldr r1, _080C6580 @ =gUnknown_0203923C
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r2, r0, 0
- ldr r1, _080C6584 @ =0x00000fff
- adds r0, r1, 0
- ands r2, r0
- cmp r2, 0x96
- bne _080C652A
- ldr r1, _080C6588 @ =gUnknown_0202FF84
- movs r0, 0
- str r0, [r1, 0x1C]
-_080C652A:
- cmp r2, 0x9C
- bne _080C6534
- ldr r1, _080C6588 @ =gUnknown_0202FF84
- movs r0, 0x2
- str r0, [r1, 0x1C]
-_080C6534:
- bl sub_80C6280
- ldr r0, _080C658C @ =gSpriteTemplate_83D262C
- ldr r3, _080C6590 @ =gSprites
- ldr r1, _080C6594 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C6588 @ =gUnknown_0202FF84
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- ldr r0, [r4, 0x1C]
- cmp r0, 0x1
- beq _080C6572
- cmp r0, 0x3
- bne _080C6576
-_080C6572:
- bl sub_80BB800
-_080C6576:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6580: .4byte gUnknown_0203923C
-_080C6584: .4byte 0x00000fff
-_080C6588: .4byte gUnknown_0202FF84
-_080C658C: .4byte gSpriteTemplate_83D262C
-_080C6590: .4byte gSprites
-_080C6594: .4byte gPlayerAvatar
- thumb_func_end FldEff_SecretPowerTree
-
- thumb_func_start sub_80C6598
-sub_80C6598: @ 80C6598
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x9B
- bl PlaySE
- ldr r0, _080C65BC @ =gUnknown_0202FF84
- ldr r1, [r0, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2A
- movs r0, 0
- strb r1, [r2]
- strh r0, [r4, 0x2E]
- ldr r0, _080C65C0 @ =sub_80C65C4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65BC: .4byte gUnknown_0202FF84
-_080C65C0: .4byte sub_80C65C4
- thumb_func_end sub_80C6598
-
- thumb_func_start sub_80C65C4
-sub_80C65C4: @ 80C65C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _080C65EE
- ldr r0, _080C65F4 @ =gUnknown_0202FF84
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080C65E2
- cmp r0, 0x2
- bne _080C65E6
-_080C65E2:
- bl sub_80BB800
-_080C65E6:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C65F8 @ =sub_80C65FC
- str r0, [r4, 0x1C]
-_080C65EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C65F4: .4byte gUnknown_0202FF84
-_080C65F8: .4byte sub_80C65FC
- thumb_func_end sub_80C65C4
-
- thumb_func_start sub_80C65FC
-sub_80C65FC: @ 80C65FC
- push {lr}
- movs r1, 0x38
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C65FC
-
- thumb_func_start sub_80C660C
-sub_80C660C: @ 80C660C
- push {lr}
- ldr r1, _080C6620 @ =gUnknown_0202FF84
- ldr r0, _080C6624 @ =gUnknown_03005CE0
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _080C6628 @ =gUnknown_081A2D96
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C6620: .4byte gUnknown_0202FF84
-_080C6624: .4byte gUnknown_03005CE0
-_080C6628: .4byte gUnknown_081A2D96
- thumb_func_end sub_80C660C
-
- thumb_func_start FldEff_UseSecretPowerShrub
-FldEff_UseSecretPowerShrub: @ 80C662C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6650 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080C6654 @ =sub_80C6658
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080C6650: .4byte gTasks
-_080C6654: .4byte sub_80C6658
- thumb_func_end FldEff_UseSecretPowerShrub
-
- thumb_func_start sub_80C6658
-sub_80C6658: @ 80C6658
- push {lr}
- movs r0, 0x1B
- bl FieldEffectActiveListRemove
- movs r0, 0x39
- bl FieldEffectStart
- pop {r0}
- bx r0
- thumb_func_end sub_80C6658
-
- thumb_func_start FldEff_SecretPowerShrub
-FldEff_SecretPowerShrub: @ 80C666C
- push {r4,lr}
- bl sub_80C6280
- ldr r0, _080C66AC @ =gSpriteTemplate_83D2644
- ldr r3, _080C66B0 @ =gSprites
- ldr r1, _080C66B4 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 23
- ldr r4, _080C66B8 @ =gUnknown_0202FF84
- ldr r3, [r4, 0x14]
- adds r1, r3
- lsls r1, 16
- asrs r1, 16
- ldrb r2, [r2]
- ldr r3, [r4, 0x18]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x94
- bl CreateSprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C66AC: .4byte gSpriteTemplate_83D2644
-_080C66B0: .4byte gSprites
-_080C66B4: .4byte gPlayerAvatar
-_080C66B8: .4byte gUnknown_0202FF84
- thumb_func_end FldEff_SecretPowerShrub
-
- thumb_func_start sub_80C66BC
-sub_80C66BC: @ 80C66BC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA9
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080C66D4 @ =sub_80C66D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C66D4: .4byte sub_80C66D8
- thumb_func_end sub_80C66BC
-
- thumb_func_start sub_80C66D8
-sub_80C66D8: @ 80C66D8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x27
- bgt _080C66F8
- adds r0, r2, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080C6700
- bl sub_80BB800
- b _080C6700
-_080C66F8:
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080C6704 @ =sub_80C6708
- str r0, [r1, 0x1C]
-_080C6700:
- pop {r0}
- bx r0
- .align 2, 0
-_080C6704: .4byte sub_80C6708
- thumb_func_end sub_80C66D8
-
- thumb_func_start sub_80C6708
-sub_80C6708: @ 80C6708
- push {lr}
- movs r1, 0x39
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6708
-
- thumb_func_start FldEff_PCTurnOn
-FldEff_PCTurnOn: @ 80C6718
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _080C6758 @ =sub_80C6760
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C675C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, sp
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- ldrh r0, [r4]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6758: .4byte sub_80C6760
-_080C675C: .4byte gTasks
- thumb_func_end FldEff_PCTurnOn
-
- thumb_func_start sub_80C6760
-sub_80C6760: @ 80C6760
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C6788 @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- subs r0, 0x4
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bhi _080C682E
- lsls r0, 2
- ldr r1, _080C678C @ =_080C6790
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6788: .4byte gTasks + 0x8
-_080C678C: .4byte _080C6790
- .align 2, 0
-_080C6790:
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67D4
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C67E2
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C682E
- .4byte _080C6800
-_080C67D4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- b _080C67EE
-_080C67E2:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x88
- lsls r2, 2
-_080C67EE:
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- b _080C682E
-_080C6800:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- movs r2, 0x89
- lsls r2, 2
- bl MapGridSetMetatileIdAt
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- movs r0, 0x3D
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080C6834
-_080C682E:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
-_080C6834:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6760
-
- thumb_func_start sub_80C683C
-sub_80C683C: @ 80C683C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0x3
- bl PlaySE
- ldr r0, _080C6874 @ =0x00004054
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080C6878
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0xE2
- lsls r2, 4
- bl MapGridSetMetatileIdAt
- b _080C6888
- .align 2, 0
-_080C6874: .4byte 0x00004054
-_080C6878:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _080C68A0 @ =0x00000e21
- bl MapGridSetMetatileIdAt
-_080C6888:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68A0: .4byte 0x00000e21
- thumb_func_end sub_80C683C
-
- thumb_func_start sub_80C68A4
-sub_80C68A4: @ 80C68A4
- 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, 16
- lsrs r6, 16
- ldr r0, _080C68E4 @ =sub_80C68EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C68E8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
- strh r6, [r1, 0xC]
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C68E4: .4byte sub_80C68EC
-_080C68E8: .4byte gTasks
- thumb_func_end sub_80C68A4
-
- thumb_func_start sub_80C68EC
-sub_80C68EC: @ 80C68EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C690C @ =gTasks + 0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- bne _080C6910
- movs r0, 0
- b _080C6912
- .align 2, 0
-_080C690C: .4byte gTasks + 0x8
-_080C6910:
- adds r0, r1, 0x1
-_080C6912:
- strh r0, [r4, 0x6]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080C6964
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _080C692C
- movs r2, 0
- ldrsh r0, [r4, r2]
- bl sub_80C696C
-_080C692C:
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x8]
- ldrh r3, [r4]
- adds r2, r3
- lsls r2, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x3
- bne _080C6960
- adds r0, r5, 0
- bl DestroyTask
- b _080C6964
-_080C6960:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_080C6964:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C68EC
-
- thumb_func_start sub_80C696C
-sub_80C696C: @ 80C696C
- push {lr}
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 2
- cmp r1, r0
- beq _080C6998
- cmp r1, r0
- bgt _080C6988
- movs r0, 0x8A
- lsls r0, 2
- cmp r1, r0
- beq _080C69B0
- b _080C69B6
-_080C6988:
- movs r0, 0xCF
- lsls r0, 2
- cmp r1, r0
- beq _080C69A0
- adds r0, 0x4
- cmp r1, r0
- beq _080C69A8
- b _080C69B6
-_080C6998:
- movs r0, 0x4A
- bl PlaySE
- b _080C69B6
-_080C69A0:
- movs r0, 0x4B
- bl PlaySE
- b _080C69B6
-_080C69A8:
- movs r0, 0x4C
- bl PlaySE
- b _080C69B6
-_080C69B0:
- movs r0, 0x4E
- bl PlaySE
-_080C69B6:
- pop {r0}
- bx r0
- thumb_func_end sub_80C696C
-
- thumb_func_start FldEff_Nop47
-FldEff_Nop47: @ 80C69BC
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop47
-
- thumb_func_start FldEff_Nop48
-FldEff_Nop48: @ 80C69C0
- movs r0, 0
- bx lr
- thumb_func_end FldEff_Nop48
-
- thumb_func_start sub_80C69C4
-sub_80C69C4: @ 80C69C4
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x4D
- bl PlaySE
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- ldr r2, _080C6A0C @ =0x00000276
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- subs r6, r4, 0x1
- ldr r2, _080C6A10 @ =0x0000026e
- adds r0, r5, 0
- adds r1, r6, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r6, 0
- bl CurrentMapDrawMetatileAt
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6A0C: .4byte 0x00000276
-_080C6A10: .4byte 0x0000026e
- thumb_func_end sub_80C69C4
-
- thumb_func_start sub_80C6A14
-sub_80C6A14: @ 80C6A14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6A44 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- bne _080C6A48
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- movs r3, 0xC
- ldrsh r1, [r1, r3]
- bl sub_80C69C4
- adds r0, r4, 0
- bl DestroyTask
- b _080C6A4C
- .align 2, 0
-_080C6A44: .4byte gTasks
-_080C6A48:
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
-_080C6A4C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6A14
-
- thumb_func_start sub_80C6A54
-sub_80C6A54: @ 80C6A54
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r7, r5, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C6A7C
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r4, 16
- asrs r1, 16
- bl sub_80C69C4
- b _080C6A9E
-_080C6A7C:
- cmp r0, 0x2
- bne _080C6A9E
- ldr r0, _080C6AA4 @ =sub_80C6A14
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6AA8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r7, [r1, 0xA]
- strh r6, [r1, 0xC]
-_080C6A9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6AA4: .4byte sub_80C6A14
-_080C6AA8: .4byte gTasks
- thumb_func_end sub_80C6A54
-
- thumb_func_start sub_80C6AAC
-sub_80C6AAC: @ 80C6AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C6AE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- beq _080C6AC8
- b _080C6C26
-_080C6AC8:
- ldr r2, _080C6AE8 @ =0xfffffd88
- adds r0, r2, 0
- ldrh r1, [r1, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- bls _080C6ADA
- b _080C6C1E
-_080C6ADA:
- lsls r0, 2
- ldr r1, _080C6AEC @ =_080C6AF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C6AE4: .4byte gTasks
-_080C6AE8: .4byte 0xfffffd88
-_080C6AEC: .4byte _080C6AF0
- .align 2, 0
-_080C6AF0:
- .4byte _080C6BE0
- .4byte _080C6BE8
- .4byte _080C6BF0
- .4byte _080C6BF8
- .4byte _080C6C00
- .4byte _080C6C08
- .4byte _080C6C10
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C1E
- .4byte _080C6C18
-_080C6BE0:
- movs r0, 0x3E
- bl PlaySE
- b _080C6C1E
-_080C6BE8:
- movs r0, 0x3F
- bl PlaySE
- b _080C6C1E
-_080C6BF0:
- movs r0, 0x40
- bl PlaySE
- b _080C6C1E
-_080C6BF8:
- movs r0, 0x41
- bl PlaySE
- b _080C6C1E
-_080C6C00:
- movs r0, 0x42
- bl PlaySE
- b _080C6C1E
-_080C6C08:
- movs r0, 0x43
- bl PlaySE
- b _080C6C1E
-_080C6C10:
- movs r0, 0x44
- bl PlaySE
- b _080C6C1E
-_080C6C18:
- movs r0, 0x45
- bl PlaySE
-_080C6C1E:
- adds r0, r4, 0
- bl DestroyTask
- b _080C6C2A
-_080C6C26:
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
-_080C6C2A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6AAC
-
- thumb_func_start sub_80C6C30
-sub_80C6C30: @ 80C6C30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _080C6C5C @ =sub_80C6AAC
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C6C60 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x8]
- strh r0, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6C5C: .4byte sub_80C6AAC
-_080C6C60: .4byte gTasks
- thumb_func_end sub_80C6C30
-
- thumb_func_start sub_80C6C64
-sub_80C6C64: @ 80C6C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080C6C7C
- movs r0, 0xC3
- bl PlaySE
-_080C6C7C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1F
- ble _080C6C8A
- adds r0, r4, 0
- bl DestroySprite
-_080C6C8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C6C64
-
- thumb_func_start sub_80C6C90
-sub_80C6C90: @ 80C6C90
- push {r4,lr}
- sub sp, 0x4
- ldr r3, _080C6D28 @ =gMapObjects
- ldr r2, _080C6D2C @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080C6D1E
- ldr r3, _080C6D34 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r3
- movs r0, 0x3E
- adds r0, r4
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080C6D38 @ =sub_80C6C64
- str r0, [r2]
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080C6D1E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6D28: .4byte gMapObjects
-_080C6D2C: .4byte gPlayerAvatar
-_080C6D30: .4byte gFieldEffectObjectTemplatePointers
-_080C6D34: .4byte gSprites
-_080C6D38: .4byte sub_80C6C64
- thumb_func_end sub_80C6C90
-
- thumb_func_start FldEff_SandPillar
-FldEff_SandPillar: @ 80C6D3C
- push {r4,lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, _080C6D78 @ =gUnknown_0202FF84
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r1, 0x14]
- movs r3, 0
- ldrsh r0, [r4, r3]
- str r0, [r1, 0x18]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080C6DBC
- cmp r0, 0x2
- bgt _080C6D7C
- cmp r0, 0x1
- beq _080C6D86
- b _080C6E4C
- .align 2, 0
-_080C6D78: .4byte gUnknown_0202FF84
-_080C6D7C:
- cmp r0, 0x3
- beq _080C6DEC
- cmp r0, 0x4
- beq _080C6E24
- b _080C6E4C
-_080C6D86:
- ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DB4 @ =gSprites
- ldr r1, _080C6DB8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x20
- movs r3, 0
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6DB0: .4byte gSpriteTemplate_83D26A0
-_080C6DB4: .4byte gSprites
-_080C6DB8: .4byte gPlayerAvatar
-_080C6DBC:
- ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6DE4 @ =gSprites
- ldr r1, _080C6DE8 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0x80
- lsls r3, 12
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- b _080C6E0C
- .align 2, 0
-_080C6DE0: .4byte gSpriteTemplate_83D26A0
-_080C6DE4: .4byte gSprites
-_080C6DE8: .4byte gPlayerAvatar
-_080C6DEC:
- ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E18 @ =gSprites
- ldr r1, _080C6E1C @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- ldr r3, _080C6E20 @ =0xfff80000
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
-_080C6E0C:
- movs r3, 0x94
- bl CreateSprite
- b _080C6E4C
- .align 2, 0
-_080C6E14: .4byte gSpriteTemplate_83D26A0
-_080C6E18: .4byte gSprites
-_080C6E1C: .4byte gPlayerAvatar
-_080C6E20: .4byte 0xfff80000
-_080C6E24:
- ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0
- ldr r3, _080C6E5C @ =gSprites
- ldr r1, _080C6E60 @ =gPlayerAvatar
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x2]
- lsls r1, 23
- lsrs r1, 7
- movs r3, 0xC0
- lsls r3, 13
- adds r1, r3
- asrs r1, 16
- ldrb r2, [r2]
- adds r2, 0x10
- movs r3, 0x94
- bl CreateSprite
-_080C6E4C:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080C6E58: .4byte gSpriteTemplate_83D26A0
-_080C6E5C: .4byte gSprites
-_080C6E60: .4byte gPlayerAvatar
- thumb_func_end FldEff_SandPillar
-
- thumb_func_start door_restore_tilemap
-door_restore_tilemap: @ 80C6E64
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x83
- bl PlaySE
- ldr r4, _080C6E90 @ =gUnknown_0202FF84
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl MapGridGetMetatileIdAt
- ldr r1, _080C6E94 @ =0x00000286
- cmp r0, r1
- bne _080C6E9C
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- ldr r2, _080C6E98 @ =0x00000e02
- bl MapGridSetMetatileIdAt
- b _080C6EAA
- .align 2, 0
-_080C6E90: .4byte gUnknown_0202FF84
-_080C6E94: .4byte 0x00000286
-_080C6E98: .4byte 0x00000e02
-_080C6E9C:
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- movs r2, 0xA1
- lsls r2, 2
- bl MapGridSetMetatileIdAt
-_080C6EAA:
- ldr r4, _080C6ED8 @ =gUnknown_0202FF84
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6EDC @ =0x0000020a
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- subs r1, 0x1
- bl CurrentMapDrawMetatileAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6EE0 @ =sub_80C6EE4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6ED8: .4byte gUnknown_0202FF84
-_080C6EDC: .4byte 0x0000020a
-_080C6EE0: .4byte sub_80C6EE4
- thumb_func_end door_restore_tilemap
-
- thumb_func_start sub_80C6EE4
-sub_80C6EE4: @ 80C6EE4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x11
- bgt _080C6EF8
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080C6F14
-_080C6EF8:
- ldr r4, _080C6F1C @ =gUnknown_0202FF84
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- ldr r2, _080C6F20 @ =0x00000e8c
- bl MapGridSetMetatileIdAt
- ldr r0, [r4, 0x14]
- ldr r1, [r4, 0x18]
- bl CurrentMapDrawMetatileAt
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080C6F24 @ =sub_80C6F28
- str r0, [r5, 0x1C]
-_080C6F14:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C6F1C: .4byte gUnknown_0202FF84
-_080C6F20: .4byte 0x00000e8c
-_080C6F24: .4byte sub_80C6F28
- thumb_func_end sub_80C6EE4
-
- thumb_func_start sub_80C6F28
-sub_80C6F28: @ 80C6F28
- push {lr}
- movs r1, 0x34
- bl FieldEffectStop
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80C6F28
-
- thumb_func_start sub_80C6F38
-sub_80C6F38: @ 80C6F38
- 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 MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _080C6F70 @ =0x000002f5
- cmp r1, r0
- beq _080C6FE8
- cmp r1, r0
- bgt _080C6F74
- subs r0, 0x17
- cmp r1, r0
- beq _080C6FB0
- adds r0, 0x16
- cmp r1, r0
- beq _080C6FDC
- b _080C6FFA
- .align 2, 0
-_080C6F70: .4byte 0x000002f5
-_080C6F74:
- ldr r0, _080C6F9C @ =0x000002f6
- cmp r1, r0
- beq _080C6FF4
- adds r0, 0x40
- cmp r1, r0
- bne _080C6FFA
- ldr r0, _080C6FA0 @ =gStringVar1
- movs r1, 0x64
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FA4 @ =gStringVar2
- ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank
- bl StringCopy
- ldr r1, _080C6FAC @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6F9C: .4byte 0x000002f6
-_080C6FA0: .4byte gStringVar1
-_080C6FA4: .4byte gStringVar2
-_080C6FA8: .4byte gSecretBaseText_GoldRank
-_080C6FAC: .4byte gScriptResult
-_080C6FB0:
- ldr r0, _080C6FCC @ =gStringVar1
- movs r1, 0x32
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _080C6FD0 @ =gStringVar2
- ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank
- bl StringCopy
- ldr r1, _080C6FD8 @ =gScriptResult
- movs r0, 0
- b _080C6FF8
- .align 2, 0
-_080C6FCC: .4byte gStringVar1
-_080C6FD0: .4byte gStringVar2
-_080C6FD4: .4byte gSecretBaseText_SilverRank
-_080C6FD8: .4byte gScriptResult
-_080C6FDC:
- ldr r1, _080C6FE4 @ =gScriptResult
- movs r0, 0x1
- b _080C6FF8
- .align 2, 0
-_080C6FE4: .4byte gScriptResult
-_080C6FE8:
- ldr r1, _080C6FF0 @ =gScriptResult
- movs r0, 0x2
- b _080C6FF8
- .align 2, 0
-_080C6FF0: .4byte gScriptResult
-_080C6FF4:
- ldr r1, _080C7004 @ =gScriptResult
- movs r0, 0x3
-_080C6FF8:
- strh r0, [r1]
-_080C6FFA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7004: .4byte gScriptResult
- thumb_func_end sub_80C6F38
-
- thumb_func_start task50_overworld_posion_effect
-task50_overworld_posion_effect: @ 80C7008
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080C702C @ =gTasks + 0x8
- adds r1, r0, r1
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C7046
- cmp r0, 0x1
- bgt _080C7030
- cmp r0, 0
- beq _080C7036
- b _080C7062
- .align 2, 0
-_080C702C: .4byte gTasks + 0x8
-_080C7030:
- cmp r0, 0x2
- beq _080C705A
- b _080C7062
-_080C7036:
- ldrh r0, [r1, 0x2]
- adds r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080C7062
- b _080C7052
-_080C7046:
- ldrh r0, [r1, 0x2]
- subs r0, 0x2
- strh r0, [r1, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _080C7062
-_080C7052:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080C7062
-_080C705A:
- adds r0, r2, 0
- bl DestroyTask
- b _080C706C
-_080C7062:
- ldr r2, _080C7070 @ =REG_MOSAIC
- ldrh r1, [r1, 0x2]
- lsls r0, r1, 4
- orrs r0, r1
- strh r0, [r2]
-_080C706C:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7070: .4byte REG_MOSAIC
- thumb_func_end task50_overworld_posion_effect
-
- thumb_func_start overworld_posion_effect
-overworld_posion_effect: @ 80C7074
- push {lr}
- movs r0, 0x4F
- bl PlaySE
- ldr r0, _080C7088 @ =task50_overworld_posion_effect
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C7088: .4byte task50_overworld_posion_effect
- thumb_func_end overworld_posion_effect
-
- thumb_func_start c3_80A0DD8_is_running
-c3_80A0DD8_is_running: @ 80C708C
- push {lr}
- ldr r0, _080C709C @ =task50_overworld_posion_effect
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C709C: .4byte task50_overworld_posion_effect
- thumb_func_end c3_80A0DD8_is_running
-
- thumb_func_start sub_80C70A0
-sub_80C70A0: @ 80C70A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C70B4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C70B8 @ =sub_80C70BC
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C70B4: .4byte gTasks
-_080C70B8: .4byte sub_80C70BC
- thumb_func_end sub_80C70A0
-
- thumb_func_start sub_80C70BC
-sub_80C70BC: @ 80C70BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7120 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7124 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080C70E8
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C711A
-_080C70E8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059D08
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r1, _080C7128 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C712C @ =sub_80C7130
- str r1, [r0]
-_080C711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7120: .4byte gPlayerAvatar
-_080C7124: .4byte gMapObjects
-_080C7128: .4byte gTasks
-_080C712C: .4byte sub_80C7130
- thumb_func_end sub_80C70BC
-
- thumb_func_start sub_80C7130
-sub_80C7130: @ 80C7130
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C7184 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C7188 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080C7194
- ldr r1, _080C718C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080C7190
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- b _080C7194
- .align 2, 0
-_080C7184: .4byte gPlayerAvatar
-_080C7188: .4byte gMapObjects
-_080C718C: .4byte gTasks
-_080C7190:
- ldr r0, _080C719C @ =sub_80C71A0
- str r0, [r2]
-_080C7194:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C719C: .4byte sub_80C71A0
- thumb_func_end sub_80C7130
-
- thumb_func_start sub_80C71A0
-sub_80C71A0: @ 80C71A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80597D0
- lsls r0, 24
- lsrs r0, 24
- bl SetPlayerAvatarTransitionFlags
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C71A0
-
- thumb_func_start sub_80C71C4
-sub_80C71C4: @ 80C71C4
- push {lr}
- ldr r0, _080C71D4 @ =sub_80C70A0
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080C71D4: .4byte sub_80C70A0
- thumb_func_end sub_80C71C4
-
- thumb_func_start sub_80C71D8
-sub_80C71D8: @ 80C71D8
- push {r4,r5,lr}
- ldr r0, _080C722C @ =gUnknown_083D2878
- bl LoadSpritePalette
- ldr r0, _080C7230 @ =gSpriteTemplate_83D2894
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7238
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _080C7234 @ =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r0, 0x10
- movs r1, 0xD
- bl sub_8060388
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- adds r0, r5, 0
- b _080C723A
- .align 2, 0
-_080C722C: .4byte gUnknown_083D2878
-_080C7230: .4byte gSpriteTemplate_83D2894
-_080C7234: .4byte gSprites
-_080C7238:
- movs r0, 0x40
-_080C723A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C71D8
-
- thumb_func_start sub_80C7240
-sub_80C7240: @ 80C7240
- push {r4-r7,lr}
- ldr r4, _080C7274 @ =gSprites
- adds r7, r4, 0
- movs r6, 0
- movs r5, 0x3F
-_080C724A:
- adds r0, r7, 0
- adds r0, 0x14
- adds r0, r6, r0
- ldr r1, [r0]
- ldr r0, _080C7278 @ =gSpriteTemplate_83D2894
- cmp r1, r0
- bne _080C7264
- adds r0, r4, 0
- bl FreeSpritePalette
- adds r0, r4, 0
- bl DestroySprite
-_080C7264:
- adds r4, 0x44
- adds r6, 0x44
- subs r5, 0x1
- cmp r5, 0
- bge _080C724A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7274: .4byte gSprites
-_080C7278: .4byte gSpriteTemplate_83D2894
- thumb_func_end sub_80C7240
-
- thumb_func_start sub_80C727C
-sub_80C727C: @ 80C727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x78
- bl __modsi3
- cmp r0, 0
- bne _080C7290
- movs r0, 0x1
- negs r0, r0
- b _080C72A2
-_080C7290:
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C72A0
- movs r0, 0
- b _080C72A2
-_080C72A0:
- movs r0, 0x1
-_080C72A2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C727C
-
- thumb_func_start sub_80C72A8
-sub_80C72A8: @ 80C72A8
- push {lr}
- adds r0, 0x78
- movs r1, 0xB4
- bl __modsi3
- cmp r0, 0
- beq _080C72BA
- movs r0, 0
- b _080C72BE
-_080C72BA:
- movs r0, 0x1
- negs r0, r0
-_080C72BE:
- pop {r1}
- bx r1
- thumb_func_end sub_80C72A8
-
- thumb_func_start sub_80C72C4
-sub_80C72C4: @ 80C72C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C7364 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r4, _080C7368 @ =gSaveBlock1
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 18
- movs r3, 0xC0
- lsls r3, 10
- orrs r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 17
- ldr r3, _080C736C @ =0xfffd0000
- adds r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- movs r3, 0x3
- negs r3, r3
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- ldr r1, _080C7370 @ =0x75300000
- cmp r0, r1
- bne _080C7346
- strh r4, [r5]
-_080C7346:
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl SetCameraPanning
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7364: .4byte gTasks + 0x8
-_080C7368: .4byte gSaveBlock1
-_080C736C: .4byte 0xfffd0000
-_080C7370: .4byte 0x75300000
- thumb_func_end sub_80C72C4
-
- thumb_func_start sub_80C7374
-sub_80C7374: @ 80C7374
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- ldr r4, _080C73B4 @ =gTasks + 0x8
- adds r7, r3, r4
- ldrh r1, [r7]
- adds r1, 0x1
- strh r1, [r7]
- ldrh r0, [r7, 0x4]
- adds r0, 0x1
- strh r0, [r7, 0x4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- ble _080C73A4
- movs r0, 0
- strh r0, [r7]
- ldrh r0, [r7, 0x2]
- adds r0, 0x1
- strh r0, [r7, 0x2]
-_080C73A4:
- ldrh r0, [r7, 0x2]
- cmp r0, 0x13
- bne _080C73B8
- adds r0, r2, 0
- bl DestroyTask
- b _080C746A
- .align 2, 0
-_080C73B4: .4byte gTasks + 0x8
-_080C73B8:
- ldr r2, _080C7474 @ =gUnknown_083D294C
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _080C73D4
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _080C7478 @ =sub_80C7484
- str r1, [r0]
-_080C73D4:
- movs r4, 0x2
- ldrsh r0, [r7, r4]
- adds r0, r2
- movs r5, 0
- ldrsb r5, [r0, r5]
- lsls r5, 16
- lsrs r5, 16
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r5, 16
- asrs r5, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl SetCameraPanning
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r6, _080C747C @ =gSaveBlock1
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r3, 0x3
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- movs r4, 0xC0
- lsls r4, 10
- orrs r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- negs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 17
- ldr r4, _080C7480 @ =0xfffd0000
- adds r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r4, 0x3
- negs r4, r4
- adds r3, r4, 0
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
-_080C746A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7474: .4byte gUnknown_083D294C
-_080C7478: .4byte sub_80C7484
-_080C747C: .4byte gSaveBlock1
-_080C7480: .4byte 0xfffd0000
- thumb_func_end sub_80C7374
-
- thumb_func_start sub_80C7484
-sub_80C7484: @ 80C7484
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080C74C4 @ =gTasks + 0x8
- adds r2, r0, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C74B4
- movs r0, 0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
-_080C74B4:
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bne _080C74C8
- adds r0, r3, 0
- bl DestroyTask
- b _080C7516
- .align 2, 0
-_080C74C4: .4byte gTasks + 0x8
-_080C74C8:
- ldr r1, _080C7524 @ =gUnknown_083D294C
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- adds r0, r1
- movs r1, 0
- mov r8, r1
- movs r6, 0
- ldrsb r6, [r0, r6]
- adds r0, r6, 0
- bl SetCameraPanning
- ldr r5, _080C7528 @ =gSaveBlock1
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- movs r3, 0x3
- subs r3, r6
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- negs r3, r6
- mov r4, r8
- subs r4, 0x3
- str r4, [sp]
- movs r0, 0x2
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- subs r4, r6
- mov r3, r8
- str r3, [sp]
- movs r0, 0x3
- adds r3, r4, 0
- bl sub_805BD90
-_080C7516:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7524: .4byte gUnknown_083D294C
-_080C7528: .4byte gSaveBlock1
- thumb_func_end sub_80C7484
-
- thumb_func_start sub_80C752C
-sub_80C752C: @ 80C752C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C7550 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080C7546
- b _080C7698
-_080C7546:
- lsls r0, 2
- ldr r1, _080C7554 @ =_080C7558
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C7550: .4byte gTasks + 0x8
-_080C7554: .4byte _080C7558
- .align 2, 0
-_080C7558:
- .4byte _080C7570
- .4byte _080C75A8
- .4byte _080C75C4
- .4byte _080C7610
- .4byte _080C7634
- .4byte _080C7652
-_080C7570:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- beq _080C7580
- b _080C7698
-_080C7580:
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r0, _080C75A4 @ =sub_80C72C4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- movs r0, 0x1
- strh r0, [r4]
- movs r0, 0x31
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C75A4: .4byte sub_80C72C4
-_080C75A8:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x96
- bne _080C7698
- bl pal_fill_black
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7698
-_080C75C4:
- ldrh r0, [r4, 0x2]
- adds r3, r0, 0x1
- strh r3, [r4, 0x2]
- ldr r0, _080C7608 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080C7698
- lsls r1, r3, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _080C7698
- strh r2, [r4, 0x2]
- ldrb r0, [r4, 0x4]
- bl DestroyTask
- ldr r0, _080C760C @ =sub_80C7374
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x6]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x32
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C7608: .4byte gPaletteFade
-_080C760C: .4byte sub_80C7374
-_080C7610:
- ldr r2, _080C7630 @ =gTasks
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080C7698
- bl InstallCameraPanAheadCallback
- strh r5, [r4, 0x2]
- movs r0, 0x4
- strh r0, [r4]
- b _080C7698
- .align 2, 0
-_080C7630: .4byte gTasks
-_080C7634:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- bne _080C7698
- movs r0, 0x33
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x5
- strh r0, [r4]
- b _080C7698
-_080C7652:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bne _080C7698
- movs r2, 0x82
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x84
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- movs r2, 0x86
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x34
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
-_080C7698:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C752C
-
- thumb_func_start sub_80C76A0
-sub_80C76A0: @ 80C76A0
- push {lr}
- sub sp, 0x4
- ldr r2, _080C76E8 @ =0x0000020d
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76EC @ =0x00000215
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76F0 @ =0x0000021d
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- bl ScriptContext2_Enable
- movs r0, 0
- str r0, [sp]
- ldr r1, _080C76F4 @ =gPlttBufferFaded
- ldr r2, _080C76F8 @ =0x01000100
- mov r0, sp
- bl CpuFastSet
- ldr r0, _080C76FC @ =sub_80C752C
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C76E8: .4byte 0x0000020d
-_080C76EC: .4byte 0x00000215
-_080C76F0: .4byte 0x0000021d
-_080C76F4: .4byte gPlttBufferFaded
-_080C76F8: .4byte 0x01000100
-_080C76FC: .4byte sub_80C752C
- thumb_func_end sub_80C76A0
-
- thumb_func_start sub_80C7700
-sub_80C7700: @ 80C7700
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080C774C @ =sub_80C752C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080C7744
- ldr r4, _080C7750 @ =gSaveBlock1
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r5, 0x3
- negs r5, r5
- str r5, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- str r6, [sp]
- movs r0, 0x3
- adds r3, r5, 0
- bl sub_805BD90
-_080C7744:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C774C: .4byte sub_80C752C
-_080C7750: .4byte gSaveBlock1
- thumb_func_end sub_80C7700
-
- thumb_func_start sub_80C7754
-sub_80C7754: @ 80C7754
- push {r4-r6,lr}
- sub sp, 0xC
- mov r4, sp
- adds r4, 0x5
- mov r5, sp
- adds r5, 0x6
- add r6, sp, 0x8
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- cmp r0, 0
- bne _080C7796
- add r0, sp, 0x4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r2, 0x1
- negs r2, r2
- movs r3, 0
- ldrsb r3, [r5, r3]
- movs r4, 0
- ldrsb r4, [r6, r4]
- str r4, [sp]
- bl warp1_set
- movs r0, 0x1
- b _080C7798
-_080C7796:
- movs r0, 0
-_080C7798:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7754
-
- thumb_func_start sub_80C77A0
-sub_80C77A0: @ 80C77A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C77CC @ =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, _080C77D0 @ =0x000040b4
- bl GetVarPointer
- adds r6, r0, 0
- ldr r7, _080C77D4 @ =gSaveBlock1 + 0x4
- movs r0, 0
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080C77FC
- cmp r2, 0x1
- bgt _080C77D8
- cmp r2, 0
- beq _080C77E2
- b _080C7896
- .align 2, 0
-_080C77CC: .4byte gTasks + 0x8
-_080C77D0: .4byte 0x000040b4
-_080C77D4: .4byte gSaveBlock1 + 0x4
-_080C77D8:
- cmp r2, 0x2
- beq _080C783E
- cmp r2, 0x3
- beq _080C7878
- b _080C7896
-_080C77E2:
- ldr r0, _080C77F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C7896
- strh r2, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C77F8: .4byte gPaletteFade
-_080C77FC:
- ldr r0, _080C7830 @ =gMain
- ldrh r1, [r0, 0x2E]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080C780A
- strh r2, [r4, 0x2]
-_080C780A:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- movs r0, 0xFF
- bl sub_80A212C
- lsls r0, 24
- cmp r0, 0
- beq _080C7896
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- bne _080C783A
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7834
- movs r0, 0x9
- b _080C7836
- .align 2, 0
-_080C7830: .4byte gMain
-_080C7834:
- movs r0, 0xA
-_080C7836:
- strh r0, [r6]
- b _080C7846
-_080C783A:
- movs r0, 0x2
- strh r0, [r4]
-_080C783E:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C784C
-_080C7846:
- movs r0, 0x3
- strh r0, [r4]
- b _080C7896
-_080C784C:
- ldrh r0, [r6]
- cmp r0, 0x2
- bne _080C7860
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C785C @ =gUnknown_083D295F
- b _080C7866
- .align 2, 0
-_080C785C: .4byte gUnknown_083D295F
-_080C7860:
- ldrb r1, [r7, 0x1]
- ldrb r2, [r7]
- ldr r3, _080C7874 @ =gUnknown_083D2961
-_080C7866:
- movs r0, 0xFF
- bl exec_movement
- movs r0, 0x1
- strh r0, [r4]
- b _080C7896
- .align 2, 0
-_080C7874: .4byte gUnknown_083D2961
-_080C7878:
- ldr r0, _080C789C @ =0x00004001
- bl FlagReset
- movs r0, 0x80
- lsls r0, 7
- bl FlagReset
- movs r0, 0
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- bl sp13E_warp_to_last_warp
- adds r0, r5, 0
- bl DestroyTask
-_080C7896:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C789C: .4byte 0x00004001
- thumb_func_end sub_80C77A0
-
- thumb_func_start sub_80C78A0
-sub_80C78A0: @ 80C78A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080C78F4 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8C
- movs r2, 0x70
- movs r3, 0x50
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C78F8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080C78FC @ =0x000040b4
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _080C7900
- movs r0, 0x4
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- b _080C7912
- .align 2, 0
-_080C78F4: .4byte SpriteCallbackDummy
-_080C78F8: .4byte gSprites
-_080C78FC: .4byte 0x000040b4
-_080C7900:
- movs r0, 0x3
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_080C7912:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C78A0
-
- thumb_func_start sub_80C791C
-sub_80C791C: @ 80C791C
- push {lr}
- bl sub_80C78A0
- ldr r2, _080C794C @ =gMapObjects
- ldr r0, _080C7950 @ =gPlayerAvatar
- 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 pal_fill_black
- ldr r0, _080C7954 @ =sub_80C77A0
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_080C794C: .4byte gMapObjects
-_080C7950: .4byte gPlayerAvatar
-_080C7954: .4byte sub_80C77A0
- thumb_func_end sub_80C791C
-
- thumb_func_start sub_80C7958
-sub_80C7958: @ 80C7958
- push {lr}
- ldr r0, _080C7990 @ =0x0000082d
- bl FlagSet
- ldr r0, _080C7994 @ =0x00004001
- bl FlagSet
- movs r0, 0x80
- lsls r0, 7
- bl FlagSet
- ldr r0, _080C7998 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- movs r2, 0x5
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0
- bl saved_warp2_set
- bl sub_80C7754
- bl sub_8080F9C
- pop {r0}
- bx r0
- .align 2, 0
-_080C7990: .4byte 0x0000082d
-_080C7994: .4byte 0x00004001
-_080C7998: .4byte gSaveBlock1
- thumb_func_end sub_80C7958
-
- thumb_func_start GetCurrentMapRotatingGatePuzzleType
-GetCurrentMapRotatingGatePuzzleType: @ 80C799C
- push {lr}
- ldr r0, _080C79B0 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- bne _080C79B4
- movs r0, 0x1
- b _080C79C6
- .align 2, 0
-_080C79B0: .4byte gSaveBlock1
-_080C79B4:
- ldr r0, _080C79C0 @ =0x0000081d
- cmp r1, r0
- beq _080C79C4
- movs r0, 0
- b _080C79C6
- .align 2, 0
-_080C79C0: .4byte 0x0000081d
-_080C79C4:
- movs r0, 0x2
-_080C79C6:
- pop {r1}
- bx r1
- thumb_func_end GetCurrentMapRotatingGatePuzzleType
-
- thumb_func_start sub_80C79CC
-sub_80C79CC: @ 80C79CC
- push {r4-r6,lr}
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r5, r0, 0
- movs r3, 0
- ldr r4, _080C7A00 @ =gUnknown_02038804
- ldrb r0, [r4]
- cmp r3, r0
- bge _080C79F8
- ldr r6, _080C7A04 @ =gUnknown_02038800
-_080C79E4:
- adds r2, r5, r3
- ldr r1, [r6]
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _080C79E4
-_080C79F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7A00: .4byte gUnknown_02038804
-_080C7A04: .4byte gUnknown_02038800
- thumb_func_end sub_80C79CC
-
- thumb_func_start sub_80C7A08
-sub_80C7A08: @ 80C7A08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7A08
-
- thumb_func_start sub_80C7A24
-sub_80C7A24: @ 80C7A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A24
-
- thumb_func_start sub_80C7A44
-sub_80C7A44: @ 80C7A44
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- bne _080C7A68
- cmp r1, 0
- beq _080C7A64
- subs r0, r1, 0x1
- lsls r0, 24
- b _080C7A72
-_080C7A64:
- movs r1, 0x3
- b _080C7A74
-_080C7A68:
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
-_080C7A72:
- lsrs r1, r0, 24
-_080C7A74:
- adds r0, r5, 0
- bl sub_80C7A24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A44
-
- thumb_func_start sub_80C7A80
-sub_80C7A80: @ 80C7A80
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0x1
- beq _080C7A94
- cmp r0, 0x1
- ble _080C7AC8
- cmp r0, 0x2
- beq _080C7AAC
- b _080C7AC8
-_080C7A94:
- ldr r1, _080C7AA0 @ =gUnknown_02038800
- ldr r0, _080C7AA4 @ =gUnknown_083D2964
- str r0, [r1]
- ldr r1, _080C7AA8 @ =gUnknown_02038804
- movs r0, 0x7
- b _080C7AB6
- .align 2, 0
-_080C7AA0: .4byte gUnknown_02038800
-_080C7AA4: .4byte gUnknown_083D2964
-_080C7AA8: .4byte gUnknown_02038804
-_080C7AAC:
- ldr r1, _080C7ACC @ =gUnknown_02038800
- ldr r0, _080C7AD0 @ =gUnknown_083D299C
- str r0, [r1]
- ldr r1, _080C7AD4 @ =gUnknown_02038804
- movs r0, 0xE
-_080C7AB6:
- strb r0, [r1]
- movs r1, 0
- ldr r3, _080C7AD8 @ =gUnknown_020387F0
- movs r2, 0x40
-_080C7ABE:
- adds r0, r1, r3
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0xD
- bls _080C7ABE
-_080C7AC8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7ACC: .4byte gUnknown_02038800
-_080C7AD0: .4byte gUnknown_083D299C
-_080C7AD4: .4byte gUnknown_02038804
-_080C7AD8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7A80
-
- thumb_func_start sub_80C7ADC
-sub_80C7ADC: @ 80C7ADC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- ldr r2, _080C7B9C @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r5, 0
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080C7B8C
- lsls r0, r2, 16
- asrs r7, r0, 16
- lsls r0, r3, 16
- asrs r6, r0, 16
-_080C7B28:
- ldr r0, _080C7BA4 @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r5, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080C7B7E
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r6, r1
- bgt _080C7B7E
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- ldr r0, _080C7BA8 @ =gUnknown_020387F0
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x40
- bne _080C7B7E
- ldr r3, [sp]
- lsls r1, r3, 16
- mov r0, r10
- lsls r2, r0, 16
- adds r0, r5, 0
- asrs r1, 16
- asrs r2, 16
- bl sub_80C7BAC
- strb r0, [r4]
-_080C7B7E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080C7B28
-_080C7B8C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7B9C: .4byte gSaveBlock1
-_080C7BA0: .4byte gUnknown_02038804
-_080C7BA4: .4byte gUnknown_02038800
-_080C7BA8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7ADC
-
- thumb_func_start sub_80C7BAC
-sub_80C7BAC: @ 80C7BAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080C7BDC @ =gUnknown_02038800
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080C7BD4
- cmp r0, 0x4
- bne _080C7BE4
-_080C7BD4:
- mov r1, sp
- ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4
- b _080C7BE8
- .align 2, 0
-_080C7BDC: .4byte gUnknown_02038800
-_080C7BE0: .4byte gSpriteTemplate_83D60A4
-_080C7BE4:
- mov r1, sp
- ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C
-_080C7BE8:
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r2, sp
- ldrb r0, [r4, 0x4]
- movs r3, 0x98
- lsls r3, 5
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7C84
- ldrh r0, [r4]
- adds r0, 0x7
- ldrh r1, [r4, 0x2]
- adds r1, 0x7
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r2, _080C7C80 @ =gSprites
- adds r4, r2
- strh r6, [r4, 0x2E]
- movs r2, 0x3E
- adds r2, r4
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x2
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 16
- asrs r2, 16
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- mov r3, r8
- lsls r2, r3, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- adds r0, r4, 0
- bl sub_80C7D14
- adds r0, r6, 0
- bl sub_80C7A08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- b _080C7C86
- .align 2, 0
-_080C7C7C: .4byte gSpriteTemplate_83D608C
-_080C7C80: .4byte gSprites
-_080C7C84:
- movs r0, 0x40
-_080C7C86:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7BAC
-
- thumb_func_start sub_80C7C94
-sub_80C7C94: @ 80C7C94
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r6, 0
- bl sub_80C7D14
- cmp r5, 0x1
- bne _080C7CDA
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CCA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CCA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
- b _080C7D08
-_080C7CDA:
- cmp r5, 0x2
- bne _080C7D08
- adds r0, r7, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CFA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CFA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
-_080C7D08:
- movs r0, 0
- strh r0, [r6, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7C94
-
- thumb_func_start sub_80C7D14
-sub_80C7D14: @ 80C7D14
- push {r4-r6,lr}
- mov r12, r0
- mov r4, r12
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r5, 0x5
- negs r5, r5
- ands r5, r0
- strb r5, [r4]
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX
- adds r2, r1
- ldrh r0, [r0]
- adds r2, r0
- lsls r2, 16
- mov r3, r12
- ldrh r1, [r3, 0x26]
- ldrh r0, [r3, 0x22]
- adds r1, r0
- mov r0, r12
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r3, _080C7DAC @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- movs r3, 0x80
- lsls r3, 15
- adds r1, r2, r3
- lsrs r1, 16
- lsrs r6, r0, 16
- adds r0, r3
- lsrs r3, r0, 16
- asrs r2, 16
- cmp r2, 0xFF
- bgt _080C7D7A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7D82
-_080C7D7A:
- movs r1, 0x4
- adds r0, r5, 0
- orrs r0, r1
- strb r0, [r4]
-_080C7D82:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080C7D96
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7DA2
-_080C7D96:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080C7DA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DA8: .4byte gSpriteCoordOffsetX
-_080C7DAC: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_80C7D14
-
- thumb_func_start LoadRotatingGatePics
-LoadRotatingGatePics: @ 80C7DB0
- push {lr}
- ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable
- bl LoadSpriteSheets
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DBC: .4byte gRotatingGatesGraphicsTable
- thumb_func_end LoadRotatingGatePics
-
- thumb_func_start sub_80C7DC0
-sub_80C7DC0: @ 80C7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _080C7DF4 @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r1, 0xE
- lsls r1, 16
- lsrs r7, r1, 16
- movs r6, 0
- b _080C7E66
- .align 2, 0
-_080C7DF4: .4byte gSaveBlock1
-_080C7DF8:
- ldr r0, _080C7E7C @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r0, r6, r0
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _080C7E64
- lsls r0, r2, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r2, r0
- bgt _080C7E44
- lsls r0, r3, 16
- mov r2, r8
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- lsls r0, r7, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C7E64
-_080C7E44:
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r5, r6, r0
- ldrb r0, [r5]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7E84 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
-_080C7E64:
- adds r6, 0x1
-_080C7E66:
- ldr r0, _080C7E88 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C7DF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7E7C: .4byte gUnknown_02038800
-_080C7E80: .4byte gUnknown_020387F0
-_080C7E84: .4byte gSprites
-_080C7E88: .4byte gUnknown_02038804
- thumb_func_end sub_80C7DC0
-
- thumb_func_start sub_80C7E8C
-sub_80C7E8C: @ 80C7E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r1, 0x1
- bne _080C7EAC
- ldr r0, _080C7EA8 @ =gUnknown_083D611C
- mov r10, r0
- b _080C7EB8
- .align 2, 0
-_080C7EA8: .4byte gUnknown_083D611C
-_080C7EAC:
- cmp r1, 0x2
- beq _080C7EB4
-_080C7EB0:
- movs r0, 0
- b _080C7F48
-_080C7EB4:
- ldr r1, _080C7F58 @ =gUnknown_083D60FC
- mov r10, r1
-_080C7EB8:
- adds r0, r4, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, _080C7F5C @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- movs r3, 0
- lsls r2, 3
- str r2, [sp, 0x4]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
-_080C7EE8:
- movs r6, 0
- ldr r2, [sp]
- adds r7, r2, r3
- lsls r0, r3, 1
- adds r5, r7, 0
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r2, _080C7F60 @ =gUnknown_083D613C
- adds r4, r0, r2
-_080C7EFA:
- adds r0, r5, 0
- cmp r5, 0
- bge _080C7F02
- adds r0, r7, 0x3
-_080C7F02:
- asrs r0, 2
- lsls r0, 2
- subs r0, r5, r0
- lsls r0, 1
- adds r0, r6
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _080C7F38
- lsls r1, 2
- add r1, r10
- movs r0, 0
- ldrsb r0, [r1, r0]
- add r0, r9
- ldrb r1, [r1, 0x1]
- lsls r1, 24
- asrs r1, 24
- add r1, r8
- str r3, [sp, 0x8]
- bl MapGridIsImpassableAt
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x8]
- cmp r0, 0x1
- beq _080C7EB0
-_080C7F38:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1
- ble _080C7EFA
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C7EE8
- movs r0, 0x1
-_080C7F48:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7F58: .4byte gUnknown_083D60FC
-_080C7F5C: .4byte gUnknown_02038800
-_080C7F60: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7E8C
-
- thumb_func_start sub_80C7F64
-sub_80C7F64: @ 80C7F64
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r4, 24
- lsrs r5, r4, 24
- lsrs r4, 25
- movs r0, 0x1
- ands r5, r0
- adds r0, r6, 0
- bl sub_80C7A08
- subs r4, r0
- adds r1, r4, 0x4
- adds r0, r1, 0
- cmp r1, 0
- bge _080C7F8A
- adds r0, r4, 0x7
-_080C7F8A:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- ldr r1, _080C7FB0 @ =gUnknown_02038800
- ldr r2, [r1]
- lsls r1, r6, 3
- adds r1, r2
- ldrb r1, [r1, 0x4]
- ldr r2, _080C7FB4 @ =gUnknown_083D613C
- lsls r0, 24
- asrs r0, 23
- adds r0, r5
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7FB0: .4byte gUnknown_02038800
-_080C7FB4: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7F64
-
- thumb_func_start sub_80C7FB8
-sub_80C7FB8: @ 80C7FB8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080C7FE4 @ =gUnknown_020387F0
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x40
- beq _080C7FDC
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7FE8 @ =gSprites
- adds r4, r0
- strh r1, [r4, 0x30]
- adds r0, r3, 0
- bl sub_80C7A08
- strh r0, [r4, 0x32]
-_080C7FDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7FE4: .4byte gUnknown_020387F0
-_080C7FE8: .4byte gSprites
- thumb_func_end sub_80C7FB8
-
- thumb_func_start sub_80C7FEC
-sub_80C7FEC: @ 80C7FEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0x2
- bne _080C8008
- ldr r3, _080C8004 @ =gUnknown_083D60BC
- b _080C802A
- .align 2, 0
-_080C8004: .4byte gUnknown_083D60BC
-_080C8008:
- cmp r0, 0x1
- bne _080C8014
- ldr r3, _080C8010 @ =gUnknown_083D60CC
- b _080C802A
- .align 2, 0
-_080C8010: .4byte gUnknown_083D60CC
-_080C8014:
- cmp r0, 0x3
- bne _080C8020
- ldr r3, _080C801C @ =gUnknown_083D60DC
- b _080C802A
- .align 2, 0
-_080C801C: .4byte gUnknown_083D60DC
-_080C8020:
- cmp r3, 0x4
- beq _080C8028
- movs r0, 0xFF
- b _080C8038
-_080C8028:
- ldr r3, _080C803C @ =gUnknown_083D60EC
-_080C802A:
- lsls r0, r2, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 14
- adds r0, r1
- adds r0, r3, r0
- ldrb r0, [r0]
-_080C8038:
- pop {r1}
- bx r1
- .align 2, 0
-_080C803C: .4byte gUnknown_083D60EC
- thumb_func_end sub_80C7FEC
-
- thumb_func_start sub_80C8040
-sub_80C8040: @ 80C8040
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C8052
- bl sub_80C7A80
- bl sub_80C79CC
-_080C8052:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8040
-
- thumb_func_start RotatingGatePuzzleCameraUpdate
-RotatingGatePuzzleCameraUpdate: @ 80C8058
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C807A
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl sub_80C7ADC
- bl sub_80C7DC0
-_080C807A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end RotatingGatePuzzleCameraUpdate
-
- thumb_func_start sub_80C8080
-sub_80C8080: @ 80C8080
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C809A
- bl LoadRotatingGatePics
- bl sub_80C7A80
- movs r0, 0
- movs r1, 0
- bl sub_80C7ADC
-_080C809A:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8080
-
- thumb_func_start CheckForRotatingGatePuzzleCollision
-CheckForRotatingGatePuzzleCollision: @ 80C80A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- bne _080C80D4
- b _080C8172
-_080C80C2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7FB8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7A44
- b _080C8172
-_080C80D4:
- movs r6, 0
- ldr r0, _080C8160 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- bge _080C8172
- lsls r0, r4, 16
- asrs r7, r0, 16
-_080C80E2:
- ldr r0, _080C8164 @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r6, 3
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- subs r0, r4, 0x2
- cmp r0, r7
- bgt _080C8168
- adds r0, r4, 0x1
- cmp r7, r0
- bgt _080C8168
- lsls r0, r2, 16
- asrs r3, r0, 16
- subs r1, r3, 0x2
- mov r2, r8
- lsls r0, r2, 16
- asrs r2, r0, 16
- cmp r1, r2
- bgt _080C8168
- adds r0, r3, 0x1
- cmp r2, r0
- bgt _080C8168
- subs r1, r7, r4
- adds r1, 0x2
- subs r2, r3
- adds r2, 0x2
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- mov r0, r9
- bl sub_80C7FEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080C8168
- lsrs r5, r0, 4
- movs r1, 0xF
- ands r1, r0
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80C7F64
- cmp r0, 0
- beq _080C8168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7E8C
- cmp r0, 0
- bne _080C80C2
- movs r0, 0x1
- b _080C8174
- .align 2, 0
-_080C8160: .4byte gUnknown_02038804
-_080C8164: .4byte gUnknown_02038800
-_080C8168:
- adds r6, 0x1
- ldr r0, _080C8180 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C80E2
-_080C8172:
- movs r0, 0
-_080C8174:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C8180: .4byte gUnknown_02038804
- thumb_func_end CheckForRotatingGatePuzzleCollision
-
- thumb_func_start GetSafariZoneFlag
-GetSafariZoneFlag: @ 80C8184
- push {lr}
- ldr r0, _080C8194 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C8194: .4byte 0x0000082c
- thumb_func_end GetSafariZoneFlag
-
- thumb_func_start SetSafariZoneFlag
-SetSafariZoneFlag: @ 80C8198
- push {lr}
- ldr r0, _080C81A4 @ =0x0000082c
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C81A4: .4byte 0x0000082c
- thumb_func_end SetSafariZoneFlag
-
- thumb_func_start ResetSafariZoneFlag
-ResetSafariZoneFlag: @ 80C81A8
- push {lr}
- ldr r0, _080C81B4 @ =0x0000082c
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080C81B4: .4byte 0x0000082c
- thumb_func_end ResetSafariZoneFlag
-
- thumb_func_start sub_80C81B8
-sub_80C81B8: @ 80C81B8
- push {lr}
- movs r0, 0x11
- bl sav12_xor_increment
- bl SetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C81DC @ =gUnknown_02038808
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _080C81E0 @ =gUnknown_0203880A
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C81DC: .4byte gUnknown_02038808
-_080C81E0: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81B8
-
- thumb_func_start sub_80C81E4
-sub_80C81E4: @ 80C81E4
- push {lr}
- bl ResetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C8200 @ =gUnknown_02038808
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080C8204 @ =gUnknown_0203880A
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C8200: .4byte gUnknown_02038808
-_080C8204: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81E4
-
- thumb_func_start safari_step
-safari_step: @ 80C8208
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _080C8224
- bl sub_80C8508
- ldr r1, _080C8228 @ =gUnknown_0203880A
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _080C822C
-_080C8224:
- movs r0, 0
- b _080C8234
- .align 2, 0
-_080C8228: .4byte gUnknown_0203880A
-_080C822C:
- ldr r0, _080C8238 @ =gUnknown_081C3448
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_080C8234:
- pop {r1}
- bx r1
- .align 2, 0
-_080C8238: .4byte gUnknown_081C3448
- thumb_func_end safari_step
-
- thumb_func_start sub_80C823C
-sub_80C823C: @ 80C823C
- push {lr}
- ldr r0, _080C8248 @ =gUnknown_081C342D
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C8248: .4byte gUnknown_081C342D
- thumb_func_end sub_80C823C
-
- thumb_func_start sub_80C824C
-sub_80C824C: @ 80C824C
- push {lr}
- ldr r0, _080C8260 @ =gUnknown_02038808
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C8268
- ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8260: .4byte gUnknown_02038808
-_080C8264: .4byte c2_exit_to_overworld_2_switch
-_080C8268:
- ldr r0, _080C8288 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080C829C
- ldr r0, _080C828C @ =gUnknown_081C340A
- bl ScriptContext2_RunNewScript
- bl warp_in
- ldr r1, _080C8290 @ =gUnknown_0300485C
- ldr r0, _080C8294 @ =sub_8080E44
- str r0, [r1]
- ldr r0, _080C8298 @ =CB2_LoadMap
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8288: .4byte gUnknown_02024D26
-_080C828C: .4byte gUnknown_081C340A
-_080C8290: .4byte gUnknown_0300485C
-_080C8294: .4byte sub_8080E44
-_080C8298: .4byte CB2_LoadMap
-_080C829C:
- cmp r0, 0x7
- bne _080C82B0
- ldr r0, _080C82B4 @ =gUnknown_081C3459
- bl ScriptContext1_SetupScript
- bl ScriptContext1_Stop
- ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080C82B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C82B4: .4byte gUnknown_081C3459
-_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C824C
-
- thumb_func_start sub_80C82BC
-sub_80C82BC: @ 80C82BC
- push {lr}
- lsls r0, 24
- lsrs r0, 20
- ldr r1, _080C82D4 @ =gUnknown_0203880C
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82D4: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82BC
-
- thumb_func_start sub_80C82D8
-sub_80C82D8: @ 80C82D8
- push {lr}
- ldr r0, _080C82E8 @ =gUnknown_0203880C
- movs r1, 0
- movs r2, 0xA0
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82E8: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82D8
-
- thumb_func_start sub_80C82EC
-sub_80C82EC: @ 80C82EC
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r3, 0
- adds r5, r4, 0
- ldr r4, _080C8344 @ =gSaveBlock1
-_080C8302:
- ldr r1, _080C8348 @ =gUnknown_0203880C
- lsls r0, r3, 4
- adds r2, r0, r1
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _080C8358
- mov r0, sp
- movs r6, 0
- ldrsh r1, [r2, r6]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- bne _080C8358
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r6, 0
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bne _080C8358
- ldr r0, _080C834C @ =gScriptResult
- strh r3, [r0]
- ldr r1, _080C8350 @ =gUnknown_083F7EB8
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080C8354 @ =gStringVar1
- bl StringCopy
- b _080C836A
- .align 2, 0
-_080C8344: .4byte gSaveBlock1
-_080C8348: .4byte gUnknown_0203880C
-_080C834C: .4byte gScriptResult
-_080C8350: .4byte gUnknown_083F7EB8
-_080C8354: .4byte gStringVar1
-_080C8358:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _080C8302
- ldr r1, _080C8374 @ =gScriptResult
- ldr r2, _080C8378 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
-_080C836A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8374: .4byte gScriptResult
-_080C8378: .4byte 0x0000ffff
- thumb_func_end sub_80C82EC
-
- thumb_func_start sub_80C837C
-sub_80C837C: @ 80C837C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r5, 0
- adds r6, r4, 0
- ldr r0, _080C83E8 @ =gSaveBlock1
- movs r7, 0x5
- ldrsb r7, [r0, r7]
- mov r4, sp
- ldr r0, _080C83EC @ =gUnknown_0203880C
- mov r12, r0
-_080C839C:
- lsls r0, r5, 4
- mov r1, r12
- adds r2, r0, r1
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r7, r0
- bne _080C83F4
- ldrh r0, [r4]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4]
- adds r3, r6, 0
- ldrh r0, [r3]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r3]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080C83C8
- negs r0, r0
- strh r0, [r4]
-_080C83C8:
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080C83D4
- negs r0, r0
- strh r0, [r3]
-_080C83D4:
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- adds r0, r1
- cmp r0, 0x5
- bgt _080C83F4
- ldr r0, _080C83F0 @ =gScriptResult
- strh r5, [r0]
- b _080C8406
- .align 2, 0
-_080C83E8: .4byte gSaveBlock1
-_080C83EC: .4byte gUnknown_0203880C
-_080C83F0: .4byte gScriptResult
-_080C83F4:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080C839C
- ldr r1, _080C8410 @ =gScriptResult
- ldr r2, _080C8414 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
-_080C8406:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8410: .4byte gScriptResult
-_080C8414: .4byte 0x0000ffff
- thumb_func_end sub_80C837C
-
- thumb_func_start unref_sub_80C8418
-unref_sub_80C8418: @ 80C8418
- push {lr}
- bl sub_80C82EC
- ldr r2, _080C8434 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _080C8438 @ =0x0000ffff
- cmp r1, r0
- beq _080C8440
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C843C @ =gUnknown_02038814
- adds r0, r1
- b _080C8442
- .align 2, 0
-_080C8434: .4byte gScriptResult
-_080C8438: .4byte 0x0000ffff
-_080C843C: .4byte gUnknown_02038814
-_080C8440:
- movs r0, 0
-_080C8442:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C8418
-
- thumb_func_start sub_80C8448
-sub_80C8448: @ 80C8448
- push {lr}
- bl sub_80C837C
- ldr r2, _080C8464 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _080C8468 @ =0x0000ffff
- cmp r1, r0
- beq _080C8470
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C846C @ =gUnknown_02038814
- adds r0, r1
- b _080C8472
- .align 2, 0
-_080C8464: .4byte gScriptResult
-_080C8468: .4byte 0x0000ffff
-_080C846C: .4byte gUnknown_02038814
-_080C8470:
- movs r0, 0
-_080C8472:
- pop {r1}
- bx r1
- thumb_func_end sub_80C8448
-
- thumb_func_start sub_80C8478
-sub_80C8478: @ 80C8478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- movs r2, 0
- ldr r3, _080C84E8 @ =gUnknown_0203880C
- mov r6, sp
- adds r6, 0x2
- ldr r7, _080C84EC @ =gSaveBlock1
- movs r1, 0x8
- adds r1, r3
- mov r9, r1
- movs r4, 0xFF
- lsls r4, 3
- adds r1, r7, r4
- lsrs r0, 21
- adds r0, r1
- mov r8, r0
-_080C84A0:
- lsls r5, r2, 4
- adds r4, r5, r3
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- mov r0, sp
- adds r1, r6, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldrb r0, [r7, 0x5]
- strb r0, [r4, 0x4]
- mov r3, r9
- adds r2, r5, r3
- mov r3, r8
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x64
- strb r0, [r4, 0x5]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r6]
- strh r0, [r4, 0x2]
- b _080C84FA
- .align 2, 0
-_080C84E8: .4byte gUnknown_0203880C
-_080C84EC: .4byte gSaveBlock1
-_080C84F0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9
- bls _080C84A0
-_080C84FA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8478
-
- thumb_func_start sub_80C8508
-sub_80C8508: @ 80C8508
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C8538 @ =gUnknown_0203880C
-_080C850E:
- lsls r0, r4, 4
- adds r1, r0, r5
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _080C8528
- subs r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- cmp r0, 0
- bne _080C8528
- adds r0, r4, 0
- bl sub_80C82BC
-_080C8528:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080C850E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8538: .4byte gUnknown_0203880C
- thumb_func_end sub_80C8508
-
- thumb_func_start unref_sub_80C853C
-unref_sub_80C853C: @ 80C853C
- push {lr}
- bl sub_80C82EC
- ldr r3, _080C8564 @ =gScriptResult
- ldrh r1, [r3]
- ldr r0, _080C8568 @ =0x0000ffff
- cmp r1, r0
- beq _080C8574
- ldr r0, _080C856C @ =gStringVar2
- ldr r2, _080C8570 @ =gUnknown_0203880C
- lsls r1, 4
- adds r1, r2
- ldrb r1, [r1, 0x5]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- b _080C8576
- .align 2, 0
-_080C8564: .4byte gScriptResult
-_080C8568: .4byte 0x0000ffff
-_080C856C: .4byte gStringVar2
-_080C8570: .4byte gUnknown_0203880C
-_080C8574:
- movs r0, 0
-_080C8576:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C853C
-
- thumb_func_start sub_80C857C
-sub_80C857C: @ 80C857C
- push {r4,r5,lr}
- adds r2, r0, 0
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r5, _080C85A8 @ =0x0201e000
- adds r0, r5, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl memcpy
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl SendBlock
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C85A8: .4byte 0x0201e000
- thumb_func_end sub_80C857C
-
- thumb_func_start sub_80C85AC
-sub_80C85AC: @ 80C85AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 17
- lsls r1, r0
- lsrs r4, r1, 24
- bl GetBlockRecievedStatus
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080C85D0
- adds r0, r4, 0
- bl ResetBlockReceivedFlag
- movs r0, 0x1
- b _080C85D2
-_080C85D0:
- movs r0, 0
-_080C85D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85AC
-
- thumb_func_start sub_80C85D8
-sub_80C85D8: @ 80C85D8
- push {r4,lr}
- movs r4, 0
-_080C85DC:
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C85F2
- movs r0, 0
- b _080C85FE
-_080C85F2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080C85DC
- bl ResetBlockReceivedFlags
- movs r0, 0x1
-_080C85FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C85D8
-
- thumb_func_start sub_80C8604
-sub_80C8604: @ 80C8604
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r5, _080C8638 @ =gTasks
- ldr r6, _080C863C @ =sub_80C8644
- ldr r4, _080C8640 @ =gBlockRecvBuffer
- movs r3, 0xFF
-_080C8614:
- lsls r0, r1, 8
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C8614
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x8]
- str r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8638: .4byte gTasks
-_080C863C: .4byte sub_80C8644
-_080C8640: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8604
-
- thumb_func_start sub_80C8644
-sub_80C8644: @ 80C8644
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C8658 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080C865C @ =sub_80C8660
- str r0, [r1]
- bx lr
- .align 2, 0
-_080C8658: .4byte gTasks
-_080C865C: .4byte sub_80C8660
- thumb_func_end sub_80C8644
-
- thumb_func_start sub_80C8660
-sub_80C8660: @ 80C8660
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C868E
- bl GetMultiplayerId
- ldr r1, _080C8698 @ =gUnknown_02038695
- strb r0, [r1]
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080C868E
- ldr r1, _080C869C @ =gUnknown_0203869A
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C868E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8694: .4byte gReceivedRemoteLinkPlayers
-_080C8698: .4byte gUnknown_02038695
-_080C869C: .4byte gUnknown_0203869A
- thumb_func_end sub_80C8660
-
- thumb_func_start sub_80C86A0
-sub_80C86A0: @ 80C86A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x2
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _080C86B6
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _080C86B6
- movs r0, 0x2
- b _080C872C
-_080C86B6:
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080C872A
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080C872A
-_080C86CA:
- ldrb r1, [r4]
- adds r0, r1, 0
- adds r0, 0x45
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- bls _080C871E
- adds r0, r1, 0
- adds r0, 0x5F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _080C871E
- adds r0, r1, 0
- cmp r0, 0
- beq _080C871E
- cmp r0, 0xAD
- beq _080C871E
- cmp r0, 0xB8
- beq _080C871E
- cmp r0, 0xAB
- beq _080C871E
- cmp r0, 0xAC
- beq _080C871E
- cmp r0, 0xB5
- beq _080C871E
- cmp r0, 0xB6
- beq _080C871E
- cmp r0, 0xBA
- beq _080C871E
- cmp r0, 0xAE
- beq _080C871E
- cmp r0, 0xB0
- beq _080C871E
- cmp r0, 0xB1
- beq _080C871E
- cmp r0, 0xB2
- beq _080C871E
- cmp r0, 0xB3
- beq _080C871E
- cmp r0, 0xB1
- bne _080C8728
-_080C871E:
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080C86CA
- b _080C872A
-_080C8728:
- movs r5, 0x1
-_080C872A:
- adds r0, r5, 0
-_080C872C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C86A0
-
- thumb_func_start sub_80C8734
-sub_80C8734: @ 80C8734
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080C8768 @ =gTasks
- lsls r5, r0, 2
- adds r0, r5, r0
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C876C
- cmp r0, 0x1
- beq _080C87D0
- movs r0, 0
- strh r0, [r4, 0x8]
- mov r0, r9
- bl SwitchTaskToFollowupFunc
- b _080C8896
- .align 2, 0
-_080C8768: .4byte gTasks
-_080C876C:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C87A8
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8782
- b _080C8896
-_080C8782:
- ldr r0, _080C879C @ =gBlockSendBuffer
- ldr r1, _080C87A0 @ =gUnknown_02038695
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87A4 @ =gUnknown_02038570
- adds r1, r2
- movs r2, 0x40
- bl memcpy
- movs r0, 0x2
- bl sub_8007E9C
- b _080C87BA
- .align 2, 0
-_080C879C: .4byte gBlockSendBuffer
-_080C87A0: .4byte gUnknown_02038695
-_080C87A4: .4byte gUnknown_02038570
-_080C87A8:
- ldr r0, _080C87C4 @ =gBlockSendBuffer
- ldr r1, _080C87C8 @ =gUnknown_02038695
- ldrb r1, [r1]
- lsls r1, 6
- ldr r2, _080C87CC @ =gUnknown_02038570
- adds r1, r2
- movs r2, 0x40
- bl memcpy
-_080C87BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8896
- .align 2, 0
-_080C87C4: .4byte gBlockSendBuffer
-_080C87C8: .4byte gUnknown_02038695
-_080C87CC: .4byte gUnknown_02038570
-_080C87D0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8896
- movs r7, 0
- str r5, [sp]
- ldr r0, _080C8818 @ =gUnknown_02038570
- ldr r6, _080C881C @ =gLinkPlayers
- movs r5, 0
- mov r10, r0
- movs r2, 0xFF
- mov r8, r2
-_080C87EA:
- lsls r1, r7, 8
- ldr r0, _080C8820 @ =gBlockRecvBuffer
- adds r1, r0
- mov r0, r10
- movs r2, 0x40
- bl memcpy
- ldr r0, _080C8824 @ =gUnknown_02038572
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8828
- adds r0, r4, 0
- bl sub_80C86A0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- b _080C883E
- .align 2, 0
-_080C8818: .4byte gUnknown_02038570
-_080C881C: .4byte gLinkPlayers
-_080C8820: .4byte gBlockRecvBuffer
-_080C8824: .4byte gUnknown_02038572
-_080C8828:
- ldrb r0, [r4, 0xA]
- cmp r0, 0xFC
- bne _080C8838
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _080C883E
-_080C8838:
- strb r0, [r4, 0x5]
- mov r1, r8
- strb r1, [r4, 0xA]
-_080C883E:
- ldr r0, _080C886C @ =gUnknown_0203857D
- adds r4, r5, r0
- ldrh r0, [r6, 0x1A]
- cmp r0, 0x1
- bne _080C8870
- mov r2, r8
- strb r2, [r4, 0x7]
- ldrb r0, [r4, 0x4]
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x3]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x2]
- strb r0, [r4, 0x4]
- ldrb r0, [r4, 0x1]
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- strb r0, [r4, 0x2]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- movs r0, 0xFC
- strb r0, [r4]
- b _080C8878
- .align 2, 0
-_080C886C: .4byte gUnknown_0203857D
-_080C8870:
- ldrb r0, [r4, 0x7]
- strb r0, [r4, 0x5]
- mov r0, r8
- strb r0, [r4, 0x7]
-_080C8878:
- adds r6, 0x1C
- adds r5, 0x40
- movs r1, 0x40
- add r10, r1
- adds r7, 0x1
- cmp r7, 0x3
- ble _080C87EA
- ldr r0, _080C88A8 @ =gTasks
- ldr r1, [sp]
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8896:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C88A8: .4byte gTasks
- thumb_func_end sub_80C8734
-
- thumb_func_start sub_80C88AC
-sub_80C88AC: @ 80C88AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C88D4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080C88D8
- cmp r0, 0x1
- beq _080C88FC
- movs r0, 0
- strh r0, [r5, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8924
- .align 2, 0
-_080C88D4: .4byte gTasks
-_080C88D8:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C891E
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C88F8 @ =gRngValue
- movs r1, 0x4
- bl sub_80C857C
- b _080C891E
- .align 2, 0
-_080C88F8: .4byte gRngValue
-_080C88FC:
- movs r0, 0
- bl sub_80C85AC
- lsls r0, 24
- cmp r0, 0
- beq _080C8924
- ldr r0, _080C892C @ =gRngValue
- ldr r4, _080C8930 @ =gBlockRecvBuffer
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _080C8934 @ =gUnknown_03005D28
- adds r1, r4, 0
- movs r2, 0x4
- bl memcpy
-_080C891E:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080C8924:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C892C: .4byte gRngValue
-_080C8930: .4byte gBlockRecvBuffer
-_080C8934: .4byte gUnknown_03005D28
- thumb_func_end sub_80C88AC
-
- thumb_func_start sub_80C8938
-sub_80C8938: @ 80C8938
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8968 @ =gTasks
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C896C
- cmp r0, 0x1
- beq _080C8998
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C89CE
- .align 2, 0
-_080C8968: .4byte gTasks
-_080C896C:
- ldr r1, _080C8994 @ =gBlockSendBuffer
- ldrh r0, [r4, 0x1A]
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C898C
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r0, 0x2
- bl sub_8007E9C
-_080C898C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C89CE
- .align 2, 0
-_080C8994: .4byte gBlockSendBuffer
-_080C8998:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C89CE
- movs r3, 0
- mov r12, r8
- adds r1, r6, 0
- ldr r4, _080C89D8 @ =gBlockRecvBuffer
- mov r0, r12
- adds r0, 0xA
- adds r2, r7, r0
- movs r6, 0x80
- lsls r6, 1
-_080C89B4:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, r6
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C89B4
- adds r1, r5
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C89CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C89D8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8938
-
- thumb_func_start sub_80C89DC
-sub_80C89DC: @ 80C89DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8A04 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A08
- cmp r0, 0x1
- beq _080C8A20
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8A30
- .align 2, 0
-_080C8A04: .4byte gTasks
-_080C8A08:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
- ldr r0, _080C8A1C @ =gUnknown_02038695
- movs r1, 0x1
- bl sub_80C857C
- b _080C8A2A
- .align 2, 0
-_080C8A1C: .4byte gUnknown_02038695
-_080C8A20:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8A30
-_080C8A2A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C89DC
-
- thumb_func_start sub_80C8A38
-sub_80C8A38: @ 80C8A38
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r7, _080C8A60 @ =gTasks
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r7
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8A64
- cmp r0, 0x1
- beq _080C8A94
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8AC2
- .align 2, 0
-_080C8A60: .4byte gTasks
-_080C8A64:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r0, _080C8A8C @ =gUnknown_02038695
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _080C8A90 @ =0x02019266
- adds r0, r1
- movs r1, 0x2
- bl sub_80C857C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8AC2
- .align 2, 0
-_080C8A8C: .4byte gUnknown_02038695
-_080C8A90: .4byte 0x02019266
-_080C8A94:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8AC2
- ldr r1, _080C8AC8 @ =gBlockRecvBuffer
- ldr r3, _080C8ACC @ =0x02019266
- movs r4, 0x80
- lsls r4, 1
- movs r2, 0x3
-_080C8AA8:
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, r4
- adds r3, 0x1C
- subs r2, 0x1
- cmp r2, 0
- bge _080C8AA8
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8AC2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8AC8: .4byte gBlockRecvBuffer
-_080C8ACC: .4byte 0x02019266
- thumb_func_end sub_80C8A38
-
- thumb_func_start sub_80C8AD0
-sub_80C8AD0: @ 80C8AD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8AF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8AEC
- b _080C8C70
-_080C8AEC:
- lsls r0, 2
- ldr r1, _080C8AFC @ =_080C8B00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8AF8: .4byte gTasks
-_080C8AFC: .4byte _080C8B00
- .align 2, 0
-_080C8B00:
- .4byte _080C8B30
- .4byte _080C8B4C
- .4byte _080C8B74
- .4byte _080C8B98
- .4byte _080C8BB0
- .4byte _080C8B74
- .4byte _080C8BD8
- .4byte _080C8BF0
- .4byte _080C8B74
- .4byte _080C8C18
- .4byte _080C8C30
- .4byte _080C8B74
-_080C8B30:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8B3C
- b _080C8C7A
-_080C8B3C:
- ldr r0, _080C8B48 @ =gUnknown_02038678
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8B48: .4byte gUnknown_02038678
-_080C8B4C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8B58
- b _080C8C7A
-_080C8B58:
- ldr r0, _080C8B68 @ =gUnknown_02038678
- ldr r1, _080C8B6C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8B70 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8B68: .4byte gUnknown_02038678
-_080C8B6C: .4byte gUnknown_0203869B
-_080C8B70: .4byte gBlockRecvBuffer
-_080C8B74:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bgt _080C8B8C
- b _080C8C7A
-_080C8B8C:
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8C7A
-_080C8B98:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BAC @ =gUnknown_02038680
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BAC: .4byte gUnknown_02038680
-_080C8BB0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BCC @ =gUnknown_02038680
- ldr r1, _080C8BD0 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8BD4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8BCC: .4byte gUnknown_02038680
-_080C8BD0: .4byte gUnknown_0203869B
-_080C8BD4: .4byte gBlockRecvBuffer
-_080C8BD8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8BEC @ =gUnknown_02038688
- movs r1, 0x8
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8BEC: .4byte gUnknown_02038688
-_080C8BF0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C0C @ =gUnknown_02038688
- ldr r1, _080C8C10 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C14 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- b _080C8C48
- .align 2, 0
-_080C8C0C: .4byte gUnknown_02038688
-_080C8C10: .4byte gUnknown_0203869B
-_080C8C14: .4byte gBlockRecvBuffer
-_080C8C18:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C2C @ =gUnknown_02038690
- movs r1, 0x4
- bl sub_80C857C
- b _080C8C4C
- .align 2, 0
-_080C8C2C: .4byte gUnknown_02038690
-_080C8C30:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8C7A
- ldr r0, _080C8C60 @ =gUnknown_02038690
- ldr r1, _080C8C64 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8C68 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8C48:
- bl memcpy
-_080C8C4C:
- ldr r1, _080C8C6C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8C7A
- .align 2, 0
-_080C8C60: .4byte gUnknown_02038690
-_080C8C64: .4byte gUnknown_0203869B
-_080C8C68: .4byte gBlockRecvBuffer
-_080C8C6C: .4byte gTasks
-_080C8C70:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8AD0
-
- thumb_func_start sub_80C8C80
-sub_80C8C80: @ 80C8C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8CA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080C8C9C
- b _080C8E0C
-_080C8C9C:
- lsls r0, 2
- ldr r1, _080C8CAC @ =_080C8CB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C8CA8: .4byte gTasks
-_080C8CAC: .4byte _080C8CB0
- .align 2, 0
-_080C8CB0:
- .4byte _080C8CE0
- .4byte _080C8CFC
- .4byte _080C8D24
- .4byte _080C8D46
- .4byte _080C8D60
- .4byte _080C8D24
- .4byte _080C8D88
- .4byte _080C8DA0
- .4byte _080C8D24
- .4byte _080C8DB4
- .4byte _080C8DCC
- .4byte _080C8D24
-_080C8CE0:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _080C8CEC
- b _080C8E16
-_080C8CEC:
- ldr r0, _080C8CF8 @ =0x02019260
- movs r1, 0x70
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8CF8: .4byte 0x02019260
-_080C8CFC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- bne _080C8D08
- b _080C8E16
-_080C8D08:
- ldr r0, _080C8D18 @ =0x02019260
- ldr r1, _080C8D1C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D20 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x70
- b _080C8DE4
- .align 2, 0
-_080C8D18: .4byte 0x02019260
-_080C8D1C: .4byte gUnknown_0203869B
-_080C8D20: .4byte gBlockRecvBuffer
-_080C8D24:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0xA]
- adds r1, r0, 0x1
- strh r1, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080C8E16
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080C8E16
-_080C8D46:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D5C @ =0x020192d0
- movs r1, 0x14
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D5C: .4byte 0x020192d0
-_080C8D60:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D7C @ =0x020192d0
- ldr r1, _080C8D80 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8D84 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x14
- b _080C8DE4
- .align 2, 0
-_080C8D7C: .4byte 0x020192d0
-_080C8D80: .4byte gUnknown_0203869B
-_080C8D84: .4byte gBlockRecvBuffer
-_080C8D88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8D9C @ =0x02019328
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8D9C: .4byte 0x02019328
-_080C8DA0:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DB0 @ =0x02019328
- b _080C8DD8
- .align 2, 0
-_080C8DB0: .4byte 0x02019328
-_080C8DB4:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DC8 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8DE8
- .align 2, 0
-_080C8DC8: .4byte gUnknown_02038696
-_080C8DCC:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8E16
- ldr r0, _080C8DFC @ =gUnknown_02038696
-_080C8DD8:
- ldr r1, _080C8E00 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8E04 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
-_080C8DE4:
- bl memcpy
-_080C8DE8:
- ldr r1, _080C8E08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080C8E16
- .align 2, 0
-_080C8DFC: .4byte gUnknown_02038696
-_080C8E00: .4byte gUnknown_0203869B
-_080C8E04: .4byte gBlockRecvBuffer
-_080C8E08: .4byte gTasks
-_080C8E0C:
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
-_080C8E16:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8C80
-
- thumb_func_start sub_80C8E1C
-sub_80C8E1C: @ 80C8E1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C8E4C @ =gTasks
- mov r8, r0
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- mov r1, r8
- adds r4, r7, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8E50
- cmp r0, 0x1
- beq _080C8E7C
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- b _080C8EAE
- .align 2, 0
-_080C8E4C: .4byte gTasks
-_080C8E50:
- ldr r1, _080C8E78 @ =gBlockSendBuffer
- movs r0, 0x64
- strb r0, [r1]
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080C8E70
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- movs r0, 0x2
- bl sub_8007E9C
-_080C8E70:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080C8EAE
- .align 2, 0
-_080C8E78: .4byte gBlockSendBuffer
-_080C8E7C:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8EAE
- ldr r1, _080C8EB8 @ =gBlockRecvBuffer
- mov r0, r8
- adds r0, 0x12
- adds r2, r7, r0
- movs r4, 0x80
- lsls r4, 1
- movs r3, 0x3
-_080C8E94:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, r4
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080C8E94
- adds r1, r6, r5
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_080C8EAE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8EB8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8E1C
-
- thumb_func_start sub_80C8EBC
-sub_80C8EBC: @ 80C8EBC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8EE4 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8EE8
- cmp r0, 0x1
- beq _080C8F00
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F22
- .align 2, 0
-_080C8EE4: .4byte gTasks
-_080C8EE8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8EFC @ =gUnknown_02038670
- movs r1, 0x8
- bl sub_80C857C
- b _080C8F1C
- .align 2, 0
-_080C8EFC: .4byte gUnknown_02038670
-_080C8F00:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F22
- ldr r0, _080C8F28 @ =gUnknown_02038670
- ldr r1, _080C8F2C @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8F30 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x8
- bl memcpy
-_080C8F1C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8F28: .4byte gUnknown_02038670
-_080C8F2C: .4byte gUnknown_0203869B
-_080C8F30: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8EBC
-
- thumb_func_start sub_80C8F34
-sub_80C8F34: @ 80C8F34
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C8F5C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080C8F60
- cmp r0, 0x1
- beq _080C8F78
- movs r0, 0
- strh r0, [r4, 0x8]
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
- b _080C8F9A
- .align 2, 0
-_080C8F5C: .4byte gTasks
-_080C8F60:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8F74 @ =gUnknown_02038696
- movs r1, 0x4
- bl sub_80C857C
- b _080C8F94
- .align 2, 0
-_080C8F74: .4byte gUnknown_02038696
-_080C8F78:
- bl sub_80C85D8
- lsls r0, 24
- cmp r0, 0
- beq _080C8F9A
- ldr r0, _080C8FA0 @ =gUnknown_02038696
- ldr r1, _080C8FA4 @ =gUnknown_0203869B
- ldrb r1, [r1]
- lsls r1, 8
- ldr r2, _080C8FA8 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0x4
- bl memcpy
-_080C8F94:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C8F9A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8FA0: .4byte gUnknown_02038696
-_080C8FA4: .4byte gUnknown_0203869B
-_080C8FA8: .4byte gBlockRecvBuffer
- thumb_func_end sub_80C8F34
-
- thumb_func_start sub_80C8FAC
-sub_80C8FAC: @ 80C8FAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080C8FD0 @ =word_203855E
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080C8FD8
- ldr r1, _080C8FD4 @ =gTasks
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080C8FE6
- .align 2, 0
-_080C8FD0: .4byte word_203855E
-_080C8FD4: .4byte gTasks
-_080C8FD8:
- ldrh r0, [r1]
- bl itemid_get_type
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, r4, 2
-_080C8FE6:
- ldr r0, _080C9008 @ =gTasks
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080C900C @ =gUnknown_083D61E4
- lsls r0, r3, 2
- adds r0, r2
- ldr r2, [r0]
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080C9010 @ =sub_80A5B00
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9008: .4byte gTasks
-_080C900C: .4byte gUnknown_083D61E4
-_080C9010: .4byte sub_80A5B00
- thumb_func_end sub_80C8FAC
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 80C9014
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start sub_80C9038
-sub_80C9038: @ 80C9038
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80C8FAC
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- thumb_func_end sub_80C9038
-
- thumb_func_start SetUpItemUseOnFieldCallback
-SetUpItemUseOnFieldCallback: @ 80C9050
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080C9078 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080C9084
- ldr r1, _080C907C @ =gUnknown_0300485C
- ldr r0, _080C9080 @ =sub_80A5CC4
- str r0, [r1]
- adds r0, r2, 0
- bl unknown_ItemMenu_Confirm
- b _080C908E
- .align 2, 0
-_080C9078: .4byte gTasks
-_080C907C: .4byte gUnknown_0300485C
-_080C9080: .4byte sub_80A5CC4
-_080C9084:
- ldr r0, _080C9094 @ =gUnknown_03005D00
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080C908E:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9094: .4byte gUnknown_03005D00
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start sub_80C9098
-sub_80C9098: @ 80C9098
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080C90CC @ =gStringVar4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080C90D4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C90D0 @ =sub_80A5C48
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C90E0
- .align 2, 0
-_080C90CC: .4byte gStringVar4
-_080C90D0: .4byte sub_80A5C48
-_080C90D4:
- ldr r2, _080C90E8 @ =sub_80A5C9C
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C90E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C90E8: .4byte sub_80A5C9C
- thumb_func_end sub_80C9098
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-DisplayDadsAdviceCannotUseItemMessage: @ 80C90EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9100 @ =gOtherText_DadsAdvice
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9100: .4byte gOtherText_DadsAdvice
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start sub_80C9104
-sub_80C9104: @ 80C9104
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080C9118 @ =gOtherText_CantGetOffBike
- bl sub_80C9098
- pop {r0}
- bx r0
- .align 2, 0
-_080C9118: .4byte gOtherText_CantGetOffBike
- thumb_func_end sub_80C9104
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-CheckIfItemIsTMHMOrEvolutionStone: @ 80C911C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl itemid_get_overworld_function
- ldr r1, _080C9134 @ =ItemUseOutOfBattle_TMHM
- cmp r0, r1
- bne _080C9138
- movs r0, 0x1
- b _080C914E
- .align 2, 0
-_080C9134: .4byte ItemUseOutOfBattle_TMHM
-_080C9138:
- adds r0, r4, 0
- bl itemid_get_overworld_function
- ldr r1, _080C9148 @ =ItemUseOutOfBattle_EvolutionStone
- cmp r0, r1
- beq _080C914C
- movs r0, 0
- b _080C914E
- .align 2, 0
-_080C9148: .4byte ItemUseOutOfBattle_EvolutionStone
-_080C914C:
- movs r0, 0x2
-_080C914E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80C9154
-sub_80C9154: @ 80C9154
- push {r4,lr}
- sub sp, 0x24
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9188 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080C9180
- mov r1, sp
- ldr r0, _080C918C @ =word_203855E
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, _080C9190 @ =sub_80A5D04
- mov r0, sp
- movs r2, 0
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_080C9180:
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9188: .4byte gPaletteFade
-_080C918C: .4byte word_203855E
-_080C9190: .4byte sub_80A5D04
- thumb_func_end sub_80C9154
-
- thumb_func_start ItemUseOutOfBattle_Mail
-ItemUseOutOfBattle_Mail: @ 80C9194
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080C91C4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C91C8 @ =sub_80C9154
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C91C4: .4byte gTasks
-_080C91C8: .4byte sub_80C9154
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-ItemUseOutOfBattle_Bike: @ 80C91CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C924C @ =0x0000082b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9238
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9254
-_080C9238:
- ldr r0, _080C9250 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl sub_80C9104
- b _080C928E
- .align 2, 0
-_080C924C: .4byte 0x0000082b
-_080C9250: .4byte gTasks
-_080C9254:
- bl sub_8053C44
- cmp r0, 0x1
- bne _080C927C
- bl sub_80E5EF4
- lsls r0, 24
- cmp r0, 0
- bne _080C927C
- ldr r1, _080C9274 @ =gUnknown_03005D00
- ldr r0, _080C9278 @ =ItemUseOnFieldCB_Bike
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080C928E
- .align 2, 0
-_080C9274: .4byte gUnknown_03005D00
-_080C9278: .4byte ItemUseOnFieldCB_Bike
-_080C927C:
- ldr r0, _080C9298 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C928E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9298: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80C929C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C92E0 @ =word_203855E
- ldrh r0, [r4]
- bl itemid_get_x28
- lsls r0, 24
- cmp r0, 0
- bne _080C92B6
- movs r0, 0x2
- bl GetOnOffBike
-_080C92B6:
- ldrh r0, [r4]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C92CA
- movs r0, 0x4
- bl GetOnOffBike
-_080C92CA:
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C92E0: .4byte word_203855E
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-CanFish: @ 80C92E4
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C936C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080C933C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080C936C
-_080C9338:
- movs r0, 0x1
- b _080C936E
-_080C933C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080C935C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080C9338
-_080C935C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8057434
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9338
-_080C936C:
- movs r0, 0
-_080C936E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80C9378
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080C939C
- ldr r1, _080C9394 @ =gUnknown_03005D00
- ldr r0, _080C9398 @ =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C93AE
- .align 2, 0
-_080C9394: .4byte gUnknown_03005D00
-_080C9398: .4byte ItemUseOnFieldCB_Rod
-_080C939C:
- ldr r0, _080C93B4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C93AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93B4: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80C93B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C93DC @ =word_203855E
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C93DC: .4byte word_203855E
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80C93E0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl sav12_xor_increment
- ldr r1, _080C9400 @ =gUnknown_03005D00
- ldr r0, _080C9404 @ =ItemUseOnFieldCB_Itemfinder
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9400: .4byte gUnknown_03005D00
-_080C9404: .4byte ItemUseOnFieldCB_Itemfinder
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80C9408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080C9430 @ =gMapHeader
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C943C
- ldr r0, _080C9434 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080C9438 @ =sub_80C9458
- str r0, [r1]
- b _080C9448
- .align 2, 0
-_080C9430: .4byte gMapHeader
-_080C9434: .4byte gTasks
-_080C9438: .4byte sub_80C9458
-_080C943C:
- ldr r1, _080C9450 @ =gOtherText_NoResponse
- ldr r2, _080C9454 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9448:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9450: .4byte gOtherText_NoResponse
-_080C9454: .4byte sub_80C9520
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80C9458
-sub_80C9458: @ 80C9458
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, _080C94AC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C950C
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080C9500
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80C9908
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080C94B8
- ldr r1, _080C94B0 @ =gUnknown_083D61F0
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _080C94B4 @ =sub_80C99EC
- str r1, [r0]
- b _080C9516
- .align 2, 0
-_080C94AC: .4byte gTasks + 0x8
-_080C94B0: .4byte gUnknown_083D61F0
-_080C94B4: .4byte sub_80C99EC
-_080C94B8:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, _080C94F4 @ =gUnknown_083D61F0
- movs r6, 0x3
-_080C94C8:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080C94D8
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080C94D8:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080C94C8
- ldr r1, _080C94F8 @ =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C94FC @ =sub_80C9A38
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080C9516
- .align 2, 0
-_080C94F4: .4byte gUnknown_083D61F0
-_080C94F8: .4byte gTasks
-_080C94FC: .4byte sub_80C9A38
-_080C9500:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080C950C:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080C9516:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9458
-
- thumb_func_start sub_80C9520
-sub_80C9520: @ 80C9520
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8064E2C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9520
-
- thumb_func_start ItemfinderCheckForHiddenItems
-ItemfinderCheckForHiddenItems: @ 80C9548
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, _080C9618 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080C95FC
- subs r1, 0x5
- mov r8, r1
-_080C9580:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080C95EC
- movs r2, 0x96
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C95EC
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080C95EC
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080C95EC
- cmp r2, 0x5
- bgt _080C95EC
- adds r0, r6, 0
- bl sub_80C9838
-_080C95EC:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080C9580
-_080C95FC:
- adds r0, r6, 0
- bl sub_80C9720
- ldr r0, _080C9618 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080C961C
- movs r0, 0
- b _080C961E
- .align 2, 0
-_080C9618: .4byte gTasks
-_080C961C:
- movs r0, 0x1
-_080C961E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
- thumb_func_start sub_80C962C
-sub_80C962C: @ 80C962C
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrb r2, [r0, 0x3]
- ldr r5, [r0, 0x10]
- movs r1, 0
- cmp r1, r2
- bge _080C9680
- lsls r0, r3, 16
- asrs r6, r0, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- adds r3, r5, 0
-_080C964A:
- ldrb r0, [r3, 0x5]
- cmp r0, 0x7
- bne _080C9678
- ldrh r0, [r3]
- cmp r6, r0
- bne _080C9678
- ldrh r0, [r3, 0x2]
- cmp r4, r0
- bne _080C9678
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1, 0
- ldrh r3, [r3, 0xA]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080C9680
- movs r0, 0x1
- b _080C9682
-_080C9678:
- adds r3, 0xC
- adds r1, 0x1
- cmp r1, r2
- blt _080C964A
-_080C9680:
- movs r0, 0
-_080C9682:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C962C
-
- thumb_func_start sub_80C9688
-sub_80C9688: @ 80C9688
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080C96B0
- cmp r0, 0x2
- bgt _080C96A6
- cmp r0, 0x1
- beq _080C96C4
- b _080C9704
-_080C96A6:
- cmp r0, 0x3
- beq _080C96DC
- cmp r0, 0x4
- beq _080C96E6
- b _080C9704
-_080C96B0:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- subs r0, 0x7
- adds r0, r6
- b _080C96FA
-_080C96C4:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080C96D8 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- b _080C96F6
- .align 2, 0
-_080C96D8: .4byte gMapHeader
-_080C96DC:
- ldr r0, [r3]
- ldr r0, [r0]
- subs r0, 0x7
- adds r0, r5
- b _080C96F0
-_080C96E6:
- ldr r0, _080C9700 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x7
- subs r0, r5, r0
-_080C96F0:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4, 0x4]
-_080C96F6:
- adds r0, 0x7
- subs r0, r6, r0
-_080C96FA:
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9708
- .align 2, 0
-_080C9700: .4byte gMapHeader
-_080C9704:
- movs r0, 0
- b _080C971A
-_080C9708:
- ldr r0, [r3, 0x4]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- bl sub_80C962C
- lsls r0, 24
- lsrs r0, 24
-_080C971A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9688
-
- thumb_func_start sub_80C9720
-sub_80C9720: @ 80C9720
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, _080C9834 @ =gMapHeader
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r0, [r1, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- adds r1, 0x7
- cmp r0, r1
- bgt _080C9824
-_080C976E:
- mov r5, sp
- ldrh r0, [r5, 0x2]
- subs r0, 0x5
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- adds r0, 0x5
- lsls r3, 16
- mov r8, r3
- cmp r1, r0
- bgt _080C980E
- movs r0, 0x7
- str r0, [sp, 0x10]
- mov r1, r8
- asrs r1, 16
- mov r9, r1
- mov r10, r0
-_080C9796:
- ldr r3, [sp, 0x10]
- cmp r3, r9
- bgt _080C97B8
- ldr r5, [sp, 0x8]
- lsls r0, r5, 16
- asrs r0, 16
- cmp r9, r0
- bge _080C97B8
- asrs r1, r2, 16
- cmp r10, r1
- bgt _080C97B8
- ldr r6, [sp, 0xC]
- lsls r0, r6, 16
- asrs r0, 16
- lsls r7, r4, 16
- cmp r1, r0
- blt _080C97F6
-_080C97B8:
- mov r0, r8
- asrs r5, r0, 16
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8056BA0
- adds r7, r4, 0
- cmp r0, 0
- beq _080C97F6
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80C9688
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C97F6
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r5, r1
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, r6, r2
- lsls r2, 16
- asrs r2, 16
- ldr r0, [sp, 0x4]
- bl sub_80C9838
-_080C97F6:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- mov r3, sp
- movs r5, 0x2
- ldrsh r0, [r3, r5]
- adds r0, 0x5
- cmp r1, r0
- ble _080C9796
-_080C980E:
- movs r1, 0x80
- lsls r1, 9
- add r1, r8
- lsrs r3, r1, 16
- asrs r1, 16
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- adds r0, 0x7
- cmp r1, r0
- ble _080C976E
-_080C9824:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9834: .4byte gMapHeader
- thumb_func_end sub_80C9720
-
- thumb_func_start sub_80C9838
-sub_80C9838: @ 80C9838
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r12, r2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C986C @ =gTasks + 0x8
- adds r3, r1, r0
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C9870
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
- movs r0, 0x1
- strh r0, [r3, 0x4]
- b _080C98FA
- .align 2, 0
-_080C986C: .4byte gTasks + 0x8
-_080C9870:
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080C9880
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C9882
-_080C9880:
- ldrh r4, [r3]
-_080C9882:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- ldrh r1, [r3, 0x2]
- mov r9, r1
- cmp r0, 0
- bge _080C9896
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9898
-_080C9896:
- ldrh r2, [r3, 0x2]
-_080C9898:
- lsls r1, r7, 16
- asrs r0, r1, 16
- cmp r0, 0
- bge _080C98A8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- b _080C98AA
-_080C98A8:
- lsrs r6, r1, 16
-_080C98AA:
- mov r1, r12
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r1, 0
- bge _080C98BC
- negs r0, r1
- lsls r0, 16
- b _080C98BE
-_080C98BC:
- mov r0, r8
-_080C98BE:
- lsrs r5, r0, 16
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r2, r1, 16
- adds r4, r0, r2
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- adds r0, r1
- cmp r4, r0
- ble _080C98E0
- strh r7, [r3]
- mov r1, r12
- strh r1, [r3, 0x2]
- b _080C98FA
-_080C98E0:
- cmp r4, r0
- bne _080C98FA
- cmp r2, r1
- bgt _080C98F4
- cmp r2, r1
- bne _080C98FA
- mov r1, r9
- lsls r0, r1, 16
- cmp r0, r8
- bge _080C98FA
-_080C98F4:
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
-_080C98FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9838
-
- thumb_func_start sub_80C9908
-sub_80C9908: @ 80C9908
- push {r4,r5,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bne _080C991A
- cmp r1, 0
- beq _080C9974
-_080C991A:
- lsls r0, r2, 16
- asrs r2, r0, 16
- adds r5, r0, 0
- cmp r2, 0
- bge _080C992C
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C992E
-_080C992C:
- lsrs r4, r5, 16
-_080C992E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- adds r1, r0, 0
- cmp r2, 0
- bge _080C9940
- negs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- b _080C9942
-_080C9940:
- lsrs r3, r1, 16
-_080C9942:
- lsls r0, r4, 16
- asrs r2, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C995A
- cmp r5, 0
- bge _080C9956
- movs r0, 0x4
- b _080C9976
-_080C9956:
- movs r0, 0x2
- b _080C9976
-_080C995A:
- cmp r2, r0
- bge _080C9964
- cmp r1, 0
- blt _080C996C
- b _080C9970
-_080C9964:
- cmp r2, r0
- bne _080C9974
- cmp r1, 0
- bge _080C9970
-_080C996C:
- movs r0, 0x1
- b _080C9976
-_080C9970:
- movs r0, 0x3
- b _080C9976
-_080C9974:
- movs r0, 0
-_080C9976:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80C9908
-
- thumb_func_start sub_80C997C
-sub_80C997C: @ 80C997C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _080C99E8 @ =gMapObjects
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnim
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl npc_sync_anim_pause_bits
- adds r0, r5, 0
- bl PlayerTurnInPlace
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99E8: .4byte gMapObjects
- thumb_func_end sub_80C997C
-
- thumb_func_start sub_80C99EC
-sub_80C99EC: @ 80C99EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9A2C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9A24
- ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
- ldr r2, _080C9A34 @ =sub_80C9520
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9A24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A2C: .4byte gMapObjects
-_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte sub_80C9520
- thumb_func_end sub_80C99EC
-
- thumb_func_start sub_80C9A38
-sub_80C9A38: @ 80C9A38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C9AB4 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080C9AB8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A78
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C9AAE
-_080C9A78:
- ldr r1, _080C9ABC @ =gUnknown_083D61F0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80C997C
- movs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080C9AAE
- ldr r1, _080C9AC0 @ =gOtherText_ItemfinderFoundItem
- ldr r2, _080C9AC4 @ =sub_80C9520
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9AAE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AB4: .4byte gTasks + 0x8
-_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gUnknown_083D61F0
-_080C9AC0: .4byte gOtherText_ItemfinderFoundItem
-_080C9AC4: .4byte sub_80C9520
- thumb_func_end sub_80C9A38
-
- thumb_func_start ItemUseOutOfBattle_PokeblockCase
-ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9AF4
- ldr r0, _080C9AF0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
- b _080C9B2A
- .align 2, 0
-_080C9AF0: .4byte gTasks
-_080C9AF4:
- ldr r0, _080C9B14 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080C9B18
- movs r0, 0
- bl sub_810BA7C
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080C9B2A
- .align 2, 0
-_080C9B14: .4byte gTasks
-_080C9B18:
- ldr r1, _080C9B30 @ =gUnknown_0300485C
- ldr r0, _080C9B34 @ =sub_8080E28
- str r0, [r1]
- movs r0, 0x1
- bl sub_810BA7C
- adds r0, r5, 0
- bl sub_80C9038
-_080C9B2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B30: .4byte gUnknown_0300485C
-_080C9B34: .4byte sub_8080E28
- thumb_func_end ItemUseOutOfBattle_PokeblockCase
-
- thumb_func_start ItemUseOutOfBattle_CoinCase
-ItemUseOutOfBattle_CoinCase: @ 80C9B38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C9B8C @ =gStringVar1
- bl GetCoins
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, _080C9B90 @ =gStringVar4
- ldr r1, _080C9B94 @ =gOtherText_Coins3
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, _080C9B98 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9BA0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C @ =sub_80A5C48
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9BAC
- .align 2, 0
-_080C9B8C: .4byte gStringVar1
-_080C9B90: .4byte gStringVar4
-_080C9B94: .4byte gOtherText_Coins3
-_080C9B98: .4byte gTasks
-_080C9B9C: .4byte sub_80A5C48
-_080C9BA0:
- ldr r2, _080C9BB4 @ =sub_80A5C9C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9BAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BB4: .4byte sub_80A5C9C
- thumb_func_end ItemUseOutOfBattle_CoinCase
-
- thumb_func_start sub_80C9BB8
-sub_80C9BB8: @ 80C9BB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BD4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BD0
- adds r0, r2, 0
- bl sub_80A5C48
-_080C9BD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BD4: .4byte gMain
- thumb_func_end sub_80C9BB8
-
- thumb_func_start sub_80C9BD8
-sub_80C9BD8: @ 80C9BD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BF4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BF0
- adds r0, r2, 0
- bl sub_80A5C9C
-_080C9BF0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BF4: .4byte gMain
- thumb_func_end sub_80C9BD8
-
- thumb_func_start unref_sub_80C9BF8
-unref_sub_80C9BF8: @ 80C9BF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C9C3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9C4C
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080C9C40 @ =gUnknown_083D61DC
- ldr r0, _080C9C44 @ =word_203855E
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C48 @ =sub_80C9BB8
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9C68
- .align 2, 0
-_080C9C3C: .4byte gTasks
-_080C9C40: .4byte gUnknown_083D61DC
-_080C9C44: .4byte word_203855E
-_080C9C48: .4byte sub_80C9BB8
-_080C9C4C:
- ldr r4, _080C9C70 @ =gUnknown_083D61DC
- ldr r0, _080C9C74 @ =word_203855E
- ldrh r0, [r0]
- bl itemid_get_x28
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C78 @ =sub_80C9BD8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9C68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9C70: .4byte gUnknown_083D61DC
-_080C9C74: .4byte word_203855E
-_080C9C78: .4byte sub_80C9BD8
- thumb_func_end unref_sub_80C9BF8
-
- thumb_func_start sub_80C9C7C
-sub_80C9C7C: @ 80C9C7C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerFacingPlantedBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9CE4
- ldr r1, _080C9CC8 @ =gUnknown_03005D00
- ldr r0, _080C9CCC @ =sub_80C9D00
- str r0, [r1]
- ldr r1, _080C9CD0 @ =gUnknown_0300485C
- ldr r0, _080C9CD4 @ =sub_80A5CC4
- str r0, [r1]
- ldr r1, _080C9CD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0 @ =sub_80A5B00
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080C9CF4
- .align 2, 0
-_080C9CC8: .4byte gUnknown_03005D00
-_080C9CCC: .4byte sub_80C9D00
-_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte sub_80A5CC4
-_080C9CD8: .4byte gTasks
-_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte sub_80A5B00
-_080C9CE4:
- ldr r0, _080C9CFC @ =word_203855E
- ldrh r0, [r0]
- bl itemid_get_overworld_function
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_080C9CF4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9CFC: .4byte word_203855E
- thumb_func_end sub_80C9C7C
-
- thumb_func_start sub_80C9D00
-sub_80C9D00: @ 80C9D00
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C9D28 @ =word_203855E
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80A9538
- bl ScriptContext2_Enable
- ldr r0, _080C9D2C @ =gUnknown_081A1654
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D28: .4byte word_203855E
-_080C9D2C: .4byte gUnknown_081A1654
- thumb_func_end sub_80C9D00
-
- thumb_func_start ItemUseOutOfBattle_WailmerPail
-ItemUseOutOfBattle_WailmerPail: @ 80C9D30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl WaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9D58
- ldr r1, _080C9D50 @ =gUnknown_03005D00
- ldr r0, _080C9D54 @ =sub_80C9D74
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C9D6A
- .align 2, 0
-_080C9D50: .4byte gUnknown_03005D00
-_080C9D54: .4byte sub_80C9D74
-_080C9D58:
- ldr r0, _080C9D70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C9D6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D70: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_WailmerPail
-
- thumb_func_start sub_80C9D74
-sub_80C9D74: @ 80C9D74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, _080C9D94 @ =gUnknown_081A168F
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D94: .4byte gUnknown_081A168F
- thumb_func_end sub_80C9D74
-
- thumb_func_start sub_80C9D98
-sub_80C9D98: @ 80C9D98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DAC @ =gUnknown_02038561
- movs r1, 0
- strb r1, [r2]
- bl unknown_ItemMenu_Confirm
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DAC: .4byte gUnknown_02038561
- thumb_func_end sub_80C9D98
-
- thumb_func_start ItemUseOutOfBattle_Medicine
-ItemUseOutOfBattle_Medicine: @ 80C9DB0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DC4 @ =gUnknown_03004AE4
- ldr r1, _080C9DC8 @ =sub_806FE2C
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte sub_806FE2C
- thumb_func_end ItemUseOutOfBattle_Medicine
-
- thumb_func_start ItemUseOutOfBattle_SacredAsh
-ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080C9DDC @ =gUnknown_03005CE0
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- b _080C9DE6
- .align 2, 0
-_080C9DDC: .4byte gUnknown_03005CE0
-_080C9DE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080C9DE6:
- cmp r5, 0x5
- bhi _080C9E10
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C9E28 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C9DE0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C9DE0
- ldr r0, _080C9E2C @ =gUnknown_03005CE0
- strb r5, [r0]
-_080C9E10:
- ldr r1, _080C9E30 @ =gUnknown_03004AE4
- ldr r0, _080C9E34 @ =sub_8070048
- str r0, [r1]
- ldr r1, _080C9E38 @ =gUnknown_02038561
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r6, 0
- bl unknown_ItemMenu_Confirm
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E28: .4byte gPlayerParty
-_080C9E2C: .4byte gUnknown_03005CE0
-_080C9E30: .4byte gUnknown_03004AE4
-_080C9E34: .4byte sub_8070048
-_080C9E38: .4byte gUnknown_02038561
- thumb_func_end ItemUseOutOfBattle_SacredAsh
-
- thumb_func_start ItemUseOutOfBattle_PPRecovery
-ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E50 @ =gUnknown_03004AE4
- ldr r1, _080C9E54 @ =dp05_ether
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte dp05_ether
- thumb_func_end ItemUseOutOfBattle_PPRecovery
-
- thumb_func_start ItemUseOutOfBattle_PPUp
-ItemUseOutOfBattle_PPUp: @ 80C9E58
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E6C @ =gUnknown_03004AE4
- ldr r1, _080C9E70 @ =dp05_pp_up
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte dp05_pp_up
- thumb_func_end ItemUseOutOfBattle_PPUp
-
- thumb_func_start ItemUseOutOfBattle_RareCandy
-ItemUseOutOfBattle_RareCandy: @ 80C9E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E88 @ =gUnknown_03004AE4
- ldr r1, _080C9E8C @ =sub_8070680
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte sub_8070680
- thumb_func_end ItemUseOutOfBattle_RareCandy
-
- thumb_func_start ItemUseOutOfBattle_TMHM
-ItemUseOutOfBattle_TMHM: @ 80C9E90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080C9EBC @ =word_203855E
- ldrh r1, [r0]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bls _080C9EC8
- ldr r1, _080C9EC0 @ =gOtherText_BootedHM
- ldr r2, _080C9EC4 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9ED4
- .align 2, 0
-_080C9EBC: .4byte word_203855E
-_080C9EC0: .4byte gOtherText_BootedHM
-_080C9EC4: .4byte sub_80C9EE4
-_080C9EC8:
- ldr r1, _080C9EDC @ =gOtherText_BootedTM
- ldr r2, _080C9EE0 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9ED4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9EDC: .4byte gOtherText_BootedTM
-_080C9EE0: .4byte sub_80C9EE4
- thumb_func_end ItemUseOutOfBattle_TMHM
-
- thumb_func_start sub_80C9EE4
-sub_80C9EE4: @ 80C9EE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl PlaySE
- ldr r1, _080C9F08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C9F0C @ =sub_80C9F10
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F08: .4byte gTasks
-_080C9F0C: .4byte sub_80C9F10
- thumb_func_end sub_80C9EE4
-
- thumb_func_start sub_80C9F10
-sub_80C9F10: @ 80C9F10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C9F64 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C9F2A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C9F5C
-_080C9F2A:
- ldr r4, _080C9F68 @ =gStringVar1
- ldr r0, _080C9F6C @ =word_203855E
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080C9F70 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _080C9F74 @ =gStringVar4
- ldr r1, _080C9F78 @ =gOtherText_ContainsMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080C9F7C @ =sub_80C9F80
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F64: .4byte gMain
-_080C9F68: .4byte gStringVar1
-_080C9F6C: .4byte word_203855E
-_080C9F70: .4byte gMoveNames
-_080C9F74: .4byte gStringVar4
-_080C9F78: .4byte gOtherText_ContainsMove
-_080C9F7C: .4byte sub_80C9F80
- thumb_func_end sub_80C9F10
-
- thumb_func_start sub_80C9F80
-sub_80C9F80: @ 80C9F80
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080C9FB8 @ =gBG1TilemapBuffer
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A3FA0
- ldr r1, _080C9FBC @ =gUnknown_083D61F4
- adds r0, r4, 0
- bl sub_80F914C
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FB8: .4byte gBG1TilemapBuffer
-_080C9FBC: .4byte gUnknown_083D61F4
- thumb_func_end sub_80C9F80
-
- thumb_func_start sub_80C9FC0
-sub_80C9FC0: @ 80C9FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9FD4 @ =gUnknown_03004AE4
- ldr r1, _080C9FD8 @ =sub_806F06C
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte sub_806F06C
- thumb_func_end sub_80C9FC0
-
- thumb_func_start sub_80C9FDC
-sub_80C9FDC: @ 80C9FDC
- push {r4,lr}
- ldr r4, _080CA004 @ =word_203855E
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- bl sub_80A3E0C
- ldrh r0, [r4]
- ldr r1, _080CA008 @ =gStringVar2
- bl itemid_copy_name
- ldr r0, _080CA00C @ =gStringVar4
- ldr r1, _080CA010 @ =gOtherText_UsedItem
- bl StringExpandPlaceholders
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA004: .4byte word_203855E
-_080CA008: .4byte gStringVar2
-_080CA00C: .4byte gStringVar4
-_080CA010: .4byte gOtherText_UsedItem
- thumb_func_end sub_80C9FDC
-
- thumb_func_start ItemUseOutOfBattle_Repel
-ItemUseOutOfBattle_Repel: @ 80CA014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080CA050 @ =0x00004021
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080CA060
- ldr r0, _080CA054 @ =word_203855E
- ldrh r0, [r0]
- bl itemid_get_quality
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl VarSet
- bl sub_80C9FDC
- ldr r1, _080CA058 @ =gStringVar4
- ldr r2, _080CA05C @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA06C
- .align 2, 0
-_080CA050: .4byte 0x00004021
-_080CA054: .4byte word_203855E
-_080CA058: .4byte gStringVar4
-_080CA05C: .4byte sub_80A5C48
-_080CA060:
- ldr r1, _080CA074 @ =gOtherText_RepelLingers
- ldr r2, _080CA078 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte sub_80A5C48
- thumb_func_end ItemUseOutOfBattle_Repel
-
- thumb_func_start sub_80CA07C
-sub_80CA07C: @ 80CA07C
- push {lr}
- bl sub_80A3E0C
- ldr r0, _080CA090 @ =word_203855E
- ldrh r0, [r0]
- ldr r1, _080CA094 @ =gStringVar2
- bl itemid_copy_name
- pop {r0}
- bx r0
- .align 2, 0
-_080CA090: .4byte word_203855E
-_080CA094: .4byte gStringVar2
- thumb_func_end sub_80CA07C
-
- thumb_func_start sub_80CA098
-sub_80CA098: @ 80CA098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA0D0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA0C8
- movs r0, 0x75
- bl PlaySE
- ldr r1, _080CA0D4 @ =gStringVar4
- ldr r2, _080CA0D8 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA0C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA0D0: .4byte gTasks
-_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte sub_80A5C48
- thumb_func_end sub_80CA098
-
- thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
-ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _080CA10C @ =word_203855E
- ldrh r0, [r0]
- cmp r0, 0x2B
- bne _080CA124
- ldr r0, _080CA110 @ =0x0000084d
- bl FlagSet
- ldr r0, _080CA114 @ =0x0000084e
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA118 @ =gStringVar4
- ldr r1, _080CA11C @ =gOtherText_UsedFlute
- bl StringExpandPlaceholders
- ldr r1, _080CA120 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- b _080CA146
- .align 2, 0
-_080CA10C: .4byte word_203855E
-_080CA110: .4byte 0x0000084d
-_080CA114: .4byte 0x0000084e
-_080CA118: .4byte gStringVar4
-_080CA11C: .4byte gOtherText_UsedFlute
-_080CA120: .4byte gTasks
-_080CA124:
- cmp r0, 0x2A
- bne _080CA152
- ldr r0, _080CA158 @ =0x0000084e
- bl FlagSet
- ldr r0, _080CA15C @ =0x0000084d
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA160 @ =gStringVar4
- ldr r1, _080CA164 @ =gOtherText_UsedRepel
- bl StringExpandPlaceholders
- ldr r1, _080CA168 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
-_080CA146:
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CA16C @ =sub_80CA098
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x26]
-_080CA152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA158: .4byte 0x0000084e
-_080CA15C: .4byte 0x0000084d
-_080CA160: .4byte gStringVar4
-_080CA164: .4byte gOtherText_UsedRepel
-_080CA168: .4byte gTasks
-_080CA16C: .4byte sub_80CA098
- thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
-
- thumb_func_start task08_080A1C44
-task08_080A1C44: @ 80CA170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl player_avatar_init_params_reset
- bl sub_80878A8
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task08_080A1C44
-
- thumb_func_start sub_80CA18C
-sub_80CA18C: @ 80CA18C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8053014
- bl sub_80C9FDC
- ldr r1, _080CA1BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080CA1C0 @ =gStringVar4
- ldr r2, _080CA1C4 @ =task08_080A1C44
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA1BC: .4byte gTasks
-_080CA1C0: .4byte gStringVar4
-_080CA1C4: .4byte task08_080A1C44
- thumb_func_end sub_80CA18C
-
- thumb_func_start sub_80CA1C8
-sub_80CA1C8: @ 80CA1C8
- push {lr}
- ldr r0, _080CA1D8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _080CA1DC
- movs r0, 0
- b _080CA1DE
- .align 2, 0
-_080CA1D8: .4byte gMapHeader
-_080CA1DC:
- movs r0, 0x1
-_080CA1DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80CA1C8
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CA20C
- ldr r1, _080CA204 @ =gUnknown_03005D00
- ldr r0, _080CA208 @ =sub_80CA18C
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080CA21E
- .align 2, 0
-_080CA204: .4byte gUnknown_03005D00
-_080CA208: .4byte sub_80CA18C
-_080CA20C:
- ldr r0, _080CA224 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA21E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA224: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start ItemUseOutOfBattle_EvolutionStone
-ItemUseOutOfBattle_EvolutionStone: @ 80CA228
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA23C @ =gUnknown_03004AE4
- ldr r1, _080CA240 @ =sub_8070DBC
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte sub_8070DBC
- thumb_func_end ItemUseOutOfBattle_EvolutionStone
-
- thumb_func_start ItemUseInBattle_PokeBall
-ItemUseInBattle_PokeBall: @ 80CA244
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080CA26C
- ldr r0, _080CA268 @ =word_203855E
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r4, 0
- bl sub_80A7094
- b _080CA284
- .align 2, 0
-_080CA268: .4byte word_203855E
-_080CA26C:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r1, _080CA28C @ =gOtherText_BoxIsFull
- ldr r2, _080CA290 @ =sub_80A5C48
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA284:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte sub_80A5C48
- thumb_func_end ItemUseInBattle_PokeBall
-
- thumb_func_start sub_80CA294
-sub_80CA294: @ 80CA294
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA2B8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CA2AE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080CA2B4
-_080CA2AE:
- adds r0, r2, 0
- bl sub_80A7094
-_080CA2B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA2B8: .4byte gMain
- thumb_func_end sub_80CA294
-
- thumb_func_start sub_80CA2BC
-sub_80CA2BC: @ 80CA2BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080CA304 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA2FC
- movs r0, 0x1
- bl PlaySE
- ldr r4, _080CA308 @ =word_203855E
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- ldrh r0, [r4]
- bl sub_803F378
- adds r1, r0, 0
- ldr r2, _080CA30C @ =sub_80CA294
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA2FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA304: .4byte gTasks
-_080CA308: .4byte word_203855E
-_080CA30C: .4byte sub_80CA294
- thumb_func_end sub_80CA2BC
-
- thumb_func_start ItemUseInBattle_StatIncrease
-ItemUseInBattle_StatIncrease: @ 80CA310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CA35C @ =gUnknown_02024A6A
- ldr r0, _080CA360 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CA364 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080CA368 @ =word_203855E
- ldrh r1, [r1]
- lsls r4, 24
- lsrs r4, 24
- adds r2, r4, 0
- movs r3, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080CA374
- ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA370 @ =sub_80A5C48
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA384
- .align 2, 0
-_080CA35C: .4byte gUnknown_02024A6A
-_080CA360: .4byte gUnknown_02024E6C
-_080CA364: .4byte gPlayerParty
-_080CA368: .4byte word_203855E
-_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte sub_80A5C48
-_080CA374:
- ldr r0, _080CA38C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080CA390 @ =sub_80CA2BC
- str r0, [r1]
- strh r2, [r1, 0x26]
-_080CA384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA38C: .4byte gTasks
-_080CA390: .4byte sub_80CA2BC
- thumb_func_end ItemUseInBattle_StatIncrease
-
- thumb_func_start sub_80CA394
-sub_80CA394: @ 80CA394
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA3BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA3B4
- bl sub_8094E4C
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080CA3B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3BC: .4byte gPaletteFade
- thumb_func_end sub_80CA394
-
- thumb_func_start sub_80CA3C0
-sub_80CA3C0: @ 80CA3C0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA3EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080CA3F0 @ =sub_80CA394
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3EC: .4byte gTasks
-_080CA3F0: .4byte sub_80CA394
- thumb_func_end sub_80CA3C0
-
- thumb_func_start ItemUseInBattle_Medicine
-ItemUseInBattle_Medicine: @ 80CA3F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA408 @ =gUnknown_03004AE4
- ldr r1, _080CA40C @ =sub_806FE2C
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte sub_806FE2C
- thumb_func_end ItemUseInBattle_Medicine
-
- thumb_func_start unref_sub_80CA410
-unref_sub_80CA410: @ 80CA410
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA424 @ =gUnknown_03004AE4
- ldr r1, _080CA428 @ =sub_8070048
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA424: .4byte gUnknown_03004AE4
-_080CA428: .4byte sub_8070048
- thumb_func_end unref_sub_80CA410
-
- thumb_func_start ItemUseInBattle_PPRecovery
-ItemUseInBattle_PPRecovery: @ 80CA42C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA440 @ =gUnknown_03004AE4
- ldr r1, _080CA444 @ =dp05_ether
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte dp05_ether
- thumb_func_end ItemUseInBattle_PPRecovery
-
- thumb_func_start unref_sub_80CA448
-unref_sub_80CA448: @ 80CA448
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080CA494 @ =word_203855E
- ldrh r1, [r4]
- movs r0, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- bne _080CA4AC
- ldrh r0, [r4]
- movs r1, 0x1
- bl sub_80A9538
- ldr r0, _080CA498 @ =gPlayerParty
- ldr r1, _080CA49C @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080CA4A0 @ =gStringVar4
- ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080CA4A8 @ =sub_80A7094
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA4B8
- .align 2, 0
-_080CA494: .4byte word_203855E
-_080CA498: .4byte gPlayerParty
-_080CA49C: .4byte gStringVar1
-_080CA4A0: .4byte gStringVar4
-_080CA4A4: .4byte gOtherText_SnapConfusion
-_080CA4A8: .4byte sub_80A7094
-_080CA4AC:
- ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA4C4 @ =sub_80A5C48
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA4B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte sub_80A5C48
- thumb_func_end unref_sub_80CA448
-
- thumb_func_start ItemUseInBattle_Escape
-ItemUseInBattle_Escape: @ 80CA4C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080CA504
- bl sub_80C9FDC
- ldr r1, _080CA4FC @ =gStringVar4
- ldr r2, _080CA500 @ =sub_80A7094
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA516
- .align 2, 0
-_080CA4F8: .4byte gUnknown_020239F8
-_080CA4FC: .4byte gStringVar4
-_080CA500: .4byte sub_80A7094
-_080CA504:
- ldr r0, _080CA51C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA51C: .4byte gTasks
- thumb_func_end ItemUseInBattle_Escape
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA544 @ =word_203855E
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080CA53A
- b _080CA62C
-_080CA53A:
- lsls r0, 2
- ldr r1, _080CA548 @ =_080CA54C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA544: .4byte word_203855E
-_080CA548: .4byte _080CA54C
- .align 2, 0
-_080CA54C:
- .4byte _080CA5D8
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA62C
- .4byte _080CA5BC
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA5F4
- .4byte _080CA5F4
- .4byte _080CA610
-_080CA5A0:
- ldr r0, _080CA5B8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_Medicine
- b _080CA640
- .align 2, 0
-_080CA5B8: .4byte gTasks
-_080CA5BC:
- ldr r0, _080CA5D4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_SacredAsh
- b _080CA640
- .align 2, 0
-_080CA5D4: .4byte gTasks
-_080CA5D8:
- ldr r0, _080CA5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_RareCandy
- b _080CA640
- .align 2, 0
-_080CA5F0: .4byte gTasks
-_080CA5F4:
- ldr r0, _080CA60C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPUp
- b _080CA640
- .align 2, 0
-_080CA60C: .4byte gTasks
-_080CA610:
- ldr r0, _080CA628 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPRecovery
- b _080CA640
- .align 2, 0
-_080CA628: .4byte gTasks
-_080CA62C:
- ldr r0, _080CA648 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA640:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA648: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80CA64C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA66C @ =word_203855E
- ldrh r0, [r0]
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080CA6E4
- lsls r0, 2
- ldr r1, _080CA670 @ =_080CA674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA66C: .4byte word_203855E
-_080CA670: .4byte _080CA674
- .align 2, 0
-_080CA674:
- .4byte _080CA6CC
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6DC
-_080CA6CC:
- adds r0, r4, 0
- bl ItemUseInBattle_StatIncrease
- b _080CA6EA
-_080CA6D4:
- adds r0, r4, 0
- bl ItemUseInBattle_Medicine
- b _080CA6EA
-_080CA6DC:
- adds r0, r4, 0
- bl ItemUseInBattle_PPRecovery
- b _080CA6EA
-_080CA6E4:
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA6EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start ItemUseOutOfBattle_CannotUse
-ItemUseOutOfBattle_CannotUse: @ 80CA6F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA70C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0xC]
- bl DisplayDadsAdviceCannotUseItemMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA70C: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_CannotUse
-
- thumb_func_start sub_80CA710
-sub_80CA710: @ 80CA710
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CA744 @ =gUnknown_03004B00
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080CA748 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CA74C
- ldrh r0, [r5, 0x8]
- negs r0, r0
- b _080CA74E
- .align 2, 0
-_080CA744: .4byte gUnknown_03004B00
-_080CA748: .4byte gUnknown_0202F7C8
-_080CA74C:
- ldrh r0, [r5, 0x8]
-_080CA74E:
- strh r0, [r4, 0x34]
- ldr r0, _080CA760 @ =gUnknown_03004B00
- ldrh r0, [r0, 0xA]
- strh r0, [r4, 0x36]
- ldr r0, _080CA764 @ =sub_80CA768
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA760: .4byte gUnknown_03004B00
-_080CA764: .4byte sub_80CA768
- thumb_func_end sub_80CA710
-
- thumb_func_start sub_80CA768
-sub_80CA768: @ 80CA768
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CA7A4
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r1, r0
- strh r1, [r4, 0x32]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CA7AA
-_080CA7A4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CA7AA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA768
-
- thumb_func_start sub_80CA7B0
-sub_80CA7B0: @ 80CA7B0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CA7F0 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA7F8 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080CA7FC @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA7F0: .4byte gUnknown_03004B00
-_080CA7F4: .4byte gUnknown_0202F7C8
-_080CA7F8: .4byte sub_8078B34
-_080CA7FC: .4byte move_anim_8074EE0
- thumb_func_end sub_80CA7B0
-
- thumb_func_start sub_80CA800
-sub_80CA800: @ 80CA800
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CA848 @ =gUnknown_03004B00
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA84C @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080CA850 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080CA854 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA848: .4byte gUnknown_03004B00
-_080CA84C: .4byte gUnknown_0202F7C9
-_080CA850: .4byte sub_8078B34
-_080CA854: .4byte move_anim_8072740
- thumb_func_end sub_80CA800
-
- thumb_func_start sub_80CA858
-sub_80CA858: @ 80CA858
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080CA8A8 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080CA8AC @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x38]
- ldr r1, _080CA8B0 @ =sub_80CA8B4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA8A8: .4byte gUnknown_03004B00
-_080CA8AC: .4byte gUnknown_0202F7C9
-_080CA8B0: .4byte sub_80CA8B4
- thumb_func_end sub_80CA858
-
- thumb_func_start sub_80CA8B4
-sub_80CA8B4: @ 80CA8B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080CA8CA
- adds r0, r4, 0
- bl DestroySprite
- b _080CA91E
-_080CA8CA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _080CA8E4
- ldr r0, _080CA8E0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
- b _080CA8EE
- .align 2, 0
-_080CA8E0: .4byte gUnknown_0202F7C9
-_080CA8E4:
- ldr r0, _080CA924 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x6
-_080CA8EE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0xF
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CA91E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA924: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CA8B4
-
- thumb_func_start sub_80CA928
-sub_80CA928: @ 80CA928
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CA998 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- movs r2, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080CA982
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- movs r0, 0x6
- strh r0, [r5, 0x8]
- ldr r1, _080CA99C @ =gUnknown_03004B00
- movs r0, 0xF
- strh r0, [r1]
- strh r2, [r1, 0x2]
- movs r0, 0x50
- strh r0, [r1, 0x4]
- strh r2, [r1, 0x6]
- ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
- ldr r0, _080CA9A4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl CreateSpriteAndAnimate
-_080CA982:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- bne _080CA990
- adds r0, r6, 0
- bl move_anim_task_del
-_080CA990:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA998: .4byte gTasks
-_080CA99C: .4byte gUnknown_03004B00
-_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CA928
-
- thumb_func_start sub_80CA9A8
-sub_80CA9A8: @ 80CA9A8
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r6, _080CA9EC @ =gUnknown_03004B00
- ldrh r0, [r6, 0x6]
- strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080CA9F4 @ =sub_80CA9F8
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA9EC: .4byte gUnknown_03004B00
-_080CA9F0: .4byte gUnknown_0202F7C8
-_080CA9F4: .4byte sub_80CA9F8
- thumb_func_end sub_80CA9A8
-
- thumb_func_start sub_80CA9F8
-sub_80CA9F8: @ 80CA9F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CAA0C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAA0C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CA9F8
-
- thumb_func_start sub_80CAA14
-sub_80CAA14: @ 80CAA14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x7
- ands r1, r0
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r4, _080CAA5C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAA60
- ldrh r0, [r5, 0x20]
- subs r0, 0x14
- b _080CAA64
- .align 2, 0
-_080CAA5C: .4byte gUnknown_0202F7C8
-_080CAA60:
- ldrh r0, [r5, 0x20]
- adds r0, 0x14
-_080CAA64:
- strh r0, [r5, 0x20]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1F
- ands r0, r1
- adds r0, 0x40
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080CAAC4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- bl Random
- movs r1, 0xFF
- ands r1, r0
- strh r1, [r5, 0x38]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- strh r0, [r5, 0x3A]
- ldr r1, _080CAAC8 @ =sub_80CAACC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAAC4: .4byte gUnknown_0202F7C9
-_080CAAC8: .4byte sub_80CAACC
- thumb_func_end sub_80CAA14
-
- thumb_func_start sub_80CAACC
-sub_80CAACC: @ 80CAACC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- lsls r0, 24
- cmp r0, 0
- beq _080CAAE2
- adds r0, r4, 0
- bl move_anim_8072740
- b _080CAB12
-_080CAAE2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7E
- bgt _080CAAFE
- ldrh r0, [r4, 0x3A]
- b _080CAB02
-_080CAAFE:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_080CAB02:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x18
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
-_080CAB12:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAACC
-
- thumb_func_start sub_80CAB18
-sub_80CAB18: @ 80CAB18
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CAB78 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAB38
- ldr r1, _080CAB7C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAB38:
- ldr r4, _080CAB7C @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080CAB80 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080CAB84 @ =sub_80CAB88
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAB78: .4byte gUnknown_0202F7C8
-_080CAB7C: .4byte gUnknown_03004B00
-_080CAB80: .4byte gUnknown_0202F7C9
-_080CAB84: .4byte sub_80CAB88
- thumb_func_end sub_80CAB18
-
- thumb_func_start sub_80CAB88
-sub_80CAB88: @ 80CAB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CABB2
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- ldr r0, _080CABB8 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CABBC @ =sub_80CABC0
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080CABB2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABB8: .4byte sub_80782D8
-_080CABBC: .4byte sub_80CABC0
- thumb_func_end sub_80CAB88
-
- thumb_func_start sub_80CABC0
-sub_80CABC0: @ 80CABC0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080CABF0 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CABF4 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CABF0: .4byte sub_80782D8
-_080CABF4: .4byte move_anim_8072740
- thumb_func_end sub_80CABC0
-
- thumb_func_start sub_80CABF8
-sub_80CABF8: @ 80CABF8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080CAC3C @ =gUnknown_03004B00
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080CAC22
- ldrb r0, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
-_080CAC22:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldr r1, _080CAC40 @ =sub_80CAC44
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAC3C: .4byte gUnknown_03004B00
-_080CAC40: .4byte sub_80CAC44
- thumb_func_end sub_80CABF8
-
- thumb_func_start sub_80CAC44
-sub_80CAC44: @ 80CAC44
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x32]
- adds r1, 0x18
- strh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CAC98
- ldr r0, _080CAC94 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- b _080CACBC
- .align 2, 0
-_080CAC94: .4byte gUnknown_0202F7C9
-_080CAC98:
- ldr r0, _080CACE8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080CACAC
- movs r2, 0x3
-_080CACAC:
- movs r0, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
-_080CACBC:
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080CACE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CACE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CACE8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CAC44
-
- thumb_func_start sub_80CACEC
-sub_80CACEC: @ 80CACEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CAD06
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080CAD0E
-_080CAD06:
- adds r0, r4, 0
- bl move_anim_task_del
- b _080CAD4A
-_080CAD0E:
- ldr r0, _080CAD2C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CAD34
- ldr r0, _080CAD30 @ =REG_BG2CNT
- ldrb r1, [r0]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0]
- b _080CAD44
- .align 2, 0
-_080CAD2C: .4byte gUnknown_0202F7C9
-_080CAD30: .4byte REG_BG2CNT
-_080CAD34:
- ldr r2, _080CAD50 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CAD44:
- adds r0, r4, 0
- bl move_anim_task_del
-_080CAD4A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD50: .4byte REG_BG1CNT
- thumb_func_end sub_80CACEC
-
- thumb_func_start sub_80CAD54
-sub_80CAD54: @ 80CAD54
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r5, _080CAD9C @ =gUnknown_03004B00
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CADA0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CADA4 @ =sub_80CADA8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAD9C: .4byte gUnknown_03004B00
-_080CADA0: .4byte gUnknown_0202F7C8
-_080CADA4: .4byte sub_80CADA8
- thumb_func_end sub_80CAD54
-
- thumb_func_start sub_80CADA8
-sub_80CADA8: @ 80CADA8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAE14
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080CADF4
- ldr r0, _080CADF0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _080CADFE
- .align 2, 0
-_080CADF0: .4byte gUnknown_0202F7C8
-_080CADF4:
- ldr r0, _080CAE10 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_080CADFE:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAE1A
- .align 2, 0
-_080CAE10: .4byte gUnknown_0202F7C8
-_080CAE14:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAE1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CADA8
-
- thumb_func_start sub_80CAE20
-sub_80CAE20: @ 80CAE20
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080CAE68 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldr r0, _080CAE6C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x4]
- adds r0, r5
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r4, 0x38]
- ldr r1, _080CAE70 @ =sub_80CAE74
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAE68: .4byte gUnknown_03004B00
-_080CAE6C: .4byte gUnknown_0202F7C8
-_080CAE70: .4byte sub_80CAE74
- thumb_func_end sub_80CAE20
-
- thumb_func_start sub_80CAE74
-sub_80CAE74: @ 80CAE74
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CAECC
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x3B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bls _080CAEAC
- adds r0, r1, 0
- subs r0, 0xBB
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _080CAEC0
-_080CAEAC:
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- eors r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
-_080CAEC0:
- ldrh r0, [r4, 0x38]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CAED2
-_080CAECC:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAED2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAE74
-
- thumb_func_start sub_80CAED8
-sub_80CAED8: @ 80CAED8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CAF14 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CAF18 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, _080CAF1C @ =sub_80CAF20
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAF14: .4byte gUnknown_0202F7C8
-_080CAF18: .4byte gUnknown_03004B00
-_080CAF1C: .4byte sub_80CAF20
- thumb_func_end sub_80CAED8
-
- thumb_func_start sub_80CAF20
-sub_80CAF20: @ 80CAF20
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x32]
- movs r2, 0x32
- ldrsh r3, [r1, r2]
- cmp r3, 0
- bne _080CAF54
- ldrh r0, [r1, 0x30]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _080CAF42
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
- strh r3, [r1, 0x32]
- b _080CAF48
-_080CAF42:
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- strh r2, [r1, 0x32]
-_080CAF48:
- ldr r0, _080CAF50 @ =sub_80CAF6C
- str r0, [r1, 0x1C]
- b _080CAF68
- .align 2, 0
-_080CAF50: .4byte sub_80CAF6C
-_080CAF54:
- subs r0, 0x1
- strh r0, [r1, 0x32]
- ldrh r0, [r1, 0x2E]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x30]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
-_080CAF68:
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF20
-
- thumb_func_start sub_80CAF6C
-sub_80CAF6C: @ 80CAF6C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CAF8C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAF90
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
- negs r0, r0
- b _080CAF9A
- .align 2, 0
-_080CAF8C: .4byte gUnknown_0202F7C8
-_080CAF90:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x19
- bl Sin
-_080CAF9A:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CAFBA
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
-_080CAFBA:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080CAFC8
- adds r0, r4, 0
- bl move_anim_8072740
-_080CAFC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CAF6C
-
- thumb_func_start sub_80CAFD0
-sub_80CAFD0: @ 80CAFD0
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080CB024 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CAFF0
- ldr r1, _080CB028 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080CAFF0:
- ldr r6, _080CB028 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB030
- ldr r4, _080CB02C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- b _080CB050
- .align 2, 0
-_080CB024: .4byte gUnknown_0202F7C8
-_080CB028: .4byte gUnknown_03004B00
-_080CB02C: .4byte gUnknown_0202F7C9
-_080CB030:
- ldr r0, _080CB07C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
-_080CB050:
- strh r0, [r5, 0x36]
- ldr r0, _080CB080 @ =gUnknown_03004B00
- ldrh r0, [r0, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080CB084 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080CB07C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080CB088
- movs r0, 0x1
- b _080CB08A
- .align 2, 0
-_080CB07C: .4byte gUnknown_0202F7C9
-_080CB080: .4byte gUnknown_03004B00
-_080CB084: .4byte gUnknown_0202F7C8
-_080CB088:
- movs r0, 0
-_080CB08A:
- strh r0, [r5, 0x2E]
- ldr r0, _080CB098 @ =sub_80CB09C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB098: .4byte sub_80CB09C
- thumb_func_end sub_80CAFD0
-
- thumb_func_start sub_80CB09C
-sub_80CB09C: @ 80CB09C
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- ldrh r5, [r6, 0x2E]
- ldrh r4, [r6, 0x3C]
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- adds r0, r6, 0
- bl sub_8078718
- ldrh r0, [r6, 0x3C]
- strh r5, [r6, 0x2E]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0xC8
- ble _080CB0CE
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x37
- bgt _080CB0CE
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- bne _080CB0D4
- adds r0, 0x1
- strh r0, [r6, 0x6]
-_080CB0CE:
- ldrh r0, [r6, 0x6]
- cmp r0, 0
- beq _080CB106
-_080CB0D4:
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080CB106
- adds r3, r6, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
- ldrh r0, [r6, 0x6]
- adds r0, 0x1
- strh r0, [r6, 0x6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bne _080CB106
- movs r7, 0x1
-_080CB106:
- movs r2, 0x20
- ldrsh r0, [r6, r2]
- movs r2, 0x24
- ldrsh r1, [r6, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080CB130
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- movs r2, 0x26
- ldrsh r0, [r6, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080CB130
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080CB132
-_080CB130:
- movs r7, 0x1
-_080CB132:
- cmp r7, 0
- beq _080CB13C
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB13C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB09C
-
- thumb_func_start sub_80CB144
-sub_80CB144: @ 80CB144
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CB170
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CB170
- ldr r0, _080CB198 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
-_080CB170:
- ldrh r0, [r4, 0x22]
- adds r0, 0x20
- strh r0, [r4, 0x22]
- ldr r1, _080CB19C @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x36]
- ldr r0, _080CB1A0 @ =sub_80CB1A4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB198: .4byte gUnknown_0202F7C9
-_080CB19C: .4byte gUnknown_03004B00
-_080CB1A0: .4byte sub_80CB1A4
- thumb_func_end sub_80CB144
-
- thumb_func_start sub_80CB1A4
-sub_80CB1A4: @ 80CB1A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bne _080CB1BA
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- b _080CB1C8
-_080CB1BA:
- cmp r0, 0
- ble _080CB1C8
- ldrh r0, [r4, 0x22]
- subs r0, 0x2
- strh r0, [r4, 0x22]
- subs r0, r1, 0x2
- strh r0, [r4, 0x30]
-_080CB1C8:
- ldrh r3, [r4, 0x32]
- ldrh r5, [r4, 0x38]
- adds r2, r3, r5
- strh r2, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r5, 0x36
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bge _080CB1E0
- adds r0, r2, r3
- strh r0, [r4, 0x38]
-_080CB1E0:
- ldrh r1, [r4, 0x38]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r5, 0x38
- ldrsh r0, [r4, r5]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CB220
- ldr r0, _080CB21C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- b _080CB22E
- .align 2, 0
-_080CB21C: .4byte gUnknown_0202F7C9
-_080CB220:
- ldr r0, _080CB258 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
-_080CB22E:
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CB252
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB252:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB258: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80CB1A4
-
- thumb_func_start sub_80CB25C
-sub_80CB25C: @ 80CB25C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _080CB290 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080CB294 @ =sub_80CB298
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB290: .4byte gUnknown_03004B00
-_080CB294: .4byte sub_80CB298
- thumb_func_end sub_80CB25C
-
- thumb_func_start sub_80CB298
-sub_80CB298: @ 80CB298
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CB2C8 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB2CC @ =0x0000ffff
- cmp r1, r0
- bne _080CB2C2
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x2E]
- ldr r0, _080CB2D0 @ =sub_80CB2D4
- str r0, [r4, 0x1C]
-_080CB2C2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB2C8: .4byte gUnknown_03004B00
-_080CB2CC: .4byte 0x0000ffff
-_080CB2D0: .4byte sub_80CB2D4
- thumb_func_end sub_80CB298
-
- thumb_func_start sub_80CB2D4
-sub_80CB2D4: @ 80CB2D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CB2EC
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- b _080CB2F0
-_080CB2EC:
- ldrh r0, [r4, 0x2E]
- subs r0, 0xB
-_080CB2F0:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CB30C
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x32]
-_080CB30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB33A
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- ble _080CB334
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- b _080CB33A
-_080CB334:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB33A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB2D4
-
- thumb_func_start sub_80CB340
-sub_80CB340: @ 80CB340
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CB36C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080CB370
- adds r0, r4, 0
- bl move_anim_task_del
- b _080CB396
- .align 2, 0
-_080CB36C: .4byte gSprites
-_080CB370:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8078E70
- ldr r1, _080CB39C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080CB3A0 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r0, 0x8]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xA]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x1E]
- ldr r1, _080CB3A4 @ =sub_80CB3A8
- str r1, [r0]
-_080CB396:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB39C: .4byte gTasks
-_080CB3A0: .4byte gUnknown_03004B00
-_080CB3A4: .4byte sub_80CB3A8
- thumb_func_end sub_80CB340
-
- thumb_func_start sub_80CB3A8
-sub_80CB3A8: @ 80CB3A8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080CB428 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- ldrh r0, [r4, 0x1C]
- adds r1, r0
- strh r1, [r4, 0x1C]
- ldr r2, _080CB42C @ =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r2
- lsls r1, 16
- asrs r1, 24
- strh r1, [r5, 0x24]
- ldr r0, _080CB430 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CB3F2
- ldrh r0, [r5, 0x24]
- negs r0, r0
- strh r0, [r5, 0x24]
-_080CB3F2:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x10
- strh r0, [r4, 0x1E]
- movs r0, 0x1E
- ldrsh r2, [r4, r0]
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r6, 0
- bl sub_8079A64
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CB420
- strh r0, [r4, 0x8]
- ldr r0, _080CB434 @ =sub_80CB438
- str r0, [r4]
-_080CB420:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB428: .4byte gTasks
-_080CB42C: .4byte gSprites
-_080CB430: .4byte gUnknown_0202F7C9
-_080CB434: .4byte sub_80CB438
- thumb_func_end sub_80CB3A8
-
- thumb_func_start sub_80CB438
-sub_80CB438: @ 80CB438
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080CB484 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080CB488 @ =0x0000ffff
- cmp r1, r0
- bne _080CB494
- ldr r0, _080CB48C @ =gTasks
- lsls r2, r3, 2
- adds r1, r2, r3
- lsls r1, 3
- adds r6, r1, r0
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- adds r4, r0, 0
- cmp r5, 0
- bne _080CB4A8
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080CB490 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x24]
- strh r5, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _080CB4C2
- .align 2, 0
-_080CB484: .4byte gUnknown_03004B00
-_080CB488: .4byte 0x0000ffff
-_080CB48C: .4byte gTasks
-_080CB490: .4byte gSprites
-_080CB494:
- ldr r1, _080CB4C8 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- movs r4, 0x8
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _080CB4C2
-_080CB4A8:
- adds r1, r2, r3
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080CB4C2
- adds r0, r3, 0
- bl move_anim_task_del
-_080CB4C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB4C8: .4byte gTasks
- thumb_func_end sub_80CB438
-
- thumb_func_start sub_80CB4CC
-sub_80CB4CC: @ 80CB4CC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CB4DE
- cmp r0, 0x1
- beq _080CB538
- b _080CB58A
-_080CB4DE:
- ldr r6, _080CB530 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CB4F6
- ldr r1, _080CB534 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080CB4F6:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB534 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080CB58A
- .align 2, 0
-_080CB530: .4byte gUnknown_0202F7C9
-_080CB534: .4byte gUnknown_03004B00
-_080CB538:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CB58A
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CB594 @ =sub_8078CC0
- str r0, [r5, 0x1C]
- ldr r1, _080CB598 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CB58A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB590: .4byte gUnknown_0202F7C8
-_080CB594: .4byte sub_8078CC0
-_080CB598: .4byte move_anim_8072740
- thumb_func_end sub_80CB4CC
-
- thumb_func_start sub_80CB59C
-sub_80CB59C: @ 80CB59C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CB608
- ldr r4, _080CB614 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080CB618 @ =gUnknown_03004B00
- ldrh r0, [r4]
- strh r0, [r5, 0x24]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x26]
- ldrb r0, [r4, 0x4]
- adds r0, 0x1E
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r4, 0x6]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r2, 0x22
- ldrsh r0, [r5, r2]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _080CB608
- ldrh r0, [r5, 0x22]
- adds r1, r0, 0
- subs r1, 0x78
- ldrh r2, [r5, 0x26]
- adds r0, r2
- adds r1, r0
- strh r1, [r5, 0x22]
-_080CB608:
- ldr r0, _080CB61C @ =sub_80CB710
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB614: .4byte gUnknown_0202F7C8
-_080CB618: .4byte gUnknown_03004B00
-_080CB61C: .4byte sub_80CB710
- thumb_func_end sub_80CB59C
-
- thumb_func_start sub_80CB620
-sub_80CB620: @ 80CB620
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- mov r9, r0
- ldr r4, _080CB6FC @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _080CB700 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- subs r4, r5
- lsls r4, 16
- lsrs r2, 24
- mov r1, r8
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- lsrs r3, r4, 16
- mov r10, r3
- asrs r4, 16
- ldr r6, _080CB704 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- muls r0, r4
- movs r1, 0x64
- str r2, [sp]
- bl __divsi3
- adds r5, r0
- mov r3, r9
- strh r5, [r3, 0x20]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r6, r3]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- add r8, r0
- mov r1, r8
- mov r0, r9
- strh r1, [r0, 0x22]
- ldrh r0, [r6, 0x2]
- mov r3, r9
- strh r0, [r3, 0x24]
- ldrh r0, [r6, 0x4]
- strh r0, [r3, 0x26]
- ldrb r0, [r6, 0x6]
- adds r0, 0x1E
- mov r1, r9
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0x8]
- mov r0, r9
- bl StartSpriteAnim
- ldrh r0, [r6, 0xA]
- mov r1, r9
- strh r0, [r1, 0x32]
- ldr r0, _080CB708 @ =sub_80CB710
- str r0, [r1, 0x1C]
- ldr r1, _080CB70C @ =gUnknown_03000728
- mov r3, r9
- ldrh r0, [r3, 0x20]
- strh r0, [r1]
- ldrh r0, [r3, 0x22]
- strh r0, [r1, 0x2]
- mov r0, r10
- strh r0, [r1, 0x4]
- ldr r2, [sp]
- strh r2, [r1, 0x6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB6FC: .4byte gUnknown_0202F7C8
-_080CB700: .4byte gUnknown_0202F7C9
-_080CB704: .4byte gUnknown_03004B00
-_080CB708: .4byte sub_80CB710
-_080CB70C: .4byte gUnknown_03000728
- thumb_func_end sub_80CB620
-
- thumb_func_start sub_80CB710
-sub_80CB710: @ 80CB710
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- adds r1, 0x1
- strh r1, [r3, 0x2E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080CB750
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- movs r2, 0x3E
- adds r2, r3
- mov r12, r2
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_080CB750:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r1, r0
- ble _080CB762
- adds r0, r3, 0
- bl move_anim_8072740
-_080CB762:
- pop {r0}
- bx r0
- thumb_func_end sub_80CB710
-
- thumb_func_start sub_80CB768
-sub_80CB768: @ 80CB768
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB7A8
- ldr r5, _080CB7E4 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CB7E8 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x30]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x32]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x34]
-_080CB7A8:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
- ldrh r1, [r6, 0x30]
- muls r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0xFF
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080CB7DE
- adds r0, r6, 0
- bl move_anim_8072740
-_080CB7DE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB7E4: .4byte gUnknown_0202F7C8
-_080CB7E8: .4byte gUnknown_03004B00
- thumb_func_end sub_80CB768
-
- thumb_func_start sub_80CB7EC
-sub_80CB7EC: @ 80CB7EC
- push {r4,r5,lr}
- movs r2, 0x20
- ldrsh r4, [r0, r2]
- lsls r4, 8
- movs r3, 0x22
- ldrsh r2, [r0, r3]
- orrs r4, r2
- movs r5, 0x3A
- ldrsh r2, [r0, r5]
- lsls r2, 8
- movs r5, 0x3C
- ldrsh r3, [r0, r5]
- orrs r2, r3
- lsls r1, 8
- strh r4, [r0, 0x38]
- strh r2, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB7EC
-
- thumb_func_start sub_80CB814
-sub_80CB814: @ 80CB814
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- ldrh r0, [r0, 0x38]
- lsrs r1, r0, 8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- ldrh r0, [r1, 0x3A]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r1, [r1, 0x3C]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- movs r3, 0xFF
- ands r3, r1
- cmp r2, 0
- bne _080CB84E
- movs r2, 0x20
- negs r2, r2
- b _080CB856
-_080CB84E:
- cmp r2, 0xFF
- bne _080CB856
- movs r2, 0x88
- lsls r2, 1
-_080CB856:
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- mov r1, r10
- subs r0, r2, r1
- lsls r5, r3, 16
- asrs r5, 16
- muls r0, r5
- lsls r1, r6, 16
- asrs r7, r1, 16
- adds r1, r7, 0
- bl __divsi3
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r5
- adds r1, r7, 0
- bl __divsi3
- add r6, r10
- mov r1, r8
- strh r6, [r1, 0x20]
- add r0, r9
- strh r0, [r1, 0x22]
- adds r5, 0x1
- lsls r5, 16
- lsrs r3, r5, 16
- asrs r5, 16
- cmp r5, r7
- beq _080CB8A8
- lsls r1, r7, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r1
- mov r1, r8
- strh r0, [r1, 0x3C]
- movs r0, 0
- b _080CB8AA
-_080CB8A8:
- movs r0, 0x1
-_080CB8AA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB814
-
- thumb_func_start sub_80CB8B8
-sub_80CB8B8: @ 80CB8B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080CB8CC
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CB8CC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- ble _080CB8E0
- adds r0, r4, 0
- bl move_anim_8072740
-_080CB8E0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB8B8
-
- thumb_func_start sub_80CB8E8
-sub_80CB8E8: @ 80CB8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB912
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB912:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CB942
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CB948 @ =sub_80CB8B8
- str r0, [r4, 0x1C]
-_080CB942:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB948: .4byte sub_80CB8B8
- thumb_func_end sub_80CB8E8
-
- thumb_func_start sub_80CB94C
-sub_80CB94C: @ 80CB94C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080CB994 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CB998 @ =gUnknown_0202F7C8
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CB99C
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CB9AE
- .align 2, 0
-_080CB994: .4byte gUnknown_0202F7C9
-_080CB998: .4byte gUnknown_0202F7C8
-_080CB99C:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CB9AE:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CB9C0 @ =sub_80CB8E8
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB9C0: .4byte sub_80CB8E8
- thumb_func_end sub_80CB94C
-
- thumb_func_start sub_80CB9C4
-sub_80CB9C4: @ 80CB9C4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CB9EE
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CB9EE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBA20
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBA20:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB9C4
-
- thumb_func_start sub_80CBA28
-sub_80CBA28: @ 80CBA28
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CBA64 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080CBA6C
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBA68 @ =sub_80CB8E8
- b _080CBA96
- .align 2, 0
-_080CBA64: .4byte gUnknown_0202F7C9
-_080CBA68: .4byte sub_80CB8E8
-_080CBA6C:
- movs r0, 0xFF
- strh r0, [r5, 0x3A]
- adds r0, r6, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CBA84
- movs r0, 0
- strh r0, [r5, 0x3A]
-_080CBA84:
- adds r0, r5, 0
- movs r1, 0x28
- bl sub_80CB7EC
- movs r0, 0x3
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBAA0 @ =sub_80CB9C4
-_080CBA96:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAA0: .4byte sub_80CB9C4
- thumb_func_end sub_80CBA28
-
- thumb_func_start sub_80CBAA4
-sub_80CBAA4: @ 80CBAA4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBABE
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldr r0, _080CBAE4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x30]
-_080CBABE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- muls r0, r1
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CBADE
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBADE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBAE4: .4byte gUnknown_03004B00
- thumb_func_end sub_80CBAA4
-
- thumb_func_start sub_80CBAE8
-sub_80CBAE8: @ 80CBAE8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_8078764
- ldr r4, _080CBB30 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CBB34 @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080CBB38
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x1
- b _080CBB4A
- .align 2, 0
-_080CBB30: .4byte gUnknown_0202F7C8
-_080CBB34: .4byte gUnknown_0202F7C9
-_080CBB38:
- strh r6, [r5, 0x3A]
- adds r0, r2, 0
- adds r0, 0xA
- strh r0, [r5, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3C
- bl sub_80CB7EC
- movs r0, 0x3
-_080CBB4A:
- strh r0, [r5, 0x34]
- movs r0, 0x3C
- strh r0, [r5, 0x36]
- ldr r0, _080CBB5C @ =sub_80CBB60
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBB5C: .4byte sub_80CBB60
- thumb_func_end sub_80CBAE8
-
- thumb_func_start sub_80CBB60
-sub_80CBB60: @ 80CBB60
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- ldrh r1, [r4, 0x2E]
- adds r1, r0
- movs r5, 0
- strh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _080CBB8A
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x2E]
-_080CBB8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- lsls r2, 3
- movs r1, 0x1E
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _080CBBBE
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBBE:
- adds r0, r4, 0
- bl sub_80CB814
- lsls r0, 24
- cmp r0, 0
- beq _080CBBE6
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x2E]
- ldr r0, _080CBBEC @ =sub_80CB8B8
- str r0, [r4, 0x1C]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
-_080CBBE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBBEC: .4byte sub_80CB8B8
- thumb_func_end sub_80CBB60
-
- thumb_func_start sub_80CBBF0
-sub_80CBBF0: @ 80CBBF0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CBC84
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CBC18
- ldr r0, _080CBC14 @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- strh r1, [r4, 0x30]
- movs r1, 0x78
- strh r1, [r4, 0x20]
- adds r5, r0, 0
- b _080CBC3A
- .align 2, 0
-_080CBC14: .4byte gUnknown_03004B00
-_080CBC18:
- ldr r0, _080CBC74 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r3, [r0, r1]
- adds r1, r3, 0
- subs r1, 0x20
- adds r2, r1, 0
- adds r5, r0, 0
- cmp r1, 0
- bge _080CBC2E
- adds r2, r3, 0
- adds r2, 0xDF
-_080CBC2E:
- asrs r0, r2, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- movs r0, 0x46
- strh r0, [r4, 0x20]
-_080CBC3A:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x32]
- movs r0, 0x14
- strh r0, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- ldr r0, _080CBC78 @ =sub_80CBC8C
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBC7C
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBC82
- .align 2, 0
-_080CBC74: .4byte gUnknown_03004B00
-_080CBC78: .4byte sub_80CBC8C
-_080CBC7C:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBC82:
- strb r0, [r1]
-_080CBC84:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBBF0
-
- thumb_func_start sub_80CBC8C
-sub_80CBC8C: @ 80CBC8C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBC9E
- cmp r0, 0x1
- beq _080CBCCE
- b _080CBCEE
-_080CBC9E:
- ldrh r5, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x4E
- ble _080CBCB6
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CBCEE
-_080CBCB6:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- adds r0, r5, r0
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x36]
- adds r1, 0x3
- strh r1, [r4, 0x36]
- strh r0, [r4, 0x22]
- b _080CBCEE
-_080CBCCE:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CBCEE
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080CBCEE
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x32]
- ldr r0, _080CBCF4 @ =sub_80CBCF8
- str r0, [r4, 0x1C]
-_080CBCEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBCF4: .4byte sub_80CBCF8
- thumb_func_end sub_80CBC8C
-
- thumb_func_start sub_80CBCF8
-sub_80CBCF8: @ 80CBCF8
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CBD3C @ =gUnknown_083D680C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r3, r0, r1
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrh r2, [r4, 0x32]
- movs r6, 0x32
- ldrsh r1, [r4, r6]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080CBD44
- adds r0, r5, 0x2
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x7F
- bne _080CBD30
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CBD40 @ =sub_80CBDB0
- str r0, [r4, 0x1C]
-_080CBD30:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CBDAA
- .align 2, 0
-_080CBD3C: .4byte gUnknown_083D680C
-_080CBD40: .4byte sub_80CBDB0
-_080CBD44:
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r0, r5
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080CBD92
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _080CBD8A
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
- b _080CBD90
-_080CBD8A:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
-_080CBD90:
- strb r0, [r1]
-_080CBD92:
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- movs r1, 0x3C
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
-_080CBDAA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBCF8
-
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080CBDC2
- adds r0, r4, 0
- bl move_anim_8072740
-_080CBDC2:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBDB0
-
- thumb_func_start sub_80CBDF4
-sub_80CBDF4: @ 80CBDF4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CBF48 @ =gTasks
- adds r5, r0, r1
- ldr r4, _080CBF4C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- strh r0, [r5, 0x1C]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0x1
- bne _080CBE5C
- movs r1, 0x1
-_080CBE5C:
- strh r1, [r5, 0x12]
- movs r3, 0x12
- ldrsh r0, [r5, r3]
- lsls r0, 6
- movs r1, 0x38
- subs r1, r0
- strh r1, [r5, 0x1A]
- ldrh r0, [r5, 0x16]
- subs r0, r1
- ldrh r1, [r5, 0x14]
- adds r0, r1
- strh r0, [r5, 0x18]
- ldr r0, _080CBF50 @ =gSpriteTemplate_83D6884
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- movs r3, 0x1A
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- cmp r0, 0x40
- bne _080CBE94
- adds r0, r6, 0
- bl move_anim_task_del
-_080CBE94:
- ldr r4, _080CBF54 @ =gSprites
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x18]
- strh r1, [r0, 0x30]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r5, r3]
- muls r1, r0
- ldrh r0, [r5, 0x14]
- subs r0, r1
- strh r0, [r2, 0x32]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x1A]
- strh r1, [r0, 0x34]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- lsrs r2, r0, 31
- adds r0, r2
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r2, [r5, r3]
- muls r0, r2
- ldrh r2, [r5, 0x16]
- adds r0, r2
- strh r0, [r1, 0x36]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80CC338
- movs r1, 0xC
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x38]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- ldr r0, _080CBF58 @ =sub_80CBF5C
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gUnknown_0202F7C9
-_080CBF50: .4byte gSpriteTemplate_83D6884
-_080CBF54: .4byte gSprites
-_080CBF58: .4byte sub_80CBF5C
- thumb_func_end sub_80CBDF4
-
- thumb_func_start sub_80CBF5C
-sub_80CBF5C: @ 80CBF5C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CBFA0 @ =gTasks
- adds r6, r0, r1
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080CBFA4 @ =gSprites
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r5, [r6, r1]
- cmp r5, 0x7
- bne _080CBF84
- b _080CC1B4
-_080CBF84:
- cmp r5, 0x7
- bgt _080CBFD2
- cmp r5, 0x3
- bne _080CBF8E
- b _080CC0A6
-_080CBF8E:
- cmp r5, 0x3
- bgt _080CBFA8
- cmp r5, 0x1
- beq _080CC038
- cmp r5, 0x1
- bgt _080CC088
- cmp r5, 0
- beq _080CC01A
- b _080CC330
- .align 2, 0
-_080CBFA0: .4byte gTasks
-_080CBFA4: .4byte gSprites
-_080CBFA8:
- cmp r5, 0x5
- bne _080CBFAE
- b _080CC11C
-_080CBFAE:
- cmp r5, 0x5
- ble _080CBFB4
- b _080CC196
-_080CBFB4:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFCA
- b _080CC330
-_080CBFCA:
- movs r0, 0x5
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CBFD2:
- cmp r5, 0xB
- bne _080CBFD8
- b _080CC298
-_080CBFD8:
- cmp r5, 0xB
- bgt _080CC006
- cmp r5, 0x9
- bne _080CBFE2
- b _080CC206
-_080CBFE2:
- cmp r5, 0x9
- ble _080CBFE8
- b _080CC27C
-_080CBFE8:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CBFFE
- b _080CC330
-_080CBFFE:
- movs r0, 0x9
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC006:
- cmp r5, 0xD
- bne _080CC00C
- b _080CC30A
-_080CC00C:
- cmp r5, 0xD
- bge _080CC012
- b _080CC2EA
-_080CC012:
- cmp r5, 0xFF
- bne _080CC018
- b _080CC31A
-_080CC018:
- b _080CC330
-_080CC01A:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC030
- b _080CC330
-_080CC030:
- movs r0, 0x1
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC038:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r0, [r6, 0x10]
- adds r0, 0x2
- strh r0, [r6, 0x10]
- strh r5, [r6, 0xE]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC088:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC09E
- b _080CC330
-_080CC09E:
- movs r0, 0x3
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC0A6:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r1, r0
- ldrh r0, [r6, 0x16]
- subs r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC11C:
- ldrh r1, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r1, r3
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r2, 0x1E
- ldrsh r0, [r6, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r0, r1
- ldrh r1, [r6, 0x16]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x3
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC196:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080CC1AC
- b _080CC330
-_080CC1AC:
- movs r0, 0x7
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC1B4:
- ldrh r2, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r2, r3
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x14]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x16]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- adds r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x4
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC206:
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r1, r0
- movs r0, 0
- strh r1, [r4, 0x20]
- ldrh r2, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r2, r3
- strh r2, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r3, 0x12
- ldrsh r1, [r6, r3]
- muls r1, r0
- ldrh r0, [r6, 0x14]
- subs r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, 0xA
- movs r2, 0x12
- ldrsh r1, [r6, r2]
- muls r0, r1
- ldrh r3, [r6, 0x16]
- adds r0, r3
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- movs r0, 0x5
- strh r0, [r6, 0xE]
- ldrh r0, [r6, 0x10]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC27C:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- movs r0, 0xB
- strh r0, [r6, 0x26]
- movs r0, 0xFF
- b _080CC32E
-_080CC298:
- ldrh r2, [r4, 0x24]
- ldrh r0, [r4, 0x20]
- adds r2, r0
- movs r0, 0
- strh r2, [r4, 0x20]
- ldrh r1, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrh r0, [r6, 0x18]
- strh r0, [r4, 0x32]
- strh r1, [r4, 0x34]
- ldrh r0, [r6, 0x1A]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_80CC338
- strh r0, [r4, 0x38]
- ldrh r1, [r6, 0x10]
- subs r1, 0x2
- strh r1, [r6, 0x10]
- movs r0, 0x6
- strh r0, [r6, 0xE]
- adds r0, r4, 0
- adds r0, 0x43
- strb r1, [r0]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl sub_80786EC
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC2EA:
- adds r0, r6, 0
- adds r1, r2, 0
- bl sub_80CC358
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080CC330
- adds r0, r4, 0
- bl DestroySprite
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- b _080CC32E
-_080CC30A:
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CC330
- adds r0, r2, 0
- bl move_anim_task_del
- b _080CC330
-_080CC31A:
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CC330
- movs r0, 0
- strh r0, [r6, 0xA]
- ldrh r0, [r6, 0x26]
-_080CC32E:
- strh r0, [r6, 0x8]
-_080CC330:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CBF5C
-
- thumb_func_start sub_80CC338
-sub_80CC338: @ 80CC338
- push {lr}
- movs r2, 0x8
- movs r3, 0x36
- ldrsh r1, [r0, r3]
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080CC34E
- negs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_080CC34E:
- lsls r0, r2, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80CC338
-
- thumb_func_start sub_80CC358
-sub_80CC358: @ 80CC358
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080CC3EE
- movs r0, 0
- strh r0, [r6, 0x24]
- ldr r0, _080CC3F8 @ =gSprites
- mov r8, r0
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- ldrh r2, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r0
- ldr r0, _080CC3FC @ =gSpriteTemplate_83D6884
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r3, [r6, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080CC3EE
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r0, r8
- adds r4, r5, r0
- strh r7, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x3C]
- ldr r0, _080CC400 @ =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldrh r2, [r6, 0x22]
- movs r0, 0x1
- ands r0, r2
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- ldrb r1, [r6, 0xE]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r6, 0x10]
- adds r4, 0x43
- strb r0, [r4]
- mov r0, r8
- adds r0, 0x1C
- adds r5, r0
- ldr r0, _080CC404 @ =sub_80CC408
- str r0, [r5]
-_080CC3EE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC3F8: .4byte gSprites
-_080CC3FC: .4byte gSpriteTemplate_83D6884
-_080CC400: .4byte gTasks
-_080CC404: .4byte sub_80CC408
- thumb_func_end sub_80CC358
-
- thumb_func_start sub_80CC408
-sub_80CC408: @ 80CC408
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CC46A
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CC46A
- ldr r3, _080CC470 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080CC46A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC470: .4byte gTasks
- thumb_func_end sub_80CC408
-
- thumb_func_start sub_80CC474
-sub_80CC474: @ 80CC474
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080CC488 @ =gUnknown_03004B00
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CC490
- ldr r0, _080CC48C @ =gUnknown_0202F7C8
- b _080CC492
- .align 2, 0
-_080CC488: .4byte gUnknown_03004B00
-_080CC48C: .4byte gUnknown_0202F7C8
-_080CC490:
- ldr r0, _080CC4B0 @ =gUnknown_0202F7C9
-_080CC492:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CC4BC
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, _080CC4B4 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080CC4B8 @ =0x0000fff0
- b _080CC4CC
- .align 2, 0
-_080CC4B0: .4byte gUnknown_0202F7C9
-_080CC4B4: .4byte gUnknown_03004B00
-_080CC4B8: .4byte 0x0000fff0
-_080CC4BC:
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r1, _080CC4F0 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r4, 0x32]
- movs r0, 0x80
- lsls r0, 1
-_080CC4CC:
- strh r0, [r4, 0x20]
- adds r7, r1, 0
- adds r5, r7, 0
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x34]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CC502
- cmp r0, 0x1
- bgt _080CC4F4
- cmp r0, 0
- beq _080CC4FE
- b _080CC56C
- .align 2, 0
-_080CC4F0: .4byte gUnknown_03004B00
-_080CC4F4:
- cmp r0, 0x2
- beq _080CC508
- cmp r0, 0x3
- beq _080CC534
- b _080CC56C
-_080CC4FE:
- ldrh r0, [r5]
- b _080CC518
-_080CC502:
- ldrh r0, [r5]
- strh r0, [r4, 0x22]
- b _080CC54E
-_080CC508:
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5]
- adds r0, r5
-_080CC518:
- strh r0, [r4, 0x22]
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080CC56C
-_080CC534:
- ldr r0, _080CC578 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7]
- adds r0, r7
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
-_080CC54E:
- adds r0, r6, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080CC56C:
- ldr r0, _080CC57C @ =sub_80CC580
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC578: .4byte gUnknown_0202F7C9
-_080CC57C: .4byte sub_80CC580
- thumb_func_end sub_80CC474
-
- thumb_func_start sub_80CC580
-sub_80CC580: @ 80CC580
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r3, [r4, r0]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- ldr r1, _080CC5D4 @ =gSineTable
- movs r5, 0x2E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r0, 8
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- muls r0, r3
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r0, [r4, r5]
- muls r0, r3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CC5D8
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r5, 0x20
- ldrsh r1, [r4, r5]
- adds r0, r1
- cmp r0, 0xF7
- ble _080CC5F0
- b _080CC5EA
- .align 2, 0
-_080CC5D4: .4byte gSineTable
-_080CC5D8:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _080CC5F0
-_080CC5EA:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CC5F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC580
-
- thumb_func_start sub_80CC5F8
-sub_80CC5F8: @ 80CC5F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080CC618 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CC61C
- cmp r0, 0x1
- beq _080CC650
- b _080CC6AA
- .align 2, 0
-_080CC618: .4byte gTasks
-_080CC61C:
- ldr r0, _080CC648 @ =0x0000274f
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2, 0
- adds r0, r4
- strh r0, [r5, 0x18]
- ldr r0, _080CC64C @ =0x000027b0
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080CC6AA
- .align 2, 0
-_080CC648: .4byte 0x0000274f
-_080CC64C: .4byte 0x000027b0
-_080CC650:
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x1A]
- lsls r0, 16
- cmp r0, 0
- blt _080CC6AA
- strh r7, [r5, 0x1A]
- ldrh r0, [r5, 0x18]
- ldrb r2, [r5, 0x1C]
- ldr r4, _080CC6C4 @ =gUnknown_083D6984
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x20]
- ldrb r2, [r5, 0x1C]
- movs r3, 0x1E
- ldrsh r1, [r5, r3]
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- bne _080CC6AA
- strh r7, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bne _080CC6AA
- strh r7, [r5, 0x1E]
-_080CC6AA:
- ldr r0, _080CC6C8 @ =gUnknown_03004B00
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080CC6BE
- adds r0, r6, 0
- bl move_anim_task_del
-_080CC6BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC6C4: .4byte gUnknown_083D6984
-_080CC6C8: .4byte gUnknown_03004B00
- thumb_func_end sub_80CC5F8
-
- thumb_func_start sub_80CC6CC
-sub_80CC6CC: @ 80CC6CC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _080CC6E4 @ =gUnknown_03004B00
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CC6E8
- adds r0, r6, 0
- bl move_anim_8072740
- b _080CC7C2
- .align 2, 0
-_080CC6E4: .4byte gUnknown_03004B00
-_080CC6E8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CC6F8
- ldr r4, _080CC6F4 @ =gUnknown_0202F7C8
- b _080CC6FA
- .align 2, 0
-_080CC6F4: .4byte gUnknown_0202F7C8
-_080CC6F8:
- ldr r4, _080CC734 @ =gUnknown_0202F7C9
-_080CC6FA:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CC738 @ =gUnknown_03004B00
- ldrh r1, [r0, 0x8]
- strh r1, [r6, 0x2E]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r7, r0, 0
- cmp r1, 0
- bne _080CC73C
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x20]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x38]
- strh r2, [r6, 0x3A]
- b _080CC74C
- .align 2, 0
-_080CC734: .4byte gUnknown_0202F7C9
-_080CC738: .4byte gUnknown_03004B00
-_080CC73C:
- strh r5, [r6, 0x20]
- strh r2, [r6, 0x22]
- ldrh r0, [r7, 0x4]
- adds r0, r5
- strh r0, [r6, 0x38]
- ldrh r0, [r7, 0x6]
- adds r0, r2
- strh r0, [r6, 0x3A]
-_080CC74C:
- ldrh r4, [r6, 0x20]
- lsls r0, r4, 4
- strh r0, [r6, 0x30]
- ldrh r5, [r6, 0x22]
- lsls r0, r5, 4
- strh r0, [r6, 0x32]
- movs r1, 0x38
- ldrsh r0, [r6, r1]
- movs r2, 0x20
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x34]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x22
- ldrsh r1, [r6, r2]
- subs r0, r1
- lsls r0, 4
- movs r3, 0x8
- ldrsh r1, [r7, r3]
- bl __divsi3
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x38]
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r6, 0x3A]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CC7AE
- ldr r1, _080CC7CC @ =0xffff8000
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080CC7AE:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080CC7D0 @ =sub_80CC7D4
- str r0, [r6, 0x1C]
-_080CC7C2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC7CC: .4byte 0xffff8000
-_080CC7D0: .4byte sub_80CC7D4
- thumb_func_end sub_80CC6CC
-
- thumb_func_start sub_80CC7D4
-sub_80CC7D4: @ 80CC7D4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080CC804
- ldrh r0, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r0, r4
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r4, [r2, 0x32]
- adds r1, r4
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x2E]
- b _080CC80A
-_080CC804:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080CC80A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC7D4
-
- thumb_func_start sub_80CC810
-sub_80CC810: @ 80CC810
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CC826
- adds r0, r2, 0
- bl move_anim_8072740
-_080CC826:
- pop {r0}
- bx r0
- thumb_func_end sub_80CC810
-
- thumb_func_start sub_80CC82C
-sub_80CC82C: @ 80CC82C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CC84C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CC854
- ldr r2, _080CC850 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- b _080CC860
- .align 2, 0
-_080CC84C: .4byte gUnknown_0202F7C8
-_080CC850: .4byte gUnknown_03004B00
-_080CC854:
- ldr r0, _080CC878 @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CC860:
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CC87C @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080CC880 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC878: .4byte gUnknown_03004B00
-_080CC87C: .4byte sub_8078600
-_080CC880: .4byte move_anim_8072740
- thumb_func_end sub_80CC82C
-
- thumb_func_start sub_80CC884
-sub_80CC884: @ 80CC884
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CC8BC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CC89E
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CC89E:
- ldr r0, _080CC8C0 @ =sub_80CC810
- str r0, [r5, 0x1C]
- ldr r4, _080CC8C4 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC8BC: .4byte gUnknown_0202F7C8
-_080CC8C0: .4byte sub_80CC810
-_080CC8C4: .4byte gUnknown_03004B00
- thumb_func_end sub_80CC884
-
- thumb_func_start sub_80CC8C8
-sub_80CC8C8: @ 80CC8C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CC908 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x38]
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080CC90C @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CC910 @ =sub_8078504
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC908: .4byte gUnknown_03004B00
-_080CC90C: .4byte move_anim_8074EE0
-_080CC910: .4byte sub_8078504
- thumb_func_end sub_80CC8C8
-
- thumb_func_start sub_80CC914
-sub_80CC914: @ 80CC914
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CC964 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CC948
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080CC948:
- ldr r0, _080CC968 @ =sub_80CCB00
- str r0, [r5, 0x1C]
- ldr r0, _080CC96C @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CC970
- ldrh r0, [r3]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080CC984
- .align 2, 0
-_080CC964: .4byte gUnknown_0202F7C9
-_080CC968: .4byte sub_80CCB00
-_080CC96C: .4byte gUnknown_03004B00
-_080CC970:
- ldrh r0, [r5, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r5, 0x20]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CC984:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldr r1, _080CC9B8 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r5, 0x30]
- adds r1, r0, r2
- strh r1, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CC9B2
- negs r0, r1
- strh r0, [r5, 0x30]
-_080CC9B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC9B8: .4byte 0xfffffc00
- thumb_func_end sub_80CC914
-
- thumb_func_start sub_80CC9BC
-sub_80CC9BC: @ 80CC9BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, _080CC9D8 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CC9DC
- cmp r0, 0x1
- ble _080CCA58
- cmp r0, 0x2
- beq _080CC9FC
- b _080CCA58
- .align 2, 0
-_080CC9D8: .4byte gUnknown_03004B00
-_080CC9DC:
- ldr r5, _080CC9F8 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- eors r4, r0
- adds r0, r4, 0
- b _080CCA68
- .align 2, 0
-_080CC9F8: .4byte gUnknown_0202F7C9
-_080CC9FC:
- ldr r5, _080CCA54 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- movs r2, 0x2
- mov r8, r2
- mov r1, r8
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CCA72
- ldrb r0, [r5]
- mov r2, r8
- eors r0, r2
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- lsrs r7, r0, 1
- ldrb r0, [r5]
- mov r1, r8
- eors r0, r1
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- lsrs r4, r0, 1
- b _080CCA72
- .align 2, 0
-_080CCA54: .4byte gUnknown_0202F7C9
-_080CCA58:
- ldr r4, _080CCAA4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
-_080CCA68:
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCA72:
- strh r7, [r6, 0x20]
- strh r4, [r6, 0x22]
- ldr r0, _080CCAA4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CCA8A
- ldrh r0, [r6, 0x22]
- adds r0, 0x8
- strh r0, [r6, 0x22]
-_080CCA8A:
- ldr r0, _080CCAA8 @ =sub_80CCB00
- str r0, [r6, 0x1C]
- ldr r0, _080CCAAC @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080CCAB0
- ldrh r0, [r3]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- b _080CCAC4
- .align 2, 0
-_080CCAA4: .4byte gUnknown_0202F7C9
-_080CCAA8: .4byte sub_80CCB00
-_080CCAAC: .4byte gUnknown_03004B00
-_080CCAB0:
- ldrh r0, [r6, 0x20]
- ldrh r1, [r3]
- subs r0, r1
- strh r0, [r6, 0x20]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080CCAC4:
- ldrh r0, [r3, 0x2]
- ldrh r2, [r6, 0x22]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldr r1, _080CCAFC @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r6, 0x30]
- adds r1, r0, r2
- strh r1, [r6, 0x30]
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- ldrh r2, [r6, 0x32]
- adds r0, r2
- strh r0, [r6, 0x32]
- ldrh r0, [r3, 0x4]
- strh r0, [r6, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CCAF2
- negs r0, r1
- strh r0, [r6, 0x30]
-_080CCAF2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCAFC: .4byte 0xfffffc00
- thumb_func_end sub_80CC9BC
-
- thumb_func_start sub_80CCB00
-sub_80CCB00: @ 80CCB00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CCB22
- adds r0, r1, 0
- adds r0, 0x18
- b _080CCB26
-_080CCB22:
- adds r0, r1, 0
- subs r0, 0x18
-_080CCB26:
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- subs r0, 0x18
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080CCB5C
- ldr r1, _080CCB64 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _080CCB68 @ =sub_80782D8
- str r0, [r4, 0x1C]
-_080CCB5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCB64: .4byte move_anim_8072740
-_080CCB68: .4byte sub_80782D8
- thumb_func_end sub_80CCB00
-
- thumb_func_start unref_sub_80CCB6C
-unref_sub_80CCB6C: @ 80CCB6C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _080CCC10
- ldrh r1, [r5, 0x34]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCBC8
- adds r3, r5, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r1
- strb r0, [r3]
- ldr r4, _080CCBC4 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r3, [r0]
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _080CCBFE
- .align 2, 0
-_080CCBC4: .4byte gSprites
-_080CCBC8:
- adds r1, r5, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r3, _080CCC0C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
-_080CCBFE:
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- b _080CCC14
- .align 2, 0
-_080CCC0C: .4byte gSprites
-_080CCC10:
- adds r0, r1, 0x1
- strh r0, [r5, 0x32]
-_080CCC14:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xA
- bne _080CCC44
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080CCC4C @ =gSprites
- adds r0, r4
- bl DestroySprite
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0
- bl move_anim_8072740
-_080CCC44:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCC4C: .4byte gSprites
- thumb_func_end unref_sub_80CCB6C
-
- thumb_func_start sub_80CCC50
-sub_80CCC50: @ 80CCC50
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080CCC70 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCC74 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CCC78
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080CCC7E
- .align 2, 0
-_080CCC70: .4byte gUnknown_03004B00
-_080CCC74: .4byte gUnknown_0202F7C8
-_080CCC78:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080CCC7E:
- strh r0, [r5, 0x20]
- ldr r4, _080CCCAC @ =gUnknown_03004B00
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080CCCB0 @ =sub_80CCCB4
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCCAC: .4byte gUnknown_03004B00
-_080CCCB0: .4byte sub_80CCCB4
- thumb_func_end sub_80CCC50
-
- thumb_func_start sub_80CCCB4
-sub_80CCCB4: @ 80CCCB4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x64
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- bgt _080CCCE0
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- b _080CCCE6
-_080CCCE0:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0xE
-_080CCCE6:
- strb r0, [r1]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x82
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080CCD1C
- adds r0, r4, 0
- bl move_anim_8072740
-_080CCD1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CCCB4
-
- thumb_func_start sub_80CCD24
-sub_80CCD24: @ 80CCD24
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CCD3A
- ldr r1, _080CCD98 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- adds r0, 0x8
- strh r0, [r1, 0x2]
-_080CCD3A:
- ldr r6, _080CCD9C @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080CCD98 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CCD78
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CCDA0
-_080CCD78:
- ldrb r0, [r6]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- b _080CCDB8
- .align 2, 0
-_080CCD98: .4byte gUnknown_03004B00
-_080CCD9C: .4byte gUnknown_0202F7C8
-_080CCDA0:
- ldrb r0, [r6]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080CCDB8:
- ldr r0, _080CCDF8 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080CCDFC @ =0x00002828
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3
- strh r0, [r5, 0x32]
- movs r2, 0x10
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldr r1, _080CCE00 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- ldr r3, _080CCE04 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x3C]
- lsls r0, r1, 8
- subs r2, r1
- orrs r0, r2
- strh r0, [r3]
- ldr r0, _080CCE08 @ =sub_80CCE0C
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCDF8: .4byte gUnknown_03004B00
-_080CCDFC: .4byte 0x00002828
-_080CCE00: .4byte REG_BLDCNT
-_080CCE04: .4byte REG_BLDALPHA
-_080CCE08: .4byte sub_80CCE0C
- thumb_func_end sub_80CCD24
-
- thumb_func_start sub_80CCE0C
-sub_80CCE0C: @ 80CCE0C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x60
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE6A
- movs r0, 0
- strh r0, [r4, 0x30]
- ldr r1, _080CCEB0 @ =gPlttBufferFaded
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r5, [r0]
- movs r2, 0
- adds r6, r1, 0
- adds r3, r6, 0
-_080CCE44:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- adds r2, 0x1
- adds r0, r2
- lsls r1, r0, 1
- adds r1, r3
- adds r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- cmp r2, 0x5
- ble _080CCE44
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- adds r0, 0x7
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_080CCE6A:
- ldrh r2, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- ble _080CCE9E
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _080CCEB8
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCE9E
- movs r0, 0
- strh r0, [r4, 0x3A]
- subs r2, 0x1
- strh r2, [r4, 0x3C]
- ldr r3, _080CCEB4 @ =REG_BLDALPHA
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- strh r1, [r3]
-_080CCE9E:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCEB8
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080CCEF4
- .align 2, 0
-_080CCEB0: .4byte gPlttBufferFaded
-_080CCEB4: .4byte REG_BLDALPHA
-_080CCEB8:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CCEF4
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r1, 0x1
- strh r1, [r4, 0x3C]
- ldr r3, _080CCEFC @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CCEF4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CCF00 @ =sub_807861C
- str r0, [r4, 0x1C]
-_080CCEF4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCEFC: .4byte REG_BLDALPHA
-_080CCF00: .4byte sub_807861C
- thumb_func_end sub_80CCE0C
-
- thumb_func_start sub_80CCF04
-sub_80CCF04: @ 80CCF04
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CCF5C @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CCF60 @ =0x0000ffe8
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- strh r5, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x3C]
- ldr r1, _080CCF64 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080CCF68 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080CCF6C @ =sub_80CCF70
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCF5C: .4byte gUnknown_0202F7C9
-_080CCF60: .4byte 0x0000ffe8
-_080CCF64: .4byte REG_BLDCNT
-_080CCF68: .4byte REG_BLDALPHA
-_080CCF6C: .4byte sub_80CCF70
- thumb_func_end sub_80CCF04
-
- thumb_func_start sub_80CCF70
-sub_80CCF70: @ 80CCF70
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CCF7E
- b _080CD0C0
-_080CCF7E:
- lsls r0, 2
- ldr r1, _080CCF88 @ =_080CCF8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CCF88: .4byte _080CCF8C
- .align 2, 0
-_080CCF8C:
- .4byte _080CCFA0
- .4byte _080CD004
- .4byte _080CD020
- .4byte _080CD09C
- .4byte _080CD0B0
-_080CCFA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080CCFAE
- b _080CD0C0
-_080CCFAE:
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CCFD0
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CCFDE
- adds r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CCFDE
-_080CCFD0:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CCFDE
- subs r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CCFDE:
- ldr r2, _080CD000 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x3C]
- lsls r0, 8
- ldrh r1, [r4, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD0C0
- strh r0, [r4, 0x30]
- b _080CD0A8
- .align 2, 0
-_080CD000: .4byte REG_BLDALPHA
-_080CD004:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD0C0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080CD0A8
-_080CD020:
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x4
- bl sub_80CD0CC
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD042
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080CD042:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _080CD0C0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080CD068
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080CD076
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- b _080CD076
-_080CD068:
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080CD076
- adds r0, r1, 0x1
- strh r0, [r4, 0x3C]
-_080CD076:
- ldr r0, _080CD098 @ =REG_BLDALPHA
- ldrh r1, [r4, 0x3C]
- lsls r1, 8
- ldrh r2, [r4, 0x3A]
- orrs r1, r2
- strh r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080CD0C0
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080CD0C0
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- b _080CD0A8
- .align 2, 0
-_080CD098: .4byte REG_BLDALPHA
-_080CD09C:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080CD0A8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CD0C0
-_080CD0B0:
- ldr r0, _080CD0C8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD0C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD0C8: .4byte REG_BLDCNT
- thumb_func_end sub_80CCF70
-
- thumb_func_start sub_80CD0CC
-sub_80CD0CC: @ 80CD0CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0xB
- bgt _080CD0DE
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0DE:
- ldrh r5, [r4, 0x34]
- adds r0, r5, 0
- subs r0, 0x12
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- cmp r0, 0x17
- bhi _080CD0F4
- ldrh r0, [r4, 0x36]
- subs r0, 0x2
- strh r0, [r4, 0x36]
-_080CD0F4:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _080CD102
- ldrh r0, [r4, 0x36]
- adds r0, 0x2
- strh r0, [r4, 0x36]
-_080CD102:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x9
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl __divsi3
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- bge _080CD128
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080CD128:
- adds r0, r5, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _080CD138
- movs r0, 0
- strh r0, [r4, 0x34]
-_080CD138:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD0CC
-
- thumb_func_start sub_80CD140
-sub_80CD140: @ 80CD140
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CD184 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD154
- adds r0, r4, 0
- bl sub_8078650
-_080CD154:
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080CD188 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD18C @ =sub_8078394
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD184: .4byte gUnknown_03004B00
-_080CD188: .4byte move_anim_8072740
-_080CD18C: .4byte sub_8078394
- thumb_func_end sub_80CD140
-
- thumb_func_start sub_80CD190
-sub_80CD190: @ 80CD190
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CD1A4 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CD1AC
- ldr r0, _080CD1A8 @ =gUnknown_0202F7C8
- b _080CD1AE
- .align 2, 0
-_080CD1A4: .4byte gUnknown_03004B00
-_080CD1A8: .4byte gUnknown_0202F7C8
-_080CD1AC:
- ldr r0, _080CD1F0 @ =gUnknown_0202F7C9
-_080CD1AE:
- ldrb r6, [r0]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- movs r1, 0x2
- adds r0, r6, 0
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CD1F8
- ldr r4, _080CD1F4 @ =gUnknown_03004B00
- ldrb r1, [r4, 0xC]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- adds r0, r6, 0
- bl sub_807A3FC
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- b _080CD248
- .align 2, 0
-_080CD1F0: .4byte gUnknown_0202F7C9
-_080CD1F4: .4byte gUnknown_03004B00
-_080CD1F8:
- ldr r4, _080CD218 @ =gUnknown_03004B00
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CD21C
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- b _080CD22E
- .align 2, 0
-_080CD218: .4byte gUnknown_03004B00
-_080CD21C:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
-_080CD22E:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldr r0, _080CD268 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r5, 0
- bl sub_807867C
-_080CD248:
- ldr r1, _080CD268 @ =gUnknown_03004B00
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- ldr r1, _080CD26C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD270 @ =sub_8078394
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD268: .4byte gUnknown_03004B00
-_080CD26C: .4byte move_anim_8072740
-_080CD270: .4byte sub_8078394
- thumb_func_end sub_80CD190
-
- thumb_func_start sub_80CD274
-sub_80CD274: @ 80CD274
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD2A0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CD2A8
- ldr r0, _080CD2A4 @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _080CD2C2
- .align 2, 0
-_080CD2A0: .4byte gUnknown_0202F7C8
-_080CD2A4: .4byte gUnknown_03004B00
-_080CD2A8:
- ldr r2, _080CD2CC @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080CD2C2:
- ldr r0, _080CD2D0 @ =sub_80CD2D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD2CC: .4byte gUnknown_03004B00
-_080CD2D0: .4byte sub_80CD2D4
- thumb_func_end sub_80CD274
-
- thumb_func_start sub_80CD2D4
-sub_80CD2D4: @ 80CD2D4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CD30C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x1E
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r4, 0x26]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r0, 18
- asrs r0, 16
- movs r1, 0x3
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CD30C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CD320
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD320:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD2D4
-
- thumb_func_start sub_80CD328
-sub_80CD328: @ 80CD328
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080CD358 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CD360
- ldr r1, _080CD35C @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- b _080CD37E
- .align 2, 0
-_080CD358: .4byte gUnknown_0202F7C8
-_080CD35C: .4byte gUnknown_03004B00
-_080CD360:
- ldr r2, _080CD388 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldr r0, _080CD38C @ =0x0000ffff
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080CD37E:
- ldr r0, _080CD390 @ =sub_80CD394
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD388: .4byte gUnknown_03004B00
-_080CD38C: .4byte 0x0000ffff
-_080CD390: .4byte sub_80CD394
- thumb_func_end sub_80CD328
-
- thumb_func_start sub_80CD394
-sub_80CD394: @ 80CD394
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080CD3D8
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CD3D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD394
-
- thumb_func_start sub_80CD3E0
-sub_80CD3E0: @ 80CD3E0
- push {lr}
- ldrh r1, [r0, 0x20]
- subs r1, 0x20
- strh r1, [r0, 0x20]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x22]
- movs r1, 0x14
- strh r1, [r0, 0x2E]
- ldr r1, _080CD400 @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080CD404 @ =sub_80CD408
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CD400: .4byte sub_80782D8
-_080CD404: .4byte sub_80CD408
- thumb_func_end sub_80CD3E0
-
- thumb_func_start sub_80CD408
-sub_80CD408: @ 80CD408
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r6, [r5, 0x38]
- movs r1, 0x1
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080CD41E
- cmp r0, 0x1
- beq _080CD438
- b _080CD49E
-_080CD41E:
- strh r1, [r5, 0x2E]
- ldr r0, _080CD430 @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CD434 @ =sub_80CD408
- adds r0, r5, 0
- bl oamt_set_x3A_32
- b _080CD49E
- .align 2, 0
-_080CD430: .4byte sub_80782D8
-_080CD434: .4byte sub_80CD408
-_080CD438:
- ldrh r3, [r5, 0x24]
- ldrh r0, [r5, 0x20]
- adds r3, r0
- movs r0, 0
- strh r3, [r5, 0x20]
- ldrh r4, [r5, 0x26]
- ldrh r1, [r5, 0x22]
- adds r4, r1
- strh r4, [r5, 0x22]
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r2, _080CD4AC @ =gUnknown_083D6DDC
- lsls r0, r6, 16
- asrs r0, 24
- lsls r0, 1
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r3, r1
- strh r3, [r5, 0x32]
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r0
- strh r4, [r5, 0x36]
- ldr r0, _080CD4B0 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CD4B4 @ =sub_80CD4B8
- adds r0, r5, 0
- bl oamt_set_x3A_32
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xD2
- bl PlaySE12WithPanning
-_080CD49E:
- ldrh r0, [r5, 0x38]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x38]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4AC: .4byte gUnknown_083D6DDC
-_080CD4B0: .4byte sub_8078B34
-_080CD4B4: .4byte sub_80CD4B8
- thumb_func_end sub_80CD408
-
- thumb_func_start sub_80CD4B8
-sub_80CD4B8: @ 80CD4B8
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _080CD4E0
- movs r0, 0xA
- strh r0, [r2, 0x2E]
- ldr r0, _080CD4D8 @ =sub_80782D8
- str r0, [r2, 0x1C]
- ldr r1, _080CD4DC @ =sub_80CD4EC
- adds r0, r2, 0
- bl oamt_set_x3A_32
- b _080CD4E4
- .align 2, 0
-_080CD4D8: .4byte sub_80782D8
-_080CD4DC: .4byte sub_80CD4EC
-_080CD4E0:
- ldr r0, _080CD4E8 @ =sub_80CD408
- str r0, [r2, 0x1C]
-_080CD4E4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD4E8: .4byte sub_80CD408
- thumb_func_end sub_80CD4B8
-
- thumb_func_start sub_80CD4EC
-sub_80CD4EC: @ 80CD4EC
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x6]
- cmp r1, 0
- bne _080CD514
- movs r0, 0x3
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldr r0, _080CD50C @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CD510 @ =sub_80CD5A8
- adds r0, r5, 0
- bl oamt_set_x3A_32
- b _080CD594
- .align 2, 0
-_080CD50C: .4byte sub_80782D8
-_080CD510: .4byte sub_80CD5A8
-_080CD514:
- ldrh r0, [r5, 0x6]
- cmp r0, 0x2
- beq _080CD534
- cmp r0, 0x2
- bgt _080CD524
- cmp r0, 0x1
- beq _080CD52A
- b _080CD548
-_080CD524:
- cmp r0, 0x3
- beq _080CD53C
- b _080CD548
-_080CD52A:
- ldr r6, _080CD530 @ =0x0000fff8
- adds r7, r6, 0
- b _080CD54C
- .align 2, 0
-_080CD530: .4byte 0x0000fff8
-_080CD534:
- ldr r7, _080CD538 @ =0x0000fff8
- b _080CD54A
- .align 2, 0
-_080CD538: .4byte 0x0000fff8
-_080CD53C:
- movs r7, 0x8
- ldr r6, _080CD544 @ =0x0000fff8
- b _080CD54C
- .align 2, 0
-_080CD544: .4byte 0x0000fff8
-_080CD548:
- movs r7, 0x8
-_080CD54A:
- movs r6, 0x8
-_080CD54C:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080CD59C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080CD5A0 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CD5A4 @ =sub_80CD654
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CD594:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD59C: .4byte gUnknown_0202F7C9
-_080CD5A0: .4byte sub_8078B34
-_080CD5A4: .4byte sub_80CD654
- thumb_func_end sub_80CD4EC
-
- thumb_func_start sub_80CD5A8
-sub_80CD5A8: @ 80CD5A8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CD5C8
- ldrh r0, [r4, 0x30]
- adds r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CD5D8
- movs r0, 0x10
- b _080CD5D6
-_080CD5C8:
- ldrh r0, [r4, 0x30]
- subs r0, 0x3
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080CD5D8
- movs r0, 0
-_080CD5D6:
- strh r0, [r4, 0x30]
-_080CD5D8:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80791A8
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080CD634 @ =0x00007fff
- bl BlendPalettes
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _080CD640
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- lsls r0, r1, 5
- ldr r2, _080CD638 @ =gPlttBufferUnfaded + 0x210
- adds r0, r2
- lsls r1, 4
- ldr r3, _080CD63C @ =0x00000101
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- b _080CD648
- .align 2, 0
-_080CD634: .4byte 0x00007fff
-_080CD638: .4byte gPlttBufferUnfaded + 0x210
-_080CD63C: .4byte 0x00000101
-_080CD640:
- cmp r0, 0
- bne _080CD648
- ldr r0, _080CD650 @ =sub_80CD654
- str r0, [r4, 0x1C]
-_080CD648:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD650: .4byte sub_80CD654
- thumb_func_end sub_80CD5A8
-
- thumb_func_start sub_80CD654
-sub_80CD654: @ 80CD654
- push {lr}
- adds r2, r0, 0
- ldr r0, _080CD670 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080CD674 @ =0x0000ffff
- cmp r1, r0
- bne _080CD66C
- movs r0, 0
- strh r0, [r2, 0x30]
- strh r0, [r2, 0x2E]
- ldr r0, _080CD678 @ =sub_80CD67C
- str r0, [r2, 0x1C]
-_080CD66C:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD670: .4byte gUnknown_03004B00
-_080CD674: .4byte 0x0000ffff
-_080CD678: .4byte sub_80CD67C
- thumb_func_end sub_80CD654
-
- thumb_func_start sub_80CD67C
-sub_80CD67C: @ 80CD67C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080CD6B0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
-_080CD6B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _080CD6C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080CD6C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD67C
-
- thumb_func_start sub_80CD6CC
-sub_80CD6CC: @ 80CD6CC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080CD6EC @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CD6F0
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- b _080CD742
- .align 2, 0
-_080CD6EC: .4byte gUnknown_03004B00
-_080CD6F0:
- cmp r0, 0x2
- bne _080CD70C
- ldrh r0, [r3, 0x20]
- subs r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x20
- b _080CD73E
-_080CD70C:
- cmp r0, 0x3
- bne _080CD728
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- subs r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- b _080CD73E
-_080CD728:
- ldrh r0, [r3, 0x20]
- adds r0, 0x18
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x22]
- adds r0, 0x18
- strh r0, [r3, 0x22]
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
-_080CD73E:
- orrs r0, r1
- strb r0, [r3, 0x3]
-_080CD742:
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _080CD768 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080CD76C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldr r1, _080CD770 @ =sub_80CD3E0
- str r1, [r3, 0x1C]
- adds r0, r3, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD768: .4byte 0x000003ff
-_080CD76C: .4byte 0xfffffc00
-_080CD770: .4byte sub_80CD3E0
- thumb_func_end sub_80CD6CC
-
- thumb_func_start sub_80CD774
-sub_80CD774: @ 80CD774
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldr r0, _080CD79C @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080CD7B0
- cmp r0, 0x1
- bgt _080CD7A0
- cmp r0, 0
- beq _080CD7A6
- b _080CD7C0
- .align 2, 0
-_080CD79C: .4byte gUnknown_03004B00
-_080CD7A0:
- cmp r0, 0x2
- beq _080CD7B8
- b _080CD7C0
-_080CD7A6:
- ldr r0, _080CD7AC @ =sub_80CD7CC
- b _080CD7C2
- .align 2, 0
-_080CD7AC: .4byte sub_80CD7CC
-_080CD7B0:
- ldr r0, _080CD7B4 @ =sub_80CD8A8
- b _080CD7C2
- .align 2, 0
-_080CD7B4: .4byte sub_80CD8A8
-_080CD7B8:
- ldr r0, _080CD7BC @ =sub_80CD8F8
- b _080CD7C2
- .align 2, 0
-_080CD7BC: .4byte sub_80CD8F8
-_080CD7C0:
- ldr r0, _080CD7C8 @ =sub_80CD9B8
-_080CD7C2:
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080CD7C8: .4byte sub_80CD9B8
- thumb_func_end sub_80CD774
-
- thumb_func_start sub_80CD7CC
-sub_80CD7CC: @ 80CD7CC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x6
- strh r0, [r4, 0x2E]
- ldr r5, _080CD80C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD7EA
- movs r1, 0x2
-_080CD7EA:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD810 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD814 @ =sub_80CD81C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD818 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD80C: .4byte gUnknown_0202F7C8
-_080CD810: .4byte gUnknown_02024BE0
-_080CD814: .4byte sub_80CD81C
-_080CD818: .4byte sub_8078458
- thumb_func_end sub_80CD7CC
-
- thumb_func_start sub_80CD81C
-sub_80CD81C: @ 80CD81C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _080CD858
- ldr r1, _080CD898 @ =gUnknown_02024BE0
- ldr r4, _080CD89C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- movs r1, 0
- bl sub_8078E70
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldr r2, _080CD8A0 @ =0xfffffd00
- adds r1, r2, 0
- cmp r0, 0
- beq _080CD854
- movs r0, 0xC0
- lsls r0, 2
- adds r1, r0, 0
-_080CD854:
- strh r1, [r5, 0x36]
- strh r6, [r5, 0x38]
-_080CD858:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CD892
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CD8A4 @ =sub_80CD9B8
- str r0, [r5, 0x1C]
-_080CD892:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD898: .4byte gUnknown_02024BE0
-_080CD89C: .4byte gUnknown_0202F7C8
-_080CD8A0: .4byte 0xfffffd00
-_080CD8A4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD81C
-
- thumb_func_start sub_80CD8A8
-sub_80CD8A8: @ 80CD8A8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080CD8C6
- movs r0, 0x3
- negs r0, r0
- adds r1, r0, 0
-_080CD8C6:
- strh r1, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CD8EC @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- ldr r1, _080CD8F0 @ =sub_80CD9B8
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CD8F4 @ =sub_8078458
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD8E8: .4byte gUnknown_0202F7C8
-_080CD8EC: .4byte gUnknown_02024BE0
-_080CD8F0: .4byte sub_80CD9B8
-_080CD8F4: .4byte sub_8078458
- thumb_func_end sub_80CD8A8
-
- thumb_func_start sub_80CD8F8
-sub_80CD8F8: @ 80CD8F8
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CD912
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080CD918 @ =sub_80CD91C
- str r0, [r1, 0x1C]
-_080CD912:
- pop {r0}
- bx r0
- .align 2, 0
-_080CD918: .4byte sub_80CD91C
- thumb_func_end sub_80CD8F8
-
- thumb_func_start sub_80CD91C
-sub_80CD91C: @ 80CD91C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080CD96C
- ldr r1, _080CD958 @ =gUnknown_02024BE0
- ldr r4, _080CD95C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CD960
- movs r0, 0xFC
- lsls r0, 8
- strh r0, [r5, 0x36]
- movs r0, 0xC0
- lsls r0, 4
- b _080CD96A
- .align 2, 0
-_080CD958: .4byte gUnknown_02024BE0
-_080CD95C: .4byte gUnknown_0202F7C8
-_080CD960:
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r5, 0x36]
- movs r0, 0xF4
- lsls r0, 8
-_080CD96A:
- strh r0, [r5, 0x38]
-_080CD96C:
- ldrh r0, [r5, 0x36]
- ldrh r1, [r5, 0x38]
- adds r0, r1
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r5, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080CD9AC
- ldrh r0, [r5, 0x34]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- ldr r0, _080CD9B4 @ =sub_80CD9B8
- str r0, [r5, 0x1C]
-_080CD9AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD9B4: .4byte sub_80CD9B8
- thumb_func_end sub_80CD91C
-
- thumb_func_start sub_80CD9B8
-sub_80CD9B8: @ 80CD9B8
- push {lr}
- bl move_anim_8072740
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9B8
-
- thumb_func_start sub_80CD9C4
-sub_80CD9C4: @ 80CD9C4
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080CD9D0 @ =sub_80CD9D4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CD9D0: .4byte sub_80CD9D4
- thumb_func_end sub_80CD9C4
-
- thumb_func_start sub_80CD9D4
-sub_80CD9D4: @ 80CD9D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080CDA2E
- cmp r5, 0x1
- bgt _080CD9EA
- cmp r5, 0
- beq _080CD9F0
- b _080CDAC2
-_080CD9EA:
- cmp r5, 0x2
- beq _080CDA80
- b _080CDAC2
-_080CD9F0:
- strh r5, [r4, 0x30]
- ldr r1, _080CDA74 @ =gUnknown_02024BE0
- ldr r2, _080CDA78 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldr r2, _080CDA7C @ =0xfffffe00
- adds r1, r2, 0
- cmp r0, 0
- beq _080CDA18
- movs r0, 0x80
- lsls r0, 2
- adds r1, r0, 0
-_080CDA18:
- strh r1, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080CDA2E:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080CDAC2
- .align 2, 0
-_080CDA74: .4byte gUnknown_02024BE0
-_080CDA78: .4byte gUnknown_0202F7C8
-_080CDA7C: .4byte 0xfffffe00
-_080CDA80:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x38]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CDAC2
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_8072740
-_080CDAC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD9D4
-
- thumb_func_start sub_80CDAC8
-sub_80CDAC8: @ 80CDAC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080CDB0C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldr r1, _080CDB10 @ =gUnknown_02024BE0
- ldr r2, _080CDB14 @ =gUnknown_0202F7C8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r5, 0xA]
- strh r4, [r5, 0xC]
- ldr r0, _080CDB18 @ =gUnknown_03004B00
- movs r3, 0
- ldrsh r1, [r0, r3]
- cmp r1, 0
- beq _080CDB1C
- cmp r1, 0x1
- beq _080CDB38
- adds r0, r6, 0
- bl move_anim_task_del
- b _080CDB56
- .align 2, 0
-_080CDB0C: .4byte gTasks
-_080CDB10: .4byte gUnknown_02024BE0
-_080CDB14: .4byte gUnknown_0202F7C8
-_080CDB18: .4byte gUnknown_03004B00
-_080CDB1C:
- strh r1, [r5, 0xC]
- movs r0, 0x8
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- movs r0, 0x3
- strh r0, [r5, 0x12]
- cmp r2, 0
- bne _080CDB30
- negs r0, r0
- strh r0, [r5, 0x12]
-_080CDB30:
- ldr r0, _080CDB34 @ =sub_80CDB60
- b _080CDB54
- .align 2, 0
-_080CDB34: .4byte sub_80CDB60
-_080CDB38:
- movs r0, 0x8
- strh r0, [r5, 0xE]
- movs r0, 0xC0
- lsls r0, 3
- strh r0, [r5, 0x10]
- movs r1, 0xC0
- strh r1, [r5, 0x12]
- cmp r2, 0
- bne _080CDB52
- negs r0, r0
- strh r0, [r5, 0x10]
- negs r0, r1
- strh r0, [r5, 0x12]
-_080CDB52:
- ldr r0, _080CDB5C @ =sub_80CDD20
-_080CDB54:
- str r0, [r5]
-_080CDB56:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDB5C: .4byte sub_80CDD20
- thumb_func_end sub_80CDAC8
-
- thumb_func_start sub_80CDB60
-sub_80CDB60: @ 80CDB60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CDB84 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080CDB7A
- b _080CDD1A
-_080CDB7A:
- lsls r0, 2
- ldr r1, _080CDB88 @ =_080CDB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CDB84: .4byte gTasks
-_080CDB88: .4byte _080CDB8C
- .align 2, 0
-_080CDB8C:
- .4byte _080CDBA0
- .4byte _080CDBD2
- .4byte _080CDC2C
- .4byte _080CDCA4
- .4byte _080CDCE8
-_080CDBA0:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _080CDBB0
- ldrh r2, [r4, 0x12]
- ldrh r3, [r4, 0x10]
- adds r2, r3
- b _080CDCF6
-_080CDBB0:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r1, 0xC0
- cmp r0, 0
- bne _080CDBC6
- movs r2, 0xC0
- negs r2, r2
- adds r1, r2, 0
-_080CDBC6:
- strh r1, [r4, 0x12]
- ldrb r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- b _080CDCDC
-_080CDBD2:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDBF8
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- b _080CDD08
-_080CDBF8:
- movs r0, 0x8
- strh r0, [r4, 0xE]
- ldr r2, _080CDC28 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDC1E
- movs r1, 0x2
-_080CDC1E:
- strh r1, [r4, 0x12]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDCDC
- .align 2, 0
-_080CDC28: .4byte gSprites
-_080CDC2C:
- ldrh r2, [r4, 0xE]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC88
- ldrh r1, [r4, 0x14]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDC46
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- b _080CDD1A
-_080CDC46:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080CDC68
- ldr r2, _080CDC64 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r4, 0x10]
- adds r1, r2
- b _080CDC7C
- .align 2, 0
-_080CDC64: .4byte gSprites
-_080CDC68:
- ldr r2, _080CDC84 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r4, 0x12]
- subs r1, r2
-_080CDC7C:
- strh r1, [r0, 0x24]
- movs r0, 0x1
- strh r0, [r4, 0x14]
- b _080CDD08
- .align 2, 0
-_080CDC84: .4byte gSprites
-_080CDC88:
- ldr r2, _080CDCA0 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x24]
- movs r0, 0xC
- strh r0, [r4, 0xE]
- b _080CDCDC
- .align 2, 0
-_080CDCA0: .4byte gSprites
-_080CDCA4:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080CDCB4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
-_080CDCB4:
- movs r0, 0x3
- strh r0, [r4, 0xE]
- ldr r2, _080CDCE4 @ =gSprites
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x24]
- strh r0, [r4, 0x10]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080CDCDA
- movs r1, 0x8
-_080CDCDA:
- strh r1, [r4, 0x12]
-_080CDCDC:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _080CDD1A
- .align 2, 0
-_080CDCE4: .4byte gSprites
-_080CDCE8:
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080CDD14
- ldrh r2, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r2, r0
-_080CDCF6:
- strh r2, [r4, 0x10]
- ldr r3, _080CDD10 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_080CDD08:
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD1A
- .align 2, 0
-_080CDD10: .4byte gSprites
-_080CDD14:
- adds r0, r2, 0
- bl move_anim_task_del
-_080CDD1A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDB60
-
- thumb_func_start sub_80CDD20
-sub_80CDD20: @ 80CDD20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CDD5C @ =gTasks
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080CDD60
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x10]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8078F9C
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080CDD6C
- .align 2, 0
-_080CDD5C: .4byte gTasks
-_080CDD60:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080CDD6C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CDD20
-
- thumb_func_start sub_80CDD74
-sub_80CDD74: @ 80CDD74
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDD88 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDD90
- ldr r4, _080CDD8C @ =gUnknown_0202F7C8
- b _080CDD92
- .align 2, 0
-_080CDD88: .4byte gUnknown_03004B00
-_080CDD8C: .4byte gUnknown_0202F7C8
-_080CDD90:
- ldr r4, _080CDDD0 @ =gUnknown_0202F7C9
-_080CDD92:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldr r1, _080CDDD4 @ =sub_80CDEC0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDDD8 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDDD0: .4byte gUnknown_0202F7C9
-_080CDDD4: .4byte sub_80CDEC0
-_080CDDD8: .4byte sub_8078600
- thumb_func_end sub_80CDD74
-
- thumb_func_start sub_80CDDDC
-sub_80CDDDC: @ 80CDDDC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080CDE14 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE18 @ =0x0000ffd0
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _080CDE1C @ =sub_80CDE78
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDE20 @ =sub_8078600
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE14: .4byte gUnknown_0202F7C9
-_080CDE18: .4byte 0x0000ffd0
-_080CDE1C: .4byte sub_80CDE78
-_080CDE20: .4byte sub_8078600
- thumb_func_end sub_80CDDDC
-
- thumb_func_start sub_80CDE24
-sub_80CDE24: @ 80CDE24
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _080CDE68 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080CDE6C @ =gUnknown_03004B00
- ldr r2, _080CDE70 @ =0x0000ffd0
- adds r0, r2
- ldrh r1, [r1]
- adds r0, r1
- movs r6, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
- strh r6, [r4, 0x30]
- ldr r0, _080CDE74 @ =sub_80CDEC0
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDE68: .4byte gUnknown_0202F7C9
-_080CDE6C: .4byte gUnknown_03004B00
-_080CDE70: .4byte 0x0000ffd0
-_080CDE74: .4byte sub_80CDEC0
- thumb_func_end sub_80CDE24
-
- thumb_func_start sub_80CDE78
-sub_80CDE78: @ 80CDE78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDEA2
- movs r0, 0xC
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r1, _080CDEA8 @ =sub_80CDEB0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CDEAC @ =sub_8078364
- str r0, [r4, 0x1C]
-_080CDEA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDEA8: .4byte sub_80CDEB0
-_080CDEAC: .4byte sub_8078364
- thumb_func_end sub_80CDE78
-
- thumb_func_start sub_80CDEB0
-sub_80CDEB0: @ 80CDEB0
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- ldr r1, _080CDEBC @ =sub_80CDEC0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CDEBC: .4byte sub_80CDEC0
- thumb_func_end sub_80CDEB0
-
- thumb_func_start sub_80CDEC0
-sub_80CDEC0: @ 80CDEC0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CDF08
- movs r0, 0
- strh r0, [r3, 0x2E]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080CDF08
- adds r0, r3, 0
- bl move_anim_8072740
-_080CDF08:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDEC0
-
- thumb_func_start sub_80CDF0C
-sub_80CDF0C: @ 80CDF0C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CDF20 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CDF28
- ldr r4, _080CDF24 @ =gUnknown_0202F7C8
- b _080CDF2A
- .align 2, 0
-_080CDF20: .4byte gUnknown_03004B00
-_080CDF24: .4byte gUnknown_0202F7C8
-_080CDF28:
- ldr r4, _080CDF64 @ =gUnknown_0202F7C9
-_080CDF2A:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080CDF68 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x30]
- ldr r0, _080CDF6C @ =sub_80CDF70
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDF64: .4byte gUnknown_0202F7C9
-_080CDF68: .4byte gUnknown_03004B00
-_080CDF6C: .4byte sub_80CDF70
- thumb_func_end sub_80CDF0C
-
- thumb_func_start sub_80CDF70
-sub_80CDF70: @ 80CDF70
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _080CDF90
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_080CDF90:
- ldrh r0, [r2, 0x22]
- ldrh r1, [r2, 0x2E]
- subs r0, r1
- strh r0, [r2, 0x22]
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CDFAC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CDFAC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CDF70
-
- thumb_func_start sub_80CDFB0
-sub_80CDFB0: @ 80CDFB0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080CDFF8 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- movs r0, 0x2
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x34]
- strh r5, [r4, 0x36]
- subs r0, 0x42
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _080CDFFC @ =sub_80CE000
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CDFF8: .4byte gUnknown_0202F7C8
-_080CDFFC: .4byte sub_80CE000
- thumb_func_end sub_80CDFB0
-
- thumb_func_start sub_80CE000
-sub_80CE000: @ 80CE000
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080CE06C
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CE052
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC2
- bl PlaySE12WithPanning
-_080CE052:
- movs r1, 0
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE06C
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080CE06C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- ble _080CE096
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080CE096
- adds r0, r4, 0
- bl move_anim_8072740
-_080CE096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CE000
-
- thumb_func_start sub_80CE09C
-sub_80CE09C: @ 80CE09C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CE0E6
- ldr r4, _080CE0FC @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _080CE100 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x2]
- adds r0, r5
- strh r0, [r6, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE0E0
- ldrh r0, [r6, 0x22]
- adds r0, 0xA
- strh r0, [r6, 0x22]
-_080CE0E0:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- strh r0, [r6, 0x2E]
-_080CE0E6:
- ldr r0, _080CE100 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080CE104 @ =0x0000ffff
- cmp r1, r0
- bne _080CE0F6
- adds r0, r6, 0
- bl move_anim_8072740
-_080CE0F6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE0FC: .4byte gUnknown_0202F7C8
-_080CE100: .4byte gUnknown_03004B00
-_080CE104: .4byte 0x0000ffff
- thumb_func_end sub_80CE09C
-
- thumb_func_start sub_80CE108
-sub_80CE108: @ 80CE108
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CE128 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080CE134
- ldr r1, _080CE12C @ =gUnknown_03004B00
- ldr r0, _080CE130 @ =0x0000ffff
- strh r0, [r1, 0xE]
- b _080CE16C
- .align 2, 0
-_080CE128: .4byte gTasks
-_080CE12C: .4byte gUnknown_03004B00
-_080CE130: .4byte 0x0000ffff
-_080CE134:
- cmp r0, 0x2
- bne _080CE140
- adds r0, r2, 0
- bl move_anim_task_del
- b _080CE172
-_080CE140:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE172
- movs r0, 0
- strh r0, [r4, 0x8]
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- ldr r3, _080CE178 @ =REG_BLDALPHA
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _080CE172
-_080CE16C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080CE172:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE178: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE108
-
- thumb_func_start sub_80CE17C
-sub_80CE17C: @ 80CE17C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080CE1A4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080CE1A8 @ =sub_80CE1AC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE1A4: .4byte gUnknown_03004B00
-_080CE1A8: .4byte sub_80CE1AC
- thumb_func_end sub_80CE17C
-
- thumb_func_start sub_80CE1AC
-sub_80CE1AC: @ 80CE1AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080CE1C0
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _080CE1FC
-_080CE1C0:
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldr r4, _080CE204 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080CE208 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CE20C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080CE1FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE204: .4byte gUnknown_0202F7C8
-_080CE208: .4byte sub_8078B34
-_080CE20C: .4byte move_anim_8072740
- thumb_func_end sub_80CE1AC
-
- thumb_func_start sub_80CE210
-sub_80CE210: @ 80CE210
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080CE258 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080CE252
- movs r0, 0
- strh r0, [r3, 0x8]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _080CE25C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _080CE252
- adds r0, r4, 0
- bl move_anim_task_del
-_080CE252:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE258: .4byte gTasks
-_080CE25C: .4byte REG_BLDALPHA
- thumb_func_end sub_80CE210
-
- thumb_func_start unref_sub_80CE260
-unref_sub_80CE260: @ 80CE260
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _080CE2C8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080CE2BC
- ldr r6, _080CE2CC @ =gUnknown_03004B00
- ldr r5, _080CE2D0 @ =gUnknown_03004340
-_080CE274:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE290
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CE290
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE290:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE2AE
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8043DB0
-_080CE2AE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CE2C8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE274
-_080CE2BC:
- adds r0, r7, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE2C8: .4byte gUnknown_02024A68
-_080CE2CC: .4byte gUnknown_03004B00
-_080CE2D0: .4byte gUnknown_03004340
- thumb_func_end unref_sub_80CE260
-
- thumb_func_start unref_sub_80CE2D4
-unref_sub_80CE2D4: @ 80CE2D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _080CE2EE
-_080CE2DE:
- ldr r0, _080CE304 @ =gUnknown_03004340
- adds r0, r4, r0
- ldrb r0, [r0]
- bl sub_8043DFC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CE2EE:
- ldr r0, _080CE308 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080CE2DE
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE304: .4byte gUnknown_03004340
-_080CE308: .4byte gUnknown_02024A68
- thumb_func_end unref_sub_80CE2D4
-
- thumb_func_start sub_80CE30C
-sub_80CE30C: @ 80CE30C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE322
- movs r0, 0x30
- strh r0, [r4, 0x20]
- movs r0, 0x28
- b _080CE32A
-_080CE322:
- ldr r0, _080CE34C @ =gUnknown_03004B00
- ldrh r1, [r0]
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
-_080CE32A:
- strh r0, [r4, 0x22]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _080CE350 @ =sub_80CE354
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE34C: .4byte gUnknown_03004B00
-_080CE350: .4byte sub_80CE354
- thumb_func_end sub_80CE30C
-
- thumb_func_start sub_80CE354
-sub_80CE354: @ 80CE354
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE366
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE366:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE354
-
- thumb_func_start sub_80CE36C
-sub_80CE36C: @ 80CE36C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CE3A4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080CE3A8 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x30]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- ldr r0, _080CE3AC @ =sub_80CE3B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE3A4: .4byte gUnknown_0202F7C8
-_080CE3A8: .4byte gUnknown_03004B00
-_080CE3AC: .4byte sub_80CE3B0
- thumb_func_end sub_80CE36C
-
- thumb_func_start sub_80CE3B0
-sub_80CE3B0: @ 80CE3B0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE3DA
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r2, [r1, 0x32]
- movs r3, 0x32
- ldrsh r0, [r1, r3]
- cmp r0, 0x77
- bgt _080CE3DA
- ldrh r0, [r1, 0x22]
- adds r0, 0x1
- strh r0, [r1, 0x22]
- adds r0, r2, 0x1
- strh r0, [r1, 0x32]
-_080CE3DA:
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080CE3E8
- adds r0, r1, 0
- bl move_anim_8072740
-_080CE3E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE3B0
-
- thumb_func_start sub_80CE3EC
-sub_80CE3EC: @ 80CE3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- mov r8, r0
- ldr r0, _080CE4BC @ =0x0000ffff
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldr r0, _080CE4C0 @ =gTasks
- mov r9, r0
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r6, r5, r0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0xA]
- strh r4, [r6, 0xC]
- strh r1, [r6, 0xE]
- strh r4, [r6, 0x10]
- strh r4, [r6, 0x12]
- strh r4, [r6, 0x14]
- movs r0, 0xD
- strh r0, [r6, 0x16]
- movs r0, 0xE
- strh r0, [r6, 0x18]
- movs r0, 0xF
- strh r0, [r6, 0x1A]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- mov r10, r0
- mov r1, r8
- orrs r1, r0
- mov r8, r1
- movs r0, 0x8
- add r9, r0
- add r5, r9
- adds r0, r5, 0
- adds r0, 0x1C
- adds r5, 0x1E
- adds r1, r5, 0
- mov r2, r8
- bl sub_8079BF4
- ldr r0, _080CE4C4 @ =0x000027d2
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0x80
- lsls r4, 9
- adds r1, r4, 0
- lsls r1, r0
- mov r0, r10
- orrs r0, r1
- mov r10, r0
- ldr r0, _080CE4C8 @ =0x000027d3
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0
- mov r1, r10
- orrs r4, r1
- ldr r0, _080CE4CC @ =0x00007fbb
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080CE4D0 @ =sub_80CE4D4
- str r1, [r6]
- adds r0, r7, 0
- bl _call_via_r1
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE4BC: .4byte 0x0000ffff
-_080CE4C0: .4byte gTasks
-_080CE4C4: .4byte 0x000027d2
-_080CE4C8: .4byte 0x000027d3
-_080CE4CC: .4byte 0x00007fbb
-_080CE4D0: .4byte sub_80CE4D4
- thumb_func_end sub_80CE3EC
-
- thumb_func_start sub_80CE4D4
-sub_80CE4D4: @ 80CE4D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080CE4FC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080CE5C0
- cmp r1, 0x1
- bgt _080CE500
- cmp r1, 0
- beq _080CE50E
- b _080CE65E
- .align 2, 0
-_080CE4FC: .4byte gTasks
-_080CE500:
- cmp r1, 0x2
- bne _080CE506
- b _080CE618
-_080CE506:
- cmp r1, 0x3
- bne _080CE50C
- b _080CE64C
-_080CE50C:
- b _080CE65E
-_080CE50E:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bgt _080CE51C
- b _080CE65E
-_080CE51C:
- strh r1, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080CE568
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r2, [r4, 0x18]
- ldrh r3, [r4, 0x12]
- adds r2, r3
- strh r2, [r4, 0x12]
- ldrh r1, [r4, 0x1A]
- ldrh r5, [r4, 0x14]
- adds r1, r5
- strh r1, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r2, 11
- orrs r0, r2
- lsrs r1, 6
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- b _080CE572
-_080CE568:
- ldr r7, _080CE5B8 @ =0x00007fbb
- mov r12, r7
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080CE572:
- movs r2, 0x1
- movs r3, 0
- movs r1, 0
-_080CE578:
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- ands r0, r2
- lsls r5, r2, 17
- adds r6, r3, 0
- adds r6, 0x10
- adds r1, 0x1
- mov r8, r1
- cmp r0, 0
- beq _080CE5A4
- movs r1, 0x1
- ldr r2, _080CE5BC @ =gPlttBufferFaded
-_080CE590:
- adds r0, r3, r1
- lsls r0, 1
- adds r0, r2
- mov r7, r12
- strh r7, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE590
-_080CE5A4:
- lsrs r2, r5, 16
- lsls r0, r6, 16
- lsrs r3, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _080CE578
- b _080CE65E
- .align 2, 0
-_080CE5B8: .4byte 0x00007fbb
-_080CE5BC: .4byte gPlttBufferFaded
-_080CE5C0:
- ldr r0, _080CE608 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- movs r2, 0
- ldr r3, _080CE60C @ =gSprites
- movs r5, 0x14
- adds r5, r3
- mov r12, r5
- ldr r7, _080CE610 @ =gBattleAnimSpriteTemplate_83D6FC8
- mov r8, r7
- ldr r6, _080CE614 @ =gBattleAnimSpriteTemplate_83D6FF8
- movs r5, 0x1
-_080CE5DE:
- lsls r0, r2, 4
- adds r0, r2
- lsls r1, r0, 2
- mov r7, r12
- adds r0, r1, r7
- ldr r0, [r0]
- cmp r0, r8
- beq _080CE5F2
- cmp r0, r6
- bne _080CE5F6
-_080CE5F2:
- adds r0, r1, r3
- strh r5, [r0, 0x2E]
-_080CE5F6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080CE5DE
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080CE640
- .align 2, 0
-_080CE608: .4byte gPaletteFade
-_080CE60C: .4byte gSprites
-_080CE610: .4byte gBattleAnimSpriteTemplate_83D6FC8
-_080CE614: .4byte gBattleAnimSpriteTemplate_83D6FF8
-_080CE618:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080CE65E
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- bl sub_8079BFC
- ldr r1, _080CE648 @ =0x00007fbb
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_080CE640:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080CE65E
- .align 2, 0
-_080CE648: .4byte 0x00007fbb
-_080CE64C:
- ldr r0, _080CE66C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CE65E
- adds r0, r2, 0
- bl move_anim_task_del
-_080CE65E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE66C: .4byte gPaletteFade
- thumb_func_end sub_80CE4D4
-
- thumb_func_start sub_80CE670
-sub_80CE670: @ 80CE670
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080CE6F4 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bgt _080CE682
- movs r0, 0x2
- strh r0, [r6, 0x4]
-_080CE682:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0x7F
- ble _080CE68E
- movs r0, 0x7F
- strh r0, [r6, 0x4]
-_080CE68E:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x30]
- ldr r4, _080CE6F8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r1, [r5, 0x20]
- strh r1, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CE700
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE6FC @ =0xffffec00
- b _080CE726
- .align 2, 0
-_080CE6F4: .4byte gUnknown_03004B00
-_080CE6F8: .4byte gUnknown_0202F7C9
-_080CE6FC: .4byte 0xffffec00
-_080CE700:
- ldr r0, _080CE740 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CE748
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- adds r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 5
-_080CE726:
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE744 @ =0xfffff600
- bl __divsi3
- strh r0, [r5, 0x38]
- b _080CE784
- .align 2, 0
-_080CE740: .4byte gUnknown_0202F7C8
-_080CE744: .4byte 0xfffff600
-_080CE748:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r4, [r5, 0x22]
- subs r4, 0x14
- strh r4, [r5, 0x22]
- lsls r0, 7
- strh r0, [r5, 0x32]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- ldr r0, _080CE790 @ =0xffffec00
- bl __divsi3
- strh r0, [r5, 0x34]
- lsls r4, 7
- strh r4, [r5, 0x36]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0xA0
- lsls r0, 4
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x30
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080CE784:
- ldr r0, _080CE794 @ =sub_80CE798
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE790: .4byte 0xffffec00
-_080CE794: .4byte sub_80CE798
- thumb_func_end sub_80CE670
-
- thumb_func_start sub_80CE798
-sub_80CE798: @ 80CE798
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r1, r3
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080CE7CE
- ldrh r0, [r2, 0x3A]
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x22]
-_080CE7CE:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080CE7DC
- adds r0, r2, 0
- bl move_anim_8072740
-_080CE7DC:
- pop {r0}
- bx r0
- thumb_func_end sub_80CE798
-
- thumb_func_start sub_80CE7E0
-sub_80CE7E0: @ 80CE7E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, _080CE870 @ =gTasks
- adds r6, r0, r1
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x8]
- ldr r0, _080CE874 @ =0x00002771
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xA]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- lsls r0, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- ldr r2, _080CE878 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r4, r0, 4
- movs r5, 0x1
- ldr r2, _080CE87C @ =gPlttBufferUnfaded
-_080CE838:
- adds r1, r3, r5
- lsls r1, 1
- adds r1, r2
- adds r0, r4, r5
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080CE838
- adds r0, r3, 0
- movs r1, 0x10
- movs r2, 0xB
- movs r3, 0
- bl BlendPalette
- movs r0, 0
- strh r0, [r6, 0xE]
- movs r5, 0
- ldr r7, _080CE878 @ =gSprites
- movs r1, 0x1C
- adds r1, r7
- mov r9, r1
- b _080CE8B4
- .align 2, 0
-_080CE870: .4byte gTasks
-_080CE874: .4byte 0x00002771
-_080CE878: .4byte gSprites
-_080CE87C: .4byte gPlttBufferUnfaded
-_080CE880:
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r4, r2, r7
- ldrb r1, [r6, 0xA]
- lsls r1, 4
- ldrb r3, [r4, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0
- strh r0, [r4, 0x2E]
- lsls r0, r5, 7
- strh r0, [r4, 0x30]
- mov r0, r8
- strh r0, [r4, 0x32]
- add r2, r9
- ldr r0, _080CE8E4 @ =sub_80CE974
- str r0, [r2]
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080CE8B4:
- cmp r5, 0x1
- bhi _080CE8C6
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CE880
-_080CE8C6:
- ldr r0, _080CE8E8 @ =sub_80CE910
- str r0, [r6]
- ldr r0, _080CE8EC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE8F4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE8F0 @ =0x0000fdff
- b _080CE8FC
- .align 2, 0
-_080CE8E4: .4byte sub_80CE974
-_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gUnknown_0202F7C8
-_080CE8F0: .4byte 0x0000fdff
-_080CE8F4:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080CE90C @ =0x0000fbff
-_080CE8FC:
- ands r0, r1
- strh r0, [r2]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE90C: .4byte 0x0000fbff
- thumb_func_end sub_80CE7E0
-
- thumb_func_start sub_80CE910
-sub_80CE910: @ 80CE910
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080CE944 @ =gTasks
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CE968
- ldr r0, _080CE948 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CE94C
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080CE956
- .align 2, 0
-_080CE944: .4byte gTasks
-_080CE948: .4byte gUnknown_0202F7C8
-_080CE94C:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080CE956:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080CE970 @ =0x00002771
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
-_080CE968:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CE970: .4byte 0x00002771
- thumb_func_end sub_80CE910
-
- thumb_func_start sub_80CE974
-sub_80CE974: @ 80CE974
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080CE990
- movs r0, 0
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_080CE990:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- ble _080CE9B8
- ldr r2, _080CE9B4 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xE]
- subs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r5, 0
- bl obj_delete_but_dont_free_vram
- b _080CE9FA
- .align 2, 0
-_080CE9B4: .4byte gTasks
-_080CE9B8:
- ldr r4, _080CEA00 @ =gSineTable
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x6
- bl __divsi3
- strh r0, [r5, 0x36]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xD
- bl __divsi3
- strh r0, [r5, 0x38]
- ldrh r1, [r5, 0x30]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
-_080CE9FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA00: .4byte gSineTable
- thumb_func_end sub_80CE974
-
- thumb_func_start sub_80CEA04
-sub_80CEA04: @ 80CEA04
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080CEA18 @ =move_anim_8072740
- bl oamt_set_x3A_32
- ldr r0, _080CEA1C @ =sub_8078600
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEA18: .4byte move_anim_8072740
-_080CEA1C: .4byte sub_8078600
- thumb_func_end sub_80CEA04
-
- thumb_func_start sub_80CEA20
-sub_80CEA20: @ 80CEA20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _080CEAD0 @ =gUnknown_083D712C
- ldrh r0, [r4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xFF
- beq _080CEA64
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r5, _080CEAD4 @ =gPlttBufferFaded
-_080CEA4C:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r5
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA4C
-_080CEA64:
- movs r4, 0x1
- ldr r0, _080CEAD0 @ =gUnknown_083D712C
- mov r8, r0
-_080CEA6A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 2
- mov r1, r8
- adds r0, r5, r1
- ldrh r0, [r0]
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, 0x1
- mov r12, r4
- cmp r3, 0xFF
- beq _080CEAB2
- lsls r0, r3, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r3, r0, 16
- movs r2, 0x1
- ldr r7, _080CEAD4 @ =gPlttBufferFaded
- ldr r6, _080CEAD0 @ =gUnknown_083D712C
- adds r4, r5, 0
-_080CEA98:
- adds r1, r3, r2
- lsls r1, 1
- adds r1, r7
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080CEA98
-_080CEAB2:
- mov r1, r12
- lsls r0, r1, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEA6A
- mov r0, r9
- bl move_anim_task_del
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEAD0: .4byte gUnknown_083D712C
-_080CEAD4: .4byte gPlttBufferFaded
- thumb_func_end sub_80CEA20
-
- thumb_func_start sub_80CEAD8
-sub_80CEAD8: @ 80CEAD8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0x1
- ldr r6, _080CEB08 @ =gUnknown_083D712C
-_080CEAE2:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080CEAE2
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEB08: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEAD8
-
- thumb_func_start sub_80CEB0C
-sub_80CEB0C: @ 80CEB0C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080CEB64 @ =gUnknown_03004B00
- ldrb r1, [r4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r2, _080CEB68 @ =gUnknown_083D712C
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEB48
- lsls r2, r0, 4
- ldrb r1, [r5, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
-_080CEB48:
- ldrh r0, [r4, 0x2]
- movs r1, 0
- strh r0, [r5, 0x30]
- strh r1, [r5, 0x32]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x34]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CEB6C
- movs r6, 0x30
- movs r3, 0x28
- b _080CEB86
- .align 2, 0
-_080CEB64: .4byte gUnknown_03004B00
-_080CEB68: .4byte gUnknown_083D712C
-_080CEB6C:
- ldr r4, _080CEBBC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
-_080CEB86:
- ldrh r0, [r5, 0x20]
- lsls r1, r0, 4
- strh r1, [r5, 0x36]
- ldrh r1, [r5, 0x22]
- lsls r2, r1, 4
- strh r2, [r5, 0x38]
- subs r0, r6, r0
- lsls r0, 16
- asrs r0, 16
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- adds r2, r5, 0
- adds r2, 0x3A
- adds r3, r5, 0
- adds r3, 0x3C
- movs r4, 0x28
- str r4, [sp]
- bl sub_80CEBC4
- ldr r0, _080CEBC0 @ =sub_80CEC1C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEBBC: .4byte gUnknown_0202F7C9
-_080CEBC0: .4byte sub_80CEC1C
- thumb_func_end sub_80CEB0C
-
- thumb_func_start sub_80CEBC4
-sub_80CEBC4: @ 80CEBC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x18]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r1, r2, 24
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bge _080CEBE6
- lsls r0, r1, 24
- negs r0, r0
- lsrs r1, r0, 24
-_080CEBE6:
- lsls r5, r2, 8
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bne _080CEBFA
- movs r4, 0x1
-_080CEBFA:
- adds r0, r5, 0
- adds r1, r4, 0
- bl __divsi3
- strh r0, [r7]
- lsls r0, r6, 16
- asrs r0, 8
- adds r1, r4, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEBC4
-
- thumb_func_start sub_80CEC1C
-sub_80CEC1C: @ 80CEC1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r1, r0, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _080CEC38
- adds r0, 0xFF
-_080CEC38:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- ldrh r3, [r4, 0x38]
- adds r2, r3
- strh r2, [r4, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xF
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- ldrh r0, [r4, 0x20]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bhi _080CEC86
- lsls r0, r2, 16
- asrs r1, r0, 16
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- blt _080CEC86
- cmp r1, 0x80
- ble _080CEC8E
-_080CEC86:
- adds r0, r4, 0
- bl move_anim_8074EE0
- b _080CECDE
-_080CEC8E:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _080CECDE
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r1
- ble _080CECDE
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080CECB6
- strh r5, [r4, 0x30]
-_080CECB6:
- ldr r2, _080CECE4 @ =gUnknown_083D712C
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CECDE
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CECDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CECE4: .4byte gUnknown_083D712C
- thumb_func_end sub_80CEC1C
-
- thumb_func_start sub_80CECE8
-sub_80CECE8: @ 80CECE8
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _080CED6C @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CED06
- ldr r1, _080CED70 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080CED06:
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CED70 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r7]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r6, 0x22]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x32]
- strh r5, [r6, 0x34]
- ldrh r0, [r6, 0x20]
- lsls r0, 4
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x22]
- lsls r0, 4
- strh r0, [r6, 0x38]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- lsls r0, 4
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3A]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- lsls r0, 7
- movs r1, 0x5
- bl __divsi3
- strh r0, [r6, 0x3C]
- ldr r0, _080CED74 @ =sub_80CED78
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CED6C: .4byte gUnknown_0202F7C8
-_080CED70: .4byte gUnknown_03004B00
-_080CED74: .4byte sub_80CED78
- thumb_func_end sub_80CECE8
-
- thumb_func_start sub_80CED78
-sub_80CED78: @ 80CED78
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r4, 0x22]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _080CEDD6
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080CEDD6
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x12
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x12
- bl Sin
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CEDD6
- movs r0, 0x1
- strh r0, [r4, 0x34]
-_080CEDD6:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- bne _080CEDEA
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CEDEA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CED78
-
- thumb_func_start sub_80CEDF0
-sub_80CEDF0: @ 80CEDF0
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080CEE10 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080CEE14
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
- movs r6, 0x10
- b _080CEE16
- .align 2, 0
-_080CEE10: .4byte gUnknown_03004B00
-_080CEE14:
- ldr r6, _080CEE50 @ =0x0000fff0
-_080CEE16:
- ldr r4, _080CEE54 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x8
- strh r0, [r5, 0x22]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- ldr r0, _080CEE58 @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080CEE5C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gUnknown_0202F7C8
-_080CEE58: .4byte sub_80782D8
-_080CEE5C: .4byte move_anim_8072740
- thumb_func_end sub_80CEDF0
-
- thumb_func_start sub_80CEE60
-sub_80CEE60: @ 80CEE60
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldr r5, _080CEED8 @ =gUnknown_03004B00
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r2, _080CEEDC @ =gUnknown_083D712C
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080CEEA0
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
-_080CEEA0:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- cmp r0, 0
- bne _080CEEAC
- ldr r2, _080CEEE0 @ =0x0000ffe0
-_080CEEAC:
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x20]
- strh r1, [r4, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- subs r0, 0x28
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x38]
- ldr r0, _080CEEE4 @ =sub_80CEEE8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEED8: .4byte gUnknown_03004B00
-_080CEEDC: .4byte gUnknown_083D712C
-_080CEEE0: .4byte 0x0000ffe0
-_080CEEE4: .4byte sub_80CEEE8
- thumb_func_end sub_80CEE60
-
- thumb_func_start sub_80CEEE8
-sub_80CEEE8: @ 80CEEE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080CEF38
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r4, 0x24]
- movs r3, 0x24
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080CEF14
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
-_080CEF14:
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- ldrh r3, [r4, 0x26]
- adds r0, r3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080CEF3E
-_080CEF38:
- adds r0, r4, 0
- bl move_anim_8072740
-_080CEF3E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEEE8
-
- thumb_func_start sub_80CEF44
-sub_80CEF44: @ 80CEF44
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CEF64
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
- b _080CEF6E
-_080CEF64:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
-_080CEF6E:
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080CEF90
- adds r0, 0x3
-_080CEF90:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CEF44
-
- thumb_func_start sub_80CEF9C
-sub_80CEF9C: @ 80CEF9C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CEFB0 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CEFB8
- ldr r0, _080CEFB4 @ =gUnknown_0202F7C8
- b _080CEFBA
- .align 2, 0
-_080CEFB0: .4byte gUnknown_03004B00
-_080CEFB4: .4byte gUnknown_0202F7C8
-_080CEFB8:
- ldr r0, _080CEFF8 @ =gUnknown_0202F7C9
-_080CEFBA:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldr r0, _080CEFFC @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0x2E]
- adds r0, r1, 0x2
- strh r0, [r5, 0x30]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _080CF000 @ =sub_80CF008
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF004 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CEFF8: .4byte gUnknown_0202F7C9
-_080CEFFC: .4byte gUnknown_03004B00
-_080CF000: .4byte sub_80CF008
-_080CF004: .4byte sub_8078600
- thumb_func_end sub_80CEF9C
-
- thumb_func_start sub_80CF008
-sub_80CF008: @ 80CF008
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080CF030
- ldr r1, _080CF038 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080CF03C @ =sub_8078600
- str r0, [r4, 0x1C]
-_080CF030:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF038: .4byte move_anim_8072740
-_080CF03C: .4byte sub_8078600
- thumb_func_end sub_80CF008
-
- thumb_func_start sub_80CF040
-sub_80CF040: @ 80CF040
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF054 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF05C
- ldr r0, _080CF058 @ =gUnknown_0202F7C8
- b _080CF05E
- .align 2, 0
-_080CF054: .4byte gUnknown_03004B00
-_080CF058: .4byte gUnknown_0202F7C8
-_080CF05C:
- ldr r0, _080CF07C @ =gUnknown_0202F7C9
-_080CF05E:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r1, _080CF080 @ =sub_80CF088
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF084 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF07C: .4byte gUnknown_0202F7C9
-_080CF080: .4byte sub_80CF088
-_080CF084: .4byte sub_80785E4
- thumb_func_end sub_80CF040
-
- thumb_func_start sub_80CF088
-sub_80CF088: @ 80CF088
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080CF0AE
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080CF0B4 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF0B8 @ =sub_80785E4
- str r0, [r4, 0x1C]
-_080CF0AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF0B4: .4byte move_anim_8074EE0
-_080CF0B8: .4byte sub_80785E4
- thumb_func_end sub_80CF088
-
- thumb_func_start sub_80CF0BC
-sub_80CF0BC: @ 80CF0BC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _080CF0D0 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF0D8
- ldr r0, _080CF0D4 @ =gUnknown_0202F7C8
- b _080CF0DA
- .align 2, 0
-_080CF0D0: .4byte gUnknown_03004B00
-_080CF0D4: .4byte gUnknown_0202F7C8
-_080CF0D8:
- ldr r0, _080CF12C @ =gUnknown_0202F7C9
-_080CF0DA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bgt _080CF102
- movs r0, 0xA
- strh r0, [r4, 0x22]
-_080CF102:
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r6, [r4, 0x30]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- strh r0, [r4, 0x32]
- ldrb r0, [r1]
- adds r0, 0x4
- strh r0, [r4, 0x34]
- strh r6, [r4, 0x36]
- ldr r1, _080CF130 @ =sub_80CF138
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF134 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF12C: .4byte gUnknown_0202F7C9
-_080CF130: .4byte sub_80CF138
-_080CF134: .4byte sub_80785E4
- thumb_func_end sub_80CF0BC
-
- thumb_func_start sub_80CF138
-sub_80CF138: @ 80CF138
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080CF14E
- ldr r0, _080CF154 @ =sub_80CF158
- str r0, [r1, 0x1C]
-_080CF14E:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF154: .4byte sub_80CF158
- thumb_func_end sub_80CF138
-
- thumb_func_start sub_80CF158
-sub_80CF158: @ 80CF158
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x4
- strh r1, [r2, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFE
- ble _080CF18A
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CF184
- strh r0, [r2, 0x24]
- ldr r0, _080CF180 @ =sub_80CF088
- str r0, [r2, 0x1C]
- b _080CF1C0
- .align 2, 0
-_080CF180: .4byte sub_80CF088
-_080CF184:
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2, 0x30]
-_080CF18A:
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- ble _080CF19A
- ldrh r0, [r2, 0x34]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF19A:
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0x9F
- ble _080CF1AA
- ldrh r0, [r2, 0x32]
- adds r1, r2, 0
- adds r1, 0x43
- strb r0, [r1]
-_080CF1AA:
- ldr r1, _080CF1C4 @ =gSineTable
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- asrs r1, r0, 1
- adds r0, r1
- strh r0, [r2, 0x24]
-_080CF1C0:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF1C4: .4byte gSineTable
- thumb_func_end sub_80CF158
-
- thumb_func_start sub_80CF1C8
-sub_80CF1C8: @ 80CF1C8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080CF1DC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF1E4
- ldr r0, _080CF1E0 @ =gUnknown_0202F7C8
- b _080CF1E6
- .align 2, 0
-_080CF1DC: .4byte gUnknown_03004B00
-_080CF1E0: .4byte gUnknown_0202F7C8
-_080CF1E4:
- ldr r0, _080CF208 @ =gUnknown_0202F7C9
-_080CF1E6:
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80CEF44
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CF20C
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x2
- b _080CF216
- .align 2, 0
-_080CF208: .4byte gUnknown_0202F7C9
-_080CF20C:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0x3
-_080CF216:
- strh r0, [r5, 0x2E]
- ldr r0, _080CF224 @ =sub_80CF228
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF224: .4byte sub_80CF228
- thumb_func_end sub_80CF1C8
-
- thumb_func_start sub_80CF228
-sub_80CF228: @ 80CF228
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080CF256
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r1, _080CF25C @ =sub_80CF264
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080CF260 @ =sub_8078600
- str r0, [r4, 0x1C]
-_080CF256:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF25C: .4byte sub_80CF264
-_080CF260: .4byte sub_8078600
- thumb_func_end sub_80CF228
-
- thumb_func_start sub_80CF264
-sub_80CF264: @ 80CF264
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080CF27C
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF27C:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF264
-
- thumb_func_start sub_80CF280
-sub_80CF280: @ 80CF280
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF2C4 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x36]
- ldr r1, _080CF2C8 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080CF2CC @ =sub_8078278
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF2C4: .4byte gUnknown_03004B00
-_080CF2C8: .4byte move_anim_8074EE0
-_080CF2CC: .4byte sub_8078278
- thumb_func_end sub_80CF280
-
- thumb_func_start sub_80CF2D0
-sub_80CF2D0: @ 80CF2D0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080CF2E4 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CF2EC
- ldr r0, _080CF2E8 @ =gUnknown_0202F7C8
- b _080CF2EE
- .align 2, 0
-_080CF2E4: .4byte gUnknown_03004B00
-_080CF2E8: .4byte gUnknown_0202F7C8
-_080CF2EC:
- ldr r0, _080CF308 @ =gUnknown_0202F7C9
-_080CF2EE:
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80CEF44
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x30]
- ldr r0, _080CF30C @ =sub_80CF310
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF308: .4byte gUnknown_0202F7C9
-_080CF30C: .4byte sub_80CF310
- thumb_func_end sub_80CF2D0
-
- thumb_func_start sub_80CF310
-sub_80CF310: @ 80CF310
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080CF342
- cmp r0, 0x1
- bgt _080CF326
- cmp r0, 0
- beq _080CF32C
- b _080CF370
-_080CF326:
- cmp r0, 0x2
- beq _080CF35C
- b _080CF370
-_080CF32C:
- ldrh r0, [r1, 0x26]
- subs r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080CF370
- b _080CF354
-_080CF342:
- ldrh r0, [r1, 0x26]
- adds r0, 0x3
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080CF370
-_080CF354:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080CF370
-_080CF35C:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080CF370
- adds r0, r1, 0
- bl move_anim_8072740
-_080CF370:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF310
-
- thumb_func_start sub_80CF374
-sub_80CF374: @ 80CF374
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _080CF3C0 @ =gSprites
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x30]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080CF3B2
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080CF3B2:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF3C0: .4byte gSprites
- thumb_func_end sub_80CF374
-
- thumb_func_start sub_80CF3C4
-sub_80CF3C4: @ 80CF3C4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080CF40C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080CF410 @ =gUnknown_02024BE0
- ldr r0, _080CF414 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF41C
- ldr r0, _080CF418 @ =gUnknown_03004B00
- ldrh r1, [r5, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r5, 0x20]
- adds r1, r0, 0
- b _080CF426
- .align 2, 0
-_080CF40C: .4byte gUnknown_0202F7C8
-_080CF410: .4byte gUnknown_02024BE0
-_080CF414: .4byte gUnknown_0202F7C9
-_080CF418: .4byte gUnknown_03004B00
-_080CF41C:
- ldr r1, _080CF450 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080CF426:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- strh r6, [r5, 0x32]
- ldr r0, _080CF454 @ =sub_80CF374
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF450: .4byte gUnknown_03004B00
-_080CF454: .4byte sub_80CF374
- thumb_func_end sub_80CF3C4
-
- thumb_func_start sub_80CF458
-sub_80CF458: @ 80CF458
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080CF484 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x38]
- ldr r0, _080CF488 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080CF48C @ =sub_80CF490
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF484: .4byte gUnknown_03004B00
-_080CF488: .4byte sub_80782D8
-_080CF48C: .4byte sub_80CF490
- thumb_func_end sub_80CF458
-
- thumb_func_start sub_80CF490
-sub_80CF490: @ 80CF490
- push {lr}
- ldrh r1, [r0, 0x30]
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0xF
- strh r1, [r0, 0x36]
- ldr r1, _080CF4B0 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080CF4B4 @ =sub_80CF4B8
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CF4B0: .4byte sub_8078B34
-_080CF4B4: .4byte sub_80CF4B8
- thumb_func_end sub_80CF490
-
- thumb_func_start sub_80CF4B8
-sub_80CF4B8: @ 80CF4B8
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x38]
- movs r3, 0x38
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080CF4CE
- adds r0, r1, 0
- bl move_anim_8072740
- b _080CF4D2
-_080CF4CE:
- subs r0, r2, 0x1
- strh r0, [r1, 0x38]
-_080CF4D2:
- pop {r0}
- bx r0
- thumb_func_end sub_80CF4B8
-
- thumb_func_start sub_80CF4D8
-sub_80CF4D8: @ 80CF4D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080CF504 @ =gUnknown_02024BE0
- ldr r0, _080CF508 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8078E70
- ldr r1, _080CF50C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CF510 @ =sub_80CF514
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF504: .4byte gUnknown_02024BE0
-_080CF508: .4byte gUnknown_0202F7C8
-_080CF50C: .4byte gTasks
-_080CF510: .4byte sub_80CF514
- thumb_func_end sub_80CF4D8
-
- thumb_func_start sub_80CF514
-sub_80CF514: @ 80CF514
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CF544 @ =gUnknown_02024BE0
- ldr r0, _080CF548 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r1, r0, r1
- ldrb r4, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CF550
- ldr r1, _080CF54C @ =gTasks
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- negs r0, r0
- lsls r0, 16
- lsrs r3, r0, 16
- adds r6, r2, 0
- b _080CF55E
- .align 2, 0
-_080CF544: .4byte gUnknown_02024BE0
-_080CF548: .4byte gUnknown_0202F7C8
-_080CF54C: .4byte gTasks
-_080CF550:
- ldr r2, _080CF590 @ =gTasks
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r0, r2
- ldrh r3, [r0, 0x8]
- adds r6, r1, 0
-_080CF55E:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldr r1, _080CF590 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080CF598
- ldrh r0, [r1, 0x8]
- adds r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF594 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- b _080CF5C2
- .align 2, 0
-_080CF590: .4byte gTasks
-_080CF594: .4byte gSprites
-_080CF598:
- cmp r0, 0x1
- bne _080CF5AE
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- bne _080CF608
- movs r0, 0x2
- b _080CF606
-_080CF5AE:
- ldrh r0, [r1, 0x8]
- subs r0, 0xB0
- strh r0, [r1, 0x8]
- ldr r1, _080CF5FC @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- subs r1, 0x1
-_080CF5C2:
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- bl sub_8078F9C
- ldr r0, _080CF600 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r2, [r1, r3]
- movs r0, 0xF2
- lsls r0, 4
- cmp r2, r0
- beq _080CF5E2
- cmp r2, 0
- bne _080CF608
-_080CF5E2:
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bne _080CF604
- adds r0, r4, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
- b _080CF608
- .align 2, 0
-_080CF5FC: .4byte gSprites
-_080CF600: .4byte gTasks
-_080CF604:
- adds r0, r2, 0x1
-_080CF606:
- strh r0, [r1, 0xA]
-_080CF608:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CF514
-
- thumb_func_start sub_80CF610
-sub_80CF610: @ 80CF610
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _080CF658 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080CF65C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF660
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r1, r0
- strb r1, [r2]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _080CF674
- movs r0, 0x2
- orrs r1, r0
- strb r1, [r2]
- b _080CF674
- .align 2, 0
-_080CF658: .4byte gUnknown_03004B00
-_080CF65C: .4byte gUnknown_0202F7C8
-_080CF660:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080CF674
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
-_080CF674:
- ldr r0, _080CF688 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080CF68C @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF688: .4byte sub_8078600
-_080CF68C: .4byte move_anim_8072740
- thumb_func_end sub_80CF610
-
- thumb_func_start sub_80CF690
-sub_80CF690: @ 80CF690
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CF6AC @ =sub_80785E4
- str r0, [r4, 0x1C]
- ldr r1, _080CF6B0 @ =sub_80CF6B4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6AC: .4byte sub_80785E4
-_080CF6B0: .4byte sub_80CF6B4
- thumb_func_end sub_80CF690
-
- thumb_func_start sub_80CF6B4
-sub_80CF6B4: @ 80CF6B4
- push {lr}
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- subs r1, 0x20
- strh r1, [r0, 0x36]
- ldr r1, _080CF6D4 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080CF6D8 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080CF6D4: .4byte sub_8078B34
-_080CF6D8: .4byte move_anim_8072740
- thumb_func_end sub_80CF6B4
-
- thumb_func_start sub_80CF6DC
-sub_80CF6DC: @ 80CF6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CF700
- ldr r1, _080CF6FC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080CF722
- .align 2, 0
-_080CF6FC: .4byte gUnknown_03004B00
-_080CF700:
- ldr r0, _080CF7C8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CF722
- ldr r1, _080CF7CC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080CF722:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CF7D0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r6, _080CF7CC @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- ldrh r1, [r5, 0x20]
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 24
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080CF794
- ldr r2, _080CF7D4 @ =0xffffa000
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_080CF794:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- mov r0, r8
- strh r0, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CF7D8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080CF7DC @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF7C8: .4byte gUnknown_0202F7C8
-_080CF7CC: .4byte gUnknown_03004B00
-_080CF7D0: .4byte gUnknown_0202F7C9
-_080CF7D4: .4byte 0xffffa000
-_080CF7D8: .4byte sub_8078B34
-_080CF7DC: .4byte move_anim_8072740
- thumb_func_end sub_80CF6DC
-
- thumb_func_start sub_80CF7E0
-sub_80CF7E0: @ 80CF7E0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF80A
- ldr r2, _080CF810 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- adds r0, r3, 0
- bl DestroySprite
-_080CF80A:
- pop {r0}
- bx r0
- .align 2, 0
-_080CF810: .4byte gTasks
- thumb_func_end sub_80CF7E0
-
- thumb_func_start sub_80CF814
-sub_80CF814: @ 80CF814
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF844 @ =gTasks
- adds r4, r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _080CF848
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- adds r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x36]
- ldrh r3, [r2, 0x3A]
- adds r0, r3
- b _080CF856
- .align 2, 0
-_080CF844: .4byte gTasks
-_080CF848:
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x34]
- subs r0, r1
- strh r0, [r2, 0x38]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- subs r0, r1
-_080CF856:
- strh r0, [r2, 0x3A]
- ldrh r0, [r2, 0x38]
- ldrh r1, [r2, 0x30]
- adds r3, r0, r1
- strh r3, [r2, 0x30]
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF87A
- lsls r0, r3, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF87E
-_080CF87A:
- lsls r0, r3, 16
- lsrs r0, 24
-_080CF87E:
- strh r0, [r2, 0x24]
- ldrh r1, [r4, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF892
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF896
-_080CF892:
- ldrh r0, [r2, 0x32]
- lsrs r0, 8
-_080CF896:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF8AC
- movs r0, 0x1E
- strh r0, [r2, 0x2E]
- ldr r0, _080CF8B4 @ =sub_80CF7E0
- str r0, [r2, 0x1C]
-_080CF8AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF8B4: .4byte sub_80CF7E0
- thumb_func_end sub_80CF814
-
- thumb_func_start sub_80CF8B8
-sub_80CF8B8: @ 80CF8B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CF8FC @ =gTasks
- adds r6, r0, r1
- ldrh r2, [r6, 0x16]
- movs r1, 0x2
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- ldrh r3, [r7, 0x30]
- adds r2, r0, r3
- strh r2, [r7, 0x30]
- ldrh r0, [r6, 0x18]
- ands r1, r0
- ldrh r0, [r7, 0x32]
- adds r1, r0
- strh r1, [r7, 0x32]
- ldrh r1, [r6, 0x16]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF900
- lsls r0, r2, 16
- lsrs r0, 24
- negs r0, r0
- b _080CF904
- .align 2, 0
-_080CF8FC: .4byte gTasks
-_080CF900:
- lsls r0, r2, 16
- lsrs r0, 24
-_080CF904:
- strh r0, [r7, 0x24]
- ldrh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CF918
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
- negs r0, r0
- b _080CF91C
-_080CF918:
- ldrh r0, [r7, 0x32]
- lsrs r0, 8
-_080CF91C:
- strh r0, [r7, 0x26]
- ldrh r0, [r7, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r7, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080CF9E8
- movs r4, 0
- movs r0, 0x8
- strh r0, [r7, 0x2E]
- movs r0, 0x4
- strh r0, [r6, 0x12]
- movs r0, 0x80
- lsls r0, 5
- bl sub_81174E0
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x20]
- adds r2, r0, r1
- strh r2, [r7, 0x20]
- ldrh r0, [r7, 0x26]
- ldrh r3, [r7, 0x22]
- adds r0, r3
- strh r0, [r7, 0x22]
- strh r4, [r7, 0x26]
- strh r4, [r7, 0x24]
- ldrh r3, [r6, 0x1E]
- movs r0, 0x1E
- ldrsh r1, [r6, r0]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- blt _080CF966
- subs r0, r3, r2
- b _080CF968
-_080CF966:
- subs r0, r2, r3
-_080CF968:
- lsls r0, 24
- lsrs r4, r0, 16
- ldrh r3, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- ldrh r2, [r7, 0x22]
- movs r6, 0x22
- ldrsh r0, [r7, r6]
- cmp r1, r0
- blt _080CF980
- subs r0, r3, r2
- b _080CF982
-_080CF980:
- subs r0, r2, r3
-_080CF982:
- lsls r0, 24
- lsrs r0, 16
- mov r8, r0
- movs r0, 0
- strh r0, [r7, 0x32]
- strh r0, [r7, 0x30]
- strh r0, [r7, 0x3A]
- strh r0, [r7, 0x38]
- lsls r0, r4, 16
- asrs r0, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x34]
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- adds r1, r5, 0
- bl sub_81174C4
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r6, 0
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- strh r0, [r7, 0x36]
- ldr r0, _080CF9F4 @ =sub_80CF814
- str r0, [r7, 0x1C]
-_080CF9E8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CF9F4: .4byte sub_80CF814
- thumb_func_end sub_80CF8B8
-
- thumb_func_start sub_80CF9F8
-sub_80CF9F8: @ 80CF9F8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080CFA1C @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080CFA16
- adds r0, r2, 0
- bl move_anim_task_del
-_080CFA16:
- pop {r0}
- bx r0
- .align 2, 0
-_080CFA1C: .4byte gTasks
- thumb_func_end sub_80CF9F8
-
- thumb_func_start sub_80CFA20
-sub_80CFA20: @ 80CFA20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080CFA74 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- subs r1, r0, 0x1
- strh r1, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bgt _080CFAF4
- ldr r0, _080CFA78 @ =gSpriteTemplate_83D74BC
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- movs r3, 0x1C
- ldrsh r2, [r5, r3]
- ldrb r3, [r5, 0xC]
- ldrb r4, [r5, 0xA]
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r0, 4
- add r0, r12
- lsls r0, 2
- ldr r1, _080CFA7C @ =gSprites
- adds r6, r0, r1
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080CFA80
- cmp r0, 0x2
- beq _080CFA96
- b _080CFAA4
- .align 2, 0
-_080CFA74: .4byte gTasks
-_080CFA78: .4byte gSpriteTemplate_83D74BC
-_080CFA7C: .4byte gSprites
-_080CFA80:
- ldrb r2, [r6, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x3]
- b _080CFAA4
-_080CFA96:
- ldrb r0, [r6, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r6, 0x3]
-_080CFAA4:
- ldr r3, _080CFAFC @ =gTasks
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r4, r2, r3
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x14]
- subs r0, r1
- strh r0, [r6, 0x2E]
- strh r7, [r6, 0x3C]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xD
- lsls r0, 1
- adds r0, r2
- adds r3, 0x8
- adds r0, r3
- mov r2, r12
- strh r2, [r0]
- ldrh r0, [r4, 0xE]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0x3F
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x9A
- bl PlaySE12WithPanning
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- ble _080CFAF4
- ldr r0, _080CFB00 @ =sub_80CF9F8
- str r0, [r4]
-_080CFAF4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFAFC: .4byte gTasks
-_080CFB00: .4byte sub_80CF9F8
- thumb_func_end sub_80CFA20
-
- thumb_func_start sub_80CFB04
-sub_80CFB04: @ 80CFB04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- mov r0, sp
- mov r1, r9
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x2
- strh r1, [r4]
- bl sub_8076BE0
- lsls r0, 24
- mov r10, r4
- cmp r0, 0
- beq _080CFB70
- ldr r1, _080CFB60 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r3, _080CFB64 @ =gUnknown_03004B00
- ldrh r0, [r3]
- negs r0, r0
- strh r0, [r3]
- ldrh r1, [r3, 0x4]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080CFB68
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
- .align 2, 0
-_080CFB60: .4byte gTasks
-_080CFB64: .4byte gUnknown_03004B00
-_080CFB68:
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _080CFBCA
-_080CFB70:
- ldr r1, _080CFBB4 @ =gUnknown_02024A72
- ldr r0, _080CFBB8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0
- bne _080CFBCA
- ldr r1, _080CFBBC @ =gTasks
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x10]
- ldr r2, _080CFBC0 @ =gUnknown_03004B00
- ldrh r0, [r2]
- negs r0, r0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- negs r0, r0
- strh r0, [r2, 0x2]
- ldrh r1, [r2, 0x4]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080CFBC4
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- b _080CFBC8
- .align 2, 0
-_080CFBB4: .4byte gUnknown_02024A72
-_080CFBB8: .4byte gUnknown_0202F7C9
-_080CFBBC: .4byte gTasks
-_080CFBC0: .4byte gUnknown_03004B00
-_080CFBC4:
- movs r0, 0x1
- orrs r0, r1
-_080CFBC8:
- strh r0, [r2, 0x4]
-_080CFBCA:
- ldr r5, _080CFC24 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080CFC28 @ =gTasks
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- adds r6, r0, 0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- mov r9, r0
- ldr r0, _080CFC2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CFC34
- ldr r4, _080CFC30 @ =gUnknown_0202F7C9
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080CFC34
- ldrb r0, [r4]
- movs r1, 0
- mov r2, sp
- mov r3, r10
- bl sub_807A3FC
- b _080CFC56
- .align 2, 0
-_080CFC24: .4byte gUnknown_0202F7C8
-_080CFC28: .4byte gTasks
-_080CFC2C: .4byte gUnknown_020239F8
-_080CFC30: .4byte gUnknown_0202F7C9
-_080CFC34:
- mov r5, sp
- ldr r4, _080CFC90 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r10
- strh r0, [r1]
-_080CFC56:
- mov r4, sp
- ldr r0, _080CFC94 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- mov r2, sp
- ldr r3, _080CFC98 @ =gUnknown_03004B00
- ldrh r0, [r3]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r1, 0x1E]
- strh r0, [r4]
- ldrh r0, [r3, 0x2]
- mov r3, r10
- ldrh r3, [r3]
- adds r0, r3
- strh r0, [r1, 0x20]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r1, r6, 0
- cmp r0, r1
- blt _080CFC9C
- subs r0, r2, r1
- b _080CFC9E
- .align 2, 0
-_080CFC90: .4byte gUnknown_0202F7C9
-_080CFC94: .4byte gTasks
-_080CFC98: .4byte gUnknown_03004B00
-_080CFC9C:
- subs r0, r1, r2
-_080CFC9E:
- lsls r0, 16
- lsrs r0, 16
- lsls r4, r0, 16
- asrs r4, 16
- ldr r5, _080CFD14 @ =gUnknown_03004B00
- ldrh r1, [r5, 0x4]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- ldr r2, _080CFD18 @ =gTasks
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r6, r1, r2
- strh r0, [r6, 0x12]
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- movs r1, 0x80
- bl sub_81174C4
- strh r0, [r6, 0x14]
- ldrh r0, [r5, 0x4]
- strh r0, [r6, 0x16]
- mov r2, r10
- ldrh r1, [r2]
- movs r3, 0
- ldrsh r0, [r2, r3]
- mov r4, r9
- cmp r0, r4
- blt _080CFD1C
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x2
- negs r1, r1
- ands r1, r0
- strh r1, [r6, 0x18]
- b _080CFD3C
- .align 2, 0
-_080CFD14: .4byte gUnknown_03004B00
-_080CFD18: .4byte gTasks
-_080CFD1C:
- subs r4, r1
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- bl sub_81174E0
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_81174C4
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r6, 0x18]
-_080CFD3C:
- ldr r1, _080CFD7C @ =gTasks
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r5, r0, r1
- ldr r4, _080CFD80 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0xE]
- ldrh r1, [r4, 0x8]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080CFD8C
- movs r0, 0x80
- eors r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFD84 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CFD88 @ =0x0000ffc0
- adds r1, r2, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFD7C: .4byte gTasks
-_080CFD80: .4byte gUnknown_03004B00
-_080CFD84: .4byte gUnknown_0202F7C9
-_080CFD88: .4byte 0x0000ffc0
-_080CFD8C:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _080CFDB4
- ldr r0, _080CFDAC @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080CFDB0 @ =0x0000ffc0
- adds r1, r3, 0
- ldrh r4, [r4, 0x8]
- adds r1, r4
- adds r0, r1
- b _080CFDC4
- .align 2, 0
-_080CFDAC: .4byte gUnknown_0202F7C9
-_080CFDB0: .4byte 0x0000ffc0
-_080CFDB4:
- ldr r0, _080CFDF0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- subs r0, r1
-_080CFDC4:
- strh r0, [r5, 0xC]
- ldr r0, _080CFDF4 @ =gTasks
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- bgt _080CFDDC
- movs r0, 0x3
- strh r0, [r1, 0xC]
-_080CFDDC:
- ldr r0, _080CFDF8 @ =sub_80CFA20
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFDF0: .4byte gUnknown_0202F7C9
-_080CFDF4: .4byte gTasks
-_080CFDF8: .4byte sub_80CFA20
- thumb_func_end sub_80CFB04
-
- thumb_func_start sub_80CFDFC
-sub_80CFDFC: @ 80CFDFC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080CFE24 @ =gSpriteTemplate_83D75AC
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x2E]
- ldr r0, _080CFE28 @ =sub_80CFE2C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE24: .4byte gSpriteTemplate_83D75AC
-_080CFE28: .4byte sub_80CFE2C
- thumb_func_end sub_80CFDFC
-
- thumb_func_start sub_80CFE2C
-sub_80CFE2C: @ 80CFE2C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFE90
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r5, [r4, 0x2E]
- ldr r1, _080CFE98 @ =gPlttBufferFaded
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- adds r6, r1, 0
- adds r1, r5, 0
- adds r1, 0x9
- lsls r0, r5, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- movs r3, 0x7
- lsls r1, 1
- adds r1, r6
-_080CFE64:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080CFE64
- adds r0, r5, 0
- adds r0, 0xF
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080CFE90
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFE90:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFE98: .4byte gPlttBufferFaded
- thumb_func_end sub_80CFE2C
-
- thumb_func_start sub_80CFE9C
-sub_80CFE9C: @ 80CFE9C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080CFF3C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080CFF40 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080CFF44 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080CFEE0
- ldrh r0, [r4, 0x4]
- negs r0, r0
- strh r0, [r4, 0x4]
-_080CFEE0:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r1, [r4, 0x4]
- adds r0, r1
- lsls r0, 16
- ldrh r1, [r5, 0x20]
- lsrs r6, r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x32]
- strh r7, [r5, 0x36]
- ldr r0, _080CFF48 @ =sub_8078C00
- str r0, [r5, 0x1C]
- ldr r1, _080CFF4C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFF3C: .4byte gUnknown_0202F7C9
-_080CFF40: .4byte gUnknown_03004B00
-_080CFF44: .4byte gUnknown_0202F7C8
-_080CFF48: .4byte sub_8078C00
-_080CFF4C: .4byte move_anim_8072740
- thumb_func_end sub_80CFE9C
-
- thumb_func_start sub_80CFF50
-sub_80CFF50: @ 80CFF50
- ldr r1, _080CFF60 @ =0x0000fff0
- strh r1, [r0, 0x32]
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldr r1, _080CFF64 @ =sub_80CFF68
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080CFF60: .4byte 0x0000fff0
-_080CFF64: .4byte sub_80CFF68
- thumb_func_end sub_80CFF50
-
- thumb_func_start sub_80CFF68
-sub_80CFF68: @ 80CFF68
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldr r0, _080CFFD4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080CFF8C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080CFF8C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080CFFCC
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080CFFCC
- adds r0, r4, 0
- bl move_anim_8072740
-_080CFFCC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CFFD4: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80CFF68
-
- thumb_func_start sub_80CFFD8
-sub_80CFFD8: @ 80CFFD8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080D0024 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080D0028 @ =sub_8078B34
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D002C @ =sub_80D0030
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0024: .4byte gUnknown_0202F7C9
-_080D0028: .4byte sub_8078B34
-_080D002C: .4byte sub_80D0030
- thumb_func_end sub_80CFFD8
-
- thumb_func_start sub_80D0030
-sub_80D0030: @ 80D0030
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA6
- bl PlaySE12WithPanning
- 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, 0x26]
- strh r1, [r4, 0x24]
- movs r2, 0
- movs r1, 0x7
- adds r0, r4, 0
- adds r0, 0x3C
-_080D0064:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D0064
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r2, _080D00AC @ =0x0000fff4
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r4, 0x3A]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA0
- bl __umodsi3
- adds r0, 0xA0
- strh r0, [r4, 0x3C]
- ldr r0, _080D00B0 @ =sub_80D00B4
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D00AC: .4byte 0x0000fff4
-_080D00B0: .4byte sub_80D00B4
- thumb_func_end sub_80D0030
-
- thumb_func_start sub_80D00B4
-sub_80D00B4: @ 80D00B4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x2E]
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 24
- strh r2, [r4, 0x24]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D00D2
- negs r0, r2
- strh r0, [r4, 0x24]
-_080D00D2:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x8
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7E
- ble _080D0112
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D0112
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0112:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D00B4
-
- thumb_func_start sub_80D0118
-sub_80D0118: @ 80D0118
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D0168 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D0136
- ldrh r0, [r4, 0x22]
- adds r0, 0x10
- strh r0, [r4, 0x22]
-_080D0136:
- ldr r1, _080D016C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D0170 @ =sub_8078114
- str r0, [r4, 0x1C]
- ldr r1, _080D0174 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0168: .4byte gUnknown_0202F7C8
-_080D016C: .4byte gUnknown_03004B00
-_080D0170: .4byte sub_8078114
-_080D0174: .4byte move_anim_8072740
- thumb_func_end sub_80D0118
-
- thumb_func_start sub_80D0178
-sub_80D0178: @ 80D0178
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r7, 0x20
- ldr r4, _080D01F4 @ =0x0000ffe0
- movs r0, 0x10
- mov r8, r0
- ldr r6, _080D01F8 @ =0x0000fff0
- ldr r0, _080D01FC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D01A4
- adds r7, r4, 0
- movs r4, 0x20
- mov r8, r6
- movs r6, 0x10
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D01A4:
- lsls r0, r7, 16
- asrs r0, 16
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D0200 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r8
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- ldr r0, _080D0204 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D0208 @ =sub_80D020C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D01F4: .4byte 0x0000ffe0
-_080D01F8: .4byte 0x0000fff0
-_080D01FC: .4byte gUnknown_03004B00
-_080D0200: .4byte gUnknown_0202F7C9
-_080D0204: .4byte sub_8078B34
-_080D0208: .4byte sub_80D020C
- thumb_func_end sub_80D0178
-
- thumb_func_start sub_80D020C
-sub_80D020C: @ 80D020C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0222
- adds r0, r2, 0
- bl move_anim_8072740
-_080D0222:
- pop {r0}
- bx r0
- thumb_func_end sub_80D020C
-
- thumb_func_start sub_80D0228
-sub_80D0228: @ 80D0228
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r0, 0x20
- mov r8, r0
- ldr r4, _080D02BC @ =0x0000ffe0
- movs r2, 0x10
- mov r9, r2
- ldr r6, _080D02C0 @ =0x0000fff0
- ldr r7, _080D02C4 @ =gUnknown_03004B00
- ldrh r1, [r7]
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- beq _080D025C
- mov r8, r4
- movs r4, 0x20
- mov r9, r6
- movs r6, 0x10
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
-_080D025C:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D02C8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- add r0, r9
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r7]
- strh r0, [r5, 0x38]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x3A]
- ldr r0, _080D02CC @ =sub_80D02D0
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D02BC: .4byte 0x0000ffe0
-_080D02C0: .4byte 0x0000fff0
-_080D02C4: .4byte gUnknown_03004B00
-_080D02C8: .4byte gUnknown_0202F7C9
-_080D02CC: .4byte sub_80D02D0
- thumb_func_end sub_80D0228
-
- thumb_func_start sub_80D02D0
-sub_80D02D0: @ 80D02D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D0334
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- ldr r0, _080D033C @ =0x0000fffe
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- eors r0, r1
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x34]
- ldr r0, _080D0340 @ =sub_80D0344
- str r0, [r4, 0x1C]
-_080D0334:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D033C: .4byte 0x0000fffe
-_080D0340: .4byte sub_80D0344
- thumb_func_end sub_80D02D0
-
- thumb_func_start sub_80D0344
-sub_80D0344: @ 80D0344
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D035C
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
-_080D035C:
- ldrh r0, [r4, 0x34]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D039E
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- movs r1, 0x1
- eors r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080D03A4 @ =sub_80D03A8
- str r0, [r4, 0x1C]
-_080D039E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D03A4: .4byte sub_80D03A8
- thumb_func_end sub_80D0344
-
- thumb_func_start sub_80D03A8
-sub_80D03A8: @ 80D03A8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D03BC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D03BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D03A8
-
- thumb_func_start sub_80D03C4
-sub_80D03C4: @ 80D03C4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0xD0
- movs r2, 0xD0
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080D041C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
- ldr r1, _080D0420 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x50
- strh r1, [r0, 0x8]
- ldr r1, _080D0424 @ =sub_80D0428
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D041C: .4byte gSprites
-_080D0420: .4byte gTasks
-_080D0424: .4byte sub_80D0428
- thumb_func_end sub_80D03C4
-
- thumb_func_start sub_80D0428
-sub_80D0428: @ 80D0428
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D0480 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D0478
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _080D0484 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0x1
- bl sub_8079108
- adds r0, r5, 0
- bl move_anim_task_del
-_080D0478:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0480: .4byte gTasks
-_080D0484: .4byte gSprites
- thumb_func_end sub_80D0428
-
- thumb_func_start sub_80D0488
-sub_80D0488: @ 80D0488
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D04D4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x8]
- movs r1, 0
- bl sub_8078E70
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldr r0, _080D04D8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x16]
- ldr r0, _080D04DC @ =sub_80D04E0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D04D4: .4byte gTasks
-_080D04D8: .4byte gUnknown_0202F7C8
-_080D04DC: .4byte sub_80D04E0
- thumb_func_end sub_80D0488
-
- thumb_func_start sub_80D04E0
-sub_80D04E0: @ 80D04E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D0504 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080D04FA
- b _080D060A
-_080D04FA:
- lsls r0, 2
- ldr r1, _080D0508 @ =_080D050C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D0504: .4byte gTasks
-_080D0508: .4byte _080D050C
- .align 2, 0
-_080D050C:
- .4byte _080D0524
- .4byte _080D056C
- .4byte _080D05A2
- .4byte _080D05A8
- .4byte _080D05B8
- .4byte _080D05EC
-_080D0524:
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080D0534
- cmp r0, 0x3
- beq _080D0534
- cmp r0, 0x6
- bne _080D053C
-_080D0534:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80D0614
-_080D053C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x28
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _080D05E4
-_080D056C:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D060A
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r1, 0x3
- bne _080D0582
- strh r0, [r4, 0xC]
- strh r1, [r4, 0xA]
- b _080D060A
-_080D0582:
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r0, 0x2
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A2:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05A8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _080D060A
- b _080D05E0
-_080D05B8:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- subs r0, 0x50
- strh r0, [r4, 0x10]
- ldrb r0, [r4, 0x8]
- movs r1, 0x10
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x8]
- bl sub_8079A64
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _080D060A
-_080D05E0:
- movs r0, 0
- strh r0, [r4, 0xC]
-_080D05E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D060A
-_080D05EC:
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- ldr r2, _080D0610 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x26]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D060A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0610: .4byte gSprites
- thumb_func_end sub_80D04E0
-
- thumb_func_start sub_80D0614
-sub_80D0614: @ 80D0614
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- blt _080D06EE
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xFF
- bne _080D0658
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080D0654 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- b _080D06EE
- .align 2, 0
-_080D0654: .4byte gSprites
-_080D0658:
- ldr r5, _080D06FC @ =gSprites
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r4, r3, r5
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrb r0, [r7, 0x16]
- ldrb r1, [r7, 0xE]
- subs r0, r1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r0, [r7, 0xE]
- adds r0, 0x1
- strh r0, [r7, 0xE]
- ldrh r0, [r7, 0x14]
- adds r0, 0x1
- strh r0, [r7, 0x14]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- movs r0, 0x6
- strh r0, [r4, 0x32]
- adds r5, 0x1C
- adds r3, r5
- ldr r0, _080D0700 @ =sub_80D0704
- str r0, [r3]
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x10
- ldrsh r2, [r7, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r0, 0x1
- orrs r3, r0
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
-_080D06EE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D06FC: .4byte gSprites
-_080D0700: .4byte sub_80D0704
- thumb_func_end sub_80D0614
-
- thumb_func_start sub_80D0704
-sub_80D0704: @ 80D0704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D0742
- ldr r3, _080D0748 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080D0742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0748: .4byte gTasks
- thumb_func_end sub_80D0704
-
- thumb_func_start sub_80D074C
-sub_80D074C: @ 80D074C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D0770 @ =gTasks
- adds r4, r0, r1
- ldr r5, _080D0774 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D0778
- adds r0, r2, 0
- bl move_anim_task_del
- b _080D079E
- .align 2, 0
-_080D0770: .4byte gTasks
-_080D0774: .4byte gUnknown_03004B00
-_080D0778:
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r4, 0x8]
- strh r2, [r4, 0xA]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r2, [r4, 0x10]
- ldr r2, _080D07A4 @ =gUnknown_083D76F4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D07A8 @ =sub_80D07AC
- str r0, [r4]
-_080D079E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D07A4: .4byte gUnknown_083D76F4
-_080D07A8: .4byte sub_80D07AC
- thumb_func_end sub_80D074C
-
- thumb_func_start sub_80D07AC
-sub_80D07AC: @ 80D07AC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D07D0 @ =gTasks
- adds r4, r0, r1
- movs r0, 0xA
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D0814
- cmp r5, 0x1
- bgt _080D07D4
- cmp r5, 0
- beq _080D07DE
- b _080D08BC
- .align 2, 0
-_080D07D0: .4byte gTasks
-_080D07D4:
- cmp r5, 0x2
- beq _080D0848
- cmp r5, 0x3
- beq _080D0878
- b _080D08BC
-_080D07DE:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r2, [r4, 0x10]
- adds r2, 0x3
- strh r2, [r4, 0x10]
- ldr r3, _080D0810 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- strh r5, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0810: .4byte gSprites
-_080D0814:
- adds r0, r4, 0
- bl sub_807992C
- ldr r2, _080D0844 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- ldrh r2, [r0, 0x26]
- adds r1, r2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D08BC
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D0870
- .align 2, 0
-_080D0844: .4byte gSprites
-_080D0848:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D0870
- ldr r2, _080D086C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0x10]
- subs r0, 0x2
- strh r0, [r4, 0x10]
- b _080D08BC
- .align 2, 0
-_080D086C: .4byte gSprites
-_080D0870:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080D08BC
-_080D0878:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D08BC
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080D08B0
- ldr r2, _080D08AC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
- b _080D08BC
- .align 2, 0
-_080D08AC: .4byte gSprites
-_080D08B0:
- ldrb r1, [r4, 0x8]
- ldr r2, _080D08C4 @ =gUnknown_083D76F4
- adds r0, r4, 0
- bl sub_80798F4
- strh r5, [r4, 0xA]
-_080D08BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08C4: .4byte gUnknown_083D76F4
- thumb_func_end sub_80D07AC
-
- thumb_func_start sub_80D08C8
-sub_80D08C8: @ 80D08C8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D08F8 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D08FC @ =gUnknown_083D7714
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0900 @ =sub_80D0904
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D08F8: .4byte gTasks
-_080D08FC: .4byte gUnknown_083D7714
-_080D0900: .4byte sub_80D0904
- thumb_func_end sub_80D08C8
-
- thumb_func_start sub_80D0904
-sub_80D0904: @ 80D0904
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D092C @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0924
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0924:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D092C: .4byte gTasks
- thumb_func_end sub_80D0904
-
- thumb_func_start sub_80D0930
-sub_80D0930: @ 80D0930
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D0960 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D0964
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080D097E
- .align 2, 0
-_080D0960: .4byte gUnknown_0202F7C8
-_080D0964:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x20
- strh r0, [r4, 0x20]
- ldr r0, _080D09B0 @ =0x0000ffc0
-_080D097E:
- strh r0, [r4, 0x30]
- ldr r0, _080D09B4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x22]
- movs r0, 0x34
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- strh r1, [r4, 0x34]
- strh r1, [r4, 0x36]
- ldr r1, _080D09B8 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D09BC @ =sub_8078394
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gUnknown_0202F7C8
-_080D09B8: .4byte move_anim_8072740
-_080D09BC: .4byte sub_8078394
- thumb_func_end sub_80D0930
-
- thumb_func_start sub_80D09C0
-sub_80D09C0: @ 80D09C0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D09D4 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D09DC
- ldr r0, _080D09D8 @ =gUnknown_0202F7C8
- b _080D09DE
- .align 2, 0
-_080D09D4: .4byte gUnknown_03004B00
-_080D09D8: .4byte gUnknown_0202F7C8
-_080D09DC:
- ldr r0, _080D0A3C @ =gUnknown_0202F7C9
-_080D09DE:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D09F8
- ldr r1, _080D0A40 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D09F8:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D0A40 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x4]
- adds r0, r4
- strh r0, [r6, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bgt _080D0A2A
- movs r0, 0x8
- strh r0, [r6, 0x22]
-_080D0A2A:
- ldr r1, _080D0A44 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl oamt_set_x3A_32
- ldr r0, _080D0A48 @ =sub_80785E4
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A3C: .4byte gUnknown_0202F7C9
-_080D0A40: .4byte gUnknown_03004B00
-_080D0A44: .4byte move_anim_8074EE0
-_080D0A48: .4byte sub_80785E4
- thumb_func_end sub_80D09C0
-
- thumb_func_start sub_80D0A4C
-sub_80D0A4C: @ 80D0A4C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D0A80 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- strh r1, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r2, _080D0A84 @ =gUnknown_083D77B0
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D0A88 @ =sub_80D0A8C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0A80: .4byte gTasks
-_080D0A84: .4byte gUnknown_083D77B0
-_080D0A88: .4byte sub_80D0A8C
- thumb_func_end sub_80D0A4C
-
- thumb_func_start sub_80D0A8C
-sub_80D0A8C: @ 80D0A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0AB4 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D0AAC
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0AAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0AB4: .4byte gTasks
- thumb_func_end sub_80D0A8C
-
- thumb_func_start sub_80D0AB8
-sub_80D0AB8: @ 80D0AB8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D0B2C @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- movs r0, 0x4
- strh r0, [r4, 0xC]
- movs r0, 0x7
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x10]
- ldr r3, _080D0B30 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- strh r2, [r4, 0x16]
- strh r2, [r4, 0x18]
- movs r0, 0x2
- strh r0, [r4, 0x1A]
- ldr r0, _080D0B34 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0B22
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0xC]
-_080D0B22:
- ldr r0, _080D0B38 @ =sub_80D0B3C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0B2C: .4byte gTasks
-_080D0B30: .4byte gSprites
-_080D0B34: .4byte gUnknown_0202F7C8
-_080D0B38: .4byte sub_80D0B3C
- thumb_func_end sub_80D0AB8
-
- thumb_func_start sub_80D0B3C
-sub_80D0B3C: @ 80D0B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0B84 @ =gTasks
- adds r3, r0, r1
- ldrh r0, [r3, 0x16]
- adds r0, 0x1
- strh r0, [r3, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D0BA2
- movs r0, 0
- strh r0, [r3, 0x16]
- ldrh r0, [r3, 0x18]
- adds r0, 0x1
- strh r0, [r3, 0x18]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0B8C
- ldr r2, _080D0B88 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x1A]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- b _080D0BA0
- .align 2, 0
-_080D0B84: .4byte gTasks
-_080D0B88: .4byte gSprites
-_080D0B8C:
- ldr r2, _080D0BB4 @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
-_080D0BA0:
- strh r1, [r0, 0x22]
-_080D0BA2:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080D0BF0
- cmp r0, 0x1
- bgt _080D0BB8
- cmp r0, 0
- beq _080D0BBE
- b _080D0C80
- .align 2, 0
-_080D0BB4: .4byte gSprites
-_080D0BB8:
- cmp r0, 0x2
- beq _080D0C20
- b _080D0C80
-_080D0BBE:
- ldr r2, _080D0BEC @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0xE
- strh r0, [r3, 0xE]
- movs r0, 0x1
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0BEC: .4byte gSprites
-_080D0BF0:
- ldr r2, _080D0C1C @ =gSprites
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- ldrh r2, [r3, 0xC]
- subs r1, r2
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _080D0C80
- movs r0, 0x7
- strh r0, [r3, 0xE]
- movs r0, 0x2
- strh r0, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C1C: .4byte gSprites
-_080D0C20:
- ldr r2, _080D0C58 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0xC]
- ldrh r5, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080D0C80
- ldrh r0, [r3, 0x10]
- subs r0, 0x1
- strh r0, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- beq _080D0C5C
- movs r0, 0x7
- strh r0, [r3, 0xE]
- strh r1, [r3, 0xA]
- b _080D0C80
- .align 2, 0
-_080D0C58: .4byte gSprites
-_080D0C5C:
- ldrh r1, [r3, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D0C7A
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- ldrh r2, [r3, 0x1A]
- subs r1, r2
- strh r1, [r0, 0x22]
-_080D0C7A:
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0C80:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0B3C
-
- thumb_func_start sub_80D0C88
-sub_80D0C88: @ 80D0C88
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D0CD8 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080D0CDC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- movs r1, 0
- strh r0, [r5, 0x8]
- movs r0, 0x4
- strh r0, [r5, 0xA]
- strh r1, [r5, 0xC]
- strh r1, [r5, 0xE]
- strh r1, [r5, 0x10]
- strh r1, [r5, 0x12]
- ldrb r0, [r4]
- bl sub_807A100
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D0CE8
- ldr r0, _080D0CE0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0CE4 @ =REG_BG1HOFS
- b _080D0CF0
- .align 2, 0
-_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gUnknown_0202F7C9
-_080D0CE0: .4byte gUnknown_030042C0
-_080D0CE4: .4byte REG_BG1HOFS
-_080D0CE8:
- ldr r0, _080D0D54 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldr r0, _080D0D58 @ =REG_BG2HOFS
-_080D0CF0:
- str r0, [sp]
- ldrh r0, [r5, 0x8]
- adds r1, r0, 0
- subs r1, 0x40
- lsls r2, r1, 16
- lsls r0, 16
- cmp r2, r0
- bgt _080D0D2E
- ldr r4, _080D0D5C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080D0D08:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080D0D20
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x14]
- adds r0, 0xF0
- strh r0, [r1]
-_080D0D20:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- cmp r1, r0
- ble _080D0D08
-_080D0D2E:
- ldr r0, _080D0D60 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080D0D64 @ =sub_80D0D68
- str r0, [r5]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0D54: .4byte gUnknown_03004288
-_080D0D58: .4byte REG_BG2HOFS
-_080D0D5C: .4byte gUnknown_03004DE0
-_080D0D60: .4byte 0xa2600001
-_080D0D64: .4byte sub_80D0D68
- thumb_func_end sub_80D0C88
-
- thumb_func_start sub_80D0D68
-sub_80D0D68: @ 80D0D68
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D0D88 @ =gTasks
- adds r3, r0, r1
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080D0D8C
- cmp r0, 0x1
- beq _080D0DA2
- b _080D0E22
- .align 2, 0
-_080D0D88: .4byte gTasks
-_080D0D8C:
- ldrh r0, [r3, 0x12]
- adds r0, 0x1
- strh r0, [r3, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D0E22
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- b _080D0E22
-_080D0DA2:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0E22
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xE]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- subs r0, r1
- strh r0, [r3, 0x12]
- movs r2, 0xC
- ldrsh r1, [r3, r2]
- cmp r1, 0x1
- beq _080D0DD8
- cmp r1, 0x1
- ble _080D0DE0
- cmp r1, 0x2
- beq _080D0DDC
- cmp r1, 0x3
- beq _080D0DDC
- b _080D0DE0
-_080D0DD8:
- subs r0, 0x2
- b _080D0DDE
-_080D0DDC:
- adds r0, 0x1
-_080D0DDE:
- strh r0, [r3, 0x12]
-_080D0DE0:
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- cmp r0, 0
- blt _080D0E04
- ldr r2, _080D0E28 @ =gUnknown_03004DE0
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 1
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r1
- adds r0, r2
- ldrh r1, [r3, 0x14]
- strh r1, [r0]
-_080D0E04:
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _080D0E22
- ldr r1, _080D0E2C @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- adds r0, r4, 0
- bl move_anim_task_del
-_080D0E22:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E28: .4byte gUnknown_03004DE0
-_080D0E2C: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D0D68
-
- thumb_func_start sub_80D0E30
-sub_80D0E30: @ 80D0E30
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080D0E84 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrb r0, [r6]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x36]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- adds r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- ldr r0, _080D0E88 @ =sub_80D0E8C
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D0E84: .4byte gUnknown_0202F7C9
-_080D0E88: .4byte sub_80D0E8C
- thumb_func_end sub_80D0E30
-
- thumb_func_start sub_80D0E8C
-sub_80D0E8C: @ 80D0E8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080D0EF0
- cmp r1, 0x1
- bgt _080D0EA2
- cmp r1, 0
- beq _080D0EA8
- b _080D0FD0
-_080D0EA2:
- cmp r1, 0x2
- beq _080D0F82
- b _080D0FD0
-_080D0EA8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0ED2
- strh r1, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0ED2:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- b _080D0F7A
-_080D0EF0:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D0F36
- ldrh r2, [r4, 0x32]
- movs r3, 0x32
- ldrsh r1, [r4, r3]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D0F36
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D0F36
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
-_080D0F36:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- adds r1, r0, r2
- strh r1, [r4, 0x36]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0x1F
- ble _080D0F4A
- movs r0, 0x40
- b _080D0F58
-_080D0F4A:
- movs r0, 0x20
- negs r0, r0
- cmp r2, r0
- bgt _080D0F64
- movs r2, 0x40
- negs r2, r2
- adds r0, r2, 0
-_080D0F58:
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x34]
-_080D0F64:
- ldrh r0, [r4, 0x36]
- movs r2, 0
- strh r0, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _080D0FD0
- strh r2, [r4, 0x30]
- strh r2, [r4, 0x32]
-_080D0F7A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D0FD0
-_080D0F82:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D0FAE
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D0FAE:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D0FD0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D0FD0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D0E8C
-
- thumb_func_start sub_80D0FD8
-sub_80D0FD8: @ 80D0FD8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- movs r5, 0
- mov r0, sp
- strh r5, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r5, [r1]
- ldr r0, _080D0FFC @ =gUnknown_03004B00
- movs r3, 0x4
- ldrsh r2, [r0, r3]
- adds r7, r1, 0
- adds r1, r0, 0
- cmp r2, 0
- bne _080D1004
- ldr r0, _080D1000 @ =gUnknown_0202F7C8
- b _080D1006
- .align 2, 0
-_080D0FFC: .4byte gUnknown_03004B00
-_080D1000: .4byte gUnknown_0202F7C8
-_080D1004:
- ldr r0, _080D1040 @ =gUnknown_0202F7C9
-_080D1006:
- ldrb r5, [r0]
- ldrb r1, [r1, 0x6]
- movs r0, 0x1
- adds r4, r0, 0
- eors r4, r1
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D107E
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_807A3FC
- cmp r4, 0
- bne _080D1044
- adds r0, r5, 0
- movs r1, 0
- b _080D1048
- .align 2, 0
-_080D1040: .4byte gUnknown_0202F7C9
-_080D1044:
- adds r0, r5, 0
- movs r1, 0x2
-_080D1048:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1074
- ldr r2, _080D1070 @ =gUnknown_03004B00
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r4
- ldrh r0, [r2]
- subs r1, r0
- subs r0, r1
- strh r0, [r2]
- b _080D107E
- .align 2, 0
-_080D1070: .4byte gUnknown_03004B00
-_080D1074:
- ldr r1, _080D1090 @ =gUnknown_03004B00
- mov r0, sp
- ldrh r0, [r0]
- subs r0, r4
- strh r0, [r1]
-_080D107E:
- ldr r1, _080D1094 @ =sub_80793C4
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1090: .4byte gUnknown_03004B00
-_080D1094: .4byte sub_80793C4
- thumb_func_end sub_80D0FD8
-
- thumb_func_start sub_80D1098
-sub_80D1098: @ 80D1098
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D10B2
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl move_anim_8072740
-_080D10B2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1098
-
- thumb_func_start sub_80D10B8
-sub_80D10B8: @ 80D10B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r6, 0
- mov r0, sp
- strh r6, [r0]
- mov r1, sp
- adds r1, 0x2
- strh r6, [r1]
- ldr r0, _080D10E4 @ =gUnknown_03004B00
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D10F0
- ldr r0, _080D10E8 @ =gUnknown_0202F7C8
- ldrb r7, [r0]
- ldr r0, _080D10EC @ =gUnknown_0202F7C9
- b _080D10F6
- .align 2, 0
-_080D10E4: .4byte gUnknown_03004B00
-_080D10E8: .4byte gUnknown_0202F7C8
-_080D10EC: .4byte gUnknown_0202F7C9
-_080D10F0:
- ldr r0, _080D1110 @ =gUnknown_0202F7C9
- ldrb r7, [r0]
- ldr r0, _080D1114 @ =gUnknown_0202F7C8
-_080D10F6:
- ldrb r0, [r0]
- mov r8, r0
- ldr r0, _080D1118 @ =gUnknown_03004B00
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080D111C
- movs r0, 0
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x4]
- b _080D1124
- .align 2, 0
-_080D1110: .4byte gUnknown_0202F7C9
-_080D1114: .4byte gUnknown_0202F7C8
-_080D1118: .4byte gUnknown_03004B00
-_080D111C:
- movs r2, 0x2
- mov r10, r2
- movs r3, 0x3
- str r3, [sp, 0x4]
-_080D1124:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1180
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D1164 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x2
- mov r4, r8
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D1170
- ldr r2, _080D1168 @ =gSprites
- ldr r0, _080D116C @ =gUnknown_02024BE0
- adds r0, r4, r0
- b _080D120A
- .align 2, 0
-_080D1164: .4byte gUnknown_03004B00
-_080D1168: .4byte gSprites
-_080D116C: .4byte gUnknown_02024BE0
-_080D1170:
- ldr r2, _080D1178 @ =gSprites
- ldr r0, _080D117C @ =gUnknown_02024BE0
- add r0, r8
- b _080D120A
- .align 2, 0
-_080D1178: .4byte gSprites
-_080D117C: .4byte gUnknown_02024BE0
-_080D1180:
- adds r0, r7, 0
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D11EC @ =gUnknown_03004B00
- ldrh r1, [r1]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _080D11F0 @ =gMain
- ldr r1, _080D11F4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D1204
- adds r4, r7, 0
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D1204
- ldr r3, _080D11F8 @ =gSprites
- ldr r2, _080D11FC @ =gUnknown_02024BE0
- adds r0, r7, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r3
- adds r2, r4, r2
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r3, 0x20
- ldrsh r1, [r6, r3]
- movs r3, 0x20
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D1200
- adds r0, r2, 0
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
- b _080D121A
- .align 2, 0
-_080D11EC: .4byte gUnknown_03004B00
-_080D11F0: .4byte gMain
-_080D11F4: .4byte 0x0000043d
-_080D11F8: .4byte gSprites
-_080D11FC: .4byte gUnknown_02024BE0
-_080D1200:
- adds r0, r6, 0
- b _080D1214
-_080D1204:
- ldr r2, _080D1268 @ =gSprites
- ldr r0, _080D126C @ =gUnknown_02024BE0
- adds r0, r7, r0
-_080D120A:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
-_080D1214:
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
-_080D121A:
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D1270 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080D1274 @ =gMain
- ldr r2, _080D1278 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D127C
- mov r0, r8
- movs r1, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D127C
- ldrb r1, [r4, 0xC]
- mov r0, r8
- mov r2, sp
- mov r3, sp
- adds r3, 0x2
- bl sub_807A3FC
- b _080D129C
- .align 2, 0
-_080D1268: .4byte gSprites
-_080D126C: .4byte gUnknown_02024BE0
-_080D1270: .4byte gUnknown_03004B00
-_080D1274: .4byte gMain
-_080D1278: .4byte 0x0000043d
-_080D127C:
- mov r4, sp
- mov r0, r8
- mov r1, r10
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r3, sp
- strh r0, [r3, 0x2]
-_080D129C:
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D12C0
- mov r3, sp
- mov r2, sp
- ldr r1, _080D12BC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r3]
- adds r2, r1, 0
- b _080D12CE
- .align 2, 0
-_080D12BC: .4byte gUnknown_03004B00
-_080D12C0:
- mov r3, sp
- mov r0, sp
- ldr r2, _080D1310 @ =gUnknown_03004B00
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- subs r0, r1
- strh r0, [r3]
-_080D12CE:
- ldrh r1, [r2, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- adds r1, r0
- mov r3, sp
- strh r1, [r3, 0x2]
- mov r0, r9
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x20]
- strh r6, [r5, 0x34]
- strh r6, [r5, 0x22]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x36]
- ldrh r0, [r2]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D1314 @ =sub_80D1098
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1310: .4byte gUnknown_03004B00
-_080D1314: .4byte sub_80D1098
- thumb_func_end sub_80D10B8
-
- thumb_func_start sub_80D1318
-sub_80D1318: @ 80D1318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D1358 @ =0x000027db
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080D133E
- lsls r0, 20
- ldr r1, _080D135C @ =0x01010000
- adds r0, r1
- lsrs r0, 16
- ldr r1, _080D1360 @ =gUnknown_03004B00
- ldrb r2, [r1, 0xA]
- ldrh r3, [r1, 0x8]
- movs r1, 0xF
- bl BlendPalette
-_080D133E:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080D1364 @ =sub_80793C4
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1358: .4byte 0x000027db
-_080D135C: .4byte 0x01010000
-_080D1360: .4byte gUnknown_03004B00
-_080D1364: .4byte sub_80793C4
- thumb_func_end sub_80D1318
-
- thumb_func_start sub_80D1368
-sub_80D1368: @ 80D1368
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r0, _080D139C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D1384
- ldr r1, _080D13A0 @ =0x0000ff60
-_080D1384:
- movs r0, 0xE0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _080D13A4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D13A8 @ =sub_80D13AC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D139C: .4byte gUnknown_0202F7C8
-_080D13A0: .4byte 0x0000ff60
-_080D13A4: .4byte gUnknown_03004B00
-_080D13A8: .4byte sub_80D13AC
- thumb_func_end sub_80D1368
-
- thumb_func_start sub_80D13AC
-sub_80D13AC: @ 80D13AC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- subs r1, r0
- movs r5, 0
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- subs r2, 0x20
- strh r2, [r4, 0x2E]
- ldr r0, _080D1418 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0xA0
- cmp r0, 0
- beq _080D13DC
- ldr r1, _080D141C @ =0x0000ff60
-_080D13DC:
- lsls r0, r1, 16
- asrs r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x26]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D1410
- ldrh r2, [r4, 0x22]
- adds r0, r1, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _080D1420 @ =sub_80D1424
- str r0, [r4, 0x1C]
-_080D1410:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1418: .4byte gUnknown_0202F7C8
-_080D141C: .4byte 0x0000ff60
-_080D1420: .4byte sub_80D1424
- thumb_func_end sub_80D13AC
-
- thumb_func_start sub_80D1424
-sub_80D1424: @ 80D1424
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080D1442
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080D1448 @ =sub_80D144C
- str r0, [r4, 0x1C]
-_080D1442:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1448: .4byte sub_80D144C
- thumb_func_end sub_80D1424
-
- thumb_func_start sub_80D144C
-sub_80D144C: @ 80D144C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D14B2
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1498
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _080D148C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D1490 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D1494 @ =sub_80D14C4
- b _080D14B0
- .align 2, 0
-_080D148C: .4byte 0x000003ff
-_080D1490: .4byte 0xfffffc00
-_080D1494: .4byte sub_80D14C4
-_080D1498:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r3, _080D14B8 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D14BC @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, _080D14C0 @ =sub_80D154C
-_080D14B0:
- str r0, [r4, 0x1C]
-_080D14B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D14B8: .4byte 0x000003ff
-_080D14BC: .4byte 0xfffffc00
-_080D14C0: .4byte sub_80D154C
- thumb_func_end sub_80D144C
-
- thumb_func_start sub_80D14C4
-sub_80D14C4: @ 80D14C4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x26]
- subs r0, 0x2
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _080D14F8
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r1, _080D14FC @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x2E]
- strh r0, [r1]
- ldr r0, _080D1500 @ =sub_80D1504
- str r0, [r2, 0x1C]
-_080D14F8:
- pop {r0}
- bx r0
- .align 2, 0
-_080D14FC: .4byte REG_BLDCNT
-_080D1500: .4byte sub_80D1504
- thumb_func_end sub_80D14C4
-
- thumb_func_start sub_80D1504
-sub_80D1504: @ 80D1504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D153C
- ldrh r1, [r4, 0x2E]
- subs r1, 0x1
- strh r1, [r4, 0x2E]
- ldr r2, _080D1544 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D153C
- ldr r0, _080D1548 @ =sub_80D154C
- str r0, [r4, 0x1C]
-_080D153C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1544: .4byte REG_BLDALPHA
-_080D1548: .4byte sub_80D154C
- thumb_func_end sub_80D1504
-
- thumb_func_start sub_80D154C
-sub_80D154C: @ 80D154C
- push {lr}
- adds r3, r0, 0
- ldr r0, _080D1574 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080D1578 @ =0x0000ffff
- cmp r1, r0
- bne _080D1584
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D1580
- ldr r0, _080D157C @ =sub_80D158C
- b _080D1582
- .align 2, 0
-_080D1574: .4byte gUnknown_03004B00
-_080D1578: .4byte 0x0000ffff
-_080D157C: .4byte sub_80D158C
-_080D1580:
- ldr r0, _080D1588 @ =move_anim_8072740
-_080D1582:
- str r0, [r3, 0x1C]
-_080D1584:
- pop {r0}
- bx r0
- .align 2, 0
-_080D1588: .4byte move_anim_8072740
- thumb_func_end sub_80D154C
-
- thumb_func_start sub_80D158C
-sub_80D158C: @ 80D158C
- push {lr}
- ldr r1, _080D15A0 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080D15A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D158C
-
- thumb_func_start sub_80D15A4
-sub_80D15A4: @ 80D15A4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D15D4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080D15D8 @ =gUnknown_083D79BC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D15DC @ =sub_80D15E0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D15D4: .4byte gTasks
-_080D15D8: .4byte gUnknown_083D79BC
-_080D15DC: .4byte sub_80D15E0
- thumb_func_end sub_80D15A4
-
- thumb_func_start sub_80D15E0
-sub_80D15E0: @ 80D15E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D1630 @ =gTasks
- adds r4, r0, r1
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _080D162A
- ldr r2, _080D1634 @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D162A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1630: .4byte gTasks
-_080D1634: .4byte gSprites
- thumb_func_end sub_80D15E0
-
- thumb_func_start sub_80D1638
-sub_80D1638: @ 80D1638
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D166C @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x3
- strh r0, [r4, 0x20]
- ldr r0, _080D1670 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D1678
- ldr r0, _080D1674 @ =0x0000ffff
- strh r0, [r4, 0x22]
- movs r0, 0x8
- b _080D167E
- .align 2, 0
-_080D166C: .4byte gTasks
-_080D1670: .4byte gUnknown_0202F7C9
-_080D1674: .4byte 0x0000ffff
-_080D1678:
- movs r0, 0x1
- strh r0, [r4, 0x22]
- ldr r0, _080D1698 @ =0x0000fff8
-_080D167E:
- strh r0, [r4, 0x24]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D169C @ =sub_80D16A0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1698: .4byte 0x0000fff8
-_080D169C: .4byte sub_80D16A0
- thumb_func_end sub_80D1638
-
- thumb_func_start sub_80D16A0
-sub_80D16A0: @ 80D16A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D16C4 @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- cmp r4, 0x1
- beq _080D16F4
- cmp r4, 0x1
- bgt _080D16C8
- cmp r4, 0
- beq _080D16D2
- b _080D17BA
- .align 2, 0
-_080D16C4: .4byte gTasks
-_080D16C8:
- cmp r4, 0x2
- beq _080D1770
- cmp r4, 0x3
- beq _080D178A
- b _080D17BA
-_080D16D2:
- ldr r2, _080D16F0 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- strh r4, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- b _080D1782
- .align 2, 0
-_080D16F0: .4byte gSprites
-_080D16F4:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D17BA
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- ands r0, r4
- lsls r0, 16
- cmp r0, 0
- beq _080D172C
- ldr r2, _080D1728 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- adds r1, 0x6
- b _080D173E
- .align 2, 0
-_080D1728: .4byte gSprites
-_080D172C:
- ldr r2, _080D176C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x6
-_080D173E:
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xE]
- adds r0, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D17BA
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1782
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- subs r0, 0x6
- strh r0, [r1, 0x24]
- b _080D1782
- .align 2, 0
-_080D176C: .4byte gSprites
-_080D1770:
- ldrh r0, [r3, 0x20]
- subs r0, 0x1
- strh r0, [r3, 0x20]
- lsls r0, 16
- cmp r0, 0
- beq _080D1782
- movs r0, 0
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D1782:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080D17BA
-_080D178A:
- ldr r2, _080D17C0 @ =gSprites
- movs r4, 0x26
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x22]
- ldrh r4, [r0, 0x24]
- adds r1, r4
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D17BA
- adds r0, r5, 0
- bl move_anim_task_del
-_080D17BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D17C0: .4byte gSprites
- thumb_func_end sub_80D16A0
-
- thumb_func_start sub_80D17C4
-sub_80D17C4: @ 80D17C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1800 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r0, 0xE
- strh r0, [r4, 0x22]
- movs r0, 0x2
- strh r0, [r4, 0x24]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D1804 @ =sub_80D1808
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1800: .4byte gTasks
-_080D1804: .4byte sub_80D1808
- thumb_func_end sub_80D17C4
-
- thumb_func_start sub_80D1808
-sub_80D1808: @ 80D1808
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D185C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _080D18CE
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _080D18CE
- strh r2, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D1864
- ldr r3, _080D1860 @ =gSprites
- movs r6, 0x26
- ldrsh r1, [r4, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _080D187A
- .align 2, 0
-_080D185C: .4byte gTasks
-_080D1860: .4byte gSprites
-_080D1864:
- ldr r3, _080D18AC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_080D187A:
- strb r1, [r0]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x22
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D18CE
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- movs r6, 0x24
- ldrsh r1, [r4, r6]
- cmp r0, r1
- bge _080D18B0
- strh r2, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- b _080D18CE
- .align 2, 0
-_080D18AC: .4byte gSprites
-_080D18B0:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D18CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1808
-
- thumb_func_start sub_80D18D4
-sub_80D18D4: @ 80D18D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D1924 @ =gTasks
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- movs r1, 0x4
- strh r1, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- strh r0, [r4, 0x12]
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- strh r0, [r4, 0x18]
- strh r0, [r4, 0x22]
- ldr r5, _080D1928 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D192C @ =sub_80D1930
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1924: .4byte gTasks
-_080D1928: .4byte gUnknown_0202F7C8
-_080D192C: .4byte sub_80D1930
- thumb_func_end sub_80D18D4
-
- thumb_func_start sub_80D1930
-sub_80D1930: @ 80D1930
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D1954 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x18
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _080D199C
- cmp r2, 0x1
- bgt _080D1958
- cmp r2, 0
- beq _080D195E
- b _080D19B8
- .align 2, 0
-_080D1954: .4byte gTasks
-_080D1958:
- cmp r2, 0x2
- beq _080D19B4
- b _080D19B8
-_080D195E:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D19B8
- strh r2, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1996
- strh r2, [r4, 0x14]
- movs r0, 0x1
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D1996:
- movs r0, 0x2
- strh r0, [r4, 0x18]
- b _080D19B8
-_080D199C:
- movs r1, 0
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D19B8
- strh r2, [r4, 0x16]
- strh r1, [r4, 0x18]
- b _080D19B8
-_080D19B4:
- movs r0, 0x1
- strh r0, [r4, 0x12]
-_080D19B8:
- movs r2, 0x8
- ldrsh r5, [r4, r2]
- cmp r5, 0
- beq _080D19C6
- cmp r5, 0x1
- beq _080D1A5C
- b _080D1A6A
-_080D19C6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D1A6A
- strh r5, [r4, 0xA]
- ldr r0, _080D1A50 @ =gSpriteTemplate_83D79E8
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D1A6A
- ldr r0, _080D1A54 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- strh r6, [r1, 0x2E]
- movs r0, 0xD
- strh r0, [r1, 0x30]
- ldr r2, _080D1A58 @ =gUnknown_083D7A00
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x24]
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r2, 0x1
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080D1A6A
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080D1A6A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D1A6A
- .align 2, 0
-_080D1A50: .4byte gSpriteTemplate_83D79E8
-_080D1A54: .4byte gSprites
-_080D1A58: .4byte gUnknown_083D7A00
-_080D1A5C:
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D1A6A
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1A6A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1930
-
- thumb_func_start sub_80D1A70
-sub_80D1A70: @ 80D1A70
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _080D1AD8 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r2, 0x1
- ldrb r1, [r0, 0x12]
- ands r1, r2
- lsls r1, 2
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D1AD2
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080D1AD2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1AD8: .4byte gTasks
- thumb_func_end sub_80D1A70
-
- thumb_func_start sub_80D1ADC
-sub_80D1ADC: @ 80D1ADC
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080D1B34 @ =0x000027de
- bl IndexOfSpritePaletteTag
- mov r1, sp
- strb r0, [r1]
- movs r5, 0x1
- ldr r0, _080D1B38 @ =0x00002710
- adds r4, r0, 0
-_080D1AF4:
- subs r0, r4, r5
- lsls r0, 16
- lsrs r0, 16
- bl AllocSpritePalette
- mov r2, sp
- adds r1, r2, r5
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1AF4
- ldr r4, _080D1B3C @ =gBattleAnimSpritePalette_206
- bl sub_8076BE0
- lsls r0, 24
- ldr r1, _080D1B40 @ =0x02018000
- cmp r0, 0
- beq _080D1B1C
- ldr r0, _080D1B44 @ =0xffffc800
- adds r1, r0
-_080D1B1C:
- adds r0, r4, 0
- bl sub_800D238
- movs r5, 0
-_080D1B24:
- lsls r4, r5, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D1B4C
- ldr r0, _080D1B48 @ =0x02014800
- b _080D1B4E
- .align 2, 0
-_080D1B34: .4byte 0x000027de
-_080D1B38: .4byte 0x00002710
-_080D1B3C: .4byte gBattleAnimSpritePalette_206
-_080D1B40: .4byte 0x02018000
-_080D1B44: .4byte 0xffffc800
-_080D1B48: .4byte 0x02014800
-_080D1B4C:
- ldr r0, _080D1B7C @ =0x02018000
-_080D1B4E:
- adds r2, r4, r0
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r1, 20
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- adds r5, 0x1
- cmp r5, 0x4
- ble _080D1B24
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1B7C: .4byte 0x02018000
- thumb_func_end sub_80D1ADC
-
- thumb_func_start sub_80D1B80
-sub_80D1B80: @ 80D1B80
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080D1BA4 @ =gUnknown_083D7A5C
- movs r4, 0x4
-_080D1B8A:
- ldrh r0, [r5]
- bl FreeSpritePaletteByTag
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D1B8A
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BA4: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1B80
-
- thumb_func_start sub_80D1BA8
-sub_80D1BA8: @ 80D1BA8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- movs r0, 0x1
- ands r3, r0
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- movs r3, 0x20
- ands r0, r3
- ldrh r4, [r5, 0x4]
- lsls r3, r4, 22
- lsrs r3, 22
- lsrs r1, 22
- adds r0, r1
- adds r3, r0
- ldr r1, _080D1BFC @ =0x000003ff
- adds r0, r1, 0
- ands r3, r0
- ldr r0, _080D1C00 @ =0xfffffc00
- ands r0, r4
- orrs r0, r3
- strh r0, [r5, 0x4]
- ldr r0, _080D1C04 @ =gUnknown_083D7A5C
- lsrs r2, 25
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r5, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1BFC: .4byte 0x000003ff
-_080D1C00: .4byte 0xfffffc00
-_080D1C04: .4byte gUnknown_083D7A5C
- thumb_func_end sub_80D1BA8
-
- thumb_func_start sub_80D1C08
-sub_80D1C08: @ 80D1C08
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0
- bl sub_80787B0
- ldr r6, _080D1C70 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D1C28
- ldr r1, _080D1C74 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D1C28:
- ldr r4, _080D1C74 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x2E]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldr r0, _080D1C78 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D1C7C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrb r1, [r4, 0xA]
- ldrb r2, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80D1BA8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1C70: .4byte gUnknown_0202F7C8
-_080D1C74: .4byte gUnknown_03004B00
-_080D1C78: .4byte sub_8078B34
-_080D1C7C: .4byte move_anim_8072740
- thumb_func_end sub_80D1C08
-
- thumb_func_start sub_80D1C80
-sub_80D1C80: @ 80D1C80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1C9A
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
-_080D1C9A:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x32]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x7
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- subs r2, 0x80
- strh r2, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bne _080D1CCA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1CCA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1C80
-
- thumb_func_start sub_80D1CD0
-sub_80D1CD0: @ 80D1CD0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- movs r2, 0xF0
- cmp r0, 0
- beq _080D1CE4
- movs r2, 0x98
-_080D1CE4:
- movs r3, 0
- ldr r0, _080D1D2C @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _080D1D30 @ =gUnknown_03004240
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080D1D34 @ =REG_WIN0H
- strh r2, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r1, _080D1D38 @ =REG_WININ
- ldr r5, _080D1D3C @ =0x00003f1f
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r5, 0x20
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _080D1D40 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x8]
- strh r2, [r0, 0xA]
- ldr r1, _080D1D44 @ =sub_80D1D48
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D2C: .4byte gUnknown_030042C4
-_080D1D30: .4byte gUnknown_03004240
-_080D1D34: .4byte REG_WIN0H
-_080D1D38: .4byte REG_WININ
-_080D1D3C: .4byte 0x00003f1f
-_080D1D40: .4byte gTasks
-_080D1D44: .4byte sub_80D1D48
- thumb_func_end sub_80D1CD0
-
- thumb_func_start sub_80D1D48
-sub_80D1D48: @ 80D1D48
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D1D7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x8]
- adds r4, r0, 0
- adds r4, 0xD
- strh r4, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r2, r0, 0
- subs r2, 0xD
- strh r2, [r3, 0xA]
- lsls r1, r4, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080D1D88
- ldr r0, _080D1D80 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D1D84 @ =sub_80D1D9C
- str r0, [r3]
- b _080D1D90
- .align 2, 0
-_080D1D7C: .4byte gTasks
-_080D1D80: .4byte gUnknown_030042C4
-_080D1D84: .4byte sub_80D1D9C
-_080D1D88:
- ldr r1, _080D1D98 @ =gUnknown_030042C4
- lsls r0, r4, 8
- orrs r2, r0
- strh r2, [r1]
-_080D1D90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1D98: .4byte gUnknown_030042C4
- thumb_func_end sub_80D1D48
-
- thumb_func_start sub_80D1D9C
-sub_80D1D9C: @ 80D1D9C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r5, _080D1DEC @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- adds r1, r3, r5
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r1, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080D1DF8
- movs r0, 0x88
- strh r0, [r1, 0x1E]
- adds r0, r5, r3
- adds r0, 0x1E
- ldr r1, _080D1DF0 @ =REG_BLDCNT
- movs r2, 0x2
- bl RequestSpriteCopy
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- ldr r2, _080D1DF4 @ =0x00007fff
- movs r1, 0x10
- bl BlendPalettes
- b _080D1E1E
- .align 2, 0
-_080D1DEC: .4byte gTasks
-_080D1DF0: .4byte REG_BLDCNT
-_080D1DF4: .4byte 0x00007fff
-_080D1DF8:
- cmp r0, 0x4
- ble _080D1E1E
- ldr r0, _080D1E28 @ =gUnknown_030042C4
- strh r4, [r0]
- ldr r0, _080D1E2C @ =gUnknown_03004240
- strh r4, [r0]
- ldr r0, _080D1E30 @ =REG_WININ
- ldr r3, _080D1E34 @ =0x00003f3f
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080D1E1E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1E28: .4byte gUnknown_030042C4
-_080D1E2C: .4byte gUnknown_03004240
-_080D1E30: .4byte REG_WININ
-_080D1E34: .4byte 0x00003f3f
- thumb_func_end sub_80D1D9C
-
- thumb_func_start sub_80D1E38
-sub_80D1E38: @ 80D1E38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1E88 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1E94
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1E8C @ =gUnknown_083D7A98
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1E90 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1EBC
- .align 2, 0
-_080D1E88: .4byte gTasks
-_080D1E8C: .4byte gUnknown_083D7A98
-_080D1E90: .4byte gSprites
-_080D1E94:
- ldr r1, _080D1EC4 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1EBC
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1EBC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1EC4: .4byte gSprites
- thumb_func_end sub_80D1E38
-
- thumb_func_start sub_80D1EC8
-sub_80D1EC8: @ 80D1EC8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D1F18 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D1F24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D1F1C @ =gUnknown_083D7A98
- adds r0, r5, 0
- bl sub_80798F4
- ldr r1, _080D1F20 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- movs r1, 0x4
- strh r1, [r0, 0x24]
- b _080D1F4C
- .align 2, 0
-_080D1F18: .4byte gTasks
-_080D1F1C: .4byte gUnknown_083D7A98
-_080D1F20: .4byte gSprites
-_080D1F24:
- ldr r1, _080D1F54 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r5, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D1F4C
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D1F4C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F54: .4byte gSprites
- thumb_func_end sub_80D1EC8
-
- thumb_func_start sub_80D1F58
-sub_80D1F58: @ 80D1F58
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x5F
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080D1F9C @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D1FA0 @ =sub_80D1FA4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D1F9C: .4byte gUnknown_0202F7C9
-_080D1FA0: .4byte sub_80D1FA4
- thumb_func_end sub_80D1F58
-
- thumb_func_start sub_80D1FA4
-sub_80D1FA4: @ 80D1FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D1FCE
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xE
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D1FD4
-_080D1FCE:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D1FD4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FA4
-
- thumb_func_start sub_80D1FDC
-sub_80D1FDC: @ 80D1FDC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2000
- ldr r1, _080D1FFC @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D205C
- .align 2, 0
-_080D1FFC: .4byte gUnknown_03004B00
-_080D2000:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D204E
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D204E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D205C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D205C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D1FDC
-
- thumb_func_start sub_80D2064
-sub_80D2064: @ 80D2064
- push {lr}
- ldr r2, _080D2088 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- movs r1, 0xA0
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x30]
- ldr r1, _080D208C @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D2090 @ =sub_80D2094
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D2088: .4byte gUnknown_03004B00
-_080D208C: .4byte sub_80782D8
-_080D2090: .4byte sub_80D2094
- thumb_func_end sub_80D2064
-
- thumb_func_start sub_80D2094
-sub_80D2094: @ 80D2094
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- lsls r0, 16
- lsrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- lsls r0, 16
- asrs r5, r0, 16
- cmp r5, 0x48
- bgt _080D20FA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- cmp r5, 0x40
- bgt _080D20FA
- adds r0, r4, 0
- bl move_anim_8072740
-_080D20FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2094
-
- thumb_func_start sub_80D2100
-sub_80D2100: @ 80D2100
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D21BC @ =REG_BLDCNT
- ldr r2, _080D21C0 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D21C4 @ =REG_BG1CNT
- ldrb r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D2144
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D2144:
- ldr r0, _080D21C8 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D21CC @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D21D0 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080D21D4 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080D21D8 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080D21DC @ =gAttractTilemap
- bl LZDecompressVram
- ldr r0, _080D21E0 @ =gAttractGfx
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D21E4 @ =gAttractPal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D21A4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D21A4:
- ldr r0, _080D21E8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D21EC @ =sub_80D21F0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D21BC: .4byte REG_BLDCNT
-_080D21C0: .4byte 0x00003f42
-_080D21C4: .4byte REG_BG1CNT
-_080D21C8: .4byte gUnknown_030042C0
-_080D21CC: .4byte gUnknown_030041B4
-_080D21D0: .4byte REG_BG1HOFS
-_080D21D4: .4byte 0x040000d4
-_080D21D8: .4byte 0x85000400
-_080D21DC: .4byte gAttractTilemap
-_080D21E0: .4byte gAttractGfx
-_080D21E4: .4byte gAttractPal
-_080D21E8: .4byte gTasks
-_080D21EC: .4byte sub_80D21F0
- thumb_func_end sub_80D2100
-
- thumb_func_start sub_80D21F0
-sub_80D21F0: @ 80D21F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2220 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2216
- b _080D238C
-_080D2216:
- lsls r0, 2
- ldr r1, _080D2224 @ =_080D2228
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2220: .4byte gTasks
-_080D2224: .4byte _080D2228
- .align 2, 0
-_080D2228:
- .4byte _080D223C
- .4byte _080D2284
- .4byte _080D22A6
- .4byte _080D22E8
- .4byte _080D236C
-_080D223C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080D2256
- b _080D238C
-_080D2256:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2280 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- beq _080D2274
- b _080D238C
-_080D2274:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D2280: .4byte REG_BLDALPHA
-_080D2284:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8D
- bne _080D238C
- movs r0, 0x10
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D238C
-_080D22A6:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D238C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D22E4 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D238C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D238C
- .align 2, 0
-_080D22E4: .4byte REG_BLDALPHA
-_080D22E8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D239C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D23A0 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D230E:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D230E
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D239C @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D23A4 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D235C
- ldr r2, _080D23A8 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D235C:
- ldr r0, _080D23AC @ =gTasks
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D236C:
- ldr r0, _080D23B0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D23A8 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D238C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D239C: .4byte 0x040000d4
-_080D23A0: .4byte 0x85000400
-_080D23A4: .4byte 0x85000200
-_080D23A8: .4byte REG_BG1CNT
-_080D23AC: .4byte gTasks
-_080D23B0: .4byte REG_BLDCNT
- thumb_func_end sub_80D21F0
-
- thumb_func_start sub_80D23B4
-sub_80D23B4: @ 80D23B4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2438 @ =REG_BLDCNT
- ldr r2, _080D243C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D2440 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D23FE
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D23FE:
- ldr r0, _080D2444 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D2448 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D244C @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r1, _080D2450 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080D2454 @ =0x85000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D245C
- ldr r0, _080D2458 @ =gBattleAnimBackgroundTilemap_ScaryFaceContest
- b _080D246E
- .align 2, 0
-_080D2438: .4byte REG_BLDCNT
-_080D243C: .4byte 0x00003f42
-_080D2440: .4byte REG_BG1CNT
-_080D2444: .4byte gUnknown_030042C0
-_080D2448: .4byte gUnknown_030041B4
-_080D244C: .4byte REG_BG1HOFS
-_080D2450: .4byte 0x040000d4
-_080D2454: .4byte 0x85000400
-_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
-_080D245C:
- ldr r0, _080D2478 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2480
- ldr r0, _080D247C @ =gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_080D246E:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D2488
- .align 2, 0
-_080D2478: .4byte gUnknown_0202F7C9
-_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
-_080D2480:
- ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080D2488:
- ldr r0, _080D24D0 @ =gBattleAnimBackgroundImage_ScaryFace
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D24D4 @ =gBattleAnimBackgroundPalette_ScaryFace
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D24B6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D24B6:
- ldr r0, _080D24D8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D24DC @ =sub_80D24E0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D24CC: .4byte gBattleAnimBackgroundTilemap_ScaryFaceOpponent
-_080D24D0: .4byte gBattleAnimBackgroundImage_ScaryFace
-_080D24D4: .4byte gBattleAnimBackgroundPalette_ScaryFace
-_080D24D8: .4byte gTasks
-_080D24DC: .4byte sub_80D24E0
- thumb_func_end sub_80D23B4
-
- thumb_func_start sub_80D24E0
-sub_80D24E0: @ 80D24E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D2510 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x20
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080D2506
- b _080D267C
-_080D2506:
- lsls r0, 2
- ldr r1, _080D2514 @ =_080D2518
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D2510: .4byte gTasks
-_080D2514: .4byte _080D2518
- .align 2, 0
-_080D2518:
- .4byte _080D252C
- .4byte _080D2574
- .4byte _080D2596
- .4byte _080D25D8
- .4byte _080D265C
-_080D252C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _080D2546
- b _080D267C
-_080D2546:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D2570 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- beq _080D2564
- b _080D267C
-_080D2564:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D2570: .4byte REG_BLDALPHA
-_080D2574:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D267C
- movs r0, 0xE
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D267C
-_080D2596:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080D267C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D25D4 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D267C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D267C
- .align 2, 0
-_080D25D4: .4byte REG_BLDALPHA
-_080D25D8:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r0, r5, 2
- mov r10, r0
- add r6, sp, 0xC
- movs r7, 0
- ldr r1, _080D268C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D2690 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D25FE:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D25FE
- str r7, [sp, 0xC]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D268C @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D2694 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D264C
- ldr r2, _080D2698 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D264C:
- ldr r0, _080D269C @ =gTasks
- mov r2, r10
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
-_080D265C:
- ldr r0, _080D26A0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D2698 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
-_080D267C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D268C: .4byte 0x040000d4
-_080D2690: .4byte 0x85000400
-_080D2694: .4byte 0x85000200
-_080D2698: .4byte REG_BG1CNT
-_080D269C: .4byte gTasks
-_080D26A0: .4byte REG_BLDCNT
- thumb_func_end sub_80D24E0
-
- thumb_func_start sub_80D26A4
-sub_80D26A4: @ 80D26A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D26F8 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080D26FC @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x3C]
- ldr r1, _080D2700 @ =sub_80D2704
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D26F8: .4byte gUnknown_0202F7C8
-_080D26FC: .4byte gUnknown_03004B00
-_080D2700: .4byte sub_80D2704
- thumb_func_end sub_80D26A4
-
- thumb_func_start sub_80D2704
-sub_80D2704: @ 80D2704
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D271A
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- b _080D271E
-_080D271A:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
-_080D271E:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- beq _080D2790
- cmp r2, 0x1
- bne _080D27C0
- ldr r1, _080D2788 @ =0xfffffc00
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _080D278C @ =0xffffff00
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D27C0
- movs r0, 0x2
- strh r0, [r4, 0x38]
- b _080D27D0
- .align 2, 0
-_080D2788: .4byte 0xfffffc00
-_080D278C: .4byte 0xffffff00
-_080D2790:
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080D27C0
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_080D27C0:
- ldr r0, _080D27D8 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080D27DC @ =0x0000ffff
- cmp r1, r0
- bne _080D27D0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D27D0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D27D8: .4byte gUnknown_03004B00
-_080D27DC: .4byte 0x0000ffff
- thumb_func_end sub_80D2704
-
- thumb_func_start sub_80D27E0
-sub_80D27E0: @ 80D27E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D2828 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D282C @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldr r0, _080D2830 @ =sub_80D2834
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2828: .4byte gUnknown_0202F7C8
-_080D282C: .4byte gUnknown_03004B00
-_080D2830: .4byte sub_80D2834
- thumb_func_end sub_80D27E0
-
- thumb_func_start sub_80D2834
-sub_80D2834: @ 80D2834
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r3, 0x24
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D2872
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D2872
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D2878
-_080D2872:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2878:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2834
-
- thumb_func_start sub_80D287C
-sub_80D287C: @ 80D287C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080D28A8
- adds r0, r2, 0
- bl move_anim_8072740
-_080D28A8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D287C
-
- thumb_func_start sub_80D28AC
-sub_80D28AC: @ 80D28AC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D28F8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080D28FC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- strh r0, [r5, 0x2E]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- bl Cos
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x32]
- ldr r0, _080D2900 @ =sub_80D287C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D28F8: .4byte gUnknown_0202F7C8
-_080D28FC: .4byte gUnknown_03004B00
-_080D2900: .4byte sub_80D287C
- thumb_func_end sub_80D28AC
-
- thumb_func_start sub_80D2904
-sub_80D2904: @ 80D2904
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D291A
- adds r0, r2, 0
- bl move_anim_8072740
-_080D291A:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2904
-
- thumb_func_start sub_80D2920
-sub_80D2920: @ 80D2920
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D2934 @ =sub_80D2904
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2934: .4byte sub_80D2904
- thumb_func_end sub_80D2920
-
- thumb_func_start sub_80D2938
-sub_80D2938: @ 80D2938
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2956
- ldr r0, _080D29C8 @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D2956:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r5, r0, 1
- movs r0, 0xFF
- ands r5, r0
- adds r0, r5, 0
- movs r1, 0x50
- bl Sin
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4F
- bgt _080D299A
- adds r0, r5, 0
- movs r1, 0x50
- bl Cos
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- lsls r0, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x26]
-_080D299A:
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- cmp r2, 0x5A
- ble _080D29B8
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
-_080D29B8:
- cmp r2, 0x64
- ble _080D29C2
- adds r0, r4, 0
- bl move_anim_8072740
-_080D29C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D29C8: .4byte gUnknown_03004B00
- thumb_func_end sub_80D2938
-
- thumb_func_start sub_80D29CC
-sub_80D29CC: @ 80D29CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- ble _080D2A22
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D2A22:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- ble _080D2A30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2A30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D29CC
-
- thumb_func_start sub_80D2A38
-sub_80D2A38: @ 80D2A38
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2A5C
- ldr r1, _080D2A58 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- adds r0, r2, 0x1
- strh r0, [r4, 0x2E]
- b _080D2AB0
- .align 2, 0
-_080D2A58: .4byte gUnknown_03004B00
-_080D2A5C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- movs r5, 0
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x46
- ble _080D2AB0
- ldr r0, _080D2AB8 @ =sub_80D29CC
- str r0, [r4, 0x1C]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r0, r2, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB4
- bl __umodsi3
- strh r0, [r4, 0x34]
-_080D2AB0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2AB8: .4byte sub_80D29CC
- thumb_func_end sub_80D2A38
-
- thumb_func_start sub_80D2ABC
-sub_80D2ABC: @ 80D2ABC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2AF6
- ldr r1, _080D2BB8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _080D2BBC @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2AF6:
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r0, r2
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r0, r1, 0
- cmp r1, 0
- bge _080D2B0C
- adds r0, 0xFF
-_080D2B0C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _080D2B1E
- movs r0, 0
- strh r0, [r4, 0x30]
-_080D2B1E:
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B2C
- adds r0, 0x3
-_080D2B2C:
- asrs r0, 2
- movs r1, 0x1E
- subs r1, r0
- adds r0, r2, 0
- bl Cos
- strh r0, [r4, 0x24]
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080D2B48
- adds r0, 0x7
-_080D2B48:
- asrs r0, 3
- movs r1, 0xA
- subs r1, r0
- adds r0, r2, 0
- bl Sin
- strh r0, [r4, 0x26]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- ble _080D2B6C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D2B6C
- ldr r0, _080D2BC0 @ =0x0000ffff
- strh r0, [r4, 0x32]
-_080D2B6C:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2B80
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080D2B80
- movs r0, 0x1
- strh r0, [r4, 0x32]
-_080D2B80:
- ldrh r0, [r4, 0x34]
- adds r1, r0, 0x1
- strh r1, [r4, 0x34]
- subs r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x46
- bls _080D2BC4
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080D2BD2
- .align 2, 0
-_080D2BB8: .4byte gUnknown_03004B00
-_080D2BBC: .4byte gUnknown_0202F7C9
-_080D2BC0: .4byte 0x0000ffff
-_080D2BC4:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D2BD2:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x5A
- ble _080D2BE0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2BE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2ABC
-
- thumb_func_start sub_80D2BE8
-sub_80D2BE8: @ 80D2BE8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2C1C
- ldr r1, _080D2C18 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D2C30
- .align 2, 0
-_080D2C18: .4byte gUnknown_03004B00
-_080D2C1C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2C30
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2C30:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2BE8
-
- thumb_func_start sub_80D2C38
-sub_80D2C38: @ 80D2C38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _080D2C50 @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C54
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D2CB8
- .align 2, 0
-_080D2C50: .4byte gUnknown_03004B00
-_080D2C54:
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D2C64
- ldr r4, _080D2C60 @ =gUnknown_0202F7C8
- b _080D2C66
- .align 2, 0
-_080D2C60: .4byte gUnknown_0202F7C8
-_080D2C64:
- ldr r4, _080D2C94 @ =gUnknown_0202F7C9
-_080D2C66:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D2C98 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _080D2C9C
- ldrh r0, [r5, 0x20]
- adds r0, 0x20
- b _080D2CA0
- .align 2, 0
-_080D2C94: .4byte gUnknown_0202F7C9
-_080D2C98: .4byte gUnknown_03004B00
-_080D2C9C:
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
-_080D2CA0:
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r1, [r2, 0x2]
- strh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r0, _080D2CC0 @ =sub_80D2CC4
- str r0, [r5, 0x1C]
-_080D2CB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2CC0: .4byte sub_80D2CC4
- thumb_func_end sub_80D2C38
-
- thumb_func_start sub_80D2CC4
-sub_80D2CC4: @ 80D2CC4
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D2CF4
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- cmp r0, 0
- beq _080D2CEE
- ldrh r1, [r2, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080D2CF4
-_080D2CEE:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2CF4:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2CC4
-
- thumb_func_start sub_80D2CF8
-sub_80D2CF8: @ 80D2CF8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080D2D2C @ =gUnknown_03004B00
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080D2D30 @ =gTasks
- adds r4, r0
- ldr r2, _080D2D34 @ =gUnknown_083D7CA8
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080D2D38 @ =sub_80D2D3C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D2C: .4byte gUnknown_03004B00
-_080D2D30: .4byte gTasks
-_080D2D34: .4byte gUnknown_083D7CA8
-_080D2D38: .4byte sub_80D2D3C
- thumb_func_end sub_80D2CF8
-
- thumb_func_start sub_80D2D3C
-sub_80D2D3C: @ 80D2D3C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D2D64 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080D2D5C
- adds r0, r4, 0
- bl move_anim_task_del
-_080D2D5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2D64: .4byte gTasks
- thumb_func_end sub_80D2D3C
-
- thumb_func_start sub_80D2D68
-sub_80D2D68: @ 80D2D68
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D2D7C @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D2D84
- ldr r0, _080D2D80 @ =gUnknown_0202F7C8
- b _080D2D86
- .align 2, 0
-_080D2D7C: .4byte gUnknown_03004B00
-_080D2D80: .4byte gUnknown_0202F7C8
-_080D2D84:
- ldr r0, _080D2E1C @ =gUnknown_0202F7C9
-_080D2D86:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D2DA0
- ldr r1, _080D2E20 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D2DA0:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r7, _080D2E20 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r3, [r7, 0x2]
- adds r0, r3
- movs r4, 0
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r7, 0x4]
- adds r0, r1
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x2E]
- ldrh r1, [r5, 0x20]
- lsls r1, 3
- strh r1, [r5, 0x30]
- lsls r0, 3
- strh r0, [r5, 0x32]
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DE0
- adds r0, 0x7
-_080D2DE0:
- asrs r0, 3
- strh r0, [r5, 0x34]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- lsls r0, 3
- cmp r0, 0
- bge _080D2DF0
- adds r0, 0x7
-_080D2DF0:
- asrs r0, 3
- strh r0, [r5, 0x36]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- lsls r0, 4
- adds r1, r0
- ldr r3, _080D2E24 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D2E28 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D2E2C @ =sub_80D2E30
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2E1C: .4byte gUnknown_0202F7C9
-_080D2E20: .4byte gUnknown_03004B00
-_080D2E24: .4byte 0x000003ff
-_080D2E28: .4byte 0xfffffc00
-_080D2E2C: .4byte sub_80D2E30
- thumb_func_end sub_80D2D68
-
- thumb_func_start sub_80D2E30
-sub_80D2E30: @ 80D2E30
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x34]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x36]
- ldrh r3, [r2, 0x32]
- adds r1, r3
- strh r1, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 19
- strh r1, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D2E64
- adds r0, r2, 0
- bl move_anim_8072740
-_080D2E64:
- pop {r0}
- bx r0
- thumb_func_end sub_80D2E30
-
- thumb_func_start sub_80D2E68
-sub_80D2E68: @ 80D2E68
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D2E8A
- ldr r0, _080D2EC4 @ =gUnknown_03004B00
- ldrh r1, [r0]
- movs r0, 0x78
- subs r0, r1
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080D2E8A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D2EA8
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- movs r1, 0
- bl sub_8079108
-_080D2EA8:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- adds r0, 0x50
- cmp r1, r0
- bne _080D2EBC
- adds r0, r4, 0
- bl move_anim_8072740
-_080D2EBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2EC4: .4byte gUnknown_03004B00
- thumb_func_end sub_80D2E68
-
- thumb_func_start sub_80D2EC8
-sub_80D2EC8: @ 80D2EC8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D2EF6
- movs r5, 0x78
- strh r5, [r6, 0x20]
- ldr r4, _080D2F78 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0xF
- strh r0, [r6, 0x22]
- ldrb r1, [r4, 0x2]
- adds r0, r6, 0
- bl StartSpriteAnim
- strh r5, [r6, 0x38]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x34]
-_080D2EF6:
- ldrh r0, [r6, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r6, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r6, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r6, 0x30]
- movs r2, 0x2E
- ldrsh r0, [r6, r2]
- lsls r4, r0, 1
- adds r4, r0
- ldrh r0, [r6, 0x34]
- adds r4, r0
- movs r2, 0xFF
- ldrh r0, [r6, 0x3A]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3A]
- ands r4, r2
- adds r0, r4, 0
- movs r1, 0x64
- bl Cos
- strh r0, [r6, 0x24]
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x4
- bl Cos
- ldrh r2, [r6, 0x30]
- adds r4, r2
- adds r0, r4
- strh r0, [r6, 0x26]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- movs r2, 0x38
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080D2F72
- ldr r0, _080D2F7C @ =sub_80D2F80
- str r0, [r6, 0x1C]
- strh r5, [r6, 0x2E]
- adds r0, r6, 0
- bl oamt_add_pos2_onto_pos1
- movs r0, 0x5
- strh r0, [r6, 0x32]
- strh r5, [r6, 0x36]
- strh r5, [r6, 0x34]
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080D2F72:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D2F78: .4byte gUnknown_03004B00
-_080D2F7C: .4byte sub_80D2F80
- thumb_func_end sub_80D2EC8
-
- thumb_func_start sub_80D2F80
-sub_80D2F80: @ 80D2F80
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- ble _080D2F9A
- movs r0, 0
- strh r0, [r1, 0x2E]
- ldr r0, _080D2FA0 @ =sub_80D2FA4
- str r0, [r1, 0x1C]
-_080D2F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D2FA0: .4byte sub_80D2FA4
- thumb_func_end sub_80D2F80
-
- thumb_func_start sub_80D2FA4
-sub_80D2FA4: @ 80D2FA4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x34]
- adds r0, r1, r2
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _080D2FCE
- lsls r0, r1, 16
- cmp r0, 0
- ble _080D2FCE
- ldrh r0, [r4, 0x36]
- subs r1, r0, 0x5
- strh r1, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_080D2FCE:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _080D3000
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3000:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _080D300E
- adds r0, r4, 0
- bl move_anim_8072740
-_080D300E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D2FA4
-
- thumb_func_start sub_80D3014
-sub_80D3014: @ 80D3014
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D3058 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D3060
- ldr r4, _080D305C @ =gUnknown_0202F7C8
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D3060
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrh r0, [r5, 0x22]
- adds r0, 0x28
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080D3080
- .align 2, 0
-_080D3058: .4byte gUnknown_020239F8
-_080D305C: .4byte gUnknown_0202F7C8
-_080D3060:
- ldr r4, _080D30A0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
- strh r0, [r5, 0x22]
-_080D3080:
- movs r0, 0xD
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- subs r0, 0x48
- strh r0, [r5, 0x36]
- ldr r0, _080D30A4 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D30A8 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D30A0: .4byte gUnknown_0202F7C8
-_080D30A4: .4byte sub_8078B34
-_080D30A8: .4byte move_anim_8072740
- thumb_func_end sub_80D3014
-
- thumb_func_start sub_80D30AC
-sub_80D30AC: @ 80D30AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D30C8 @ =gUnknown_03004B00
- ldr r1, _080D30CC @ =gUnknown_0202F7B4
- ldr r1, [r1]
- ldrb r2, [r1, 0x10]
- movs r1, 0x1
- ands r1, r2
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D30C8: .4byte gUnknown_03004B00
-_080D30CC: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80D30AC
-
- thumb_func_start update_fury_cutter_counter_copy
-update_fury_cutter_counter_copy: @ 80D30D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D30E8 @ =gUnknown_03004B00
- ldr r1, _080D30EC @ =gUnknown_0202F7B4
- ldr r1, [r1]
- ldrb r1, [r1, 0x10]
- strh r1, [r2, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D30E8: .4byte gUnknown_03004B00
-_080D30EC: .4byte gUnknown_0202F7B4
- thumb_func_end update_fury_cutter_counter_copy
-
- thumb_func_start sub_80D30F0
-sub_80D30F0: @ 80D30F0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080D3178 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D3118
- ldr r1, _080D317C @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r5, 0xA]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0xC]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0xE]
-_080D3118:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl __modsi3
- cmp r0, 0x1
- bne _080D3160
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x50
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080D3180 @ =gSpriteTemplate_83D9130
- adds r1, r4, 0
- movs r3, 0x4
- bl CreateSprite
-_080D3160:
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _080D3172
- adds r0, r6, 0
- bl move_anim_task_del
-_080D3172:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3178: .4byte gTasks
-_080D317C: .4byte gUnknown_03004B00
-_080D3180: .4byte gSpriteTemplate_83D9130
- thumb_func_end sub_80D30F0
-
- thumb_func_start sub_80D3184
-sub_80D3184: @ 80D3184
- ldr r1, _080D318C @ =sub_80D3190
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D318C: .4byte sub_80D3190
- thumb_func_end sub_80D3184
-
- thumb_func_start sub_80D3190
-sub_80D3190: @ 80D3190
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D31AE
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x26]
- adds r0, 0x4
- strh r0, [r2, 0x26]
-_080D31AE:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D31C2
- adds r0, r2, 0
- bl DestroySprite
-_080D31C2:
- pop {r0}
- bx r0
- thumb_func_end sub_80D3190
-
- thumb_func_start sub_80D31C8
-sub_80D31C8: @ 80D31C8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D31F0 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D31F8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080D31F4 @ =gUnknown_03004B00
- ldrh r1, [r4]
- subs r0, r1
- b _080D320A
- .align 2, 0
-_080D31F0: .4byte gUnknown_0202F7C8
-_080D31F4: .4byte gUnknown_03004B00
-_080D31F8:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D32D0 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
-_080D320A:
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
- strh r0, [r6, 0x22]
- adds r2, r6, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D32D4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D3240
- ldr r1, _080D32D0 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D3240:
- ldr r5, _080D32D0 @ =gUnknown_03004B00
- ldrh r0, [r5, 0xC]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r4, _080D32D8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D32DC @ =SpriteCallbackDummy
- bl object_new_hidden_with_callback
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r6, 0x38]
- ldrb r0, [r5, 0x8]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- ldrh r1, [r6, 0x20]
- subs r1, r0
- strh r1, [r6, 0x20]
- ldrb r0, [r5, 0x8]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- ldrh r1, [r6, 0x22]
- subs r1, r0
- strh r1, [r6, 0x22]
- ldr r0, _080D32E0 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x4]
- strh r0, [r1, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r1, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r1, 0x32]
- ldrb r0, [r5, 0x8]
- lsls r0, 8
- strh r0, [r1, 0x34]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x36]
- ldr r1, _080D32E4 @ =sub_80D32E8
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D32D0: .4byte gUnknown_03004B00
-_080D32D4: .4byte gUnknown_0202F7C8
-_080D32D8: .4byte gUnknown_0202F7C9
-_080D32DC: .4byte SpriteCallbackDummy
-_080D32E0: .4byte gSprites
-_080D32E4: .4byte sub_80D32E8
- thumb_func_end sub_80D31C8
-
- thumb_func_start sub_80D32E8
-sub_80D32E8: @ 80D32E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _080D3350 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r7, r0, r2
- ldrh r4, [r7, 0x36]
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r7, 0x34]
- mov r8, r0
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078B5C
- mov r1, r8
- lsrs r6, r1, 8
- movs r0, 0x2E
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Sin
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r0, 0x30
- ldrsh r1, [r7, r0]
- adds r0, r6, 0
- bl Cos
- ldrh r1, [r5, 0x26]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r0, [r7, 0x32]
- mov r1, r8
- adds r1, r0
- strh r1, [r7, 0x34]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- cmp r4, 0
- beq _080D3354
- strh r4, [r7, 0x36]
- b _080D335E
- .align 2, 0
-_080D3350: .4byte gSprites
-_080D3354:
- ldr r0, _080D336C @ =sub_80D3370
- str r0, [r5, 0x1C]
- adds r0, r7, 0
- bl DestroySprite
-_080D335E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D336C: .4byte sub_80D3370
- thumb_func_end sub_80D32E8
-
- thumb_func_start sub_80D3370
-sub_80D3370: @ 80D3370
- push {lr}
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldr r1, _080D3390 @ =sub_8078600
- str r1, [r0, 0x1C]
- ldr r1, _080D3394 @ =sub_80D3398
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D3390: .4byte sub_8078600
-_080D3394: .4byte sub_80D3398
- thumb_func_end sub_80D3370
-
- thumb_func_start sub_80D3398
-sub_80D3398: @ 80D3398
- push {lr}
- movs r1, 0xA
- strh r1, [r0, 0x2E]
- ldr r1, _080D33AC @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D33B0 @ =move_anim_8074EE0
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D33AC: .4byte sub_80782D8
-_080D33B0: .4byte move_anim_8074EE0
- thumb_func_end sub_80D3398
-
- thumb_func_start sub_80D33B4
-sub_80D33B4: @ 80D33B4
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D33DC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D33E4
- ldr r1, _080D33E0 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r1, 0
- b _080D33EA
- .align 2, 0
-_080D33DC: .4byte gUnknown_0202F7C8
-_080D33E0: .4byte gUnknown_03004B00
-_080D33E4:
- ldr r0, _080D3440 @ =gUnknown_03004B00
- ldrh r6, [r0, 0x4]
- adds r7, r0, 0
-_080D33EA:
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D3444 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r7, [r7, 0x6]
- adds r0, r7
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D3448 @ =sub_80D344C
- str r0, [r5, 0x1C]
- adds r2, r5, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3440: .4byte gUnknown_03004B00
-_080D3444: .4byte gUnknown_0202F7C9
-_080D3448: .4byte sub_80D344C
- thumb_func_end sub_80D33B4
-
- thumb_func_start sub_80D344C
-sub_80D344C: @ 80D344C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3488 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- ldr r0, _080D348C @ =0x0000ffff
- cmp r1, r0
- bne _080D346E
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_080D346E:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D3480
- adds r0, r4, 0
- bl move_anim_8072740
-_080D3480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3488: .4byte gUnknown_03004B00
-_080D348C: .4byte 0x0000ffff
- thumb_func_end sub_80D344C
-
- thumb_func_start sub_80D3490
-sub_80D3490: @ 80D3490
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D34C4 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080D34C8 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x8]
- ldr r0, _080D34CC @ =0x0000279c
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _080D34D0 @ =sub_80D34D4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D34C4: .4byte gTasks
-_080D34C8: .4byte gUnknown_03004B00
-_080D34CC: .4byte 0x0000279c
-_080D34D0: .4byte sub_80D34D4
- thumb_func_end sub_80D3490
-
- thumb_func_start sub_80D34D4
-sub_80D34D4: @ 80D34D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080D354C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0x3
- bne _080D3526
- movs r0, 0
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080D3550 @ =gPlttBufferFaded
- lsls r0, r5, 1
- adds r0, r1
- ldrh r6, [r0]
- adds r7, r1, 0
- adds r3, r0, 0x2
- movs r1, 0x6
- adds r2, r0, 0
-_080D3510:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080D3510
- adds r0, r5, 0x7
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
-_080D3526:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _080D3546
- adds r0, r4, 0
- bl move_anim_task_del
-_080D3546:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D354C: .4byte gTasks
-_080D3550: .4byte gPlttBufferFaded
- thumb_func_end sub_80D34D4
-
- thumb_func_start sub_80D3554
-sub_80D3554: @ 80D3554
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D35BC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r0, 0xD2
- lsls r0, 8
- bl __divsi3
- strh r0, [r5, 0x38]
- ldr r0, _080D35C0 @ =gUnknown_03004B00
- ldrh r2, [r0, 0x6]
- strh r2, [r5, 0x3C]
- ldrh r1, [r0, 0xE]
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- cmp r0, 0x7F
- ble _080D35C4
- adds r0, r1, 0
- subs r0, 0x7F
- lsls r0, 8
- strh r0, [r5, 0x3A]
- negs r0, r2
- strh r0, [r5, 0x3C]
- b _080D35C8
- .align 2, 0
-_080D35BC: .4byte gUnknown_0202F7C9
-_080D35C0: .4byte gUnknown_03004B00
-_080D35C4:
- lsls r0, r1, 8
- strh r0, [r5, 0x3A]
-_080D35C8:
- ldr r1, _080D35D8 @ =sub_80D35DC
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D35D8: .4byte sub_80D35DC
- thumb_func_end sub_80D3554
-
- thumb_func_start sub_80D35DC
-sub_80D35DC: @ 80D35DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D35F0
- adds r0, r4, 0
- bl move_anim_8072740
-_080D35F0:
- ldrh r0, [r4, 0x3A]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- adds r0, r1
- asrs r0, 8
- cmp r0, 0x7F
- ble _080D3620
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- negs r0, r0
- strh r0, [r4, 0x3C]
- b _080D3628
-_080D3620:
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x3A]
-_080D3628:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D35DC
-
- thumb_func_start sub_80D3630
-sub_80D3630: @ 80D3630
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D3650 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080D3654 @ =gUnknown_03004B00
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r3, 0xE]
- ldr r0, _080D3658 @ =sub_80D365C
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D3650: .4byte gTasks
-_080D3654: .4byte gUnknown_03004B00
-_080D3658: .4byte sub_80D365C
- thumb_func_end sub_80D3630
-
- thumb_func_start sub_80D365C
-sub_80D365C: @ 80D365C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080D3690 @ =gUnknown_03004B00
- ldrh r0, [r2, 0xE]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0xE]
- ldr r1, _080D3694 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080D368A
- adds r0, r3, 0
- bl move_anim_task_del
-_080D368A:
- pop {r0}
- bx r0
- .align 2, 0
-_080D3690: .4byte gUnknown_03004B00
-_080D3694: .4byte gTasks
- thumb_func_end sub_80D365C
-
- thumb_func_start sub_80D3698
-sub_80D3698: @ 80D3698
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r7, _080D36E4 @ =gUnknown_0202F7C8
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r7]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r6, _080D36E8 @ =0x0000fff6
- strh r6, [r4, 0x26]
- ldrb r0, [r7]
- bl sub_8079E90
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D36F2
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D36EC
- movs r0, 0xA
- strh r0, [r4, 0x24]
- b _080D36F4
- .align 2, 0
-_080D36E4: .4byte gUnknown_0202F7C8
-_080D36E8: .4byte 0x0000fff6
-_080D36EC:
- strh r6, [r4, 0x24]
- subs r0, r5, 0x2
- b _080D36F6
-_080D36F2:
- strh r6, [r4, 0x24]
-_080D36F4:
- adds r0, r5, 0x2
-_080D36F6:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r0, _080D3708 @ =sub_80D370C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3708: .4byte sub_80D370C
- thumb_func_end sub_80D3698
-
- thumb_func_start sub_80D370C
-sub_80D370C: @ 80D370C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D3722
- adds r0, r2, 0
- bl move_anim_8072740
-_080D3722:
- pop {r0}
- bx r0
- thumb_func_end sub_80D370C
-
- thumb_func_start sub_80D3728
-sub_80D3728: @ 80D3728
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r5, _080D37E8 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080D37EC @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D3772
- ldr r4, _080D37F0 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- beq _080D376A
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D3772
-_080D376A:
- movs r1, 0
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4]
-_080D3772:
- ldr r5, _080D37F0 @ =gUnknown_03004B00
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0
- cmp r0, 0
- bne _080D3786
- movs r1, 0x1
-_080D3786:
- ldrb r0, [r5, 0xA]
- movs r7, 0x1
- cmp r0, 0
- bne _080D3790
- movs r7, 0x3
-_080D3790:
- adds r0, r6, 0
- bl sub_80787B0
- ldr r0, _080D37E8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D37AA
- ldrh r0, [r5, 0x4]
- negs r0, r0
- strh r0, [r5, 0x4]
-_080D37AA:
- ldrh r0, [r5, 0x8]
- strh r0, [r6, 0x2E]
- ldr r4, _080D37EC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r4]
- adds r1, r7, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r6, 0x36]
- ldr r0, _080D37F4 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080D37F8 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D37E8: .4byte gUnknown_0202F7C8
-_080D37EC: .4byte gUnknown_0202F7C9
-_080D37F0: .4byte gUnknown_03004B00
-_080D37F4: .4byte sub_8078B34
-_080D37F8: .4byte move_anim_8072740
- thumb_func_end sub_80D3728
-
- thumb_func_start sub_80D37FC
-sub_80D37FC: @ 80D37FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D382C @ =gUnknown_03004B00
- ldrh r1, [r0, 0x8]
- strh r1, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x36]
- ldr r0, _080D3830 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D3834 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D382C: .4byte gUnknown_03004B00
-_080D3830: .4byte sub_8078B34
-_080D3834: .4byte move_anim_8072740
- thumb_func_end sub_80D37FC
-
- thumb_func_start sub_80D3838
-sub_80D3838: @ 80D3838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D3850 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D3854
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D385C
- .align 2, 0
-_080D3850: .4byte gUnknown_03004B00
-_080D3854:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
-_080D385C:
- ldr r0, _080D386C @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x3C]
- ldr r0, _080D3870 @ =sub_80D3874
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D386C: .4byte gUnknown_03004B00
-_080D3870: .4byte sub_80D3874
- thumb_func_end sub_80D3838
-
- thumb_func_start sub_80D3874
-sub_80D3874: @ 80D3874
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D38B4
- adds r0, r4, 0
- bl move_anim_8072740
-_080D38B4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D3874
-
- thumb_func_start sub_80D38BC
-sub_80D38BC: @ 80D38BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080D398C @ =REG_BLDCNT
- ldr r2, _080D3990 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r2, _080D3994 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- add r0, sp, 0xC
- mov r12, r0
- movs r5, 0
- ldr r1, _080D3998 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r7, _080D399C @ =0x85000400
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3920:
- str r5, [sp, 0x10]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D3920
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- mov r3, r12
- strb r0, [r3]
- strb r0, [r3]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x10]
- ldr r0, _080D3998 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D399C @ =0x85000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D39B8
- ldr r2, _080D3994 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D39A0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D39A8
- ldr r0, _080D39A4 @ =gUnknown_08E70968
- b _080D39AA
- .align 2, 0
-_080D398C: .4byte REG_BLDCNT
-_080D3990: .4byte 0x00003f42
-_080D3994: .4byte REG_BG1CNT
-_080D3998: .4byte 0x040000d4
-_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gUnknown_0202F7C8
-_080D39A4: .4byte gUnknown_08E70968
-_080D39A8:
- ldr r0, _080D39B4 @ =gUnknown_08E70C38
-_080D39AA:
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080D39CE
- .align 2, 0
-_080D39B4: .4byte gUnknown_08E70C38
-_080D39B8:
- ldr r0, _080D39F0 @ =gUnknown_08E70F0C
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_80763FC
-_080D39CE:
- ldr r0, _080D39F4 @ =gBattleAnimBackgroundImage_Surf
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080D39F8 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D3A00
- ldr r0, _080D39FC @ =gBattleAnimBackgroundPalette_Surf
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080D3A0E
- .align 2, 0
-_080D39F0: .4byte gUnknown_08E70F0C
-_080D39F4: .4byte gBattleAnimBackgroundImage_Surf
-_080D39F8: .4byte gUnknown_03004B00
-_080D39FC: .4byte gBattleAnimBackgroundPalette_Surf
-_080D3A00:
- ldr r0, _080D3A78 @ =gBattleAnimBackgroundImageMuddyWater_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080D3A0E:
- ldr r0, _080D3A7C @ =sub_80D3D68
- ldr r4, _080D3A80 @ =gTasks
- mov r2, r10
- lsls r5, r2, 2
- adds r1, r5, r2
- lsls r1, 3
- adds r6, r1, r4
- ldrb r1, [r6, 0x7]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r3, 0
- mov r9, r3
- mov r0, r8
- strh r0, [r6, 0x26]
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r7, r0, r4
- mov r2, r9
- strh r2, [r7, 0x8]
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r7, 0xA]
- strh r0, [r7, 0xC]
- bl sub_8076BE0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080D3A94
- ldr r3, _080D3A84 @ =0x0000ffb0
- adds r0, r3, 0
- ldr r1, _080D3A88 @ =gUnknown_030042C0
- strh r0, [r1]
- ldr r2, _080D3A8C @ =0x0000ffd0
- adds r0, r2, 0
- ldr r3, _080D3A90 @ =gUnknown_030041B4
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- mov r0, r9
- strh r0, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3A78: .4byte gBattleAnimBackgroundImageMuddyWater_Pal
-_080D3A7C: .4byte sub_80D3D68
-_080D3A80: .4byte gTasks
-_080D3A84: .4byte 0x0000ffb0
-_080D3A88: .4byte gUnknown_030042C0
-_080D3A8C: .4byte 0x0000ffd0
-_080D3A90: .4byte gUnknown_030041B4
-_080D3A94:
- ldr r0, _080D3AC4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080D3AD8
- ldr r2, _080D3AC8 @ =0x0000ff20
- adds r0, r2, 0
- ldr r3, _080D3ACC @ =gUnknown_030042C0
- strh r0, [r3]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldr r3, _080D3AD0 @ =gUnknown_030041B4
- strh r0, [r3]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- ldr r0, _080D3AD4 @ =0x0000ffff
- strh r0, [r6, 0xA]
- strh r1, [r7, 0xE]
- b _080D3AEE
- .align 2, 0
-_080D3AC4: .4byte gUnknown_0202F7C8
-_080D3AC8: .4byte 0x0000ff20
-_080D3ACC: .4byte gUnknown_030042C0
-_080D3AD0: .4byte gUnknown_030041B4
-_080D3AD4: .4byte 0x0000ffff
-_080D3AD8:
- ldr r0, _080D3B1C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r1, _080D3B20 @ =0x0000ffd0
- adds r0, r1, 0
- ldr r2, _080D3B24 @ =gUnknown_030041B4
- strh r0, [r2]
- ldr r0, _080D3B28 @ =0x0000fffe
- strh r0, [r6, 0x8]
- movs r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r7, 0xE]
-_080D3AEE:
- ldr r1, _080D3B2C @ =REG_BG1HOFS
- ldr r3, _080D3B1C @ =gUnknown_030042C0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080D3B24 @ =gUnknown_030041B4
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _080D3B30 @ =gTasks
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080D3B34
- movs r0, 0x30
- strh r0, [r2, 0x10]
- movs r0, 0x70
- b _080D3B38
- .align 2, 0
-_080D3B1C: .4byte gUnknown_030042C0
-_080D3B20: .4byte 0x0000ffd0
-_080D3B24: .4byte gUnknown_030041B4
-_080D3B28: .4byte 0x0000fffe
-_080D3B2C: .4byte REG_BG1HOFS
-_080D3B30: .4byte gTasks
-_080D3B34:
- movs r0, 0
- strh r0, [r2, 0x10]
-_080D3B38:
- strh r0, [r2, 0x12]
- mov r2, r10
- adds r0, r5, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x14]
- ldr r1, _080D3B5C @ =sub_80D3B60
- str r1, [r0]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3B5C: .4byte sub_80D3B60
- thumb_func_end sub_80D38BC
-
- thumb_func_start sub_80D3B60
-sub_80D3B60: @ 80D3B60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080D3D44 @ =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x8]
- ldr r1, _080D3D48 @ =gUnknown_030042C0
- ldrh r1, [r1]
- adds r0, r1
- ldr r2, _080D3D48 @ =gUnknown_030042C0
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- ldr r3, _080D3D4C @ =gUnknown_030041B4
- ldrh r3, [r3]
- adds r0, r3
- ldr r1, _080D3D4C @ =gUnknown_030041B4
- strh r0, [r1]
- add r5, sp, 0x4
- adds r0, r5, 0
- bl sub_8078914
- ldrh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- mov r10, r5
- cmp r0, 0x4
- bne _080D3C02
- ldr r1, _080D3D50 @ =gPlttBufferFaded
- ldrb r0, [r5, 0x8]
- lsls r0, 4
- adds r0, 0x7
- lsls r0, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r2, 0x6
- adds r5, r1, 0
- adds r3, r5, 0
- mov r4, r10
-_080D3BC8:
- ldrb r0, [r4, 0x8]
- lsls r0, 4
- adds r1, r2, 0x1
- adds r0, r1
- lsls r1, r0, 1
- adds r1, r3
- subs r0, 0x1
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- subs r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080D3BC8
- mov r3, r10
- ldrb r0, [r3, 0x8]
- lsls r0, 4
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- strh r6, [r0]
- ldr r1, _080D3D44 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
-_080D3C02:
- ldr r1, _080D3D44 @ =gTasks
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x14]
- adds r0, 0x1
- strh r0, [r3, 0x14]
- lsls r0, 16
- asrs r0, 16
- adds r4, r1, 0
- str r2, [sp, 0x14]
- cmp r0, 0x1
- ble _080D3C70
- movs r0, 0
- strh r0, [r3, 0x14]
- ldrh r0, [r3, 0xE]
- adds r2, r0, 0x1
- strh r2, [r3, 0xE]
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xD
- bgt _080D3C4C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
-_080D3C4C:
- movs r2, 0xE
- ldrsh r0, [r3, r2]
- cmp r0, 0x36
- ble _080D3C70
- ldrh r2, [r3, 0x10]
- subs r2, 0x1
- strh r2, [r3, 0x10]
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r2, r0
- strh r2, [r1, 0xA]
-_080D3C70:
- ldr r2, [sp, 0x14]
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r4
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0, 0xA]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080D3D32
- ldr r2, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 6
- add r6, sp, 0x10
- movs r5, 0
- ldr r1, _080D3D54 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r6
- ldr r0, _080D3D58 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D3CAA:
- str r5, [sp, 0x10]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D3CAA
- str r5, [sp, 0x10]
- str r6, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0]
- mov r3, r10
- ldr r1, [r3, 0x4]
- movs r4, 0
- str r4, [sp, 0x10]
- ldr r0, _080D3D54 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D3D58 @ =0x85000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D3D02
- ldr r2, _080D3D5C @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D3D02:
- ldr r0, _080D3D48 @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r1, _080D3D4C @ =gUnknown_030041B4
- strh r4, [r1]
- ldr r0, _080D3D60 @ =REG_BLDCNT
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r2, _080D3D44 @ =gTasks
- ldr r3, [sp, 0x14]
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r2
- movs r3, 0x26
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080D3D64 @ =0x0000ffff
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_080D3D32:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D3D44: .4byte gTasks
-_080D3D48: .4byte gUnknown_030042C0
-_080D3D4C: .4byte gUnknown_030041B4
-_080D3D50: .4byte gPlttBufferFaded
-_080D3D54: .4byte 0x040000d4
-_080D3D58: .4byte 0x85000400
-_080D3D5C: .4byte REG_BG1CNT
-_080D3D60: .4byte REG_BLDCNT
-_080D3D64: .4byte 0x0000ffff
- thumb_func_end sub_80D3B60
-
- thumb_func_start sub_80D3D68
-sub_80D3D68: @ 80D3D68
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080D3D90 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D3D84
- b _080D3EBC
-_080D3D84:
- cmp r0, 0x1
- bgt _080D3D94
- cmp r0, 0
- beq _080D3D9C
- b _080D4032
- .align 2, 0
-_080D3D90: .4byte gTasks
-_080D3D94:
- cmp r0, 0x2
- bne _080D3D9A
- b _080D3F88
-_080D3D9A:
- b _080D4032
-_080D3D9C:
- movs r3, 0
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- ldr r1, _080D3E6C @ =gUnknown_03004DE0
- mov r12, r1
- cmp r3, r0
- bge _080D3DDA
- mov r7, r12
- movs r5, 0xF0
- lsls r5, 3
- add r5, r12
- ldr r6, _080D3E70 @ =0x0000ffff
-_080D3DB4:
- lsls r2, r3, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r7
- adds r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r6, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080D3DB4
-_080D3DDA:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3E14
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70 @ =0x0000ffff
-_080D3DF2:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldrh r1, [r4, 0xA]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3DF2
-_080D3E14:
- ldrh r3, [r4, 0x12]
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- bgt _080D3E4A
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
- ldr r7, _080D3E70 @ =0x0000ffff
-_080D3E28:
- asrs r2, 16
- lsls r1, r2, 1
- adds r3, r1, r5
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- ldrh r1, [r4, 0xC]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- lsls r2, r3, 16
- asrs r0, r2, 16
- cmp r0, 0x9F
- ble _080D3E28
-_080D3E4A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D3E74
- lsls r0, r3, 16
- asrs r0, 15
- mov r3, r12
- adds r2, r0, r3
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xA]
- strh r1, [r0]
- ldrh r0, [r4, 0xA]
- b _080D3E8A
- .align 2, 0
-_080D3E6C: .4byte gUnknown_03004DE0
-_080D3E70: .4byte 0x0000ffff
-_080D3E74:
- lsls r0, r3, 16
- asrs r0, 15
- mov r1, r12
- adds r2, r0, r1
- movs r1, 0xF0
- lsls r1, 3
- add r1, r12
- adds r0, r1
- ldrh r1, [r4, 0xC]
- strh r1, [r0]
- ldrh r0, [r4, 0xC]
-_080D3E8A:
- strh r0, [r2]
- ldr r0, _080D3EB4 @ =REG_BLDALPHA
- str r0, [sp]
- ldr r0, _080D3EB8 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4032
- .align 2, 0
-_080D3EB4: .4byte REG_BLDALPHA
-_080D3EB8: .4byte 0xa2600001
-_080D3EBC:
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _080D3ED4
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _080D3EE8
- strh r1, [r4, 0x10]
- b _080D3EE2
-_080D3ED4:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080D3EE8
-_080D3EE2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D3EE8:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080D3F1C
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3EF6:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3EF6
-_080D3F1C:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3F50
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3F2E:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3F2E
-_080D3F50:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D4032
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
- ldr r5, _080D3F84 @ =gUnknown_03004DC0
-_080D3F5E:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3F5E
- b _080D4032
- .align 2, 0
-_080D3F80: .4byte gUnknown_03004DE0
-_080D3F84: .4byte gUnknown_03004DC0
-_080D3F88:
- movs r3, 0
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080D3FBC
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
-_080D3F96:
- lsls r1, r3, 16
- asrs r1, 16
- lsls r3, r1, 1
- ldrb r2, [r5, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- adds r3, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r3]
- adds r1, 0x1
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D3F96
-_080D3FBC:
- ldrh r3, [r4, 0x10]
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D3FF0
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
-_080D3FCE:
- asrs r3, r2, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- adds r3, 0x1
- lsls r2, r3, 16
- asrs r1, r2, 16
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _080D3FCE
-_080D3FF0:
- ldrh r3, [r4, 0x12]
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080D401C
- ldr r6, _080D403C @ =gUnknown_03004DE0
- ldr r5, _080D4040 @ =gUnknown_03004DC0
-_080D3FFE:
- asrs r3, r1, 16
- lsls r2, r3, 1
- ldrb r1, [r5, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- lsls r1, r3, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080D3FFE
-_080D401C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D4032
- bl remove_some_task
- adds r0, r7, 0
- bl DestroyTask
-_080D4032:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D403C: .4byte gUnknown_03004DE0
-_080D4040: .4byte gUnknown_03004DC0
- thumb_func_end sub_80D3D68
-
- thumb_func_start sub_80D4044
-sub_80D4044: @ 80D4044
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D4098 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D409C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D40A0 @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D408A
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D408A:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D40A4 @ =sub_80D40A8
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4098: .4byte 0x000003ff
-_080D409C: .4byte 0xfffffc00
-_080D40A0: .4byte 0x000001ff
-_080D40A4: .4byte sub_80D40A8
- thumb_func_end sub_80D4044
-
- thumb_func_start sub_80D40A8
-sub_80D40A8: @ 80D40A8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D40CC
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D40D0
-_080D40CC:
- lsls r0, r3, 16
- asrs r0, 24
-_080D40D0:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D40EE
- adds r0, r2, 0
- bl move_anim_8072740
-_080D40EE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D40A8
-
- thumb_func_start sub_80D40F4
-sub_80D40F4: @ 80D40F4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D4144 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r2, _080D4148 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x12]
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D414C @ =sub_80D4150
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4144: .4byte gTasks
-_080D4148: .4byte gSprites
-_080D414C: .4byte sub_80D4150
- thumb_func_end sub_80D40F4
-
- thumb_func_start sub_80D4150
-sub_80D4150: @ 80D4150
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D4178 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bls _080D416C
- b _080D438A
-_080D416C:
- lsls r0, 2
- ldr r1, _080D417C @ =_080D4180
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D4178: .4byte gTasks
-_080D417C: .4byte _080D4180
- .align 2, 0
-_080D4180:
- .4byte _080D41A0
- .4byte _080D41C6
- .4byte _080D4258
- .4byte _080D428E
- .4byte _080D42A2
- .4byte _080D42B0
- .4byte _080D4330
- .4byte _080D437C
-_080D41A0:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D41C6:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4222
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D4210
- ldr r2, _080D420C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x24]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
- b _080D4222
- .align 2, 0
-_080D420C: .4byte gSprites
-_080D4210:
- ldr r2, _080D4250 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D4254 @ =0x0000fffd
- strh r1, [r0, 0x24]
-_080D4222:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D4232
- b _080D438A
-_080D4232:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D4250 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xE]
- b _080D436C
- .align 2, 0
-_080D4250: .4byte gSprites
-_080D4254: .4byte 0x0000fffd
-_080D4258:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D4268
- b _080D438A
-_080D4268:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xE0
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- b _080D436E
-_080D428E:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080D438A
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
-_080D42A2:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80D4418
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D42B0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D438A
- movs r0, 0
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D42E8
- ldr r2, _080D42E4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- b _080D42FA
- .align 2, 0
-_080D42E4: .4byte gSprites
-_080D42E8:
- ldr r2, _080D432C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x2
-_080D42FA:
- strh r1, [r0, 0x26]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0xA
- bne _080D438A
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xE0
- bl sub_8079C08
- movs r0, 0
- strh r0, [r4, 0xE]
- strh r0, [r4, 0x10]
- b _080D436E
- .align 2, 0
-_080D432C: .4byte gSprites
-_080D4330:
- ldr r6, _080D4378 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D438A
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x22]
-_080D436C:
- strh r5, [r4, 0x10]
-_080D436E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D438A
- .align 2, 0
-_080D4378: .4byte gSprites
-_080D437C:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D438A
- adds r0, r2, 0
- bl move_anim_task_del
-_080D438A:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4150
-
- thumb_func_start sub_80D4394
-sub_80D4394: @ 80D4394
- push {r4,r5,lr}
- ldr r4, _080D43B8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D43C8
- ldr r1, _080D43BC @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D43C0 @ =gPlayerParty
- b _080D43D8
- .align 2, 0
-_080D43B8: .4byte gUnknown_0202F7C8
-_080D43BC: .4byte gUnknown_02024A6A
-_080D43C0: .4byte gPlayerParty
-_080D43C4:
- adds r0, r2, 0
- b _080D440A
-_080D43C8:
- ldr r1, _080D4410 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080D4414 @ =gEnemyParty
-_080D43D8:
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- lsrs r4, 18
- movs r2, 0
-_080D43F6:
- adds r1, r2, 0x1
- adds r0, r4, 0
- muls r0, r1
- cmp r3, r0
- blt _080D43C4
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _080D43F6
- movs r0, 0x3
-_080D440A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080D4410: .4byte gUnknown_02024A6A
-_080D4414: .4byte gEnemyParty
- thumb_func_end sub_80D4394
-
- thumb_func_start sub_80D4418
-sub_80D4418: @ 80D4418
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- ldr r4, _080D4520 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0xAC
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldrh r1, [r7, 0xA]
- movs r0, 0x4
- subs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bgt _080D4468
- movs r1, 0x1
-_080D4468:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r1, 16
- mov r10, r8
- mov r9, r6
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0xC]
- mov r1, r9
- lsls r1, 4
- str r1, [sp, 0x10]
- asrs r0, 16
- mov r8, r0
-_080D4482:
- ldr r0, _080D4524 @ =gSpriteTemplate_83D9378
- mov r1, r10
- mov r2, r9
- ldr r3, [sp, 0x8]
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r6, r5, 16
- cmp r2, 0x40
- beq _080D44EA
- ldr r1, _080D4528 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r5, 0x32]
- mov r0, sp
- ldrh r0, [r0, 0x10]
- strh r0, [r5, 0x34]
- asrs r4, r6, 16
- adds r0, r4, 0
- movs r1, 0x40
- bl Cos
- strh r0, [r5, 0x36]
- adds r0, r4, 0
- movs r1, 0x40
- bl Sin
- strh r0, [r5, 0x38]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r5, 0x3A]
- movs r0, 0x2
- strh r0, [r5, 0x3C]
- ldrh r1, [r7, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D44E4
- adds r0, r5, 0
- bl sub_80D452C
-_080D44E4:
- ldrh r0, [r7, 0xC]
- adds r0, 0x1
- strh r0, [r7, 0xC]
-_080D44EA:
- mov r1, r8
- lsls r0, r1, 1
- asrs r1, r6, 16
- adds r1, r0
- lsls r1, 16
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r5, r0, 16
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- add r0, r8
- lsls r0, 16
- lsrs r1, r0, 16
- str r1, [sp, 0x4]
- asrs r0, 16
- cmp r0, 0x13
- ble _080D4482
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4520: .4byte gUnknown_0202F7C8
-_080D4524: .4byte gSpriteTemplate_83D9378
-_080D4528: .4byte gSprites
- thumb_func_end sub_80D4418
-
- thumb_func_start sub_80D452C
-sub_80D452C: @ 80D452C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D453E
- cmp r0, 0x1
- beq _080D4574
- b _080D45CE
-_080D453E:
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x36]
- adds r1, r0
- strh r1, [r4, 0x36]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_080D4574:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r4, 0x20]
- lsls r1, 16
- asrs r2, r1, 20
- strh r2, [r4, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D45AA
- adds r1, r2, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D45AA
- cmp r1, 0x78
- ble _080D45CE
-_080D45AA:
- ldr r3, _080D45D4 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D45CE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D45D4: .4byte gTasks
- thumb_func_end sub_80D452C
-
- thumb_func_start sub_80D45D8
-sub_80D45D8: @ 80D45D8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4608 @ =gTasks
- adds r4, r1, r0
- bl sub_80D4394
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldr r0, _080D460C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D4610
- movs r0, 0x88
- strh r0, [r4, 0x10]
- movs r0, 0x28
- b _080D4616
- .align 2, 0
-_080D4608: .4byte gTasks
-_080D460C: .4byte gUnknown_0202F7C8
-_080D4610:
- movs r0, 0x10
- strh r0, [r4, 0x10]
- movs r0, 0x50
-_080D4616:
- strh r0, [r4, 0x14]
- movs r0, 0x62
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x10]
- adds r0, 0x31
- strh r0, [r4, 0x16]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x5
- strh r0, [r4, 0x20]
- ldr r0, _080D4638 @ =sub_80D463C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4638: .4byte sub_80D463C
- thumb_func_end sub_80D45D8
-
- thumb_func_start sub_80D463C
-sub_80D463C: @ 80D463C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r7, _080D4660 @ =gTasks
- adds r4, r0, r7
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080D4664
- cmp r2, 0x1
- beq _080D4714
- b _080D4722
- .align 2, 0
-_080D4660: .4byte gTasks
-_080D4664:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D467A
- strh r2, [r4, 0xC]
- adds r0, r4, 0
- bl sub_80D472C
-_080D467A:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D46F4
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D46F4
- ldr r5, _080D4708 @ =gUnknown_03004B00
- movs r1, 0x1
- mov r8, r1
- mov r2, r8
- strh r2, [r5]
- strh r0, [r5, 0x2]
- movs r0, 0xC
- strh r0, [r5, 0x4]
- ldr r6, _080D470C @ =sub_80E1864
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46C4
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46C4:
- movs r0, 0x3
- strh r0, [r5]
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080D46F0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r7
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- ldr r1, _080D4710 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080D46F0:
- mov r0, r8
- strh r0, [r4, 0x22]
-_080D46F4:
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _080D4722
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4722
- .align 2, 0
-_080D4708: .4byte gUnknown_03004B00
-_080D470C: .4byte sub_80E1864
-_080D4710: .4byte gUnknown_0202F7B2
-_080D4714:
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D4722
- adds r0, r1, 0
- bl move_anim_task_del
-_080D4722:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D463C
-
- thumb_func_start sub_80D472C
-sub_80D472C: @ 80D472C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080D47B8 @ =gSineTable
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, 0x3
- asrs r0, 4
- ldrh r2, [r4, 0x14]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080D47BC @ =gSpriteTemplate_83D9378
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D4786
- ldr r3, _080D47C0 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D47C4 @ =sub_80D47D0
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x38]
- strh r6, [r0, 0x3A]
- movs r1, 0x9
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
-_080D4786:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x18]
- adds r0, 0x27
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x18]
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- ldr r0, _080D47C8 @ =0x41c64e6d
- muls r0, r1
- ldr r1, _080D47CC @ =0x00003039
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D47B8: .4byte gSineTable
-_080D47BC: .4byte gSpriteTemplate_83D9378
-_080D47C0: .4byte gSprites
-_080D47C4: .4byte sub_80D47D0
-_080D47C8: .4byte 0x41c64e6d
-_080D47CC: .4byte 0x00003039
- thumb_func_end sub_80D472C
-
- thumb_func_start sub_80D47D0
-sub_80D47D0: @ 80D47D0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D4866
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D4866
- ldr r2, _080D486C @ =gTasks
- movs r3, 0x3A
- ldrsh r1, [r5, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x1C]
- ldr r0, _080D4870 @ =gBattleAnimSpriteTemplate_83DB4D8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- cmp r0, 0x40
- beq _080D4860
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D4874 @ =gSprites
- adds r0, r4
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3A]
- strh r1, [r0, 0x3A]
- movs r3, 0x30
- ldrsh r1, [r5, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r5, 0x3C]
- strh r1, [r0, 0x3C]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D4878 @ =sub_80D487C
- str r1, [r0]
-_080D4860:
- adds r0, r5, 0
- bl DestroySprite
-_080D4866:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D486C: .4byte gTasks
-_080D4870: .4byte gBattleAnimSpriteTemplate_83DB4D8
-_080D4874: .4byte gSprites
-_080D4878: .4byte sub_80D487C
- thumb_func_end sub_80D47D0
-
- thumb_func_start sub_80D487C
-sub_80D487C: @ 80D487C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D48E8
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080D48E8
- ldr r3, _080D48F0 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D48E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D48F0: .4byte gTasks
- thumb_func_end sub_80D487C
-
- thumb_func_start sub_80D48F4
-sub_80D48F4: @ 80D48F4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D4978 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080D497C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D4938
- movs r1, 0x1
-_080D4938:
- strh r1, [r5, 0x16]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D494C
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x16]
-_080D494C:
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0x12]
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- ldrh r0, [r5, 0x10]
- subs r0, r1
- strh r0, [r5, 0x14]
- ldr r0, _080D4980 @ =0x0000ffe0
- strh r0, [r5, 0x1A]
- strh r6, [r5, 0xA]
- strh r6, [r5, 0x8]
- ldr r0, _080D4984 @ =sub_80D4988
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4978: .4byte gTasks
-_080D497C: .4byte gUnknown_0202F7C8
-_080D4980: .4byte 0x0000ffe0
-_080D4984: .4byte sub_80D4988
- thumb_func_end sub_80D48F4
-
- thumb_func_start sub_80D4988
-sub_80D4988: @ 80D4988
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D49AC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D49A2
- b _080D4AC2
-_080D49A2:
- lsls r0, 2
- ldr r1, _080D49B0 @ =_080D49B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D49AC: .4byte gTasks
-_080D49B0: .4byte _080D49B4
- .align 2, 0
-_080D49B4:
- .4byte _080D49D0
- .4byte _080D49E0
- .4byte _080D49FA
- .4byte _080D4A3C
- .4byte _080D4A5E
- .4byte _080D4A8C
- .4byte _080D4AB2
-_080D49D0:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D4AC8
- b _080D4ABA
-_080D49E0:
- adds r0, r4, 0
- bl sub_80D4AD0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D4AC8
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D49FA:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- adds r1, r0
- movs r2, 0
- strh r1, [r4, 0x12]
- adds r1, 0x10
- lsls r1, 16
- movs r0, 0x88
- lsls r0, 17
- cmp r1, r0
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D4A38
- movs r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x6
- strh r0, [r4, 0x8]
- strh r2, [r4, 0xA]
- b _080D4AC8
-_080D4A38:
- strh r2, [r4, 0xA]
- b _080D4ABA
-_080D4A3C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- b _080D4ABA
-_080D4A5E:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x12]
- adds r0, 0x10
- lsls r0, 16
- movs r1, 0x88
- lsls r1, 17
- cmp r0, r1
- bls _080D4AC8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D4ABA
-_080D4A8C:
- adds r0, r4, 0
- bl sub_80D4AD0
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x14]
- subs r0, r1
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080D4AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AB2:
- movs r1, 0x18
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D4AC8
-_080D4ABA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D4AC8
-_080D4AC2:
- adds r0, r2, 0
- bl move_anim_task_del
-_080D4AC8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4988
-
- thumb_func_start sub_80D4AD0
-sub_80D4AD0: @ 80D4AD0
- push {r4-r6,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D4B2A
- movs r0, 0
- strh r0, [r6, 0xC]
- ldr r0, _080D4B30 @ =gSpriteTemplate_83D9378
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- movs r3, 0x10
- ldrsh r2, [r6, r3]
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D4B2A
- ldr r5, _080D4B34 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldrh r1, [r6, 0x12]
- strh r1, [r0, 0x32]
- ldrh r1, [r6, 0x14]
- strh r1, [r0, 0x36]
- ldrh r1, [r6, 0x1A]
- strh r1, [r0, 0x38]
- bl sub_80786EC
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _080D4B38 @ =sub_80D4B3C
- str r0, [r4]
- ldrh r0, [r6, 0x18]
- adds r0, 0x1
- strh r0, [r6, 0x18]
-_080D4B2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B30: .4byte gSpriteTemplate_83D9378
-_080D4B34: .4byte gSprites
-_080D4B38: .4byte sub_80D4B3C
- thumb_func_end sub_80D4AD0
-
- thumb_func_start sub_80D4B3C
-sub_80D4B3C: @ 80D4B3C
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4B96
- ldrh r0, [r6, 0x24]
- ldrh r1, [r6, 0x20]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrh r0, [r6, 0x26]
- ldrh r1, [r6, 0x22]
- adds r0, r1
- strh r0, [r6, 0x22]
- movs r0, 0x6
- strh r0, [r6, 0x2E]
- bl Random
- movs r4, 0x1F
- adds r1, r4, 0
- ands r1, r0
- ldr r5, _080D4B9C @ =0x0000fff0
- adds r1, r5
- ldrh r0, [r6, 0x20]
- adds r1, r0
- strh r1, [r6, 0x32]
- bl Random
- ands r4, r0
- adds r4, r5
- ldrh r1, [r6, 0x22]
- adds r4, r1
- strh r4, [r6, 0x36]
- bl Random
- movs r1, 0x7
- ands r1, r0
- mvns r1, r1
- strh r1, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080D4BA0 @ =sub_80D4BA4
- str r0, [r6, 0x1C]
-_080D4B96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4B9C: .4byte 0x0000fff0
-_080D4BA0: .4byte sub_80D4BA4
- thumb_func_end sub_80D4B3C
-
- thumb_func_start sub_80D4BA4
-sub_80D4BA4: @ 80D4BA4
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D4BE0
- movs r4, 0
- ldr r6, _080D4BE8 @ =gTasks
-_080D4BB6:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r6
- ldr r1, [r2]
- ldr r0, _080D4BEC @ =sub_80D4988
- cmp r1, r0
- bne _080D4BD6
- movs r0, 0x1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0x18]
- subs r0, 0x1
- strh r0, [r2, 0x18]
- adds r0, r5, 0
- bl DestroySprite
-_080D4BD6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080D4BB6
-_080D4BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4BE8: .4byte gTasks
-_080D4BEC: .4byte sub_80D4988
- thumb_func_end sub_80D4BA4
-
- thumb_func_start sub_80D4BF0
-sub_80D4BF0: @ 80D4BF0
- ldr r2, _080D4C10 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x2E]
- ldrh r1, [r2, 0x6]
- strh r1, [r0, 0x30]
- ldrh r1, [r2, 0x8]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0xA]
- strh r1, [r0, 0x34]
- ldr r1, _080D4C14 @ =sub_80D4C18
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D4C10: .4byte gUnknown_03004B00
-_080D4C14: .4byte sub_80D4C18
- thumb_func_end sub_80D4BF0
-
- thumb_func_start sub_80D4C18
-sub_80D4C18: @ 80D4C18
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C5C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4C5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C18
-
- thumb_func_start sub_80D4C64
-sub_80D4C64: @ 80D4C64
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 23
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 23
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080D4C9C
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D4C9C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4C64
-
- thumb_func_start sub_80D4CA4
-sub_80D4CA4: @ 80D4CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D4CE0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r1, _080D4CE4 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldr r0, _080D4CE8 @ =sub_80D4CEC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4CE0: .4byte gUnknown_0202F7C9
-_080D4CE4: .4byte gUnknown_03004B00
-_080D4CE8: .4byte sub_80D4CEC
- thumb_func_end sub_80D4CA4
-
- thumb_func_start sub_80D4CEC
-sub_80D4CEC: @ 80D4CEC
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- subs r6, r1, r0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- subs r5, r1, r0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r6
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- muls r0, r5
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080D4D44
- movs r0, 0
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80D4D64
-_080D4D44:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D4D56
- adds r0, r4, 0
- bl move_anim_8072740
-_080D4D56:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4CEC
-
- thumb_func_start sub_80D4D64
-sub_80D4D64: @ 80D4D64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r4, r1, 0
- adds r5, r2, 0
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- lsls r1, 15
- lsrs r1, 16
- str r1, [sp]
- ldrh r1, [r0, 0x24]
- ldrh r3, [r0, 0x20]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, r5, r0
- subs r0, 0x5
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- bl Random
- negs r4, r4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0
- subs r4, 0x5
- lsls r4, 16
- lsrs r7, r4, 16
- movs r6, 0
- mov r0, r8
- lsls r0, 16
- mov r8, r0
- mov r1, r10
- lsls r1, 16
- str r1, [sp, 0xC]
- ldr r2, [sp]
- lsls r2, 16
- str r2, [sp, 0x10]
- asrs r1, 16
- lsls r0, r7, 16
- asrs r5, r0, 16
- str r0, [sp, 0x14]
- negs r3, r5
- str r3, [sp, 0x4]
- asrs r0, r2, 16
- adds r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4DF2:
- ldr r0, _080D4E34 @ =gSpriteTemplate_83D9420
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4E38 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4E3C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- bge _080D4E40
- mov r1, sp
- ldrh r1, [r1, 0x4]
- strh r1, [r4, 0x32]
- b _080D4E42
- .align 2, 0
-_080D4E34: .4byte gSpriteTemplate_83D9420
-_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gUnknown_0202F7C8
-_080D4E40:
- strh r7, [r4, 0x32]
-_080D4E42:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4DF2
- movs r6, 0
- ldr r3, [sp, 0xC]
- asrs r1, r3, 16
- ldr r0, [sp, 0x14]
- asrs r5, r0, 16
- negs r2, r5
- str r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- asrs r0, r3, 16
- subs r1, r0
- lsls r1, 16
- mov r10, r1
-_080D4E68:
- ldr r0, _080D4EAC @ =gSpriteTemplate_83D9420
- mov r2, r8
- asrs r1, r2, 16
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0x82
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080D4EB0 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- mov r0, r9
- strh r0, [r4, 0x30]
- ldr r0, _080D4EB4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- cmp r5, 0
- ble _080D4EB8
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- b _080D4EBA
- .align 2, 0
-_080D4EAC: .4byte gSpriteTemplate_83D9420
-_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gUnknown_0202F7C8
-_080D4EB8:
- strh r7, [r4, 0x32]
-_080D4EBA:
- lsls r0, r6, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r6, r0, 16
- cmp r0, 0
- ble _080D4E68
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D4D64
-
- thumb_func_start sub_80D4ED8
-sub_80D4ED8: @ 80D4ED8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4F0C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D4F10 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080D4F14 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F0C: .4byte gUnknown_03004B00
-_080D4F10: .4byte move_anim_8072740
-_080D4F14: .4byte sub_8078174
- thumb_func_end sub_80D4ED8
-
- thumb_func_start sub_80D4F18
-sub_80D4F18: @ 80D4F18
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D4F50 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x32]
- ldr r0, _080D4F54 @ =sub_8078394
- str r0, [r4, 0x1C]
- ldr r1, _080D4F58 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4F50: .4byte gUnknown_03004B00
-_080D4F54: .4byte sub_8078394
-_080D4F58: .4byte move_anim_8072740
- thumb_func_end sub_80D4F18
-
- thumb_func_start sub_80D4F5C
-sub_80D4F5C: @ 80D4F5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D4F90 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D4F98
- ldr r2, _080D4F94 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D4FAE
- .align 2, 0
-_080D4F90: .4byte gUnknown_0202F7C8
-_080D4F94: .4byte gUnknown_03004B00
-_080D4F98:
- ldr r1, _080D4FC4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
-_080D4FAE:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D4FC8 @ =sub_80D5038
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D4FC4: .4byte gUnknown_03004B00
-_080D4FC8: .4byte sub_80D5038
- thumb_func_end sub_80D4F5C
-
- thumb_func_start sub_80D4FCC
-sub_80D4FCC: @ 80D4FCC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D4FF8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5000
- ldr r2, _080D4FFC @ =gUnknown_03004B00
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- adds r1, r2, 0
- b _080D5018
- .align 2, 0
-_080D4FF8: .4byte gUnknown_0202F7C8
-_080D4FFC: .4byte gUnknown_03004B00
-_080D5000:
- ldr r1, _080D5030 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x8]
- negs r0, r0
- strh r0, [r4, 0x32]
-_080D5018:
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080D5034 @ =sub_80D5038
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5030: .4byte gUnknown_03004B00
-_080D5034: .4byte sub_80D5038
- thumb_func_end sub_80D4FCC
-
- thumb_func_start sub_80D5038
-sub_80D5038: @ 80D5038
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _080D505E
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r0, r3
- strh r0, [r2, 0x26]
-_080D505E:
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080D5070
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D5070:
- pop {r0}
- bx r0
- thumb_func_end sub_80D5038
-
- thumb_func_start sub_80D5074
-sub_80D5074: @ 80D5074
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r0, _080D5098 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D50A0
- ldr r0, _080D509C @ =gUnknown_03004B00
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D50B2
- .align 2, 0
-_080D5098: .4byte gUnknown_0202F7C8
-_080D509C: .4byte gUnknown_03004B00
-_080D50A0:
- ldr r0, _080D50E0 @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- adds r2, r4, 0
- adds r2, 0x43
- movs r1, 0x8
- strb r1, [r2]
-_080D50B2:
- adds r2, r0, 0
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x22]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r2, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r4, 0x34]
- ldrh r0, [r2, 0xC]
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldr r0, _080D50E4 @ =sub_80D50E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D50E0: .4byte gUnknown_03004B00
-_080D50E4: .4byte sub_80D50E8
- thumb_func_end sub_80D5074
-
- thumb_func_start sub_80D50E8
-sub_80D50E8: @ 80D50E8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5170
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- ldr r0, _080D5154 @ =0x00002710
- cmp r1, r0
- ble _080D5106
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
-_080D5106:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 24
- ldrh r2, [r4, 0x30]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x2E]
- adds r1, r0, r2
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080D515C
- ldr r2, _080D5158 @ =0xffffff00
- b _080D5164
- .align 2, 0
-_080D5154: .4byte 0x00002710
-_080D5158: .4byte 0xffffff00
-_080D515C:
- cmp r0, 0
- bge _080D5168
- movs r2, 0x80
- lsls r2, 1
-_080D5164:
- adds r0, r1, r2
- strh r0, [r4, 0x2E]
-_080D5168:
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _080D5176
-_080D5170:
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D5176:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D50E8
-
- thumb_func_start sub_80D517C
-sub_80D517C: @ 80D517C
- push {lr}
- movs r1, 0
- strh r1, [r0, 0x20]
- strh r1, [r0, 0x22]
- movs r1, 0x3C
- strh r1, [r0, 0x2E]
- movs r1, 0x8C
- strh r1, [r0, 0x32]
- movs r1, 0x50
- strh r1, [r0, 0x36]
- ldr r1, _080D51A0 @ =sub_8078B34
- str r1, [r0, 0x1C]
- ldr r1, _080D51A4 @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D51A0: .4byte sub_8078B34
-_080D51A4: .4byte move_anim_8072740
- thumb_func_end sub_80D517C
-
- thumb_func_start sub_80D51A8
-sub_80D51A8: @ 80D51A8
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _080D5200 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080D5204 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080D51EE
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _080D51E6
- movs r0, 0x3
- bl battle_get_side_with_given_state
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080D51EE
-_080D51E6:
- ldr r1, _080D5208 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D51EE:
- ldr r1, _080D520C @ =sub_8079534
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5200: .4byte gUnknown_0202F7C8
-_080D5204: .4byte gUnknown_0202F7C9
-_080D5208: .4byte gUnknown_03004B00
-_080D520C: .4byte sub_8079534
- thumb_func_end sub_80D51A8
-
- thumb_func_start sub_80D5210
-sub_80D5210: @ 80D5210
- ldr r2, _080D5224 @ =gUnknown_03004B00
- ldrh r1, [r2]
- negs r1, r1
- strh r1, [r2]
- ldrh r1, [r2, 0x4]
- negs r1, r1
- strh r1, [r2, 0x4]
- ldr r1, _080D5228 @ =sub_8079534
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080D5224: .4byte gUnknown_03004B00
-_080D5228: .4byte sub_8079534
- thumb_func_end sub_80D5210
-
- thumb_func_start sub_80D522C
-sub_80D522C: @ 80D522C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D524C @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x2E]
- ldr r0, _080D5250 @ =sub_80D5254
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D524C: .4byte gUnknown_03004B00
-_080D5250: .4byte sub_80D5254
- thumb_func_end sub_80D522C
-
- thumb_func_start sub_80D5254
-sub_80D5254: @ 80D5254
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80D5348
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x12
- bne _080D529E
- movs r0, 0x19
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080D52A4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D52A8 @ =sub_80D52AC
- str r0, [r5, 0x1C]
-_080D529E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D52A4: .4byte gUnknown_0202F7C9
-_080D52A8: .4byte sub_80D52AC
- thumb_func_end sub_80D5254
-
- thumb_func_start sub_80D52AC
-sub_80D52AC: @ 80D52AC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D52F4
- movs r4, 0
- strh r4, [r6, 0x2E]
- ldr r5, _080D52EC @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r4, [r6, 0x26]
- strh r4, [r6, 0x24]
- ldr r1, _080D52F0 @ =sub_80D5324
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- b _080D531E
- .align 2, 0
-_080D52EC: .4byte gUnknown_0202F7C9
-_080D52F0: .4byte sub_80D5324
-_080D52F4:
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Sin
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r6, r1]
- movs r1, 0x1C
- bl Cos
- ldrh r1, [r6, 0x26]
- adds r0, r1
- strh r0, [r6, 0x26]
- ldrh r0, [r6, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0x3C]
-_080D531E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D52AC
-
- thumb_func_start sub_80D5324
-sub_80D5324: @ 80D5324
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D5348
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5340
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5340:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5324
-
- thumb_func_start sub_80D5348
-sub_80D5348: @ 80D5348
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x1C
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x14
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5348
-
- thumb_func_start sub_80D5374
-sub_80D5374: @ 80D5374
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080D53A8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldr r1, _080D53AC @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D53B0 @ =sub_8078364
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53A8: .4byte gUnknown_03004B00
-_080D53AC: .4byte move_anim_8072740
-_080D53B0: .4byte sub_8078364
- thumb_func_end sub_80D5374
-
- thumb_func_start sub_80D53B4
-sub_80D53B4: @ 80D53B4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D53E8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080D53EC @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D53F0 @ =sub_80D53F4
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D53E8: .4byte gUnknown_03004B00
-_080D53EC: .4byte sub_80782D8
-_080D53F0: .4byte sub_80D53F4
- thumb_func_end sub_80D53B4
-
- thumb_func_start sub_80D53F4
-sub_80D53F4: @ 80D53F4
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r3]
- ldrh r1, [r0, 0x30]
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- ldr r1, _080D5418 @ =sub_80D541C
- str r1, [r0, 0x1C]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080D5418: .4byte sub_80D541C
- thumb_func_end sub_80D53F4
-
- thumb_func_start sub_80D541C
-sub_80D541C: @ 80D541C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0xD0
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D5468
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5468:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D541C
-
- thumb_func_start sub_80D5470
-sub_80D5470: @ 80D5470
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080D54D0 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- ldr r2, _080D54D4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x10]
- ldr r0, _080D54D8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _080D54DC @ =sub_80D54E0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D54D0: .4byte gTasks
-_080D54D4: .4byte gSprites
-_080D54D8: .4byte gUnknown_0202F7C8
-_080D54DC: .4byte sub_80D54E0
- thumb_func_end sub_80D5470
-
- thumb_func_start sub_80D54E0
-sub_80D54E0: @ 80D54E0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080D5508 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bls _080D54FC
- b _080D57BA
-_080D54FC:
- lsls r0, 2
- ldr r1, _080D550C @ =_080D5510
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D5508: .4byte gTasks
-_080D550C: .4byte _080D5510
- .align 2, 0
-_080D5510:
- .4byte _080D552C
- .4byte _080D5552
- .4byte _080D5604
- .4byte _080D5664
- .4byte _080D5682
- .4byte _080D5758
- .4byte _080D57AC
-_080D552C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 1
- movs r0, 0xE0
- str r0, [sp]
- movs r0, 0x80
- lsls r0, 2
- str r0, [sp, 0x4]
- movs r0, 0x20
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r2, r3, 0
- bl sub_8079C08
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080D5552:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D559A
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5588
- ldr r2, _080D5584 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- b _080D5598
- .align 2, 0
-_080D5584: .4byte gSprites
-_080D5588:
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _080D5600 @ =0x0000fffd
-_080D5598:
- strh r1, [r0, 0x24]
-_080D559A:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D55C8
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D55C8
- movs r0, 0
- strh r0, [r4, 0xE]
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_080D55C8:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080D55D8
- b _080D57BA
-_080D55D8:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079A64
- ldr r2, _080D55FC @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D55FC: .4byte gSprites
-_080D5600: .4byte 0x0000fffd
-_080D5604:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080D5614
- b _080D57BA
-_080D5614:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D563E
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xF0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
- b _080D565E
-_080D563E:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r3, 0x80
- lsls r3, 2
- movs r0, 0xC0
- lsls r0, 1
- str r0, [sp]
- movs r0, 0xC0
- str r0, [sp, 0x4]
- movs r0, 0x6
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r2, 0xE0
- bl sub_8079C08
-_080D565E:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080D57A0
-_080D5664:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- cmp r0, 0
- beq _080D5672
- b _080D57BA
-_080D5672:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80D57C4
- b _080D57A0
-_080D5682:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D56D0
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D56BC
- ldr r2, _080D56B8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x3
- b _080D56CE
- .align 2, 0
-_080D56B8: .4byte gSprites
-_080D56BC:
- ldr r2, _080D5708 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
-_080D56CE:
- strh r1, [r0, 0x26]
-_080D56D0:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _080D57BA
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D570C
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xF0
- bl sub_8079C08
- b _080D572A
- .align 2, 0
-_080D5708: .4byte gSprites
-_080D570C:
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xC0
- lsls r2, 1
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r3, 0xC0
- bl sub_8079C08
-_080D572A:
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5748
- ldr r2, _080D5754 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x3
- strh r1, [r0, 0x26]
-_080D5748:
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- b _080D57A0
- .align 2, 0
-_080D5754: .4byte gSprites
-_080D5758:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D5774
- ldr r2, _080D57A8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x1
- strh r1, [r0, 0x22]
-_080D5774:
- adds r0, r4, 0
- bl sub_8079C74
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080D57BA
- ldr r2, _080D57A8 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x10]
- strh r1, [r0, 0x22]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- strh r5, [r4, 0xC]
-_080D57A0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D57BA
- .align 2, 0
-_080D57A8: .4byte gSprites
-_080D57AC:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D57BA
- adds r0, r5, 0
- bl move_anim_task_del
-_080D57BA:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D54E0
-
- thumb_func_start sub_80D57C4
-sub_80D57C4: @ 80D57C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r4, 0
- bl sub_80D5940
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r1, _080D5814 @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x20]
- ldr r0, _080D5818 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D581C
- adds r0, r4, 0
- subs r0, 0xC
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- b _080D5826
- .align 2, 0
-_080D5814: .4byte gSprites
-_080D5818: .4byte gUnknown_0202F7C8
-_080D581C:
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xFF
-_080D5826:
- movs r6, 0
- movs r5, 0
- lsls r4, 16
- str r4, [sp, 0x8]
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x4]
- ldr r2, _080D58E0 @ =gUnknown_083D96DC
- mov r9, r2
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r3, r8
- lsls r3, 1
- mov r10, r3
-_080D5844:
- ldr r0, _080D58E4 @ =gSpriteTemplate_83D96C4
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- ldr r3, [sp, 0x4]
- asrs r2, r3, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D58C6
- ldr r1, _080D58E8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r4, r0, r1
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- lsls r0, r5, 2
- adds r0, 0x40
- adds r1, r0
- ldr r3, _080D58EC @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r3, _080D58F0 @ =0xfffffc00
- adds r0, r3, 0
- ands r2, r0
- orrs r2, r1
- strh r2, [r4, 0x4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080D588E
- movs r5, 0
-_080D588E:
- lsls r2, r6, 2
- mov r1, r9
- adds r0, r2, r1
- ldrh r0, [r0]
- ldr r3, [sp]
- adds r1, r0, 0
- muls r1, r3
- lsls r1, 16
- asrs r1, 16
- ldr r0, _080D58F4 @ =gUnknown_083D96DC + 0x2
- adds r2, r0
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r0, r4, 0
- bl sub_80D5994
- strh r7, [r4, 0x3A]
- mov r0, r8
- strh r0, [r4, 0x3C]
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- add r0, r10
- ldr r1, _080D58F8 @ =gTasks + 0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
-_080D58C6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x6
- bls _080D5844
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D58E0: .4byte gUnknown_083D96DC
-_080D58E4: .4byte gSpriteTemplate_83D96C4
-_080D58E8: .4byte gSprites
-_080D58EC: .4byte 0x000003ff
-_080D58F0: .4byte 0xfffffc00
-_080D58F4: .4byte gUnknown_083D96DC + 0x2
-_080D58F8: .4byte gTasks + 0x8
- thumb_func_end sub_80D57C4
-
- thumb_func_start sub_80D58FC
-sub_80D58FC: @ 80D58FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D59B0
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080D5936
- ldr r3, _080D593C @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D5936:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D593C: .4byte gTasks
- thumb_func_end sub_80D58FC
-
- thumb_func_start sub_80D5940
-sub_80D5940: @ 80D5940
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080D5978 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x26]
- ldrh r0, [r1, 0x22]
- adds r2, r0
- adds r1, 0x29
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080D597C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D5980
- lsls r0, r4, 16
- movs r1, 0x94
- lsls r1, 15
- b _080D5986
- .align 2, 0
-_080D5978: .4byte gSprites
-_080D597C: .4byte gUnknown_0202F7C8
-_080D5980:
- lsls r0, r4, 16
- movs r1, 0xB0
- lsls r1, 14
-_080D5986:
- adds r0, r1
- lsrs r4, r0, 16
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80D5940
-
- thumb_func_start sub_80D5994
-sub_80D5994: @ 80D5994
- movs r3, 0
- strh r3, [r0, 0x2E]
- strh r3, [r0, 0x30]
- ldrh r3, [r0, 0x20]
- lsls r3, 3
- strh r3, [r0, 0x32]
- ldrh r3, [r0, 0x22]
- lsls r3, 3
- strh r3, [r0, 0x34]
- lsls r1, 3
- strh r1, [r0, 0x36]
- lsls r2, 3
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_80D5994
-
- thumb_func_start sub_80D59B0
-sub_80D59B0: @ 80D59B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D59DA
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r3, [r2, 0x34]
- adds r0, r3
- strh r0, [r2, 0x34]
-_080D59DA:
- ldrh r0, [r2, 0x36]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r1, 16
- asrs r3, r1, 19
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D5A10
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D5A10
- cmp r1, 0x78
- ble _080D5A1C
-_080D5A10:
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080D5A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_80D59B0
-
- thumb_func_start sub_80D5A20
-sub_80D5A20: @ 80D5A20
- push {r4,r5,lr}
- ldr r3, _080D5A64 @ =gUnknown_03004B00
- ldrh r1, [r3]
- movs r2, 0
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- strh r1, [r0, 0x22]
- strh r2, [r0, 0x2E]
- strh r2, [r0, 0x30]
- strh r2, [r0, 0x32]
- ldrh r1, [r3, 0x4]
- strh r1, [r0, 0x3A]
- ldrh r1, [r3, 0x6]
- strh r1, [r0, 0x3C]
- ldrh r4, [r0, 0x4]
- lsls r2, r4, 22
- lsrs r2, 22
- movs r5, 0x8
- ldrsh r1, [r3, r5]
- lsls r1, 4
- adds r2, r1
- ldr r3, _080D5A68 @ =0x000003ff
- adds r1, r3, 0
- ands r2, r1
- ldr r1, _080D5A6C @ =0xfffffc00
- ands r1, r4
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r1, _080D5A70 @ =sub_80D5A74
- str r1, [r0, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5A64: .4byte gUnknown_03004B00
-_080D5A68: .4byte 0x000003ff
-_080D5A6C: .4byte 0xfffffc00
-_080D5A70: .4byte sub_80D5A74
- thumb_func_end sub_80D5A20
-
- thumb_func_start sub_80D5A74
-sub_80D5A74: @ 80D5A74
- push {r4,lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _080D5AA6
- cmp r0, 0x1
- bgt _080D5A8A
- cmp r0, 0
- beq _080D5A90
- b _080D5B04
-_080D5A8A:
- cmp r0, 0x2
- beq _080D5AC4
- b _080D5B04
-_080D5A90:
- ldrh r1, [r2, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080D5AA0
- subs r0, r1, 0x1
- strh r0, [r2, 0x3A]
- b _080D5B04
-_080D5AA0:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_080D5AA6:
- ldrh r0, [r2, 0x22]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x3C]
- movs r4, 0x3C
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080D5B04
- strh r3, [r2, 0x22]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _080D5B04
-_080D5AC4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5AF0
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5AEC
- ldr r0, _080D5AE8 @ =0x0000fffd
- b _080D5AEE
- .align 2, 0
-_080D5AE8: .4byte 0x0000fffd
-_080D5AEC:
- movs r0, 0x3
-_080D5AEE:
- strh r0, [r2, 0x26]
-_080D5AF0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080D5B04
- adds r0, r2, 0
- bl move_anim_8072740
-_080D5B04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5A74
-
- thumb_func_start sub_80D5B0C
-sub_80D5B0C: @ 80D5B0C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D5B80
- cmp r0, 0x1
- bgt _080D5B22
- cmp r0, 0
- beq _080D5B28
- b _080D5C4E
-_080D5B22:
- cmp r0, 0x2
- beq _080D5BDE
- b _080D5C4E
-_080D5B28:
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- ldr r4, _080D5B50 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x3C]
- ldr r0, _080D5B54 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5B58
- movs r0, 0x4
- b _080D5B5A
- .align 2, 0
-_080D5B50: .4byte gUnknown_03004B00
-_080D5B54: .4byte gUnknown_0202F7C8
-_080D5B58:
- ldr r0, _080D5B78 @ =0x0000fffc
-_080D5B5A:
- strh r0, [r5, 0x36]
- ldr r0, _080D5B7C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080D5BD6
- .align 2, 0
-_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gUnknown_0202F7C9
-_080D5B80:
- ldrh r0, [r5, 0x30]
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldr r0, _080D5BA0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D5BA4
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _080D5BAA
- .align 2, 0
-_080D5BA0: .4byte gUnknown_0202F7C8
-_080D5BA4:
- ldrh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 24
-_080D5BAA:
- strh r0, [r5, 0x26]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080D5C4E
- movs r0, 0
- strh r0, [r5, 0x34]
-_080D5BD6:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D5C4E
-_080D5BDE:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- bl Sin
- adds r2, r0, 0
- movs r3, 0
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- adds r0, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080D5C4E
- ldrh r0, [r5, 0x20]
- adds r1, r2, r0
- strh r1, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r3, [r5, 0x26]
- strh r3, [r5, 0x24]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x2E]
- strh r1, [r5, 0x30]
- ldr r4, _080D5C54 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080D5C58 @ =sub_80D5C5C
- str r0, [r5, 0x1C]
-_080D5C4E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5C54: .4byte gUnknown_0202F7C9
-_080D5C58: .4byte sub_80D5C5C
- thumb_func_end sub_80D5B0C
-
- thumb_func_start sub_80D5C5C
-sub_80D5C5C: @ 80D5C5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D5CB4
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x4
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080D5C92
- cmp r2, 0xC4
- ble _080D5CBA
-_080D5C92:
- lsls r0, 16
- cmp r0, 0
- ble _080D5CBA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D5CBA
- ldr r0, _080D5CB0 @ =gUnknown_0202F7D2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x90
- bl PlaySE12WithPanning
- b _080D5CBA
- .align 2, 0
-_080D5CB0: .4byte gUnknown_0202F7D2
-_080D5CB4:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5C5C
-
- thumb_func_start sub_80D5CC0
-sub_80D5CC0: @ 80D5CC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080D5CD8
- ldr r0, _080D5D4C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
-_080D5CD8:
- movs r0, 0xC0
- lsls r0, 1
- adds r1, r0, 0
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0xA0
- strh r0, [r4, 0x36]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x36]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x7
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x30]
- ldr r0, _080D5D50 @ =gMain
- ldr r1, _080D5D54 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D5D84
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D5C
- ldr r0, _080D5D58 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D4C: .4byte gUnknown_03004B00
-_080D5D50: .4byte gMain
-_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gUnknown_0202F7C9
-_080D5D5C:
- ldr r0, _080D5D80 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080D5DA0
- .align 2, 0
-_080D5D80: .4byte gUnknown_0202F7C9
-_080D5D84:
- adds r0, r2, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x83
- bls _080D5D98
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1D
- b _080D5D9E
-_080D5D98:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1F
-_080D5D9E:
- strb r0, [r1]
-_080D5DA0:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080D5DC8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
-_080D5DC8:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x1E
- bne _080D5DD6
- adds r0, r4, 0
- bl move_anim_8072740
-_080D5DD6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D5CC0
-
- thumb_func_start sub_80D5DDC
-sub_80D5DDC: @ 80D5DDC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D5E3C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080D5E40 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D5E02
- movs r1, 0x1
-_080D5E02:
- strh r1, [r4, 0x20]
- ldr r0, _080D5E44 @ =gUnknown_0202F7C9
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r0, 0x3
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _080D5E48 @ =sub_80D5E4C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gUnknown_0202F7C8
-_080D5E44: .4byte gUnknown_0202F7C9
-_080D5E48: .4byte sub_80D5E4C
- thumb_func_end sub_80D5DDC
-
- thumb_func_start sub_80D5E4C
-sub_80D5E4C: @ 80D5E4C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D5E70 @ =gTasks
- adds r2, r0, r1
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- cmp r3, 0x1
- beq _080D5F14
- cmp r3, 0x1
- bgt _080D5E74
- cmp r3, 0
- beq _080D5E82
- b _080D6074
- .align 2, 0
-_080D5E70: .4byte gTasks
-_080D5E74:
- cmp r3, 0x2
- bne _080D5E7A
- b _080D5F9C
-_080D5E7A:
- cmp r3, 0x3
- bne _080D5E80
- b _080D6030
-_080D5E80:
- b _080D6074
-_080D5E82:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 1
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5EB4
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5EB0
- movs r0, 0x2
- b _080D5EB2
-_080D5EB0:
- ldr r0, _080D5F0C @ =0x0000fffe
-_080D5EB2:
- strh r0, [r2, 0x1E]
-_080D5EB4:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5EF6
- ldr r4, _080D5F10 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5EC6:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5EC6
-_080D5EF6:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- beq _080D5F06
- b _080D6074
-_080D5F06:
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F0C: .4byte 0x0000fffe
-_080D5F10: .4byte gSprites
-_080D5F14:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D5F3C
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ands r0, r3
- lsls r0, 16
- cmp r0, 0
- beq _080D5F38
- movs r0, 0x2
- b _080D5F3A
-_080D5F38:
- ldr r0, _080D5F94 @ =0x0000fffe
-_080D5F3A:
- strh r0, [r2, 0x1E]
-_080D5F3C:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r7, 0x22
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bge _080D5F7E
- ldr r4, _080D5F98 @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5F4E:
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r7, [r2, 0x1C]
- adds r0, r7
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x22
- ldrsh r1, [r2, r5]
- cmp r0, r1
- blt _080D5F4E
-_080D5F7E:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x60
- bne _080D6074
- movs r0, 0
- strh r0, [r2, 0x1A]
- b _080D6020
- .align 2, 0
-_080D5F94: .4byte 0x0000fffe
-_080D5F98: .4byte gSprites
-_080D5F9C:
- movs r7, 0x20
- ldrsh r1, [r2, r7]
- lsls r1, 1
- ldrh r0, [r2, 0x1C]
- subs r0, r1
- strh r0, [r2, 0x1C]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D5FD0
- movs r0, 0
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D5FCC
- strh r3, [r2, 0x1E]
- b _080D5FD0
-_080D5FCC:
- ldr r0, _080D6028 @ =0x0000fffe
- strh r0, [r2, 0x1E]
-_080D5FD0:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D6012
- ldr r4, _080D602C @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
-_080D5FE2:
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r2, 0x1E]
- ldrh r5, [r2, 0x1C]
- adds r0, r5
- strh r0, [r1, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D5FE2
-_080D6012:
- ldrh r0, [r2, 0x1A]
- adds r0, 0x1
- strh r0, [r2, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080D6074
-_080D6020:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080D6074
- .align 2, 0
-_080D6028: .4byte 0x0000fffe
-_080D602C: .4byte gSprites
-_080D6030:
- movs r1, 0
- strh r1, [r2, 0xE]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bge _080D606E
- ldr r6, _080D607C @ =gSprites
- adds r3, r2, 0
- adds r3, 0x8
- movs r5, 0
-_080D6044:
- movs r7, 0xE
- ldrsh r0, [r2, r7]
- adds r0, 0xE
- lsls r0, 1
- adds r0, r3, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x24]
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r7, 0x22
- ldrsh r1, [r2, r7]
- cmp r0, r1
- blt _080D6044
-_080D606E:
- adds r0, r4, 0
- bl move_anim_task_del
-_080D6074:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D607C: .4byte gSprites
- thumb_func_end sub_80D5E4C
-
- thumb_func_start sub_80D6080
-sub_80D6080: @ 80D6080
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_8078914
- mov r0, sp
- ldrb r0, [r0, 0x8]
- lsls r0, 4
- ldr r1, _080D60B0 @ =gUnknown_03004B00
- ldrb r2, [r1]
- ldrh r3, [r1, 0x2]
- movs r1, 0x10
- bl BlendPalette
- adds r0, r4, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D60B0: .4byte gUnknown_03004B00
- thumb_func_end sub_80D6080
-
- thumb_func_start sub_80D60B4
-sub_80D60B4: @ 80D60B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080D610C @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- mov r9, r1
- ldr r4, _080D6110 @ =gUnknown_03004B00
- mov r8, r4
- cmp r0, 0
- bne _080D60EA
- ldrh r0, [r4]
- strh r0, [r2, 0xA]
- ldrh r0, [r4, 0x2]
- strh r0, [r2, 0xC]
- ldrh r0, [r4, 0x4]
- strh r0, [r2, 0xE]
- ldrh r0, [r4, 0x6]
- strh r0, [r2, 0x10]
-_080D60EA:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _080D6114 @ =gUnknown_02024BE0
- ldr r0, _080D6118 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r6, [r0]
- movs r5, 0x10
- ldrsh r0, [r2, r5]
- cmp r0, 0
- bne _080D6120
- ldr r4, _080D611C @ =gUnknown_083D9794
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- b _080D6126
- .align 2, 0
-_080D610C: .4byte gTasks
-_080D6110: .4byte gUnknown_03004B00
-_080D6114: .4byte gUnknown_02024BE0
-_080D6118: .4byte gUnknown_0202F7C9
-_080D611C: .4byte gUnknown_083D9794
-_080D6120:
- ldr r4, _080D616C @ =gUnknown_083D97A4
- movs r3, 0x8
- ldrsh r0, [r2, r3]
-_080D6126:
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r0, r4
- ldrb r5, [r0]
- lsls r0, r7, 2
- adds r1, r0, r7
- lsls r1, 3
- add r1, r9
- movs r4, 0xE
- ldrsh r1, [r1, r4]
- mov r12, r0
- cmp r1, 0x1
- bne _080D6174
- ldr r2, _080D6170 @ =gSprites
- lsls r3, r6, 4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- mov r10, r0
- mov r0, r8
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r5, 24
- asrs r0, 24
- muls r0, r1
- cmp r0, 0
- bge _080D6164
- negs r0, r0
-_080D6164:
- mov r5, r10
- strh r0, [r5, 0x26]
- b _080D618E
- .align 2, 0
-_080D616C: .4byte gUnknown_083D97A4
-_080D6170: .4byte gSprites
-_080D6174:
- ldr r3, _080D61C4 @ =gSprites
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- lsls r0, r5, 24
- asrs r0, 24
- mov r5, r8
- ldrh r1, [r5, 0x2]
- muls r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_080D618E:
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r9
- movs r4, 0x8
- ldrsh r1, [r0, r4]
- movs r5, 0xA
- ldrsh r0, [r0, r5]
- cmp r1, r0
- bne _080D61B4
- adds r0, r3, r6
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_080D61B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D61C4: .4byte gSprites
- thumb_func_end sub_80D60B4
-
- thumb_func_start sub_80D61C8
-sub_80D61C8: @ 80D61C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D61E8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D61F0
- ldr r0, _080D61EC @ =gUnknown_03004B00
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080D61FC
- .align 2, 0
-_080D61E8: .4byte gUnknown_0202F7C8
-_080D61EC: .4byte gUnknown_03004B00
-_080D61F0:
- ldr r1, _080D6210 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080D61FC:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080D6214 @ =sub_80D6218
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6210: .4byte gUnknown_03004B00
-_080D6214: .4byte sub_80D6218
- thumb_func_end sub_80D61C8
-
- thumb_func_start sub_80D6218
-sub_80D6218: @ 80D6218
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D622E
- adds r0, r2, 0
- bl move_anim_8072740
-_080D622E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6218
-
- thumb_func_start sub_80D6234
-sub_80D6234: @ 80D6234
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D6254 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D625C
- ldr r0, _080D6258 @ =gUnknown_03004B00
- ldrh r1, [r4, 0x20]
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r4, 0x20]
- b _080D6266
- .align 2, 0
-_080D6254: .4byte gUnknown_0202F7C8
-_080D6258: .4byte gUnknown_03004B00
-_080D625C:
- ldr r0, _080D6270 @ =gUnknown_03004B00
- ldrh r0, [r0]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
-_080D6266:
- ldr r0, _080D6274 @ =sub_80D6278
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6270: .4byte gUnknown_03004B00
-_080D6274: .4byte sub_80D6278
- thumb_func_end sub_80D6234
-
- thumb_func_start sub_80D6278
-sub_80D6278: @ 80D6278
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D628E
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080D628E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6278
-
- thumb_func_start sub_80D6294
-sub_80D6294: @ 80D6294
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D62D8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D62DC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D62E4
- ldr r2, _080D62E0 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x22]
- b _080D62F8
- .align 2, 0
-_080D62D8: .4byte gUnknown_0202F7C9
-_080D62DC: .4byte gUnknown_0202F7C8
-_080D62E0: .4byte gUnknown_03004B00
-_080D62E4:
- ldr r0, _080D631C @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r2, [r5, 0x22]
- adds r1, r2
- strh r1, [r5, 0x22]
- adds r2, r0, 0
-_080D62F8:
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x34]
- ldr r1, _080D6320 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6324 @ =sub_8078114
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D631C: .4byte gUnknown_03004B00
-_080D6320: .4byte move_anim_8074EE0
-_080D6324: .4byte sub_8078114
- thumb_func_end sub_80D6294
-
- thumb_func_start sub_80D6328
-sub_80D6328: @ 80D6328
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080D6340 @ =gUnknown_03004B00
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080D63A0
- cmp r0, 0x1
- bgt _080D6344
- cmp r0, 0
- beq _080D634E
- b _080D63A0
- .align 2, 0
-_080D6340: .4byte gUnknown_03004B00
-_080D6344:
- cmp r0, 0x2
- beq _080D6358
- cmp r0, 0x3
- beq _080D637C
- b _080D63A0
-_080D634E:
- ldr r0, _080D6354 @ =gUnknown_0202F7C8
- b _080D63A2
- .align 2, 0
-_080D6354: .4byte gUnknown_0202F7C8
-_080D6358:
- ldr r4, _080D6370 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080D6374
- ldrb r4, [r4]
- b _080D63A4
- .align 2, 0
-_080D6370: .4byte gUnknown_0202F7C8
-_080D6374:
- ldrb r0, [r4]
- adds r4, r6, 0
- eors r4, r0
- b _080D63A4
-_080D637C:
- ldr r0, _080D6398 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r4, 0x2
- eors r0, r4
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D63A0
- ldr r0, _080D639C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- eors r4, r0
- b _080D63A4
- .align 2, 0
-_080D6398: .4byte gUnknown_0202F7C8
-_080D639C: .4byte gUnknown_0202F7C9
-_080D63A0:
- ldr r0, _080D63C4 @ =gUnknown_0202F7C9
-_080D63A2:
- ldrb r4, [r0]
-_080D63A4:
- ldr r0, _080D63C8 @ =gUnknown_03004B00
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080D63CC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x1
- b _080D63DE
- .align 2, 0
-_080D63C4: .4byte gUnknown_0202F7C9
-_080D63C8: .4byte gUnknown_03004B00
-_080D63CC:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- movs r1, 0x3
-_080D63DE:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r7, _080D647C @ =gSineTable
- ldr r6, _080D6480 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r7
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x26]
- ldrh r1, [r6, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D6442
- adds r0, r4, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r5, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x5]
-_080D6442:
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- ldr r3, _080D6484 @ =gOamMatrices
- lsls r2, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r7
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D6488 @ =sub_80DA48C
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D647C: .4byte gSineTable
-_080D6480: .4byte gUnknown_03004B00
-_080D6484: .4byte gOamMatrices
-_080D6488: .4byte sub_80DA48C
- thumb_func_end sub_80D6328
-
- thumb_func_start sub_80D648C
-sub_80D648C: @ 80D648C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080D6500 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r6, _080D6504 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x38]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x3A]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6508 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D650C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r1, _080D6510 @ =sub_80D6514
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6500: .4byte gUnknown_03004B00
-_080D6504: .4byte gUnknown_0202F7C9
-_080D6508: .4byte 0x000003ff
-_080D650C: .4byte 0xfffffc00
-_080D6510: .4byte sub_80D6514
- thumb_func_end sub_80D648C
-
- thumb_func_start sub_80D6514
-sub_80D6514: @ 80D6514
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D657E
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _080D6584
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
- b _080D6584
-_080D657E:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6584:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6514
-
- thumb_func_start sub_80D658C
-sub_80D658C: @ 80D658C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x38]
- subs r0, 0x1
- strh r0, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D65C4
- 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]
- ldrh r0, [r3, 0x36]
- strh r0, [r3, 0x38]
-_080D65C4:
- ldrh r0, [r3, 0x34]
- subs r1, r0, 0x1
- strh r1, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080D65D6
- adds r0, r3, 0
- bl move_anim_8072740
-_080D65D6:
- pop {r0}
- bx r0
- thumb_func_end sub_80D658C
-
- thumb_func_start sub_80D65DC
-sub_80D65DC: @ 80D65DC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D6644 @ =gMain
- ldr r1, _080D6648 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D65FE
- ldr r0, _080D664C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D6606
-_080D65FE:
- ldr r1, _080D6650 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080D6606:
- ldr r5, _080D664C @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6650 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4]
- strh r0, [r6, 0x34]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x36]
- strh r0, [r6, 0x38]
- ldr r0, _080D6654 @ =sub_80D658C
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6644: .4byte gMain
-_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gUnknown_0202F7C9
-_080D6650: .4byte gUnknown_03004B00
-_080D6654: .4byte sub_80D658C
- thumb_func_end sub_80D65DC
-
- thumb_func_start sub_80D6658
-sub_80D6658: @ 80D6658
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r1, _080D6674 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D667C
- ldr r0, _080D6678 @ =gUnknown_0202F7C9
- b _080D667E
- .align 2, 0
-_080D6674: .4byte gUnknown_03004B00
-_080D6678: .4byte gUnknown_0202F7C9
-_080D667C:
- ldr r0, _080D670C @ =gUnknown_0202F7C8
-_080D667E:
- ldrb r6, [r0]
- ldr r0, _080D6710 @ =gMain
- ldr r3, _080D6714 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D669C
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D66A4
-_080D669C:
- ldr r1, _080D6718 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D66A4:
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080D6718 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- adds r0, r6, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x2]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r1, [r4, 0xE]
- ldr r0, _080D671C @ =0x00007fff
- ands r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x3C]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D6720 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D6724 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _080D6728 @ =sub_80D672C
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D670C: .4byte gUnknown_0202F7C8
-_080D6710: .4byte gMain
-_080D6714: .4byte 0x0000043d
-_080D6718: .4byte gUnknown_03004B00
-_080D671C: .4byte 0x00007fff
-_080D6720: .4byte 0x000003ff
-_080D6724: .4byte 0xfffffc00
-_080D6728: .4byte sub_80D672C
- thumb_func_end sub_80D6658
-
- thumb_func_start sub_80D672C
-sub_80D672C: @ 80D672C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _080D6782
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- 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
- strb r0, [r3]
-_080D6782:
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080D6794
- adds r0, r4, 0
- bl move_anim_8072740
-_080D6794:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D672C
-
- thumb_func_start sub_80D679C
-sub_80D679C: @ 80D679C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D67D8 @ =gUnknown_03004B00
- movs r5, 0x6
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r1, r0
- ldr r5, _080D67DC @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _080D67E0 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080D67E4
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- b _080D67F2
- .align 2, 0
-_080D67D8: .4byte gUnknown_03004B00
-_080D67DC: .4byte 0x000003ff
-_080D67E0: .4byte 0xfffffc00
-_080D67E4:
- cmp r0, 0x2
- bne _080D67F6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x20
-_080D67F2:
- orrs r1, r0
- strb r1, [r4, 0x3]
-_080D67F6:
- ldr r0, _080D6810 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D6814 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D6818 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6810: .4byte gUnknown_03004B00
-_080D6814: .4byte sub_80782D8
-_080D6818: .4byte move_anim_8072740
- thumb_func_end sub_80D679C
-
- thumb_func_start sub_80D681C
-sub_80D681C: @ 80D681C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080D6864 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- ldr r1, _080D6868 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- lsls r0, 24
- ldr r5, _080D686C @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldr r0, _080D6870 @ =sub_80D6874
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6864: .4byte gUnknown_0202F7C9
-_080D6868: .4byte gTasks
-_080D686C: .4byte gUnknown_03004B00
-_080D6870: .4byte sub_80D6874
- thumb_func_end sub_80D681C
-
- thumb_func_start sub_80D6874
-sub_80D6874: @ 80D6874
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- movs r7, 0
- ldr r1, _080D68B4 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0xC]
- str r2, [sp]
- ldrh r4, [r0, 0x8]
- ldrh r6, [r0, 0xA]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0
- bne _080D68B8
- movs r0, 0
- mov r8, r0
- movs r2, 0x1
- movs r1, 0x10
- mov r12, r1
- b _080D68C2
- .align 2, 0
-_080D68B4: .4byte gTasks
-_080D68B8:
- movs r2, 0x10
- mov r12, r2
- movs r3, 0x8
- mov r8, r3
- movs r2, 0x4
-_080D68C2:
- mov r0, r9
- lsls r1, r0, 2
- adds r0, r1, r0
- lsls r0, 3
- add r0, r10
- movs r3, 0x1C
- ldrsh r0, [r0, r3]
- mov r10, r1
- cmp r0, 0xA
- bhi _080D69B8
- lsls r0, 2
- ldr r1, _080D68E0 @ =_080D68E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D68E0: .4byte _080D68E4
- .align 2, 0
-_080D68E4:
- .4byte _080D6910
- .4byte _080D69B8
- .4byte _080D6924
- .4byte _080D69B8
- .4byte _080D6944
- .4byte _080D69B8
- .4byte _080D695A
- .4byte _080D69B8
- .4byte _080D697C
- .4byte _080D69B8
- .4byte _080D69B0
-_080D6910:
- ldr r0, _080D6920 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- mov r4, r12
- lsls r3, r4, 16
- b _080D6992
- .align 2, 0
-_080D6920: .4byte gSpriteTemplate_83D9938
-_080D6924:
- mov r0, r12
- lsls r3, r0, 17
- mov r1, r8
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6940 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6940: .4byte gSpriteTemplate_83D9938
-_080D6944:
- mov r3, r12
- lsls r0, r3, 16
- asrs r0, 16
- lsls r3, r0, 1
- adds r3, r0
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- b _080D6986
-_080D695A:
- mov r0, r12
- lsls r3, r0, 18
- lsls r0, r2, 1
- adds r0, r2
- add r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080D6978 @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- b _080D6992
- .align 2, 0
-_080D6978: .4byte gSpriteTemplate_83D9938
-_080D697C:
- mov r1, r12
- lsls r0, r1, 16
- asrs r0, 16
- lsls r3, r0, 2
- adds r3, r0
-_080D6986:
- ldr r0, _080D69AC @ =gSpriteTemplate_83D9938
- lsls r1, r4, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r2, 16
- lsls r3, 16
-_080D6992:
- asrs r3, 16
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- b _080D69B8
- .align 2, 0
-_080D69AC: .4byte gSpriteTemplate_83D9938
-_080D69B0:
- mov r0, r9
- bl move_anim_task_del
- b _080D69FC
-_080D69B8:
- cmp r7, 0
- beq _080D69EC
- ldr r4, _080D6A0C @ =gSprites
- lsls r3, r5, 4
- adds r3, r5
- lsls r3, 2
- adds r0, r3, r4
- ldrh r5, [r0, 0x4]
- lsls r2, r5, 22
- lsrs r2, 22
- add r2, r8
- ldr r6, _080D6A10 @ =0x000003ff
- adds r1, r6, 0
- ands r2, r1
- ldr r1, _080D6A14 @ =0xfffffc00
- ands r1, r5
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- adds r4, 0x1C
- adds r3, r4
- ldr r1, [r3]
- bl _call_via_r1
-_080D69EC:
- ldr r0, _080D6A18 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- adds r0, 0x1
- strh r0, [r1, 0x1C]
-_080D69FC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6A0C: .4byte gSprites
-_080D6A10: .4byte 0x000003ff
-_080D6A14: .4byte 0xfffffc00
-_080D6A18: .4byte gTasks
- thumb_func_end sub_80D6874
-
- thumb_func_start sub_80D6A1C
-sub_80D6A1C: @ 80D6A1C
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080D6A3E
- ldrb r1, [r3, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r2, r0
- strb r2, [r3, 0x3]
- b _080D6A52
-_080D6A3E:
- ldrb r2, [r3, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x3]
- ands r1, r0
- movs r0, 0x40
- orrs r1, r0
- strb r1, [r3, 0x3]
-_080D6A52:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _080D6A66
- adds r0, r3, 0
- bl DestroySprite
-_080D6A66:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6A1C
-
- thumb_func_start sub_80D6A6C
-sub_80D6A6C: @ 80D6A6C
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080D6AD4 @ =gUnknown_03004B00
- ldrh r1, [r0]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- strh r1, [r4, 0x20]
- ldrh r0, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- ldr r0, _080D6AD8 @ =gBattleAnimSpriteTemplate_83D9950
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- movs r7, 0x22
- ldrsh r2, [r4, r7]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080D6ADC @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r6, r2, r3
- ldrh r5, [r6, 0x4]
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r7, _080D6AE0 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080D6AE4 @ =0xfffffc00
- ands r0, r5
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080D6AE8 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r3, 0x1C
- adds r2, r3
- ldr r0, _080D6AEC @ =sub_80D6AF0
- str r0, [r2]
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6AD4: .4byte gUnknown_03004B00
-_080D6AD8: .4byte gBattleAnimSpriteTemplate_83D9950
-_080D6ADC: .4byte gSprites
-_080D6AE0: .4byte 0x000003ff
-_080D6AE4: .4byte 0xfffffc00
-_080D6AE8: .4byte gUnknown_0202F7B2
-_080D6AEC: .4byte sub_80D6AF0
- thumb_func_end sub_80D6A6C
-
- thumb_func_start sub_80D6AF0
-sub_80D6AF0: @ 80D6AF0
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080D6B24
- movs r0, 0
- strh r0, [r3, 0x2E]
- 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]
-_080D6B24:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080D6B38
- adds r0, r3, 0
- bl move_anim_8072740
-_080D6B38:
- pop {r0}
- bx r0
- thumb_func_end sub_80D6AF0
-
- thumb_func_start sub_80D6B3C
-sub_80D6B3C: @ 80D6B3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D6B5C @ =gTasks
- adds r5, r1, r0
- ldr r0, _080D6B60 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6B68
- ldr r4, _080D6B64 @ =gUnknown_0202F7C8
- b _080D6B6A
- .align 2, 0
-_080D6B5C: .4byte gTasks
-_080D6B60: .4byte gUnknown_03004B00
-_080D6B64: .4byte gUnknown_0202F7C8
-_080D6B68:
- ldr r4, _080D6BAC @ =gUnknown_0202F7C9
-_080D6B6A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x26]
- ldr r2, _080D6BB0 @ =gUnknown_03004B00
- ldrh r0, [r2, 0x2]
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- strh r1, [r5, 0x18]
- strh r1, [r5, 0x1A]
- strh r1, [r5, 0x1C]
- ldrh r0, [r2, 0x6]
- strh r0, [r5, 0x1E]
- strh r1, [r5, 0x20]
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x22]
- ldr r0, _080D6BB4 @ =sub_80D6BB8
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6BAC: .4byte gUnknown_0202F7C9
-_080D6BB0: .4byte gUnknown_03004B00
-_080D6BB4: .4byte sub_80D6BB8
- thumb_func_end sub_80D6B3C
-
- thumb_func_start sub_80D6BB8
-sub_80D6BB8: @ 80D6BB8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r2, r6, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D6CA0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D6CB8
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- cmp r0, r1
- ble _080D6CC6
- strh r7, [r5, 0x20]
- ldr r0, _080D6CA4 @ =gSpriteTemplate_83D99B8
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- movs r3, 0x26
- ldrsh r2, [r5, r3]
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080D6CC6
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080D6CA8 @ =gSprites
- adds r4, r0
- ldr r1, _080D6CAC @ =gUnknown_083D9968
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r0, [r4, 0x20]
- adds r3, r0
- strh r3, [r4, 0x20]
- movs r2, 0x1A
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r4, 0x22]
- adds r2, r0
- strh r2, [r4, 0x22]
- movs r1, 0x18
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0x28
- subs r0, r1
- strh r0, [r4, 0x2E]
- strh r3, [r4, 0x30]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x32]
- strh r2, [r4, 0x34]
- ldrh r0, [r5, 0x26]
- strh r0, [r4, 0x36]
- strh r6, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D6CB0 @ =sub_80D6D00
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6CB4 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x1
- strh r0, [r5, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080D6C70
- strh r7, [r5, 0x1A]
-_080D6C70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- cmp r0, r1
- blt _080D6C92
- strh r7, [r5, 0x1C]
- ldrh r1, [r5, 0x18]
- movs r3, 0x18
- ldrsh r0, [r5, r3]
- cmp r0, 0x5
- bgt _080D6C92
- adds r0, r1, 0x1
- strh r0, [r5, 0x18]
-_080D6C92:
- ldrh r0, [r5, 0x16]
- adds r0, 0x1
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x14]
- subs r0, 0x1
- strh r0, [r5, 0x14]
- b _080D6CC6
- .align 2, 0
-_080D6CA0: .4byte gTasks
-_080D6CA4: .4byte gSpriteTemplate_83D99B8
-_080D6CA8: .4byte gSprites
-_080D6CAC: .4byte gUnknown_083D9968
-_080D6CB0: .4byte sub_80D6D00
-_080D6CB4: .4byte sub_8078600
-_080D6CB8:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D6CC6
- adds r0, r2, 0
- bl move_anim_task_del
-_080D6CC6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80D6BB8
-
- thumb_func_start sub_80D6CCC
-sub_80D6CCC: @ 80D6CCC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D6CF4
- ldr r2, _080D6CFC @ =gTasks
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x16]
- subs r1, 0x1
- strh r1, [r0, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080D6CF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6CFC: .4byte gTasks
- thumb_func_end sub_80D6CCC
-
- thumb_func_start sub_80D6D00
-sub_80D6D00: @ 80D6D00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D6D14 @ =sub_80D6CCC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D14: .4byte sub_80D6CCC
- thumb_func_end sub_80D6D00
-
- thumb_func_start sub_80D6D18
-sub_80D6D18: @ 80D6D18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D2C @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D34
- ldr r4, _080D6D30 @ =gUnknown_0202F7C8
- b _080D6D36
- .align 2, 0
-_080D6D2C: .4byte gUnknown_03004B00
-_080D6D30: .4byte gUnknown_0202F7C8
-_080D6D34:
- ldr r4, _080D6D64 @ =gUnknown_0202F7C9
-_080D6D36:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6D68 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6D6C @ =sub_80785E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6D64: .4byte gUnknown_0202F7C9
-_080D6D68: .4byte move_anim_8074EE0
-_080D6D6C: .4byte sub_80785E4
- thumb_func_end sub_80D6D18
-
- thumb_func_start sub_80D6D70
-sub_80D6D70: @ 80D6D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D6D84 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D6D8C
- ldr r4, _080D6D88 @ =gUnknown_0202F7C8
- b _080D6D8E
- .align 2, 0
-_080D6D84: .4byte gUnknown_03004B00
-_080D6D88: .4byte gUnknown_0202F7C8
-_080D6D8C:
- ldr r4, _080D6DC8 @ =gUnknown_0202F7C9
-_080D6D8E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D6DCC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x24]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x26]
- ldr r1, _080D6DD0 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D6DD4 @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6DC8: .4byte gUnknown_0202F7C9
-_080D6DCC: .4byte gUnknown_03004B00
-_080D6DD0: .4byte move_anim_8072740
-_080D6DD4: .4byte sub_8078600
- thumb_func_end sub_80D6D70
-
- thumb_func_start sub_80D6DD8
-sub_80D6DD8: @ 80D6DD8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r4, _080D6E30 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3A]
- movs r0, 0x10
- strh r0, [r5, 0x3C]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080D6E26
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r5, 0x3C]
-_080D6E26:
- ldr r0, _080D6E34 @ =sub_80D6E38
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E30: .4byte gUnknown_0202F7C8
-_080D6E34: .4byte sub_80D6E38
- thumb_func_end sub_80D6DD8
-
- thumb_func_start sub_80D6E38
-sub_80D6E38: @ 80D6E38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D6E4A
- cmp r0, 0x1
- beq _080D6E60
- b _080D6E90
-_080D6E4A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D6E90
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D6E90
-_080D6E60:
- ldrh r2, [r4, 0x3C]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, _080D6E98 @ =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- ldrh r0, [r4, 0x20]
- adds r0, 0x50
- lsls r0, 16
- movs r1, 0xC8
- lsls r1, 17
- cmp r0, r1
- bls _080D6E90
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080D6E90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D6E98: .4byte gSprites
- thumb_func_end sub_80D6E38
-
- thumb_func_start sub_80D6E9C
-sub_80D6E9C: @ 80D6E9C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080D6EC0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D6F30
- cmp r0, 0x1
- bgt _080D6EC4
- cmp r0, 0
- beq _080D6ED0
- b _080D7000
- .align 2, 0
-_080D6EC0: .4byte gTasks
-_080D6EC4:
- cmp r0, 0x2
- beq _080D6F8C
- cmp r0, 0x3
- bne _080D6ECE
- b _080D6FE0
-_080D6ECE:
- b _080D7000
-_080D6ED0:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- strh r0, [r5, 0x26]
- ldr r4, _080D6F04 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D6F0C
- ldr r0, _080D6F08 @ =0x0000ffe0
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _080D6F12
- .align 2, 0
-_080D6F04: .4byte gUnknown_0202F7C8
-_080D6F08: .4byte 0x0000ffe0
-_080D6F0C:
- movs r0, 0x20
- strh r0, [r5, 0x24]
- ldr r0, _080D6F28 @ =0x0000fffe
-_080D6F12:
- strh r0, [r5, 0x22]
- ldr r2, _080D6F2C @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r5, 0x24]
- strh r1, [r0, 0x24]
- b _080D6FD2
- .align 2, 0
-_080D6F28: .4byte 0x0000fffe
-_080D6F2C: .4byte gSprites
-_080D6F30:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r4, _080D6F88 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r1, [r5, 0x24]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D6FD2
- ldrh r2, [r5, 0x22]
- adds r2, r1, r2
- strh r2, [r5, 0x24]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- b _080D7000
- .align 2, 0
-_080D6F88: .4byte gSprites
-_080D6F8C:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D7000
- movs r0, 0
- strh r0, [r5, 0xA]
- ldr r1, _080D6FDC @ =gSprites
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _080D7000
-_080D6FD2:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D7000
- .align 2, 0
-_080D6FDC: .4byte gSprites
-_080D6FE0:
- ldr r2, _080D7008 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- bl move_anim_task_del
-_080D7000:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7008: .4byte gSprites
- thumb_func_end sub_80D6E9C
-
- thumb_func_start sub_80D700C
-sub_80D700C: @ 80D700C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080D7030 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7026
- b _080D714C
-_080D7026:
- cmp r0, 0x1
- bgt _080D7034
- cmp r0, 0
- beq _080D703C
- b _080D718E
- .align 2, 0
-_080D7030: .4byte gTasks
-_080D7034:
- cmp r0, 0x2
- bne _080D703A
- b _080D7180
-_080D703A:
- b _080D718E
-_080D703C:
- ldr r4, _080D707C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _080D7052
- movs r1, 0x1
-_080D7052:
- movs r6, 0
- strh r1, [r5, 0xA]
- ldr r0, _080D7080 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r3, r0, 0
- cmp r2, 0
- beq _080D7088
- cmp r2, 0x4
- beq _080D70B0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D70E8
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0xE]
- ldr r0, _080D7084 @ =0x0000fff0
- b _080D70F0
- .align 2, 0
-_080D707C: .4byte gUnknown_0202F7C8
-_080D7080: .4byte gUnknown_03004B00
-_080D7084: .4byte 0x0000fff0
-_080D7088:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r0, 7
- adds r0, 0x78
- strh r0, [r5, 0x10]
- b _080D7126
-_080D70B0:
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r1, 7
- movs r0, 0x78
- subs r0, r1
- strh r0, [r5, 0xE]
- ldr r4, _080D70E4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xA
- ldrsh r1, [r5, r2]
- lsls r1, 5
- subs r0, r1
- strh r0, [r5, 0x10]
- b _080D7126
- .align 2, 0
-_080D70E4: .4byte gUnknown_0202F7C9
-_080D70E8:
- ldr r0, _080D710C @ =0x0000fff0
- strh r0, [r5, 0xE]
- movs r0, 0x80
- lsls r0, 1
-_080D70F0:
- strh r0, [r5, 0x10]
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080D7110
- movs r2, 0
- ldrsh r0, [r3, r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0x50
- subs r0, r1
- strh r0, [r5, 0x12]
- b _080D7126
- .align 2, 0
-_080D710C: .4byte 0x0000fff0
-_080D7110:
- movs r0, 0
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x28
- strh r0, [r5, 0x12]
- ldrh r1, [r5, 0xE]
- ldrh r0, [r5, 0x10]
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
-_080D7126:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bge _080D713C
- movs r1, 0
- movs r0, 0x1
- strh r0, [r5, 0xA]
- strh r1, [r5, 0x14]
- b _080D7178
-_080D713C:
- ldr r0, _080D7148 @ =0x0000ffff
- strh r0, [r5, 0xA]
- movs r0, 0x3
- strh r0, [r5, 0x14]
- b _080D7178
- .align 2, 0
-_080D7148: .4byte 0x0000ffff
-_080D714C:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- ble _080D718E
- movs r0, 0
- strh r0, [r5, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- bne _080D7178
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D7194
- lsls r0, 24
- cmp r0, 0
- beq _080D718E
-_080D7178:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D718E
-_080D7180:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D718E
- adds r0, r4, 0
- bl move_anim_task_del
-_080D718E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80D700C
-
- thumb_func_start sub_80D7194
-sub_80D7194: @ 80D7194
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7220 @ =gSpriteTemplate_83D9B10
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r3, 0x12
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D71CA
- ldr r1, _080D7224 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r5, [r0, 0x3A]
- movs r1, 0x7
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080D71CA:
- ldrh r1, [r4, 0xA]
- ldrh r5, [r4, 0x14]
- adds r0, r1, r5
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bge _080D71DC
- movs r0, 0x3
- strh r0, [r4, 0x14]
-_080D71DC:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- ble _080D71E8
- movs r0, 0
- strh r0, [r4, 0x14]
-_080D71E8:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- lsls r0, 4
- ldrh r5, [r4, 0xE]
- adds r2, r0, r5
- strh r2, [r4, 0xE]
- lsls r0, r1, 16
- asrs r3, r0, 16
- cmp r3, 0x1
- bne _080D7208
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x10
- ldrsh r1, [r4, r5]
- cmp r0, r1
- bge _080D721C
-_080D7208:
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080D7228
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bgt _080D7228
-_080D721C:
- movs r0, 0x1
- b _080D722A
- .align 2, 0
-_080D7220: .4byte gSpriteTemplate_83D9B10
-_080D7224: .4byte gSprites
-_080D7228:
- movs r0, 0
-_080D722A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7194
-
- thumb_func_start sub_80D7230
-sub_80D7230: @ 80D7230
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7270
- ldr r3, _080D7278 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D7270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7278: .4byte gTasks
- thumb_func_end sub_80D7230
-
- thumb_func_start sub_80D727C
-sub_80D727C: @ 80D727C
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D728E
- cmp r0, 0x1
- beq _080D72C0
- b _080D72D4
-_080D728E:
- ldr r4, _080D72BC @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080D72D4
- .align 2, 0
-_080D72BC: .4byte gUnknown_0202F7C8
-_080D72C0:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D72D4
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080D72D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D727C
-
- thumb_func_start sub_80D72DC
-sub_80D72DC: @ 80D72DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D7300 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080D72F6
- b _080D7468
-_080D72F6:
- lsls r0, 2
- ldr r1, _080D7304 @ =_080D7308
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D7300: .4byte gTasks
-_080D7304: .4byte _080D7308
- .align 2, 0
-_080D7308:
- .4byte _080D731C
- .4byte _080D73AC
- .4byte _080D73E8
- .4byte _080D7444
- .4byte _080D7454
-_080D731C:
- ldr r4, _080D73A0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- ldr r0, _080D73A4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r5, r2]
- movs r2, 0x14
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x5
- bl __divsi3
- strh r0, [r5, 0x1A]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D73A8 @ =0x0000ffff
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- subs r0, 0x4C
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x20]
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x22]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x24]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- movs r1, 0x3
- bl __divsi3
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- b _080D7466
- .align 2, 0
-_080D73A0: .4byte gUnknown_0202F7C8
-_080D73A4: .4byte gUnknown_0202F7C9
-_080D73A8: .4byte 0x0000ffff
-_080D73AC:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _080D73DC
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7470
- lsls r0, 24
- cmp r0, 0
- beq _080D73DC
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bne _080D73D6
- movs r0, 0x3
- b _080D73DA
-_080D73D6:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
-_080D73DA:
- strh r0, [r5, 0x8]
-_080D73DC:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7468
- b _080D745E
-_080D73E8:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D73F6
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
-_080D73F6:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080D7468
- strh r3, [r5, 0xA]
- ldrh r1, [r5, 0xC]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080D7422
- movs r0, 0x4
- strh r0, [r5, 0x16]
- movs r0, 0x44
- strh r0, [r5, 0x18]
- strh r3, [r5, 0x10]
- strh r2, [r5, 0x12]
- b _080D7432
-_080D7422:
- movs r0, 0x44
- strh r0, [r5, 0x16]
- movs r0, 0x4
- strh r0, [r5, 0x18]
- movs r0, 0x7
- strh r0, [r5, 0x10]
- ldr r0, _080D7440 @ =0x0000ffff
- strh r0, [r5, 0x12]
-_080D7432:
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080D7464
- movs r0, 0x4
- b _080D7466
- .align 2, 0
-_080D7440: .4byte 0x0000ffff
-_080D7444:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7468
- adds r0, r2, 0
- bl move_anim_task_del
- b _080D7468
-_080D7454:
- ldrh r1, [r5, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080D7464
-_080D745E:
- subs r0, r1, 0x1
- strh r0, [r5, 0x1E]
- b _080D7468
-_080D7464:
- movs r0, 0x1
-_080D7466:
- strh r0, [r5, 0x8]
-_080D7468:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D72DC
-
- thumb_func_start sub_80D7470
-sub_80D7470: @ 80D7470
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D7538 @ =gSpriteTemplate_83D9B40
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r3, 0x16
- ldrsh r2, [r4, r3]
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080D74DC
- ldr r1, _080D753C @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldrh r6, [r4, 0x10]
- adds r1, r6
- ldr r6, _080D7540 @ =0x000003ff
- adds r0, r6, 0
- ands r1, r0
- ldr r0, _080D7544 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _080D74C4
- movs r0, 0x7
- strh r0, [r4, 0x10]
-_080D74C4:
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x7
- ble _080D74D0
- movs r0, 0
- strh r0, [r4, 0x10]
-_080D74D0:
- strh r5, [r3, 0x3A]
- movs r0, 0x3
- strh r0, [r3, 0x3C]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080D74DC:
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D74FE
- movs r5, 0x12
- ldrsh r0, [r4, r5]
- cmp r0, 0
- ble _080D74FE
- ldrh r1, [r4, 0x26]
- ldrh r6, [r4, 0x24]
- adds r1, r6
- strh r1, [r4, 0x24]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x76
- bl PlaySE12WithPanning
-_080D74FE:
- movs r0, 0x12
- ldrsh r3, [r4, r0]
- ldrh r2, [r4, 0x16]
- cmp r3, 0
- bge _080D7514
- lsls r0, r2, 16
- asrs r0, 16
- movs r5, 0x18
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080D7524
-_080D7514:
- cmp r3, 0
- ble _080D7548
- lsls r0, r2, 16
- asrs r0, 16
- movs r6, 0x18
- ldrsh r1, [r4, r6]
- cmp r0, r1
- blt _080D7548
-_080D7524:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x1A]
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r0, 0x1
- b _080D7554
- .align 2, 0
-_080D7538: .4byte gSpriteTemplate_83D9B40
-_080D753C: .4byte gSprites
-_080D7540: .4byte 0x000003ff
-_080D7544: .4byte 0xfffffc00
-_080D7548:
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r0, r2, r0
- strh r0, [r4, 0x16]
- movs r0, 0
-_080D7554:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7470
-
- thumb_func_start sub_80D755C
-sub_80D755C: @ 80D755C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080D7592
- ldr r3, _080D7598 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D7592:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7598: .4byte gTasks
- thumb_func_end sub_80D755C
-
- thumb_func_start sub_80D759C
-sub_80D759C: @ 80D759C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D75C0 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080D7618
- cmp r0, 0x1
- bgt _080D75C4
- cmp r0, 0
- beq _080D75CA
- b _080D764E
- .align 2, 0
-_080D75C0: .4byte gTasks
-_080D75C4:
- cmp r0, 0x2
- beq _080D7640
- b _080D764E
-_080D75CA:
- ldr r0, _080D7614 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x26]
- strh r0, [r5, 0x24]
- cmp r0, 0x10
- ble _080D75F4
- adds r2, r0, 0
-_080D75E4:
- adds r1, r2, 0
- subs r1, 0x20
- adds r2, r1, 0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x10
- bgt _080D75E4
- strh r1, [r5, 0x24]
-_080D75F4:
- ldr r4, _080D7614 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _080D7638
- .align 2, 0
-_080D7614: .4byte gUnknown_0202F7C9
-_080D7618:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D764E
- movs r0, 0
- strh r0, [r5, 0xA]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80D7654
- lsls r0, 24
- cmp r0, 0
- beq _080D764E
-_080D7638:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080D764E
-_080D7640:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D764E
- adds r0, r2, 0
- bl move_anim_task_del
-_080D764E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D759C
-
- thumb_func_start sub_80D7654
-sub_80D7654: @ 80D7654
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _080D76B0 @ =gBattleAnimSpriteTemplate_83D97D0
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- ldrh r3, [r4, 0x20]
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080D7698
- ldr r3, _080D76B4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _080D76B8 @ =sub_80D76C4
- str r2, [r1]
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r1, 0xA
- strh r1, [r0, 0x3C]
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
-_080D7698:
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _080D76BC
- adds r0, r2, 0
- adds r0, 0x20
- strh r0, [r4, 0x24]
- movs r0, 0
- b _080D76BE
- .align 2, 0
-_080D76B0: .4byte gBattleAnimSpriteTemplate_83D97D0
-_080D76B4: .4byte gSprites
-_080D76B8: .4byte sub_80D76C4
-_080D76BC:
- movs r0, 0x1
-_080D76BE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80D7654
-
- thumb_func_start sub_80D76C4
-sub_80D76C4: @ 80D76C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D76F8
- ldr r3, _080D7700 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_080D76F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7700: .4byte gTasks
- thumb_func_end sub_80D76C4
-
- thumb_func_start sub_80D7704
-sub_80D7704: @ 80D7704
- 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, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x7
- ldr r3, _080D780C @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D7810 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r4, _080D7814 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080D7818 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r4]
- movs r1, 0x3
- str r3, [sp]
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080D781C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1]
- ldr r3, [sp]
- adds r0, r3
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x4]
- mov r4, r9
- adds r0, r4, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- adds r0, r6
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x6]
- mov r7, r8
- adds r0, r7, r0
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- adds r4, 0x20
- movs r0, 0x98
- lsls r0, 1
- mov r12, r0
- ldr r3, [sp]
- cmp r4, r12
- bhi _080D77DE
- adds r0, r7, 0
- adds r0, 0x20
- ldrh r1, [r5, 0x30]
- ldrh r2, [r5, 0x32]
- cmp r0, 0xE0
- bhi _080D77DE
- adds r4, r1, 0
- mov r10, r12
-_080D77AA:
- mov r7, r9
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r4
- lsls r1, 16
- mov r7, r8
- lsls r0, r7, 16
- asrs r0, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r0, r1, 16
- mov r9, r0
- movs r7, 0x80
- lsls r7, 14
- adds r1, r7
- lsrs r1, 16
- cmp r1, r10
- bhi _080D77DE
- mov r1, r8
- lsls r0, r1, 16
- adds r0, r7
- lsrs r0, 16
- cmp r0, 0xE0
- bls _080D77AA
-_080D77DE:
- ldrh r0, [r5, 0x30]
- negs r7, r0
- strh r7, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- negs r4, r0
- strh r4, [r5, 0x32]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r0, 16
- movs r2, 0x98
- lsls r2, 1
- mov r12, r2
- ldr r1, _080D781C @ =gUnknown_03004B00
- mov r10, r1
- cmp r0, r12
- bhi _080D784A
- lsls r1, r6, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r1, r2
- b _080D7842
- .align 2, 0
-_080D780C: .4byte 0x000003ff
-_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gUnknown_0202F7C9
-_080D7818: .4byte gUnknown_0202F7C8
-_080D781C: .4byte gUnknown_03004B00
-_080D7820:
- lsls r1, r3, 16
- asrs r1, 16
- adds r1, r7
- lsls r1, 16
- asrs r0, r2, 16
- adds r0, r4
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r3, r1, 16
- movs r0, 0x80
- lsls r0, 14
- adds r1, r0
- lsrs r1, 16
- cmp r1, r12
- bhi _080D784A
- lsls r1, r6, 16
- adds r0, r1, r0
-_080D7842:
- lsrs r0, 16
- adds r2, r1, 0
- cmp r0, 0xE0
- bls _080D7820
-_080D784A:
- strh r3, [r5, 0x20]
- strh r6, [r5, 0x22]
- mov r1, r10
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- strh r3, [r5, 0x30]
- mov r2, r9
- strh r2, [r5, 0x32]
- strh r6, [r5, 0x34]
- mov r3, r8
- strh r3, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078314
- mov r7, r10
- ldrh r0, [r7, 0xA]
- strh r0, [r5, 0x34]
- ldrh r0, [r7, 0xC]
- strh r0, [r5, 0x36]
- ldr r0, _080D7884 @ =sub_80D7888
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7884: .4byte sub_80D7888
- thumb_func_end sub_80D7704
-
- thumb_func_start sub_80D7888
-sub_80D7888: @ 80D7888
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D78E0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x38]
- adds r1, r2
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- strh r1, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D78E6
-_080D78E0:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D78E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7888
-
- thumb_func_start sub_80D78EC
-sub_80D78EC: @ 80D78EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7920 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- movs r0, 0x3C
- strh r0, [r4, 0x30]
- movs r0, 0x9
- strh r0, [r4, 0x32]
- movs r0, 0x1E
- strh r0, [r4, 0x34]
- movs r0, 0xFE
- lsls r0, 8
- strh r0, [r4, 0x36]
- ldr r1, _080D7924 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080D7928 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7920: .4byte gUnknown_03004B00
-_080D7924: .4byte move_anim_8072740
-_080D7928: .4byte sub_8078174
- thumb_func_end sub_80D78EC
-
- thumb_func_start sub_80D792C
-sub_80D792C: @ 80D792C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D7960 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldr r0, _080D7964 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D796C
- ldr r0, _080D7968 @ =gUnknown_03004B00
- ldrh r1, [r4, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r4, 0x32]
- b _080D7976
- .align 2, 0
-_080D7960: .4byte gUnknown_0202F7C9
-_080D7964: .4byte gUnknown_0202F7C8
-_080D7968: .4byte gUnknown_03004B00
-_080D796C:
- ldr r0, _080D79A4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
-_080D7976:
- ldr r0, _080D79A8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r1, _080D79A4 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r2, [r1, 0x6]
- adds r0, r2
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _080D79AC @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D79B0 @ =sub_8078B34
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D79A4: .4byte gUnknown_03004B00
-_080D79A8: .4byte gUnknown_0202F7C9
-_080D79AC: .4byte move_anim_8072740
-_080D79B0: .4byte sub_8078B34
- thumb_func_end sub_80D792C
-
- thumb_func_start sub_80D79B4
-sub_80D79B4: @ 80D79B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D79CC @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D79D0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D7A06
- .align 2, 0
-_080D79CC: .4byte gUnknown_03004B00
-_080D79D0:
- ldr r0, _080D7A18 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D7A1C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D79F6
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D79F6:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D7A06:
- ldr r1, _080D7A20 @ =sub_80D7A28
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D7A24 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7A18: .4byte gUnknown_0202F7C9
-_080D7A1C: .4byte gUnknown_0202F7C8
-_080D7A20: .4byte sub_80D7A28
-_080D7A24: .4byte sub_80785E4
- thumb_func_end sub_80D79B4
-
- thumb_func_start sub_80D7A28
-sub_80D7A28: @ 80D7A28
- push {lr}
- adds r3, r0, 0
- 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]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D7A5E
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080D7A5E:
- pop {r0}
- bx r0
- thumb_func_end sub_80D7A28
-
- thumb_func_start sub_80D7A64
-sub_80D7A64: @ 80D7A64
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D7AAC @ =gUnknown_03004B00
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7AB4
- ldr r4, _080D7AB0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x36]
- b _080D7AC6
- .align 2, 0
-_080D7AAC: .4byte gUnknown_03004B00
-_080D7AB0: .4byte gUnknown_0202F7C9
-_080D7AB4:
- ldr r0, _080D7AE0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7AC6:
- ldr r0, _080D7AE4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7AEC
- ldr r0, _080D7AE8 @ =gUnknown_03004B00
- ldrh r1, [r5, 0x32]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r5, 0x32]
- b _080D7AF6
- .align 2, 0
-_080D7AE0: .4byte gUnknown_0202F7C9
-_080D7AE4: .4byte gUnknown_0202F7C8
-_080D7AE8: .4byte gUnknown_03004B00
-_080D7AEC:
- ldr r0, _080D7B94 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7AF6:
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7B00:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B00
- adds r0, r5, 0
- bl sub_8078D60
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7B22:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7B56
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7B56
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7B22
-_080D7B56:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r6, _080D7B98 @ =sub_8078D8C
- ldr r1, _080D7B9C @ =sub_80D7BA0
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7B76:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7B76
- str r6, [r5, 0x1C]
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7B94: .4byte gUnknown_03004B00
-_080D7B98: .4byte sub_8078D8C
-_080D7B9C: .4byte sub_80D7BA0
- thumb_func_end sub_80D7A64
-
- thumb_func_start sub_80D7BA0
-sub_80D7BA0: @ 80D7BA0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r5, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- strh r5, [r4, 0x24]
- movs r0, 0x80
- strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080D7C00 @ =0x0000ffec
- cmp r0, 0
- beq _080D7BD0
- movs r1, 0x14
-_080D7BD0:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- strh r0, [r4, 0x34]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- ldr r1, _080D7C04 @ =sub_80D7C08
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7BFC: .4byte gUnknown_0202F7C8
-_080D7C00: .4byte 0x0000ffec
-_080D7C04: .4byte sub_80D7C08
- thumb_func_end sub_80D7BA0
-
- thumb_func_start sub_80D7C08
-sub_80D7C08: @ 80D7C08
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D7C5C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080D7C60 @ =0x0000ffec
- cmp r0, 0
- beq _080D7C1E
- movs r1, 0x14
-_080D7C1E:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- bgt _080D7C64
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r1, 16
- asrs r1, 16
- bl Sin
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x36]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _080D7C82
- .align 2, 0
-_080D7C5C: .4byte gUnknown_0202F7C8
-_080D7C60: .4byte 0x0000ffec
-_080D7C64:
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- 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, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x36]
- strh r1, [r4, 0x34]
- ldr r0, _080D7C88 @ =sub_80D7C8C
- str r0, [r4, 0x1C]
-_080D7C82:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7C88: .4byte sub_80D7C8C
- thumb_func_end sub_80D7C08
-
- thumb_func_start sub_80D7C8C
-sub_80D7C8C: @ 80D7C8C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078CE8
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7CC8
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r1, r0, r1
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bgt _080D7CC8
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7CCE
-_080D7CC8:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7CCE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7C8C
-
- thumb_func_start sub_80D7CD4
-sub_80D7CD4: @ 80D7CD4
- push {r4-r7,lr}
- sub sp, 0x10
- adds r5, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080D7D18 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D7D20
- ldr r4, _080D7D1C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080D7D32
- .align 2, 0
-_080D7D18: .4byte gUnknown_03004B00
-_080D7D1C: .4byte gUnknown_0202F7C9
-_080D7D20:
- ldr r0, _080D7D50 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080D7D32:
- ldr r0, _080D7D54 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7D5C
- ldr r0, _080D7D58 @ =gUnknown_03004B00
- ldrh r1, [r5, 0x32]
- ldrh r2, [r0, 0x4]
- subs r1, r2
- strh r1, [r5, 0x32]
- adds r1, r0, 0
- b _080D7D66
- .align 2, 0
-_080D7D50: .4byte gUnknown_0202F7C9
-_080D7D54: .4byte gUnknown_0202F7C8
-_080D7D58: .4byte gUnknown_03004B00
-_080D7D5C:
- ldr r1, _080D7E10 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
-_080D7D66:
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078D60
- adds r7, r5, 0
- adds r7, 0x2E
- adds r2, r7, 0
- mov r1, sp
- movs r4, 0x7
-_080D7D7E:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7D7E
- ldrh r0, [r5, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- eors r0, r1
- strh r0, [r5, 0x32]
-_080D7D9A:
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- bl sub_8078CE8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r2, 0x24
- ldrsh r0, [r5, r2]
- adds r1, r0
- adds r1, 0x10
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- bhi _080D7DCE
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7DCE
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7D9A
-_080D7DCE:
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- ldr r1, _080D7E10 @ =gUnknown_03004B00
- ldr r6, _080D7E14 @ =sub_80D7E18
- mov r3, sp
- adds r2, r7, 0
- movs r4, 0x7
-_080D7DEE:
- ldrh r0, [r3]
- strh r0, [r2]
- adds r3, 0x2
- adds r2, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080D7DEE
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r1, 0xC]
- strh r0, [r5, 0x3A]
- str r6, [r5, 0x1C]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D7E10: .4byte gUnknown_03004B00
-_080D7E14: .4byte sub_80D7E18
- thumb_func_end sub_80D7CD4
-
- thumb_func_start sub_80D7E18
-sub_80D7E18: @ 80D7E18
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078CE8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7E2C
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_080D7E2C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D7E82
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x10
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- bhi _080D7E7C
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- adds r1, r0
- cmp r1, 0xA0
- bgt _080D7E7C
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _080D7E82
-_080D7E7C:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7E82:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E18
-
- thumb_func_start sub_80D7E88
-sub_80D7E88: @ 80D7E88
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D7EF4
- ldr r5, _080D7EA8 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D7EAC
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- b _080D7EE2
- .align 2, 0
-_080D7EA8: .4byte gUnknown_03004B00
-_080D7EAC:
- ldr r0, _080D7EEC @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldr r0, _080D7EF0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7ED2
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D7ED2:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D7EE2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D7F08
- .align 2, 0
-_080D7EEC: .4byte gUnknown_0202F7C9
-_080D7EF0: .4byte gUnknown_0202F7C8
-_080D7EF4:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080D7F08
- adds r0, r4, 0
- bl move_anim_8072740
-_080D7F08:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D7E88
-
- thumb_func_start sub_80D7F10
-sub_80D7F10: @ 80D7F10
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D7F30 @ =gUnknown_03004B00
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F80
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F34
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080D7F72
- .align 2, 0
-_080D7F30: .4byte gUnknown_03004B00
-_080D7F34:
- ldr r4, _080D7F5C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7F60
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7F66
- .align 2, 0
-_080D7F5C: .4byte gUnknown_0202F7C8
-_080D7F60:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7F66:
- strh r0, [r5, 0x20]
- ldr r0, _080D7F78 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7F72:
- ldr r0, _080D7F7C @ =gUnknown_0202F7C8
- b _080D7FD0
- .align 2, 0
-_080D7F78: .4byte gUnknown_03004B00
-_080D7F7C: .4byte gUnknown_0202F7C8
-_080D7F80:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D7F92
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
- b _080D7FCE
-_080D7F92:
- ldr r4, _080D7FB8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D7FBC
- ldrh r0, [r5, 0x20]
- ldrh r1, [r6]
- subs r0, r1
- b _080D7FC2
- .align 2, 0
-_080D7FB8: .4byte gUnknown_0202F7C9
-_080D7FBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080D7FC2:
- strh r0, [r5, 0x20]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
- ldrh r0, [r0, 0x2]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
-_080D7FCE:
- ldr r0, _080D7FF0 @ =gUnknown_0202F7C9
-_080D7FD0:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- ldr r0, _080D7FEC @ =gUnknown_03004B00
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080D7FE8
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _080D7FF4
-_080D7FE8:
- movs r0, 0x20
- b _080D7FF6
- .align 2, 0
-_080D7FEC: .4byte gUnknown_03004B00
-_080D7FF0: .4byte gUnknown_0202F7C9
-_080D7FF4:
- movs r0, 0x40
-_080D7FF6:
- strh r0, [r5, 0x3A]
- ldr r0, _080D803C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D800C
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r5, 0x22]
-_080D800C:
- ldr r1, _080D8040 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrh r1, [r1, 0x4]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- movs r0, 0x40
- strh r0, [r5, 0x38]
- ldr r1, _080D8044 @ =sub_80D8048
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D803C: .4byte gUnknown_0202F7C9
-_080D8040: .4byte gUnknown_03004B00
-_080D8044: .4byte sub_80D8048
- thumb_func_end sub_80D7F10
-
- thumb_func_start sub_80D8048
-sub_80D8048: @ 80D8048
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D80D2
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0x6
- negs r1, r1
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D80A4
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080D80C6
-_080D80A4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_080D80C6:
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- b _080D80D8
-_080D80D2:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D80D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8048
-
- thumb_func_start sub_80D80E0
-sub_80D80E0: @ 80D80E0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D81A8 @ =REG_BLDCNT
- ldr r2, _080D81AC @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D81B0 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D812A
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D812A:
- ldr r0, _080D81B4 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D81B8 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D81BC @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D81C0 @ =0x040000d4
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D81C4 @ =0x85000400
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D81C8 @ =gWeatherFog1Tiles
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D81CC @ =0x80000400
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D81D0 @ =gWeatherFog1Tilemap
- bl LZDecompressVram
- ldr r0, _080D81D4 @ =gUnknown_083970E8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D8190
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D8190:
- ldr r0, _080D81D8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080D81DC @ =sub_80D81E0
- str r0, [r1]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D81A8: .4byte REG_BLDCNT
-_080D81AC: .4byte 0x00003f42
-_080D81B0: .4byte REG_BG1CNT
-_080D81B4: .4byte gUnknown_030042C0
-_080D81B8: .4byte gUnknown_030041B4
-_080D81BC: .4byte REG_BG1HOFS
-_080D81C0: .4byte 0x040000d4
-_080D81C4: .4byte 0x85000400
-_080D81C8: .4byte gWeatherFog1Tiles
-_080D81CC: .4byte 0x80000400
-_080D81D0: .4byte gWeatherFog1Tilemap
-_080D81D4: .4byte gUnknown_083970E8
-_080D81D8: .4byte gTasks
-_080D81DC: .4byte sub_80D81E0
- thumb_func_end sub_80D80E0
-
- thumb_func_start sub_80D81E0
-sub_80D81E0: @ 80D81E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080D8220 @ =gUnknown_030042C0
- ldr r1, _080D8224 @ =0x0000ffff
- adds r0, r1, 0
- ldrh r4, [r2]
- adds r0, r4
- strh r0, [r2]
- ldr r1, _080D8228 @ =gUnknown_030041B4
- ldr r3, _080D822C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- movs r4, 0x20
- ldrsh r0, [r0, r4]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _080D8214
- b _080D83B0
-_080D8214:
- lsls r0, 2
- ldr r1, _080D8230 @ =_080D8234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8220: .4byte gUnknown_030042C0
-_080D8224: .4byte 0x0000ffff
-_080D8228: .4byte gUnknown_030041B4
-_080D822C: .4byte gTasks
-_080D8230: .4byte _080D8234
- .align 2, 0
-_080D8234:
- .4byte _080D8248
- .4byte _080D82A0
- .4byte _080D82C2
- .4byte _080D8304
- .4byte _080D838C
-_080D8248:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080D8262
- b _080D83B0
-_080D8262:
- strh r4, [r3, 0x1C]
- ldrh r0, [r3, 0x1A]
- adds r0, 0x1
- strh r0, [r3, 0x1A]
- ldr r1, _080D8298 @ =gUnknown_083D9D6C
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r3, 0x1E]
- ldr r2, _080D829C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x1E
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- beq _080D828C
- b _080D83B0
-_080D828C:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8298: .4byte gUnknown_083D9D6C
-_080D829C: .4byte REG_BLDALPHA
-_080D82A0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1E]
- adds r0, 0x1
- strh r0, [r3, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D83B0
- movs r0, 0x9
- strh r0, [r3, 0x1E]
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- b _080D83B0
-_080D82C2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D83B0
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080D8300 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080D83B0
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080D83B0
- .align 2, 0
-_080D8300: .4byte REG_BLDALPHA
-_080D8304:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r4, r6, 2
- mov r10, r4
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D83C0 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D83C4 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D832A:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D832A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D83C0 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D83C8 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D8378
- ldr r2, _080D83CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8378:
- ldr r0, _080D83D0 @ =gTasks
- mov r4, r10
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r2, _080D83D4 @ =gUnknown_030042C0
- ldr r4, _080D83D8 @ =gUnknown_030041B4
-_080D838C:
- movs r1, 0
- strh r1, [r2]
- strh r1, [r4]
- ldr r0, _080D83DC @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D83CC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D83B0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D83C0: .4byte 0x040000d4
-_080D83C4: .4byte 0x85000400
-_080D83C8: .4byte 0x85000200
-_080D83CC: .4byte REG_BG1CNT
-_080D83D0: .4byte gTasks
-_080D83D4: .4byte gUnknown_030042C0
-_080D83D8: .4byte gUnknown_030041B4
-_080D83DC: .4byte REG_BLDCNT
- thumb_func_end sub_80D81E0
-
- thumb_func_start sub_80D83E0
-sub_80D83E0: @ 80D83E0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D840C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080D8410 @ =sub_807941C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D840C: .4byte gUnknown_0202F7C8
-_080D8410: .4byte sub_807941C
- thumb_func_end sub_80D83E0
-
- thumb_func_start sub_80D8414
-sub_80D8414: @ 80D8414
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080D84E0 @ =REG_BLDCNT
- ldr r2, _080D84E4 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080D84E8 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D845E
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080D845E:
- ldr r0, _080D84EC @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080D84F0 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080D84F4 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D84F8 @ =0x040000d4
- add r2, sp, 0xC
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r2, _080D84FC @ =0x85000400
- str r2, [r0, 0x8]
- ldr r2, [r0, 0x8]
- ldr r2, _080D8500 @ =gWeatherFog1Tiles
- ldr r3, [sp]
- str r2, [r0]
- str r3, [r0, 0x4]
- ldr r2, _080D8504 @ =0x80000400
- str r2, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _080D8508 @ =gWeatherFog1Tilemap
- bl LZDecompressVram
- ldr r0, _080D850C @ =gUnknown_083970E8
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D84C4
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080D84C4:
- ldr r1, _080D8510 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080D8514 @ =0x0000ffff
- strh r1, [r0, 0x26]
- ldr r1, _080D8518 @ =sub_80D851C
- str r1, [r0]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D84E0: .4byte REG_BLDCNT
-_080D84E4: .4byte 0x00003f42
-_080D84E8: .4byte REG_BG1CNT
-_080D84EC: .4byte gUnknown_030042C0
-_080D84F0: .4byte gUnknown_030041B4
-_080D84F4: .4byte REG_BG1HOFS
-_080D84F8: .4byte 0x040000d4
-_080D84FC: .4byte 0x85000400
-_080D8500: .4byte gWeatherFog1Tiles
-_080D8504: .4byte 0x80000400
-_080D8508: .4byte gWeatherFog1Tilemap
-_080D850C: .4byte gUnknown_083970E8
-_080D8510: .4byte gTasks
-_080D8514: .4byte 0x0000ffff
-_080D8518: .4byte sub_80D851C
- thumb_func_end sub_80D8414
-
- thumb_func_start sub_80D851C
-sub_80D851C: @ 80D851C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _080D8558 @ =gUnknown_030042C0
- ldr r4, _080D855C @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r4
- ldrh r0, [r1, 0x26]
- ldrh r2, [r3]
- adds r0, r2
- strh r0, [r3]
- ldr r2, _080D8560 @ =gUnknown_030041B4
- movs r5, 0x20
- ldrsh r0, [r1, r5]
- cmp r0, 0x4
- bls _080D854C
- b _080D86D0
-_080D854C:
- lsls r0, 2
- ldr r1, _080D8564 @ =_080D8568
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080D8558: .4byte gUnknown_030042C0
-_080D855C: .4byte gTasks
-_080D8560: .4byte gUnknown_030041B4
-_080D8564: .4byte _080D8568
- .align 2, 0
-_080D8568:
- .4byte _080D857C
- .4byte _080D85C0
- .4byte _080D85E2
- .4byte _080D8624
- .4byte _080D86AC
-_080D857C:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- ldr r1, _080D85B8 @ =gUnknown_083D9D98
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r1, [r0]
- strh r1, [r4, 0x1E]
- ldr r2, _080D85BC @ =REG_BLDALPHA
- movs r0, 0x11
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- cmp r0, 0x5
- beq _080D85AC
- b _080D86D0
-_080D85AC:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D85B8: .4byte gUnknown_083D9D98
-_080D85BC: .4byte REG_BLDALPHA
-_080D85C0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r4
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _080D86D0
- movs r0, 0x5
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080D86D0
-_080D85E2:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080D86D0
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- subs r1, 0x1
- strh r1, [r4, 0x1E]
- ldr r2, _080D8620 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _080D86D0
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- strh r1, [r4, 0x1E]
- b _080D86D0
- .align 2, 0
-_080D8620: .4byte REG_BLDALPHA
-_080D8624:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- lsls r1, r6, 2
- mov r10, r1
- add r5, sp, 0xC
- movs r7, 0
- ldr r1, _080D86E0 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _080D86E4 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_080D864A:
- str r7, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080D864A
- str r7, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080D86E0 @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080D86E8 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080D8698
- ldr r2, _080D86EC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080D8698:
- ldr r0, _080D86F0 @ =gTasks
- mov r5, r10
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r3, _080D86F4 @ =gUnknown_030042C0
- ldr r2, _080D86F8 @ =gUnknown_030041B4
-_080D86AC:
- movs r1, 0
- strh r1, [r3]
- strh r1, [r2]
- ldr r0, _080D86FC @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080D86EC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r6, 0
- bl move_anim_task_del
-_080D86D0:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D86E0: .4byte 0x040000d4
-_080D86E4: .4byte 0x85000400
-_080D86E8: .4byte 0x85000200
-_080D86EC: .4byte REG_BG1CNT
-_080D86F0: .4byte gTasks
-_080D86F4: .4byte gUnknown_030042C0
-_080D86F8: .4byte gUnknown_030041B4
-_080D86FC: .4byte REG_BLDCNT
- thumb_func_end sub_80D851C
-
- thumb_func_start sub_80D8700
-sub_80D8700: @ 80D8700
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldr r6, _080D87E8 @ =gUnknown_03004B00
- ldrh r0, [r6]
- strh r0, [r5, 0x2E]
- ldr r0, _080D87EC @ =gUnknown_0202F7C8
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldr r7, _080D87F0 @ =gUnknown_0202F7C9
- ldrb r0, [r7]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcs _080D8734
- movs r0, 0x80
- lsls r0, 8
- strh r0, [r5, 0x3C]
-_080D8734:
- ldr r3, _080D87F4 @ =gUnknown_02024A72
- ldrb r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8794
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
- ldrh r0, [r6, 0x6]
- negs r0, r0
- strh r0, [r6, 0x6]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080D8790
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080D8790
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _080D87F8 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
-_080D8790:
- movs r0, 0x1
- strh r0, [r5, 0x3A]
-_080D8794:
- ldr r4, _080D87EC @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r6, _080D87E8 @ =gUnknown_03004B00
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080D87FC
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D87F0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- b _080D8824
- .align 2, 0
-_080D87E8: .4byte gUnknown_03004B00
-_080D87EC: .4byte gUnknown_0202F7C8
-_080D87F0: .4byte gUnknown_0202F7C9
-_080D87F4: .4byte gUnknown_02024A72
-_080D87F8: .4byte gSprites
-_080D87FC:
- ldrh r0, [r6, 0x2]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x30]
- ldr r4, _080D886C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r6, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x1
-_080D8824:
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x8]
- adds r0, r6
- strh r0, [r5, 0x36]
- ldrb r0, [r4]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 16
- ldrh r1, [r5, 0x3C]
- orrs r0, r1
- strh r0, [r5, 0x3C]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D8858
- movs r0, 0x1
- strh r0, [r5, 0x3A]
- adds r1, r5, 0
- adds r1, 0x43
- movs r0, 0x80
- strb r0, [r1]
-_080D8858:
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080D8870 @ =sub_80D8874
- str r0, [r5, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D886C: .4byte gUnknown_0202F7C9
-_080D8870: .4byte sub_80D8874
- thumb_func_end sub_80D8700
-
- thumb_func_start sub_80D8874
-sub_80D8874: @ 80D8874
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- movs r5, 0xFF
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x1
- beq _080D8968
- cmp r1, 0x1
- bgt _080D888E
- cmp r1, 0
- beq _080D8896
- b _080D8AD0
-_080D888E:
- cmp r1, 0x2
- bne _080D8894
- b _080D8A94
-_080D8894:
- b _080D8AD0
-_080D8896:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D88C0 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 4
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080D88C4
- ldrh r0, [r4, 0x38]
- subs r0, 0x8
- b _080D88C8
- .align 2, 0
-_080D88C0: .4byte gSineTable
-_080D88C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x8
-_080D88C8:
- ands r0, r5
- strh r0, [r4, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080D88D6
- b _080D8AD0
-_080D88D6:
- movs r5, 0x50
- strh r5, [r4, 0x2E]
- ldr r6, _080D8928 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x1D
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- ldr r0, _080D892C @ =gMain
- ldr r2, _080D8930 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- ldr r1, _080D8934 @ =gUnknown_02024A72
- ldrb r0, [r6]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8938
- movs r0, 0xCC
- strh r0, [r4, 0x38]
- b _080D893A
- .align 2, 0
-_080D8928: .4byte gUnknown_0202F7C9
-_080D892C: .4byte gMain
-_080D8930: .4byte 0x0000043d
-_080D8934: .4byte gUnknown_02024A72
-_080D8938:
- strh r5, [r4, 0x38]
-_080D893A:
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080D8964 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- asrs r0, 3
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _080D8AD0
- .align 2, 0
-_080D8964: .4byte gSineTable
-_080D8968:
- adds r0, r4, 0
- bl sub_8078B5C
- ldr r1, _080D89C8 @ =gSineTable
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r0, 3
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- negs r0, r0
- asrs r0, 8
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r0, _080D89CC @ =gMain
- ldr r2, _080D89D0 @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D89F2
- ldrh r1, [r4, 0x38]
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- adds r3, r1, 0
- cmp r0, 0x7F
- bhi _080D89D4
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- b _080D89DC
- .align 2, 0
-_080D89C8: .4byte gSineTable
-_080D89CC: .4byte gMain
-_080D89D0: .4byte 0x0000043d
-_080D89D4:
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 24
- adds r1, 0x1
-_080D89DC:
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r3, 0x4
- b _080D8A12
-_080D89F2:
- ldrh r0, [r4, 0x38]
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7F
- bhi _080D8A06
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x80
- b _080D8A0C
-_080D8A06:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x8C
-_080D8A0C:
- strb r0, [r1]
- ldrh r0, [r4, 0x38]
- subs r0, 0x4
-_080D8A12:
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _080D8AD0
- movs r2, 0
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x26]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- adds r0, 0x4
- strh r0, [r4, 0x36]
- ldr r0, _080D8A68 @ =gMain
- ldr r1, _080D8A6C @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- ldr r1, _080D8A70 @ =gUnknown_02024A72
- ldr r0, _080D8A74 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8A78
- movs r0, 0x80
- lsls r0, 1
- b _080D8A7A
- .align 2, 0
-_080D8A68: .4byte gMain
-_080D8A6C: .4byte 0x0000043d
-_080D8A70: .4byte gUnknown_02024A72
-_080D8A74: .4byte gUnknown_0202F7C9
-_080D8A78:
- ldr r0, _080D8A90 @ =0x0000fff0
-_080D8A7A:
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x3C]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_8078BD4
- b _080D8AD0
- .align 2, 0
-_080D8A90: .4byte 0x0000fff0
-_080D8A94:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080D8AD0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080D8AC2
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080D8AC2:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080D8AD8 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080D8AD0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8AD8: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80D8874
-
- thumb_func_start sub_80D8ADC
-sub_80D8ADC: @ 80D8ADC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080D8AF0 @ =gTasks
- adds r1, r0
- ldr r0, _080D8AF4 @ =sub_80D8AF8
- str r0, [r1]
- bx lr
- .align 2, 0
-_080D8AF0: .4byte gTasks
-_080D8AF4: .4byte sub_80D8AF8
- thumb_func_end sub_80D8ADC
-
- thumb_func_start sub_80D8AF8
-sub_80D8AF8: @ 80D8AF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080D8B1C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080D8B3C
- cmp r5, 0x1
- bgt _080D8B20
- cmp r5, 0
- beq _080D8B26
- b _080D8BA0
- .align 2, 0
-_080D8B1C: .4byte gTasks
-_080D8B20:
- cmp r5, 0x2
- beq _080D8B92
- b _080D8BA0
-_080D8B26:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080D8BA0
- strh r5, [r4, 0x10]
- strh r5, [r4, 0x12]
- strh r5, [r4, 0xC]
- b _080D8B78
-_080D8B3C:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080D8B8C
- ldrb r0, [r4, 0xE]
- ldrb r1, [r4, 0xC]
- movs r3, 0x1
- bl sub_80D8BA8
- lsls r0, 24
- cmp r0, 0
- beq _080D8B5C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_080D8B5C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080D8B88
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080D8B80
-_080D8B78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B80:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _080D8BA0
-_080D8B88:
- strh r5, [r4, 0x12]
- b _080D8BA0
-_080D8B8C:
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
- b _080D8BA0
-_080D8B92:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8BA0
- adds r0, r2, 0
- bl move_anim_task_del
-_080D8BA0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8AF8
-
- thumb_func_start sub_80D8BA8
-sub_80D8BA8: @ 80D8BA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r1, _080D8C20 @ =gUnknown_083D9DC4
- lsrs r0, 22
- adds r4, r0, r1
- ldrb r0, [r4, 0x3]
- lsls r0, 24
- asrs r0, 28
- mov r8, r0
- cmp r0, 0x2
- beq _080D8C94
- ldrh r0, [r4, 0x2]
- lsls r0, 20
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080D8C94
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r8
- cmp r1, 0
- beq _080D8C24
- cmp r1, 0x1
- beq _080D8C5A
- b _080D8CA6
- .align 2, 0
-_080D8C20: .4byte gUnknown_083D9DC4
-_080D8C24:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r0
- b _080D8C8E
-_080D8C5A:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r7, 16
- asrs r1, 16
- adds r1, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r5, 0
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl __divsi3
- lsls r1, r6, 16
- asrs r1, 16
- adds r1, r0
-_080D8C8E:
- lsls r1, 16
- lsrs r6, r1, 16
- b _080D8CA6
-_080D8C94:
- ldrh r0, [r4]
- lsls r0, 22
- asrs r0, 6
- lsrs r7, r0, 16
- ldr r0, [r4]
- lsls r0, 12
- asrs r0, 22
- lsls r0, 16
- lsrs r6, r0, 16
-_080D8CA6:
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, 0x8
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r1, r7, 16
- asrs r1, 16
- subs r1, r0
- ldr r0, _080D8D00 @ =gSpriteTemplate_83D9E3C
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x8
- negs r2, r2
- movs r3, 0x12
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080D8D08
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _080D8D04 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- mov r1, r9
- bl StartSpriteAffineAnim
- mov r0, sp
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- strh r7, [r4, 0x34]
- strh r6, [r4, 0x36]
- mov r1, r9
- strh r1, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- mov r1, r10
- strh r1, [r4, 0x3C]
- movs r0, 0x1
- b _080D8D0A
- .align 2, 0
-_080D8D00: .4byte gSpriteTemplate_83D9E3C
-_080D8D04: .4byte gSprites
-_080D8D08:
- movs r0, 0
-_080D8D0A:
- 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_80D8BA8
-
- thumb_func_start sub_80D8D1C
-sub_80D8D1C: @ 80D8D1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x22]
- adds r2, r1, 0
- adds r2, 0x8
- strh r2, [r4, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _080D8D46
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080D8DF6
-_080D8D46:
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080D8DC8
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D8DC8
- ldr r0, _080D8DBC @ =gBattleAnimSpriteTemplate_83D9C78
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- cmp r0, 0x40
- beq _080D8DAA
- ldr r2, _080D8DC0 @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080D8DC4 @ =sub_80D8E00
- str r1, [r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3A]
- strh r1, [r0, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x3C]
- strh r1, [r0, 0x3C]
-_080D8DAA:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _080D8DF6
- .align 2, 0
-_080D8DBC: .4byte gBattleAnimSpriteTemplate_83D9C78
-_080D8DC0: .4byte gSprites
-_080D8DC4: .4byte sub_80D8E00
-_080D8DC8:
- ldr r3, _080D8DFC @ =gTasks
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8DF6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8DFC: .4byte gTasks
- thumb_func_end sub_80D8D1C
-
- thumb_func_start sub_80D8E00
-sub_80D8E00: @ 80D8E00
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080D8E40
- ldr r3, _080D8E48 @ =gTasks
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080D8E40:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8E48: .4byte gTasks
- thumb_func_end sub_80D8E00
-
- thumb_func_start unc_080B06FC
-unc_080B06FC: @ 80D8E4C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080D8ECC @ =gUnknown_0202F7B4
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080D8E6A
- movs r1, 0x4
-_080D8E6A:
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r6, _080D8ED0 @ =gUnknown_03004B00
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D8E92
- ldrh r0, [r6, 0x4]
- negs r0, r0
- strh r0, [r6, 0x4]
-_080D8E92:
- ldr r4, _080D8ED8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0xA]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D8EDC @ =sub_80D8EE0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8ECC: .4byte gUnknown_0202F7B4
-_080D8ED0: .4byte gUnknown_03004B00
-_080D8ED4: .4byte gUnknown_0202F7C8
-_080D8ED8: .4byte gUnknown_0202F7C9
-_080D8EDC: .4byte sub_80D8EE0
- thumb_func_end unc_080B06FC
-
- thumb_func_start sub_80D8EE0
-sub_80D8EE0: @ 80D8EE0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D8F02
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080D8F08 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080D8F0C @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080D8F02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F08: .4byte sub_8078600
-_080D8F0C: .4byte move_anim_8072740
- thumb_func_end sub_80D8EE0
-
- thumb_func_start sub_80D8F10
-sub_80D8F10: @ 80D8F10
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r3, _080D8F64 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D8F68 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- bl Random
- movs r5, 0xFF
- ands r5, r0
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0, 0
- orrs r5, r6
- bl Random
- ldr r1, _080D8F6C @ =0x000001ff
- ands r1, r0
- adds r0, r1, 0
- cmp r0, 0xFF
- ble _080D8F56
- subs r0, r6, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080D8F56:
- strh r5, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldr r0, _080D8F70 @ =sub_80D8F74
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D8F64: .4byte 0x000003ff
-_080D8F68: .4byte 0xfffffc00
-_080D8F6C: .4byte 0x000001ff
-_080D8F70: .4byte sub_80D8F74
- thumb_func_end sub_80D8F10
-
- thumb_func_start sub_80D8F74
-sub_80D8F74: @ 80D8F74
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x34]
- adds r3, r0, r1
- strh r3, [r2, 0x34]
- ldrh r1, [r2, 0x32]
- ldrh r4, [r2, 0x36]
- adds r1, r4
- strh r1, [r2, 0x36]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080D8F98
- lsls r0, r3, 16
- asrs r0, 24
- negs r0, r0
- b _080D8F9C
-_080D8F98:
- lsls r0, r3, 16
- asrs r0, 24
-_080D8F9C:
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080D8FBA
- adds r0, r2, 0
- bl move_anim_8072740
-_080D8FBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D8F74
-
- thumb_func_start sub_80D8FC0
-sub_80D8FC0: @ 80D8FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080D8FE8 @ =gUnknown_03004B00
- ldrb r3, [r1]
- lsls r3, 1
- adds r3, r1
- ldr r1, _080D8FEC @ =gUnknown_0202F7B4
- ldr r1, [r1]
- ldrb r1, [r1, 0x11]
- lsrs r2, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r2, r1
- subs r2, 0x1
- strh r2, [r3]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080D8FE8: .4byte gUnknown_03004B00
-_080D8FEC: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80D8FC0
-
- thumb_func_start unc_080B08A0
-unc_080B08A0: @ 80D8FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9020 @ =gUnknown_03004B00
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0xF
- strh r0, [r4, 0x2E]
- ldr r0, _080D9024 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D9028 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9020: .4byte gUnknown_03004B00
-_080D9024: .4byte sub_80782D8
-_080D9028: .4byte move_anim_8072740
- thumb_func_end unc_080B08A0
-
- thumb_func_start sub_80D902C
-sub_80D902C: @ 80D902C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9070 @ =gUnknown_03004B00
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080D9054
- ldr r0, _080D9074 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9054
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- negs r0, r0
- strh r0, [r4, 0x6]
-_080D9054:
- ldr r4, _080D9070 @ =gUnknown_03004B00
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r4, 0xC]
- adds r0, r5, 0
- bl sub_8079534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9070: .4byte gUnknown_03004B00
-_080D9074: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80D902C
-
- thumb_func_start sub_80D9078
-sub_80D9078: @ 80D9078
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9094
- ldr r0, _080D90A0 @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080D9094:
- adds r0, r4, 0
- bl sub_80D902C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90A0: .4byte gUnknown_03004B00
- thumb_func_end sub_80D9078
-
- thumb_func_start sub_80D90A4
-sub_80D90A4: @ 80D90A4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D90C4 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x8]
- bl StartSpriteAnim
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D90C8
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080D90D0
- .align 2, 0
-_080D90C4: .4byte gUnknown_03004B00
-_080D90C8:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080D90D0:
- ldr r0, _080D90E8 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- ldr r0, _080D90EC @ =sub_80782D8
- str r0, [r5, 0x1C]
- ldr r1, _080D90F0 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D90E8: .4byte gUnknown_03004B00
-_080D90EC: .4byte sub_80782D8
-_080D90F0: .4byte move_anim_8072740
- thumb_func_end sub_80D90A4
-
- thumb_func_start sub_80D90F4
-sub_80D90F4: @ 80D90F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _080D9110 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r9, r0
- cmp r1, 0
- bne _080D9118
- ldr r0, _080D9114 @ =gUnknown_0202F7C8
- b _080D911A
- .align 2, 0
-_080D9110: .4byte gUnknown_03004B00
-_080D9114: .4byte gUnknown_0202F7C8
-_080D9118:
- ldr r0, _080D9260 @ =gUnknown_0202F7C9
-_080D911A:
- ldrb r0, [r0]
- mov r8, r0
- mov r4, r9
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _080D9138
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strh r0, [r4, 0x4]
-_080D9138:
- ldrb r1, [r4, 0x4]
- adds r0, r5, 0
- bl StartSpriteAnim
- mov r0, r8
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- mov r0, r8
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- mov r0, r8
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r6, r1, 16
- mov r0, r8
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080D9182
- adds r0, 0x3
-_080D9182:
- lsls r4, r0, 14
- lsrs r4, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91C4
- lsls r0, r6, 16
- negs r0, r0
- lsrs r6, r0, 16
-_080D91C4:
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _080D91D6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080D91D6:
- ldr r0, _080D9264 @ =gUnknown_02024A72
- add r0, r8
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080D91EC
- lsls r0, r4, 16
- ldr r1, _080D9268 @ =0xfff00000
- adds r0, r1
- lsrs r4, r0, 16
-_080D91EC:
- lsls r0, r6, 16
- asrs r0, 16
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- mov r1, r9
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080D926C @ =gBattleAnimSpriteTemplate_83DB4A8
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- adds r3, r5, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x3C]
- cmp r0, 0x40
- beq _080D9250
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080D9270 @ =gSprites
- adds r0, r4
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080D9274 @ =SpriteCallbackDummy
- str r1, [r0]
-_080D9250:
- ldr r0, _080D9278 @ =sub_80D927C
- str r0, [r5, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9260: .4byte gUnknown_0202F7C9
-_080D9264: .4byte gUnknown_02024A72
-_080D9268: .4byte 0xfff00000
-_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
-_080D9270: .4byte gSprites
-_080D9274: .4byte SpriteCallbackDummy
-_080D9278: .4byte sub_80D927C
- thumb_func_end sub_80D90F4
-
- thumb_func_start sub_80D927C
-sub_80D927C: @ 80D927C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080D92C4
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x40
- beq _080D92B8
- ldr r4, _080D92C0 @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
-_080D92B8:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D92C8
- .align 2, 0
-_080D92C0: .4byte gSprites
-_080D92C4:
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
-_080D92C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80D927C
-
- thumb_func_start sub_80D92D0
-sub_80D92D0: @ 80D92D0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- ldr r0, _080D92F0 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D92F4
- ldrh r0, [r4, 0x20]
- subs r0, 0x14
- strh r0, [r4, 0x32]
- b _080D9306
- .align 2, 0
-_080D92F0: .4byte gUnknown_03004B00
-_080D92F4:
- ldrh r0, [r4, 0x20]
- adds r0, 0x14
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_080D9306:
- ldrh r0, [r4, 0x22]
- subs r0, 0x14
- strh r0, [r4, 0x36]
- ldr r0, _080D9320 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D9324 @ =sub_80D9328
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9320: .4byte sub_8078B34
-_080D9324: .4byte sub_80D9328
- thumb_func_end sub_80D92D0
-
- thumb_func_start sub_80D9328
-sub_80D9328: @ 80D9328
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _080D9368
- ldrh r2, [r5, 0x20]
- ldrh r4, [r5, 0x24]
- subs r0, r2, r4
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x22]
- ldrh r3, [r5, 0x26]
- subs r0, r1, r3
- strh r0, [r5, 0x36]
- movs r0, 0x8
- strh r0, [r5, 0x2E]
- adds r2, r4
- strh r2, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x22]
- strh r6, [r5, 0x26]
- strh r6, [r5, 0x24]
- ldr r0, _080D9370 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D9374 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080D9368:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9370: .4byte sub_8078B34
-_080D9374: .4byte move_anim_8072740
- thumb_func_end sub_80D9328
-
- thumb_func_start sub_80D9378
-sub_80D9378: @ 80D9378
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080D93F4 @ =gUnknown_0202F7C8
- ldrb r1, [r0]
- movs r0, 0x2
- ldr r2, _080D93F8 @ =gUnknown_0202F7C9
- eors r0, r1
- ldrb r1, [r2]
- cmp r0, r1
- bne _080D93A4
- ldrb r0, [r2]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080D93A4
- ldr r1, _080D93FC @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
-_080D93A4:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D93F4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D93C2
- ldr r1, _080D93FC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080D93C2:
- ldr r4, _080D93FC @ =gUnknown_03004B00
- ldrh r0, [r4, 0x6]
- movs r5, 0
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x3A]
- strh r5, [r6, 0x3C]
- ldr r0, _080D9400 @ =sub_80D9404
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D93F4: .4byte gUnknown_0202F7C8
-_080D93F8: .4byte gUnknown_0202F7C9
-_080D93FC: .4byte gUnknown_03004B00
-_080D9400: .4byte sub_80D9404
- thumb_func_end sub_80D9378
-
- thumb_func_start sub_80D9404
-sub_80D9404: @ 80D9404
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- bne _080D9430
- ldrh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
- b _080D9436
-_080D9430:
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9404
-
- thumb_func_start sub_80D943C
-sub_80D943C: @ 80D943C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r5, _080D9468 @ =gUnknown_03004B00
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldr r0, _080D946C @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D9470 @ =sub_80D9474
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9468: .4byte gUnknown_03004B00
-_080D946C: .4byte sub_80782D8
-_080D9470: .4byte sub_80D9474
- thumb_func_end sub_80D943C
-
- thumb_func_start sub_80D9474
-sub_80D9474: @ 80D9474
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r0, _080D94A0 @ =sub_80782D8
- str r0, [r4, 0x1C]
- ldr r1, _080D94A4 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94A0: .4byte sub_80782D8
-_080D94A4: .4byte move_anim_8072740
- thumb_func_end sub_80D9474
-
- thumb_func_start sub_80D94A8
-sub_80D94A8: @ 80D94A8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080D94C4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080D94C8 @ =sub_80D94CC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D94C4: .4byte gUnknown_03004B00
-_080D94C8: .4byte sub_80D94CC
- thumb_func_end sub_80D94A8
-
- thumb_func_start sub_80D94CC
-sub_80D94CC: @ 80D94CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9510
- movs r0, 0x6
- strh r0, [r5, 0x2E]
- ldr r4, _080D9518 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D951C @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080D9520 @ =sub_80D9524
- adds r0, r5, 0
- bl oamt_set_x3A_32
-_080D9510:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9518: .4byte gUnknown_0202F7C9
-_080D951C: .4byte sub_8078B34
-_080D9520: .4byte sub_80D9524
- thumb_func_end sub_80D94CC
-
- thumb_func_start sub_80D9524
-sub_80D9524: @ 80D9524
- push {lr}
- movs r1, 0xF
- strh r1, [r0, 0x2E]
- ldr r1, _080D9538 @ =sub_80782D8
- str r1, [r0, 0x1C]
- ldr r1, _080D953C @ =move_anim_8072740
- bl oamt_set_x3A_32
- pop {r0}
- bx r0
- .align 2, 0
-_080D9538: .4byte sub_80782D8
-_080D953C: .4byte move_anim_8072740
- thumb_func_end sub_80D9524
-
- thumb_func_start sub_80D9540
-sub_80D9540: @ 80D9540
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D956C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080D9568 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080D95C8
- .align 2, 0
-_080D9568: .4byte gUnknown_03004B00
-_080D956C:
- ldrh r0, [r4, 0x30]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
- cmp r0, 0x64
- ble _080D95BA
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080D95BA:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _080D95C8
- adds r0, r4, 0
- bl move_anim_8072740
-_080D95C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9540
-
- thumb_func_start sub_80D95D0
-sub_80D95D0: @ 80D95D0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D95E4 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D95EC
- ldr r4, _080D95E8 @ =gUnknown_0202F7C8
- b _080D95EE
- .align 2, 0
-_080D95E4: .4byte gUnknown_03004B00
-_080D95E8: .4byte gUnknown_0202F7C8
-_080D95EC:
- ldr r4, _080D9634 @ =gUnknown_0202F7C9
-_080D95EE:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9638 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x4]
- ldrh r3, [r5, 0x22]
- adds r0, r3
- strh r0, [r5, 0x22]
- strh r2, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldr r0, _080D963C @ =sub_80D9640
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9634: .4byte gUnknown_0202F7C9
-_080D9638: .4byte gUnknown_03004B00
-_080D963C: .4byte sub_80D9640
- thumb_func_end sub_80D95D0
-
- thumb_func_start sub_80D9640
-sub_80D9640: @ 80D9640
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080D9652
- cmp r2, 0x1
- beq _080D9676
- b _080D96B0
-_080D9652:
- ldrh r0, [r1, 0x30]
- subs r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080D966E
- adds r0, r1, 0
- bl move_anim_8072740
- b _080D96B0
-_080D966E:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _080D96B0
-_080D9676:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080D969E
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- ands r0, r2
- lsls r0, 16
- cmp r0, 0
- beq _080D969A
- movs r0, 0x2
- b _080D969C
-_080D969A:
- ldr r0, _080D96B4 @ =0x0000fffe
-_080D969C:
- strh r0, [r1, 0x24]
-_080D969E:
- ldrh r0, [r1, 0x32]
- subs r0, 0x1
- strh r0, [r1, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _080D96B0
- adds r0, r1, 0
- bl move_anim_8072740
-_080D96B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080D96B4: .4byte 0x0000fffe
- thumb_func_end sub_80D9640
-
- thumb_func_start sub_80D96B8
-sub_80D96B8: @ 80D96B8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080D96DC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080D96E4
- ldr r4, _080D96E0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x4]
- adds r0, r2
- b _080D96F6
- .align 2, 0
-_080D96DC: .4byte gUnknown_03004B00
-_080D96E0: .4byte gUnknown_0202F7C8
-_080D96E4:
- ldr r4, _080D9740 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x4]
- adds r0, r1
-_080D96F6:
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x6]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- ldr r3, _080D9744 @ =gUnknown_03004B00
- movs r4, 0x2
- ldrsh r0, [r3, r4]
- lsls r0, 4
- adds r1, r0
- ldr r4, _080D9748 @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080D974C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _080D9764
- cmp r0, 0x1
- bgt _080D9750
- cmp r0, 0
- beq _080D975A
- b _080D978A
- .align 2, 0
-_080D9740: .4byte gUnknown_0202F7C9
-_080D9744: .4byte gUnknown_03004B00
-_080D9748: .4byte 0x000003ff
-_080D974C: .4byte 0xfffffc00
-_080D9750:
- cmp r0, 0x2
- beq _080D9774
- cmp r0, 0x3
- beq _080D9784
- b _080D978A
-_080D975A:
- ldr r0, _080D9760 @ =0x0000fffd
- b _080D9784
- .align 2, 0
-_080D9760: .4byte 0x0000fffd
-_080D9764:
- movs r0, 0x3
- strh r0, [r5, 0x3A]
- ldr r0, _080D9770 @ =0x0000fffd
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9770: .4byte 0x0000fffd
-_080D9774:
- ldr r0, _080D9780 @ =0x0000fffd
- strh r0, [r5, 0x3A]
- movs r0, 0x3
- strh r0, [r5, 0x3C]
- b _080D9792
- .align 2, 0
-_080D9780: .4byte 0x0000fffd
-_080D9784:
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x3C]
- b _080D9792
-_080D978A:
- adds r0, r5, 0
- bl move_anim_8072740
- b _080D9796
-_080D9792:
- ldr r0, _080D979C @ =sub_80D97A0
- str r0, [r5, 0x1C]
-_080D9796:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D979C: .4byte sub_80D97A0
- thumb_func_end sub_80D96B8
-
- thumb_func_start sub_80D97A0
-sub_80D97A0: @ 80D97A0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x3A]
- ldrh r2, [r1, 0x20]
- adds r0, r2
- strh r0, [r1, 0x20]
- ldrh r0, [r1, 0x3C]
- ldrh r2, [r1, 0x22]
- adds r0, r2
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D97C8
- adds r0, r1, 0
- bl move_anim_8072740
-_080D97C8:
- pop {r0}
- bx r0
- thumb_func_end sub_80D97A0
-
- thumb_func_start sub_80D97CC
-sub_80D97CC: @ 80D97CC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9818 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9828
- ldr r4, _080D981C @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9820 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9824 @ =gUnknown_0202F7C9
- b _080D9844
- .align 2, 0
-_080D9818: .4byte gUnknown_03004B00
-_080D981C: .4byte gUnknown_02024C07
-_080D9820: .4byte gUnknown_0202F7C8
-_080D9824: .4byte gUnknown_0202F7C9
-_080D9828:
- ldr r0, _080D9860 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- ldr r0, _080D9864 @ =gUnknown_0202F7C8
-_080D9844:
- ldrb r0, [r0]
- strh r0, [r5, 0x3C]
- movs r0, 0
- strh r0, [r5, 0x2E]
- movs r0, 0xC
- strh r0, [r5, 0x30]
- movs r0, 0x8
- strh r0, [r5, 0x32]
- ldr r0, _080D9868 @ =sub_80D986C
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9860: .4byte gUnknown_0202F7C9
-_080D9864: .4byte gUnknown_0202F7C8
-_080D9868: .4byte sub_80D986C
- thumb_func_end sub_80D97CC
-
- thumb_func_start sub_80D986C
-sub_80D986C: @ 80D986C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB4
- bne _080D98C6
- ldr r1, _080D98CC @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D98D0 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080D98D4 @ =sub_8078BB8
- str r0, [r4, 0x1C]
-_080D98C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D98CC: .4byte REG_BLDCNT
-_080D98D0: .4byte move_anim_8074EE0
-_080D98D4: .4byte sub_8078BB8
- thumb_func_end sub_80D986C
-
- thumb_func_start sub_80D98D8
-sub_80D98D8: @ 80D98D8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9924 @ =gUnknown_03004B00
- ldrh r0, [r4]
- strh r0, [r5, 0x20]
- movs r2, 0x78
- strh r2, [r5, 0x22]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- adds r0, 0x36
- adds r1, r5, 0
- adds r1, 0x38
- lsls r2, 8
- bl sub_8079BF4
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- lsls r0, 2
- adds r1, r0
- ldr r3, _080D9928 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080D992C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r0, _080D9930 @ =sub_80D9934
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9924: .4byte gUnknown_03004B00
-_080D9928: .4byte 0x000003ff
-_080D992C: .4byte 0xfffffc00
-_080D9930: .4byte sub_80D9934
- thumb_func_end sub_80D98D8
-
- thumb_func_start sub_80D9934
-sub_80D9934: @ 80D9934
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _080D9986
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- movs r2, 0x38
- ldrsh r1, [r7, r2]
- bl sub_8079BFC
- adds r4, r0, 0
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- subs r4, r0
- adds r0, r7, 0
- adds r0, 0x36
- adds r1, r7, 0
- adds r1, 0x38
- adds r2, r4, 0
- bl sub_8079BF4
- asrs r4, 8
- strh r4, [r7, 0x22]
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- negs r0, r0
- cmp r4, r0
- bge _080D997E
- adds r0, r7, 0
- bl move_anim_8072740
- b _080D99DC
-_080D997E:
- ldrh r0, [r7, 0x2E]
- subs r0, 0x1
- strh r0, [r7, 0x2E]
- b _080D99DC
-_080D9986:
- ldr r4, _080D99E8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r2, _080D99EC @ =gUnknown_0202F7C9
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- subs r4, r6
- strh r4, [r7, 0x2E]
- lsrs r0, 24
- subs r0, r5
- strh r0, [r7, 0x30]
- ldrh r0, [r7, 0x20]
- lsls r0, 4
- strh r0, [r7, 0x32]
- ldrh r0, [r7, 0x22]
- lsls r0, 4
- strh r0, [r7, 0x34]
- ldr r0, _080D99F0 @ =sub_80D99F4
- str r0, [r7, 0x1C]
-_080D99DC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D99E8: .4byte gUnknown_0202F7C8
-_080D99EC: .4byte gUnknown_0202F7C9
-_080D99F0: .4byte sub_80D99F4
- thumb_func_end sub_80D9934
-
- thumb_func_start sub_80D99F4
-sub_80D99F4: @ 80D99F4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x34]
- adds r1, r3
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x8
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bhi _080D9A2E
- adds r1, r3, 0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- blt _080D9A2E
- cmp r1, 0x78
- ble _080D9A34
-_080D9A2E:
- adds r0, r2, 0
- bl move_anim_8072740
-_080D9A34:
- pop {r0}
- bx r0
- thumb_func_end sub_80D99F4
-
- thumb_func_start sub_80D9A38
-sub_80D9A38: @ 80D9A38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080D9A6C @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9A7C
- ldr r4, _080D9A70 @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r0, _080D9A74 @ =gUnknown_0202F7C9
- ldrb r4, [r0]
- ldr r0, _080D9A78 @ =gUnknown_0202F7C8
- b _080D9A82
- .align 2, 0
-_080D9A6C: .4byte gUnknown_03004B00
-_080D9A70: .4byte gUnknown_02024C07
-_080D9A74: .4byte gUnknown_0202F7C9
-_080D9A78: .4byte gUnknown_0202F7C8
-_080D9A7C:
- ldr r0, _080D9AB4 @ =gUnknown_0202F7C8
- ldrb r4, [r0]
- ldr r0, _080D9AB8 @ =gUnknown_0202F7C9
-_080D9A82:
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9ABC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- b _080D9AD6
- .align 2, 0
-_080D9AB4: .4byte gUnknown_0202F7C8
-_080D9AB8: .4byte gUnknown_0202F7C9
-_080D9ABC:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9ADC
- ldrb r2, [r5, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x18
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x57
-_080D9AD6:
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
-_080D9ADC:
- movs r0, 0x10
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r1, _080D9B1C @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080D9B20 @ =sub_8078BB8
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9B1C: .4byte move_anim_8072740
-_080D9B20: .4byte sub_8078BB8
- thumb_func_end sub_80D9A38
-
- thumb_func_start sub_80D9B24
-sub_80D9B24: @ 80D9B24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080D9B3A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9B3A:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9B24
-
- thumb_func_start sub_80D9B48
-sub_80D9B48: @ 80D9B48
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080D9BC4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r1, _080D9BC8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1]
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x36]
- ldr r0, _080D9BCC @ =gUnknown_0202F7C4
- ldrb r6, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9B92
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080D9B92:
- movs r0, 0x1
- ands r6, r0
- cmp r6, 0
- beq _080D9BA6
- ldrh r0, [r5, 0x32]
- negs r0, r0
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
-_080D9BA6:
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- ldrh r0, [r5, 0x32]
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x26]
- ldr r0, _080D9BD0 @ =sub_80D9B24
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9BC4: .4byte gUnknown_0202F7C9
-_080D9BC8: .4byte gUnknown_03004B00
-_080D9BCC: .4byte gUnknown_0202F7C4
-_080D9BD0: .4byte sub_80D9B24
- thumb_func_end sub_80D9B48
-
- thumb_func_start sub_80D9BD4
-sub_80D9BD4: @ 80D9BD4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9BEC @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080D9BF0
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080D9BF8
- .align 2, 0
-_080D9BEC: .4byte gUnknown_03004B00
-_080D9BF0:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080D9BF8:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080D9C0C
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- b _080D9C22
-_080D9C0C:
- ldr r0, _080D9C34 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9C22
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080D9C22:
- ldr r0, _080D9C38 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080D9C3C @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9C34: .4byte gUnknown_0202F7C8
-_080D9C38: .4byte sub_8078600
-_080D9C3C: .4byte move_anim_8072740
- thumb_func_end sub_80D9BD4
-
- thumb_func_start sub_80D9C40
-sub_80D9C40: @ 80D9C40
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080D9C7A
- ldrh r0, [r4, 0x30]
- adds r0, 0x28
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _080D9C7A
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9C7A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9C40
-
- thumb_func_start sub_80D9C80
-sub_80D9C80: @ 80D9C80
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080D9CB0 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080D9CB8
- cmp r0, 0x1
- bgt _080D9CD2
- cmp r0, 0
- bne _080D9CD2
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080D9CB4 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r4, 0x18]
- b _080D9CCA
- .align 2, 0
-_080D9CB0: .4byte gTasks
-_080D9CB4: .4byte gUnknown_03004B00
-_080D9CB8:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080D9CDE
-_080D9CCA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080D9CDE
-_080D9CD2:
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- strh r0, [r4, 0x1A]
-_080D9CDE:
- movs r2, 0xB0
- lsls r2, 4
- adds r0, r2, 0
- ldrh r1, [r4, 0x1C]
- adds r0, r1
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080D9D14
- ldr r1, _080D9D10 @ =gUnknown_030041B0
- ldrh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r7, r1, 0
- b _080D9D24
- .align 2, 0
-_080D9D0C: .4byte gUnknown_0202F7C9
-_080D9D10: .4byte gUnknown_030041B0
-_080D9D14:
- ldr r2, _080D9D64 @ =gUnknown_030041B0
- ldrh r1, [r4, 0x1A]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r7, r2, 0
-_080D9D24:
- ldr r3, _080D9D68 @ =gUnknown_030041B8
- ldrh r2, [r4, 0x1C]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r0, 0xFF
- ldrb r1, [r4, 0x1A]
- movs r5, 0
- strh r1, [r4, 0x1A]
- ands r0, r2
- strh r0, [r4, 0x1C]
- ldr r0, _080D9D6C @ =gUnknown_03004B00
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080D9D5C
- strh r5, [r7]
- strh r5, [r3]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl move_anim_task_del
-_080D9D5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9D64: .4byte gUnknown_030041B0
-_080D9D68: .4byte gUnknown_030041B8
-_080D9D6C: .4byte gUnknown_03004B00
- thumb_func_end sub_80D9C80
-
- thumb_func_start sub_80D9D70
-sub_80D9D70: @ 80D9D70
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080D9DC4 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9D86
- adds r0, r5, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9D86:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080D9DCC @ =0x0000ffe2
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080D9DD0 @ =sub_80D9DD4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9DC4: .4byte gUnknown_03004B00
-_080D9DC8: .4byte gUnknown_0202F7C9
-_080D9DCC: .4byte 0x0000ffe2
-_080D9DD0: .4byte sub_80D9DD4
- thumb_func_end sub_80D9D70
-
- thumb_func_start sub_80D9DD4
-sub_80D9DD4: @ 80D9DD4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9DE8
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9DE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9DD4
-
- thumb_func_start sub_80D9DF0
-sub_80D9DF0: @ 80D9DF0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r5, _080D9E64 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9E08
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080D9E08:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080D9E68 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- mov r6, sp
- adds r6, 0x2
- movs r1, 0x1
- mov r2, sp
- adds r3, r6, 0
- bl sub_807A3FC
- ldr r0, _080D9E6C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9E36
- ldrh r0, [r5, 0x8]
- negs r0, r0
- strh r0, [r5, 0x8]
-_080D9E36:
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- mov r1, sp
- ldrh r0, [r5, 0x8]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0xA]
- ldrh r6, [r6]
- adds r0, r6
- strh r0, [r4, 0x36]
- ldr r0, _080D9E70 @ =0x0000ffe2
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080D9E74 @ =sub_80D9E78
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9E64: .4byte gUnknown_03004B00
-_080D9E68: .4byte gUnknown_0202F7C9
-_080D9E6C: .4byte gUnknown_0202F7C8
-_080D9E70: .4byte 0x0000ffe2
-_080D9E74: .4byte sub_80D9E78
- thumb_func_end sub_80D9DF0
-
- thumb_func_start sub_80D9E78
-sub_80D9E78: @ 80D9E78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080D9E8C
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9E8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9E78
-
- thumb_func_start sub_80D9E94
-sub_80D9E94: @ 80D9E94
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9EE0 @ =gUnknown_03004B00
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078A5C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x38]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r4, 0x3A]
- ldr r0, _080D9EE4 @ =sub_80D9EE8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9EE0: .4byte gUnknown_03004B00
-_080D9EE4: .4byte sub_80D9EE8
- thumb_func_end sub_80D9E94
-
- thumb_func_start sub_80D9EE8
-sub_80D9EE8: @ 80D9EE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078394
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080D9F0E
- adds r0, r4, 0
- bl move_anim_8072740
-_080D9F0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9EE8
-
- thumb_func_start sub_80D9F14
-sub_80D9F14: @ 80D9F14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080D9F74 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9F78 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9F40
- ldr r1, _080D9F7C @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080D9F40:
- ldr r0, _080D9F7C @ =gUnknown_03004B00
- ldrh r2, [r0]
- ldrh r1, [r4, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- ldrh r1, [r0, 0x2]
- ldrh r3, [r4, 0x22]
- adds r1, r3
- strh r1, [r4, 0x22]
- ldrh r3, [r0, 0x8]
- strh r3, [r4, 0x2E]
- ldrh r0, [r0, 0x4]
- adds r2, r0
- strh r2, [r4, 0x32]
- adds r1, r3
- strh r1, [r4, 0x36]
- ldr r0, _080D9F80 @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080D9F84 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9F74: .4byte gUnknown_0202F7C9
-_080D9F78: .4byte gUnknown_0202F7C8
-_080D9F7C: .4byte gUnknown_03004B00
-_080D9F80: .4byte sub_8078B34
-_080D9F84: .4byte move_anim_8072740
- thumb_func_end sub_80D9F14
-
- thumb_func_start sub_80D9F88
-sub_80D9F88: @ 80D9F88
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080D9FA0 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080D9FA4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
- b _080D9FDA
- .align 2, 0
-_080D9FA0: .4byte gUnknown_03004B00
-_080D9FA4:
- ldr r0, _080D9FE4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0x1
- bl sub_807A3FC
- ldr r0, _080D9FE8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080D9FCA
- ldrh r0, [r5]
- negs r0, r0
- strh r0, [r5]
-_080D9FCA:
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_080D9FDA:
- ldr r0, _080D9FEC @ =sub_80D9FF0
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080D9FE4: .4byte gUnknown_0202F7C9
-_080D9FE8: .4byte gUnknown_0202F7C8
-_080D9FEC: .4byte sub_80D9FF0
- thumb_func_end sub_80D9F88
-
- thumb_func_start sub_80D9FF0
-sub_80D9FF0: @ 80D9FF0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0xB
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x30
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DA02C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA02C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80D9FF0
-
- thumb_func_start sub_80DA034
-sub_80DA034: @ 80DA034
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_8078764
- ldrh r0, [r4, 0x22]
- adds r0, 0x14
- strh r0, [r4, 0x22]
- movs r0, 0xBF
- strh r0, [r4, 0x30]
- ldr r1, _080DA058 @ =sub_80DA05C
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA058: .4byte sub_80DA05C
- thumb_func_end sub_80DA034
-
- thumb_func_start sub_80DA05C
-sub_80DA05C: @ 80DA05C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x47
- bne _080DA096
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA096:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA05C
-
- thumb_func_start sub_80DA09C
-sub_80DA09C: @ 80DA09C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080DA0CC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r1, _080DA0D0 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- ldr r0, _080DA0D4 @ =0x00002719
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldr r0, _080DA0D8 @ =sub_80DA0DC
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA0CC: .4byte gTasks
-_080DA0D0: .4byte gUnknown_03004B00
-_080DA0D4: .4byte 0x00002719
-_080DA0D8: .4byte sub_80DA0DC
- thumb_func_end sub_80DA09C
-
- thumb_func_start sub_80DA0DC
-sub_80DA0DC: @ 80DA0DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _080DA15C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xA
- ldrsh r1, [r3, r4]
- adds r7, r2, 0
- cmp r0, r1
- bne _080DA13A
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrb r0, [r3, 0xC]
- ldr r2, _080DA160 @ =gPlttBufferFaded
- lsls r0, 4
- movs r3, 0x84
- lsls r3, 1
- adds r1, r0, r3
- lsls r1, 1
- adds r1, r2
- ldrh r6, [r1]
- movs r4, 0x7
- mov r12, r0
- ldr r0, _080DA164 @ =0x00000107
- add r0, r12
- lsls r0, 1
- adds r3, r0, r2
-_080DA122:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _080DA122
- ldr r0, _080DA168 @ =0x00000101
- add r0, r12
- lsls r0, 1
- adds r0, r2
- strh r6, [r0]
-_080DA13A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- ldrh r1, [r0, 0x8]
- subs r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- cmp r1, 0
- bne _080DA154
- adds r0, r5, 0
- bl move_anim_task_del
-_080DA154:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA15C: .4byte gTasks
-_080DA160: .4byte gPlttBufferFaded
-_080DA164: .4byte 0x00000107
-_080DA168: .4byte 0x00000101
- thumb_func_end sub_80DA0DC
-
- thumb_func_start sub_80DA16C
-sub_80DA16C: @ 80DA16C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DA1D8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA18C
- ldr r1, _080DA1DC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DA18C:
- ldr r4, _080DA1DC @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrh r0, [r6, 0x20]
- strh r0, [r6, 0x30]
- ldr r5, _080DA1E0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrh r0, [r6, 0x22]
- strh r0, [r6, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA1E4 @ =sub_80785E4
- str r0, [r6, 0x1C]
- ldr r1, _080DA1E8 @ =sub_80DA1EC
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA1D8: .4byte gUnknown_0202F7C8
-_080DA1DC: .4byte gUnknown_03004B00
-_080DA1E0: .4byte gUnknown_0202F7C9
-_080DA1E4: .4byte sub_80785E4
-_080DA1E8: .4byte sub_80DA1EC
- thumb_func_end sub_80DA16C
-
- thumb_func_start sub_80DA1EC
-sub_80DA1EC: @ 80DA1EC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DA200
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DA1EC
-
- thumb_func_start sub_80DA208
-sub_80DA208: @ 80DA208
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DA2A4 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA234
- ldr r1, _080DA2A8 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080DA234:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DA24C
- ldr r0, _080DA2A8 @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0x6]
- negs r1, r1
- strh r1, [r0, 0x6]
-_080DA24C:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- ldr r2, _080DA2A8 @ =gUnknown_03004B00
- ldrh r1, [r2]
- ldrh r3, [r5, 0x20]
- adds r1, r3
- strh r1, [r5, 0x20]
- lsrs r0, 24
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x2E]
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080DA2B0
- ldr r4, _080DA2AC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DA2C2
- .align 2, 0
-_080DA2A4: .4byte gUnknown_0202F7C8
-_080DA2A8: .4byte gUnknown_03004B00
-_080DA2AC: .4byte gUnknown_0202F7C9
-_080DA2B0:
- ldr r0, _080DA2F0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DA2C2:
- ldr r4, _080DA2F4 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- ldrh r3, [r5, 0x36]
- adds r0, r3
- strh r0, [r5, 0x36]
- ldr r0, _080DA2F8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080DA2FC @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrb r1, [r4, 0xA]
- adds r0, r5, 0
- bl SeekSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA2F0: .4byte gUnknown_0202F7C9
-_080DA2F4: .4byte gUnknown_03004B00
-_080DA2F8: .4byte sub_8078B34
-_080DA2FC: .4byte move_anim_8072740
- thumb_func_end sub_80DA208
-
- thumb_func_start sub_80DA300
-sub_80DA300: @ 80DA300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DA33C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DA340 @ =sub_80DA348
- str r0, [r4, 0x1C]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DA344 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA33C: .4byte gUnknown_03004B00
-_080DA340: .4byte sub_80DA348
-_080DA344: .4byte gSprites
- thumb_func_end sub_80DA300
-
- thumb_func_start sub_80DA348
-sub_80DA348: @ 80DA348
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DA35C
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DA36E
-_080DA35C:
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
-_080DA36E:
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DA386
- adds r0, r2, 0
- bl move_anim_8072740
-_080DA386:
- pop {r0}
- bx r0
- thumb_func_end sub_80DA348
-
- thumb_func_start sub_80DA38C
-sub_80DA38C: @ 80DA38C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DA3B4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DA3BC
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldr r0, _080DA3B8 @ =0x0000ffe0
- strh r0, [r5, 0x22]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _080DA3C2
- .align 2, 0
-_080DA3B4: .4byte gUnknown_0202F7C8
-_080DA3B8: .4byte 0x0000ffe0
-_080DA3BC:
- ldr r0, _080DA400 @ =0x0000ffe0
- strh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
-_080DA3C2:
- ldr r0, _080DA404 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldr r4, _080DA408 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl obj_translate_based_on_private_1_2_3_4
- ldr r0, _080DA40C @ =sub_80DA410
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA400: .4byte 0x0000ffe0
-_080DA404: .4byte gUnknown_03004B00
-_080DA408: .4byte gUnknown_0202F7C9
-_080DA40C: .4byte sub_80DA410
- thumb_func_end sub_80DA38C
-
- thumb_func_start sub_80DA410
-sub_80DA410: @ 80DA410
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- ldrh r1, [r4, 0x34]
- lsrs r0, r1, 8
- cmp r0, 0xC8
- bls _080DA438
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x34]
-_080DA438:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bhi _080DA45A
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- ble _080DA480
-_080DA45A:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DA488 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DA480:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA488: .4byte gSprites
- thumb_func_end sub_80DA410
-
- thumb_func_start sub_80DA48C
-sub_80DA48C: @ 80DA48C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- subs r1, r0, 0x1
- strh r1, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bgt _080DA4CC
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DA4BE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_080DA4BE:
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, _080DA4D4 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080DA4CC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA4D4: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80DA48C
-
- thumb_func_start sub_80DA4D8
-sub_80DA4D8: @ 80DA4D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r7, 0
- adds r5, 0x2E
- ldr r0, _080DA4F8 @ =gUnknown_03004B00
- ldrh r1, [r0, 0xE]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DA500
- ldr r0, _080DA4FC @ =gUnknown_0202F7C8
- b _080DA502
- .align 2, 0
-_080DA4F8: .4byte gUnknown_03004B00
-_080DA4FC: .4byte gUnknown_0202F7C8
-_080DA500:
- ldr r0, _080DA5B0 @ =gUnknown_0202F7C9
-_080DA502:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DA518
- ldr r1, _080DA5B4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DA518:
- adds r0, r6, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080DA5B4 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- ldrh r1, [r4, 0x2]
- lsrs r0, 24
- adds r1, r0, r1
- strh r1, [r7, 0x22]
- lsls r1, 8
- strh r1, [r5, 0x8]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 1
- ldrh r2, [r5, 0xE]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0xE]
- ldrb r0, [r5]
- movs r2, 0x4
- mov r8, r2
- mov r1, r8
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r4, 0x4]
- ldrb r1, [r4, 0x4]
- strh r1, [r5, 0x2]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0xA]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x4]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x6]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0xC]
- subs r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x7F
- bhi _080DA618
- ldr r0, _080DA5B8 @ =gMain
- ldr r2, _080DA5BC @ =0x0000043d
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA5C0
- adds r0, r6, 0
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r7, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- b _080DA5D8
- .align 2, 0
-_080DA5B0: .4byte gUnknown_0202F7C9
-_080DA5B4: .4byte gUnknown_03004B00
-_080DA5B8: .4byte gMain
-_080DA5BC: .4byte 0x0000043d
-_080DA5C0:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
-_080DA5D8:
- ldrb r1, [r5, 0xE]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- strb r0, [r5, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- b _080DA66E
-_080DA618:
- adds r0, r6, 0
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7, 0x5]
- ldrb r0, [r5, 0xE]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0xE]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DA678
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- ands r1, r4
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r7, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- mov r1, r8
-_080DA66E:
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
-_080DA678:
- ldrh r1, [r5, 0x2]
- lsrs r1, 6
- lsls r1, 4
- ldrb r2, [r5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldr r3, _080DA6E4 @ =gSineTable
- ldrh r0, [r5, 0x2]
- lsls r0, 1
- adds r0, r3
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldrb r0, [r5, 0xC]
- muls r0, r1
- asrs r0, 8
- strh r0, [r7, 0x24]
- ldrb r2, [r7, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r1, 0x24
- ldrsh r0, [r7, r1]
- negs r0, r0
- asrs r0, 1
- ldrb r5, [r5, 0xA]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r4, [r1]
- ldr r1, _080DA6E8 @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r4, [r2, 0x2]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- ldr r0, _080DA6EC @ =sub_80DA6F0
- str r0, [r7, 0x1C]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DA6E4: .4byte gSineTable
-_080DA6E8: .4byte gOamMatrices
-_080DA6EC: .4byte sub_80DA6F0
- thumb_func_end sub_80DA4D8
-
- thumb_func_start sub_80DA6F0
-sub_80DA6F0: @ 80DA6F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r6, 0
- movs r0, 0x2E
- adds r0, r5
- mov r12, r0
- ldrb r2, [r0]
- movs r7, 0x1
- movs r1, 0x1
- mov r9, r1
- mov r0, r9
- ands r0, r2
- cmp r0, 0
- beq _080DA730
- mov r3, r12
- ldrb r0, [r3, 0x1]
- adds r1, r0, 0
- adds r1, 0xFF
- strb r1, [r3, 0x1]
- lsls r0, 24
- cmp r0, 0
- beq _080DA724
- b _080DAD1A
-_080DA724:
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAD1A
-_080DA730:
- mov r4, r12
- ldrh r0, [r4, 0x2]
- lsrs r4, r0, 6
- mov r8, r0
- cmp r4, 0x1
- bne _080DA73E
- b _080DA896
-_080DA73E:
- cmp r4, 0x1
- bgt _080DA748
- cmp r4, 0
- beq _080DA756
- b _080DAC52
-_080DA748:
- cmp r4, 0x2
- bne _080DA74E
- b _080DA9C8
-_080DA74E:
- cmp r4, 0x3
- bne _080DA754
- b _080DAB0E
-_080DA754:
- b _080DAC52
-_080DA756:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA76C
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r1, r12
- strb r0, [r1]
- strb r6, [r1, 0x1]
- b _080DA88A
-_080DA76C:
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA790
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r2, r12
- strb r1, [r2]
- strb r6, [r2, 0x1]
- b _080DA88A
-_080DA790:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA88A
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA87A
- ldr r0, _080DA80C @ =gMain
- ldr r1, _080DA810 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA82E
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA814
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA868
- .align 2, 0
-_080DA80C: .4byte gMain
-_080DA810: .4byte 0x0000043d
-_080DA814:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA866
-_080DA82E:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA85C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DA87A
-_080DA85C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA866:
- mov r3, r12
-_080DA868:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DA87A:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DA88A:
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r2]
- b _080DAC52
-_080DA896:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DA8AC
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DA9BC
-_080DA8AC:
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DA8BE
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DA9BC
-_080DA8BE:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DA9BC
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DA9AC
- ldr r0, _080DA940 @ =gMain
- ldr r1, _080DA944 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DA962
- mov r2, r12
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA948
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r3, r12
- b _080DA978
- .align 2, 0
-_080DA940: .4byte gMain
-_080DA944: .4byte 0x0000043d
-_080DA948:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DA996
-_080DA962:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DA98C
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
-_080DA978:
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DA9AC
-_080DA98C:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DA996:
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
-_080DA9AC:
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r4, [r3, 0x2]
- mov r8, r4
-_080DA9BC:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x10
- b _080DAC4C
-_080DA9C8:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x3
- bne _080DA9DE
- movs r0, 0x8
- orrs r0, r2
- orrs r0, r7
- mov r3, r12
- strb r0, [r3]
- strb r6, [r3, 0x1]
- b _080DAAFE
-_080DA9DE:
- lsrs r0, r1, 28
- cmp r0, 0x1
- bne _080DA9F0
- adds r0, r2, 0
- orrs r0, r7
- mov r4, r12
- strb r0, [r4]
- strb r6, [r4, 0x1]
- b _080DAAFE
-_080DA9F0:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _080DA9FA
- b _080DAAFE
-_080DA9FA:
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r6, 0x1
- eors r1, r6
- ands r1, r7
- movs r0, 0x2
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAAEC
- ldr r0, _080DAA6C @ =gMain
- ldr r3, _080DAA70 @ =0x0000043d
- adds r0, r3
- ldrb r0, [r0]
- ands r4, r0
- cmp r4, 0
- beq _080DAAA4
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAA74
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAAD8
- .align 2, 0
-_080DAA6C: .4byte gMain
-_080DAA70: .4byte 0x0000043d
-_080DAA74:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAAEC
-_080DAAA4:
- mov r3, r12
- ldrb r1, [r3, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAACE
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
- b _080DAAEC
-_080DAACE:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAAD8:
- mov r4, r12
- ldrb r2, [r4, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r6
- ands r0, r7
- mov r1, r8
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0xE]
-_080DAAEC:
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r2, [r1, 0x2]
- mov r8, r2
-_080DAAFE:
- mov r3, r12
- ldrb r0, [r3]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r3]
- b _080DAC52
-_080DAB0E:
- lsls r1, r2, 24
- lsrs r0, r1, 28
- cmp r0, 0x2
- bne _080DAB20
- movs r0, 0x8
- orrs r0, r2
- mov r4, r12
- strb r0, [r4]
- b _080DAC42
-_080DAB20:
- lsrs r0, r1, 28
- cmp r0, 0
- bne _080DAB44
- lsls r0, r2, 30
- lsrs r0, 31
- movs r1, 0x1
- eors r0, r1
- ands r0, r7
- lsls r0, 1
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- orrs r1, r7
- mov r0, r12
- strb r1, [r0]
- strb r6, [r0, 0x1]
- b _080DAC42
-_080DAB44:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080DAC42
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r1, r2, 31
- lsrs r1, 31
- movs r4, 0x1
- eors r1, r4
- ands r1, r7
- movs r6, 0x2
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r5, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DAC32
- ldr r0, _080DABC4 @ =gMain
- ldr r3, _080DABC8 @ =0x0000043d
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DABE6
- ldrb r1, [r2, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DABCC
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- mov r0, r12
- ldrb r2, [r0, 0xE]
- b _080DAC00
- .align 2, 0
-_080DABC4: .4byte gMain
-_080DABC8: .4byte 0x0000043d
-_080DABCC:
- ldrb r2, [r5, 0x5]
- lsls r1, r2, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- b _080DAC1E
-_080DABE6:
- mov r0, r12
- ldrb r1, [r0, 0xE]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080DAC14
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0xC
- strb r0, [r1]
- mov r1, r12
- ldrb r2, [r1, 0xE]
-_080DAC00:
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- mov r2, r12
- strb r1, [r2, 0xE]
- b _080DAC32
-_080DAC14:
- adds r1, r5, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0xC
- strb r0, [r1]
-_080DAC1E:
- mov r3, r12
- ldrb r2, [r3, 0xE]
- lsls r0, r2, 31
- lsrs r0, 31
- eors r0, r4
- ands r0, r7
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xE]
-_080DAC32:
- mov r4, r12
- ldrb r1, [r4]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrh r0, [r4, 0x2]
- mov r8, r0
-_080DAC42:
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0xF
- ands r1, r0
- movs r0, 0x30
-_080DAC4C:
- orrs r1, r0
- mov r2, r12
- strb r1, [r2]
-_080DAC52:
- mov r3, r12
- ldrb r1, [r3]
- lsls r1, 30
- lsrs r1, 31
- mov r0, r12
- adds r0, 0xC
- adds r0, r1
- ldrb r1, [r0]
- ldr r3, _080DACE0 @ =gSineTable
- mov r4, r8
- lsls r0, r4, 1
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r0, r1
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrb r2, [r5, 0x3]
- lsls r2, 26
- lsrs r2, 27
- movs r4, 0x24
- ldrsh r0, [r5, r4]
- negs r0, r0
- asrs r0, 1
- mov r1, r12
- ldrb r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r3
- ldrh r6, [r1]
- ldr r1, _080DACE4 @ =gOamMatrices
- lsls r2, 3
- adds r2, r1
- adds r0, 0x40
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- strh r0, [r2]
- strh r6, [r2, 0x2]
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- mov r2, r12
- ldrh r0, [r2, 0x6]
- ldrh r3, [r2, 0x8]
- adds r0, r3
- strh r0, [r2, 0x8]
- lsls r0, 16
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r4, 0x4
- ldrsh r0, [r2, r4]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _080DACE8
- ldrh r0, [r2, 0x4]
- subs r1, 0x1
- ands r1, r0
- ldrh r0, [r2, 0x2]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x2]
- b _080DACFE
- .align 2, 0
-_080DACE0: .4byte gSineTable
-_080DACE4: .4byte gOamMatrices
-_080DACE8:
- mov r1, r12
- ldrh r0, [r1, 0x4]
- ldr r1, _080DAD28 @ =0x00007fff
- ands r1, r0
- mov r2, r12
- ldrh r2, [r2, 0x2]
- adds r1, r2
- movs r0, 0xFF
- ands r1, r0
- mov r3, r12
- strh r1, [r3, 0x2]
-_080DACFE:
- movs r4, 0x22
- ldrsh r1, [r5, r4]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- adds r1, r0
- mov r3, r12
- ldrh r0, [r3, 0xE]
- lsrs r0, 1
- cmp r1, r0
- blt _080DAD1A
- movs r0, 0
- strh r0, [r5, 0x2E]
- ldr r0, _080DAD2C @ =sub_80DA48C
- str r0, [r5, 0x1C]
-_080DAD1A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD28: .4byte 0x00007fff
-_080DAD2C: .4byte sub_80DA48C
- thumb_func_end sub_80DA6F0
-
- thumb_func_start sub_80DAD30
-sub_80DAD30: @ 80DAD30
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _080DAD78 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r5, _080DAD7C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _080DAD80 @ =sub_807941C
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAD78: .4byte gUnknown_0202F7C9
-_080DAD7C: .4byte gUnknown_0202F7C8
-_080DAD80: .4byte sub_807941C
- thumb_func_end sub_80DAD30
-
- thumb_func_start sub_80DAD84
-sub_80DAD84: @ 80DAD84
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r5, _080DADCC @ =gUnknown_03004B00
- ldrh r0, [r5]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x34]
- ldr r0, _080DADD0 @ =gMain
- ldr r1, _080DADD4 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080DAE44
- ldr r0, _080DADD8 @ =gUnknown_02024A72
- ldr r1, _080DADDC @ =gUnknown_0202F7C9
- ldrb r2, [r1]
- adds r0, r2, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DADE0
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- b _080DADEE
- .align 2, 0
-_080DADCC: .4byte gUnknown_03004B00
-_080DADD0: .4byte gMain
-_080DADD4: .4byte 0x0000043d
-_080DADD8: .4byte gUnknown_02024A72
-_080DADDC: .4byte gUnknown_0202F7C9
-_080DADE0:
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x28
-_080DADEE:
- strh r0, [r4, 0x3C]
- ldr r0, _080DAE1C @ =gUnknown_03004B00
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DAE24
- ldr r0, _080DAE20 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- lsls r0, 2
- ldrb r2, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080DAE58
- .align 2, 0
-_080DAE1C: .4byte gUnknown_03004B00
-_080DAE20: .4byte gUnknown_0202F7C9
-_080DAE24:
- ldr r0, _080DAE40 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8079ED4
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- b _080DAE58
- .align 2, 0
-_080DAE40: .4byte gUnknown_0202F7C9
-_080DAE44:
- ldr r0, _080DAEFC @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x3C]
-_080DAE58:
- ldr r5, _080DAF00 @ =gSineTable
- ldrh r3, [r4, 0x30]
- movs r1, 0xFF
- ands r1, r3
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r4, 0x36]
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x38]
- strh r2, [r4, 0x3A]
- strh r2, [r4, 0x26]
- strh r2, [r4, 0x24]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r6, r0, 27
- lsls r3, 16
- lsrs r3, 24
- strh r3, [r4, 0x30]
- bl Random
- lsls r0, 16
- asrs r7, r0, 16
- movs r0, 0x80
- lsls r0, 8
- ands r0, r7
- cmp r0, 0
- beq _080DAEA2
- ldrh r1, [r4, 0x30]
- movs r0, 0xFF
- subs r0, r1
- strh r0, [r4, 0x30]
-_080DAEA2:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r3, _080DAF04 @ =gOamMatrices
- lsls r2, r6, 3
- adds r2, r3
- adds r1, 0x40
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- strh r1, [r2, 0x6]
- strh r1, [r2]
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r2, 0x4]
- adds r3, r4, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _080DAEF2
- adds r2, r4, 0
- adds r2, 0x2A
- movs r1, 0x1
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r3]
- orrs r0, r1
- strb r0, [r3]
-_080DAEF2:
- ldr r0, _080DAF08 @ =sub_80DAF0C
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAEFC: .4byte gUnknown_0202F7C9
-_080DAF00: .4byte gSineTable
-_080DAF04: .4byte gOamMatrices
-_080DAF08: .4byte sub_80DAF0C
- thumb_func_end sub_80DAD84
-
- thumb_func_start sub_80DAF0C
-sub_80DAF0C: @ 80DAF0C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r4, 0
- adds r5, 0x2E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- mov r8, r1
- movs r7, 0
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080DAFF0
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r6, r0, 8
- strh r6, [r4, 0x24]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- muls r0, r1
- asrs r3, r0, 8
- strh r3, [r4, 0x26]
- ldrh r2, [r4, 0x34]
- movs r1, 0xFF
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x3A]
- adds r0, r2
- strh r0, [r4, 0x3A]
- ldrh r2, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- ands r1, r2
- cmp r0, r1
- blt _080DAFF0
- ldrh r0, [r4, 0x20]
- adds r0, r6
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- strh r7, [r4, 0x24]
- strh r7, [r4, 0x26]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x10
- bl memcpy
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldrh r0, [r4, 0x22]
- lsls r0, 8
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0, 0x6]
- lsrs r1, r0, 8
- strh r1, [r5, 0x6]
- strh r7, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0, 0x2]
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0
- beq _080DAFC0
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFB8
- ldr r0, _080DAFB4 @ =0x00008001
- b _080DAFCE
- .align 2, 0
-_080DAFB4: .4byte 0x00008001
-_080DAFB8:
- ldr r0, _080DAFBC @ =0x00008002
- b _080DAFCE
- .align 2, 0
-_080DAFBC: .4byte 0x00008002
-_080DAFC0:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _080DAFCC
- movs r0, 0x1
- b _080DAFCE
-_080DAFCC:
- movs r0, 0x2
-_080DAFCE:
- strh r0, [r5, 0x4]
- mov r0, sp
- ldrh r0, [r0, 0x4]
- lsrs r0, 8
- strb r0, [r5, 0xC]
- subs r0, 0x2
- strb r0, [r5, 0xD]
- mov r0, sp
- ldrh r1, [r0, 0xE]
- lsls r1, 1
- ldrh r2, [r5, 0xE]
- movs r0, 0x1
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _080DAFFC @ =sub_80DA6F0
- str r0, [r4, 0x1C]
-_080DAFF0:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DAFFC: .4byte sub_80DA6F0
- thumb_func_end sub_80DAF0C
-
- thumb_func_start sub_80DB000
-sub_80DB000: @ 80DB000
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DB018 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB01C
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
- b _080DB024
- .align 2, 0
-_080DB018: .4byte gUnknown_03004B00
-_080DB01C:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078764
-_080DB024:
- ldr r4, _080DB08C @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DB03C
- ldr r0, _080DB090 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB052
-_080DB03C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080DB058
- ldr r0, _080DB094 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DB058
-_080DB052:
- ldrh r0, [r5, 0x20]
- adds r0, 0x8
- strh r0, [r5, 0x20]
-_080DB058:
- ldr r4, _080DB08C @ =gUnknown_03004B00
- ldrb r1, [r4, 0x8]
- adds r0, r5, 0
- bl SeekSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x20
- strh r0, [r5, 0x20]
- ldr r0, _080DB098 @ =0x00000ccc
- strh r0, [r5, 0x30]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- strh r1, [r5, 0x2E]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x3C]
- ldr r0, _080DB09C @ =sub_80DB0A0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB08C: .4byte gUnknown_03004B00
-_080DB090: .4byte gUnknown_0202F7C8
-_080DB094: .4byte gUnknown_0202F7C9
-_080DB098: .4byte 0x00000ccc
-_080DB09C: .4byte sub_80DB0A0
- thumb_func_end sub_80DB000
-
- thumb_func_start sub_80DB0A0
-sub_80DB0A0: @ 80DB0A0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _080DB0CA
- strh r1, [r4, 0x2E]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl StartSpriteAnim
-_080DB0CA:
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB0E2
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB0E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB0A0
-
- thumb_func_start sub_80DB0E8
-sub_80DB0E8: @ 80DB0E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r1, _080DB180 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x8]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _080DB162
- ldr r1, _080DB184 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r5, 0xD
- negs r5, r5
- adds r1, r5, 0
- bl Sin
- ldr r4, _080DB188 @ =gUnknown_03004B00
- strh r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- adds r1, r5, 0
- bl Cos
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4, 0x4]
- movs r0, 0x3
- strh r0, [r4, 0x6]
- ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
- mov r8, r0
- ldr r5, _080DB190 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0x3
- bl CreateSpriteAndAnimate
-_080DB162:
- ldrh r0, [r7, 0x8]
- adds r0, 0x8
- strh r0, [r7, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DB176
- adds r0, r6, 0
- bl move_anim_task_del
-_080DB176:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB180: .4byte gTasks
-_080DB184: .4byte gUnknown_0202F7B2
-_080DB188: .4byte gUnknown_03004B00
-_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80DB0E8
-
- thumb_func_start sub_80DB194
-sub_80DB194: @ 80DB194
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DB1A6
- cmp r0, 0x1
- beq _080DB1D8
- b _080DB1EC
-_080DB1A6:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB1D4 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB1EC
- .align 2, 0
-_080DB1D4: .4byte gSprites
-_080DB1D8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DB1EC
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB1EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB194
-
- thumb_func_start sub_80DB1F4
-sub_80DB1F4: @ 80DB1F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DB22C
- cmp r0, 0x1
- bgt _080DB20A
- cmp r0, 0
- beq _080DB210
- b _080DB27E
-_080DB20A:
- cmp r0, 0x2
- beq _080DB240
- b _080DB27E
-_080DB210:
- ldr r0, _080DB228 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r4, 0x26]
- b _080DB238
- .align 2, 0
-_080DB228: .4byte gUnknown_0202F7C9
-_080DB22C:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080DB27E
-_080DB238:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DB27E
-_080DB240:
- ldrh r0, [r4, 0x26]
- subs r0, 0xA
- strh r0, [r4, 0x26]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DB27E
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB284 @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB27E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB284: .4byte gSprites
- thumb_func_end sub_80DB1F4
-
- thumb_func_start sub_80DB288
-sub_80DB288: @ 80DB288
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DB2C4 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DB2C8 @ =sub_80DB2D0
- str r0, [r4, 0x1C]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r2, _080DB2CC @ =gSprites
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB2C4: .4byte gUnknown_03004B00
-_080DB2C8: .4byte sub_80DB2D0
-_080DB2CC: .4byte gSprites
- thumb_func_end sub_80DB288
-
- thumb_func_start sub_80DB2D0
-sub_80DB2D0: @ 80DB2D0
- push {lr}
- adds r2, r0, 0
- ldrh r1, [r2, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080DB2E4
- subs r0, r1, 0x1
- strh r0, [r2, 0x2E]
- b _080DB328
-_080DB2E4:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB30A
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x32]
- adds r0, r1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- subs r1, r0
- strh r1, [r2, 0x26]
- b _080DB328
-_080DB30A:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x34]
- adds r1, r0, 0x1
- strh r1, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DB328
- ldr r0, _080DB32C @ =sub_80DB330
- str r0, [r2, 0x1C]
-_080DB328:
- pop {r0}
- bx r0
- .align 2, 0
-_080DB32C: .4byte sub_80DB330
- thumb_func_end sub_80DB2D0
-
- thumb_func_start sub_80DB330
-sub_80DB330: @ 80DB330
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _080DB360
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
-_080DB360:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _080DB36E
- adds r0, r2, 0
- bl move_anim_8072740
-_080DB36E:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB330
-
- thumb_func_start sub_80DB374
-sub_80DB374: @ 80DB374
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080DB388
- cmp r0, 0x1
- beq _080DB3E0
- b _080DB44C
-_080DB388:
- ldr r0, _080DB398 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080DB3A0
- ldr r4, _080DB39C @ =gUnknown_0202F7C8
- b _080DB3A2
- .align 2, 0
-_080DB398: .4byte gUnknown_03004B00
-_080DB39C: .4byte gUnknown_0202F7C8
-_080DB3A0:
- ldr r4, _080DB3DC @ =gUnknown_0202F7C9
-_080DB3A2:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0
- movs r3, 0x80
- lsls r3, 2
- strh r3, [r5, 0x30]
- movs r2, 0x80
- lsls r2, 1
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078FDC
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DB44C
- .align 2, 0
-_080DB3DC: .4byte gUnknown_0202F7C9
-_080DB3E0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0xB
- bgt _080DB3EE
- ldrh r0, [r5, 0x30]
- subs r0, 0x28
- b _080DB3F2
-_080DB3EE:
- ldrh r0, [r5, 0x30]
- adds r0, 0x28
-_080DB3F2:
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x30
- ldrsh r3, [r5, r0]
- str r1, [sp]
- adds r0, r5, 0
- bl sub_8078FDC
- ldrb r1, [r5, 0x3]
- lsls r1, 26
- lsrs r1, 27
- movs r0, 0xF4
- lsls r0, 6
- ldr r2, _080DB454 @ =gOamMatrices
- lsls r1, 3
- adds r1, r2
- movs r2, 0x6
- ldrsh r1, [r1, r2]
- bl __divsi3
- adds r1, r0, 0x1
- cmp r1, 0x80
- ble _080DB42C
- movs r1, 0x80
-_080DB42C:
- movs r0, 0x40
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r1, r0, 1
- strh r1, [r5, 0x26]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x18
- bne _080DB44C
- adds r0, r5, 0
- bl sub_8079098
- adds r0, r5, 0
- bl move_anim_8072740
-_080DB44C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB454: .4byte gOamMatrices
- thumb_func_end sub_80DB374
-
- thumb_func_start sub_80DB458
-sub_80DB458: @ 80DB458
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- ldr r4, _080DB47C @ =0x000001ff
- ands r4, r0
- bl Random
- movs r1, 0x7F
- ands r1, r0
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080DB480
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r4, r2
- b _080DB488
- .align 2, 0
-_080DB47C: .4byte 0x000001ff
-_080DB480:
- movs r2, 0xB8
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r4
-_080DB488:
- strh r0, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DB49C
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- adds r0, r1, r0
- b _080DB4A4
-_080DB49C:
- movs r2, 0xE0
- lsls r2, 2
- adds r0, r2, 0
- subs r0, r1
-_080DB4A4:
- strh r0, [r5, 0x30]
- ldr r2, _080DB4CC @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- beq _080DB4C0
- ldrb r0, [r5, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r5, 0x3]
-_080DB4C0:
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080DB4D4
- ldr r4, _080DB4D0 @ =gUnknown_0202F7C8
- b _080DB4D6
- .align 2, 0
-_080DB4CC: .4byte gUnknown_03004B00
-_080DB4D0: .4byte gUnknown_0202F7C8
-_080DB4D4:
- ldr r4, _080DB500 @ =gUnknown_0202F7C9
-_080DB4D6:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r5, 0x22]
- ldr r0, _080DB504 @ =sub_80DB508
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB500: .4byte gUnknown_0202F7C9
-_080DB504: .4byte sub_80DB508
- thumb_func_end sub_80DB458
-
- thumb_func_start sub_80DB508
-sub_80DB508: @ 80DB508
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DB520
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _080DB52A
-_080DB520:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_080DB52A:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- strh r3, [r4, 0x2E]
- adds r0, r2, 0
- subs r0, 0x20
- strh r0, [r4, 0x30]
- lsls r0, r3, 16
- cmp r0, 0
- bge _080DB54A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_080DB54A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _080DB55E
- adds r0, r4, 0
- bl move_anim_8072740
-_080DB55E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DB508
-
- thumb_func_start sub_80DB564
-sub_80DB564: @ 80DB564
- movs r1, 0
- strh r1, [r0, 0x3A]
- movs r1, 0x40
- strh r1, [r0, 0x3C]
- ldr r1, _080DB574 @ =sub_80DB578
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DB574: .4byte sub_80DB578
- thumb_func_end sub_80DB564
-
- thumb_func_start sub_80DB578
-sub_80DB578: @ 80DB578
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080DB58A
- cmp r1, 0x1
- beq _080DB5D8
- b _080DB5DE
-_080DB58A:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080DB5DE
- strh r1, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DB5DE
- ldrb r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080DB5DE
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DB5DE
-_080DB5D8:
- adds r0, r3, 0
- bl move_anim_8072740
-_080DB5DE:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB578
-
- thumb_func_start sub_80DB5E4
-sub_80DB5E4: @ 80DB5E4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- ldrh r4, [r0, 0x20]
- ldrh r5, [r0, 0x22]
- ldr r6, _080DB698 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- strh r6, [r2, 0x22]
- ldrh r0, [r2, 0x20]
- mov r9, r0
- mov r1, r9
- lsls r0, r1, 4
- strh r0, [r2, 0x36]
- lsls r0, r6, 4
- strh r0, [r2, 0x38]
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- subs r0, r4, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3A]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- subs r0, r5, r0
- lsls r0, 4
- movs r1, 0xC
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- mov r0, r9
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- subs r5, r6
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- mov r0, r8
- movs r1, 0x1
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _080DB69C @ =sub_80DB6A0
- mov r2, r8
- str r0, [r2, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB698: .4byte gUnknown_0202F7C8
-_080DB69C: .4byte sub_80DB6A0
- thumb_func_end sub_80DB5E4
-
- thumb_func_start sub_80DB6A0
-sub_80DB6A0: @ 80DB6A0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x3C]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r3, r1, 20
- strh r3, [r2, 0x22]
- adds r0, 0x2D
- lsls r0, 16
- movs r1, 0xA5
- lsls r1, 17
- cmp r0, r1
- bhi _080DB6DA
- adds r1, r3, 0
- cmp r1, 0x9D
- bgt _080DB6DA
- movs r0, 0x2D
- negs r0, r0
- cmp r1, r0
- bge _080DB6E0
-_080DB6DA:
- adds r0, r2, 0
- bl move_anim_8074EE0
-_080DB6E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB6A0
-
- thumb_func_start unref_sub_80DB6E4
-unref_sub_80DB6E4: @ 80DB6E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DB714 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DB71C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB718 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- b _080DB73A
- .align 2, 0
-_080DB714: .4byte gUnknown_03004B00
-_080DB718: .4byte gSprites
-_080DB71C:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DB748 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_080DB73A:
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB748: .4byte gSprites
- thumb_func_end unref_sub_80DB6E4
-
- thumb_func_start sub_80DB74C
-sub_80DB74C: @ 80DB74C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _080DB804 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB768
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DB77E
-_080DB768:
- ldrb r1, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r6, 0x5]
- adds r1, r6, 0
- adds r1, 0x43
- movs r0, 0xC8
- strb r0, [r1]
-_080DB77E:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB7DA
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB7BC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7BC:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r7
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB7DA
- movs r0, 0x1
- eors r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8076034
-_080DB7DA:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB810
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080DB810
- ldr r0, _080DB804 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DB808
- movs r0, 0x48
- strh r0, [r6, 0x20]
- movs r0, 0x50
- b _080DB84A
- .align 2, 0
-_080DB804: .4byte gUnknown_0202F7C8
-_080DB808:
- movs r0, 0xB0
- strh r0, [r6, 0x20]
- movs r0, 0x28
- b _080DB84A
-_080DB810:
- ldr r5, _080DB880 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DB826
- ldr r1, _080DB884 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DB826:
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _080DB884 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x2]
- adds r0, r4
-_080DB84A:
- strh r0, [r6, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DB85C
- ldrh r0, [r6, 0x22]
- adds r0, 0x9
- strh r0, [r6, 0x22]
-_080DB85C:
- ldr r0, _080DB884 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 20
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x2E]
- ldr r1, _080DB888 @ =sub_80DB88C
- str r1, [r6, 0x1C]
- adds r0, r6, 0
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB880: .4byte gUnknown_0202F7C8
-_080DB884: .4byte gUnknown_03004B00
-_080DB888: .4byte sub_80DB88C
- thumb_func_end sub_80DB74C
-
- thumb_func_start sub_80DB88C
-sub_80DB88C: @ 80DB88C
- push {lr}
- adds r3, r0, 0
- ldr r2, _080DB8B0 @ =REG_BLDALPHA
- ldrh r1, [r3, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0xD
- bne _080DB8B8
- ldr r0, _080DB8B4 @ =sub_80DB8C0
- str r0, [r3, 0x1C]
- b _080DB8BC
- .align 2, 0
-_080DB8B0: .4byte REG_BLDALPHA
-_080DB8B4: .4byte sub_80DB8C0
-_080DB8B8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x34]
-_080DB8BC:
- pop {r0}
- bx r0
- thumb_func_end sub_80DB88C
-
- thumb_func_start sub_80DB8C0
-sub_80DB8C0: @ 80DB8C0
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080DB91E
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r4, [r3, 0x2E]
- ldr r1, _080DB924 @ =gPlttBufferFaded
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 1
- adds r0, r1
- ldrh r7, [r0]
- movs r5, 0x8
- adds r6, r1, 0
- adds r1, r4, 0x7
- lsls r0, r4, 1
- adds r0, r6
- adds r2, r0, 0
- adds r2, 0x10
- lsls r1, 1
- adds r1, r6
-_080DB8F6:
- ldrh r0, [r1]
- strh r0, [r2]
- subs r1, 0x2
- subs r2, 0x2
- subs r5, 0x1
- cmp r5, 0
- bgt _080DB8F6
- adds r0, r4, 0x1
- lsls r0, 1
- adds r0, r6
- strh r7, [r0]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _080DB91E
- ldr r0, _080DB928 @ =sub_80DB92C
- str r0, [r3, 0x1C]
-_080DB91E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB924: .4byte gPlttBufferFaded
-_080DB928: .4byte sub_80DB92C
- thumb_func_end sub_80DB8C0
-
- thumb_func_start sub_80DB92C
-sub_80DB92C: @ 80DB92C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r2, _080DB9D4 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x34]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DB9CC
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DB9BC
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB98E
- ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB98E:
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r6
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DB9BC
- ldr r2, _080DB9D8 @ =gSprites
- ldr r0, _080DB9DC @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080DB9BC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DB9E0 @ =sub_80DB9E4
- str r0, [r5, 0x1C]
-_080DB9CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DB9D4: .4byte REG_BLDALPHA
-_080DB9D8: .4byte gSprites
-_080DB9DC: .4byte gUnknown_02024BE0
-_080DB9E0: .4byte sub_80DB9E4
- thumb_func_end sub_80DB92C
-
- thumb_func_start sub_80DB9E4
-sub_80DB9E4: @ 80DB9E4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DBA3C
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DBA22
- adds r0, r5, 0
- bl sub_8076464
-_080DBA22:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DBA3C
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080DBA3C:
- ldr r0, _080DBA48 @ =move_anim_8072740
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBA48: .4byte move_anim_8072740
- thumb_func_end sub_80DB9E4
-
- thumb_func_start sub_80DBA4C
-sub_80DBA4C: @ 80DBA4C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DBAD8
- ldr r5, _080DBA98 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- movs r6, 0
- cmp r0, 0
- bne _080DBA66
- movs r6, 0x1
-_080DBA66:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DBAAE
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080DBAAE
- ldr r0, _080DBA9C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DBAA0
- ldrh r0, [r5]
- movs r1, 0x48
- subs r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x50
- strh r0, [r4, 0x22]
- b _080DBAD0
- .align 2, 0
-_080DBA98: .4byte gUnknown_03004B00
-_080DBA9C: .4byte gUnknown_0202F7C8
-_080DBAA0:
- ldrh r0, [r5]
- adds r0, 0xB0
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- adds r0, 0x28
- strh r0, [r4, 0x22]
- b _080DBAD0
-_080DBAAE:
- ldr r0, _080DBAC4 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DBAC8
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80787B0
- b _080DBAD0
- .align 2, 0
-_080DBAC4: .4byte gUnknown_03004B00
-_080DBAC8:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8078764
-_080DBAD0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBAEC
-_080DBAD8:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _080DBAEC
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080DBAEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBA4C
-
- thumb_func_start sub_80DBAF4
-sub_80DBAF4: @ 80DBAF4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DBB3C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DBB44
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrh r0, [r5, 0x20]
- subs r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xA
- strh r0, [r5, 0x22]
- ldr r0, _080DBB40 @ =0x0000ffff
- b _080DBB52
- .align 2, 0
-_080DBB3C: .4byte gUnknown_0202F7C8
-_080DBB40: .4byte 0x0000ffff
-_080DBB44:
- ldrh r0, [r5, 0x20]
- adds r0, 0x28
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- subs r0, 0xA
- strh r0, [r5, 0x22]
- movs r0, 0x1
-_080DBB52:
- strh r0, [r5, 0x30]
- ldr r1, _080DBB68 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DBB6C @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBB68: .4byte move_anim_8072740
-_080DBB6C: .4byte sub_8078600
- thumb_func_end sub_80DBAF4
-
- thumb_func_start sub_80DBB70
-sub_80DBB70: @ 80DBB70
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r6, _080DBBF4 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- lsls r1, 15
- lsrs r4, r1, 16
- ldrb r0, [r6]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- negs r1, r1
- lsls r1, 16
- lsrs r7, r1, 16
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DBBB6
- lsls r0, r4, 16
- negs r0, r0
- lsrs r4, r0, 16
-_080DBBB6:
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r7
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _080DBBE2
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_080DBBE2:
- ldr r1, _080DBBF8 @ =sub_80DBC00
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DBBFC @ =sub_8078600
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBBF4: .4byte gUnknown_0202F7C8
-_080DBBF8: .4byte sub_80DBC00
-_080DBBFC: .4byte sub_8078600
- thumb_func_end sub_80DBB70
-
- thumb_func_start sub_80DBC00
-sub_80DBC00: @ 80DBC00
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080DBC2C @ =gUnknown_083DA888
- str r0, [r4, 0x10]
- movs r0, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldr r0, _080DBC30 @ =sub_80DBC34
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBC2C: .4byte gUnknown_083DA888
-_080DBC30: .4byte sub_80DBC34
- thumb_func_end sub_80DBC00
-
- thumb_func_start sub_80DBC34
-sub_80DBC34: @ 80DBC34
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBC46
- cmp r0, 0x1
- beq _080DBC74
- b _080DBC8C
-_080DBC46:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DBC8C
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x12
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DBC8C
-_080DBC74:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DBC8C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DBC8C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DBC34
-
- thumb_func_start sub_80DBC94
-sub_80DBC94: @ 80DBC94
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DBCC4 @ =gTasks
- adds r4, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x8]
- ldr r2, _080DBCC8 @ =gUnknown_083DA8A4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBCCC @ =sub_80DBCD0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCC4: .4byte gTasks
-_080DBCC8: .4byte gUnknown_083DA8A4
-_080DBCCC: .4byte sub_80DBCD0
- thumb_func_end sub_80DBC94
-
- thumb_func_start sub_80DBCD0
-sub_80DBCD0: @ 80DBCD0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DBCF8 @ =gTasks
- adds r0, r1
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _080DBCF0
- adds r0, r4, 0
- bl move_anim_task_del
-_080DBCF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBCF8: .4byte gTasks
- thumb_func_end sub_80DBCD0
-
- thumb_func_start sub_80DBCFC
-sub_80DBCFC: @ 80DBCFC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBD48 @ =gTasks
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- ldr r0, _080DBD4C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x8
- cmp r0, 0
- beq _080DBD30
- movs r1, 0x4
-_080DBD30:
- strh r1, [r4, 0xE]
- ldrb r1, [r4, 0x8]
- ldr r2, _080DBD50 @ =gUnknown_083DA8C4
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _080DBD54 @ =sub_80DBD58
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gUnknown_0202F7C8
-_080DBD50: .4byte gUnknown_083DA8C4
-_080DBD54: .4byte sub_80DBD58
- thumb_func_end sub_80DBCFC
-
- thumb_func_start sub_80DBD58
-sub_80DBD58: @ 80DBD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DBD78 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBD7C
- cmp r0, 0x1
- beq _080DBD98
- b _080DBDF6
- .align 2, 0
-_080DBD78: .4byte gTasks
-_080DBD7C:
- adds r0, r4, 0
- bl sub_807992C
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _080DBDF6
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _080DBDF6
-_080DBD98:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DBDC0
- ldr r2, _080DBDBC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBDF6
- .align 2, 0
-_080DBDBC: .4byte gSprites
-_080DBDC0:
- ldr r3, _080DBDFC @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- ldrb r0, [r4, 0x8]
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_080DBDF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBDFC: .4byte gSprites
- thumb_func_end sub_80DBD58
-
- thumb_func_start sub_80DBE00
-sub_80DBE00: @ 80DBE00
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DBE84 @ =gTasks
- adds r5, r1, r0
- movs r0, 0
- movs r7, 0x10
- strh r7, [r5, 0xE]
- strh r0, [r5, 0x10]
- ldr r4, _080DBE88 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, r6
- bcs _080DBE6A
- adds r1, r6, 0
-_080DBE6A:
- strh r1, [r5, 0x20]
- ldr r1, _080DBE8C @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DBE90 @ =REG_BLDALPHA
- strh r7, [r0]
- ldr r0, _080DBE94 @ =sub_80DBE98
- str r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DBE84: .4byte gTasks
-_080DBE88: .4byte gUnknown_0202F7C8
-_080DBE8C: .4byte REG_BLDCNT
-_080DBE90: .4byte REG_BLDALPHA
-_080DBE94: .4byte sub_80DBE98
- thumb_func_end sub_80DBE00
-
- thumb_func_start sub_80DBE98
-sub_80DBE98: @ 80DBE98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DBEBC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DBF98
- cmp r1, 0x1
- bgt _080DBEC0
- cmp r1, 0
- beq _080DBECE
- b _080DC014
- .align 2, 0
-_080DBEBC: .4byte gTasks
-_080DBEC0:
- cmp r1, 0x2
- bne _080DBEC6
- b _080DBFF4
-_080DBEC6:
- cmp r1, 0x3
- bne _080DBECC
- b _080DC004
-_080DBECC:
- b _080DC014
-_080DBECE:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bgt _080DBEDE
- b _080DC014
-_080DBEDE:
- strh r1, [r4, 0xA]
- ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- movs r3, 0x24
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- adds r1, 0x8
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- strh r2, [r0]
- cmp r2, 0x40
- beq _080DBF82
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DBF3C
- cmp r0, 0x1
- bgt _080DBF20
- cmp r0, 0
- beq _080DBF2A
- b _080DBF82
- .align 2, 0
-_080DBF1C: .4byte gSpriteTemplate_83DA8DC
-_080DBF20:
- cmp r0, 0x2
- beq _080DBF54
- cmp r0, 0x3
- beq _080DBF6C
- b _080DBF82
-_080DBF2A:
- ldr r0, _080DBF38 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- b _080DBF7A
- .align 2, 0
-_080DBF38: .4byte gSprites
-_080DBF3C:
- ldr r0, _080DBF50 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- b _080DBF80
- .align 2, 0
-_080DBF50: .4byte gSprites
-_080DBF54:
- ldr r1, _080DBF68 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x24]
- ldrh r1, [r4, 0x20]
- strh r1, [r0, 0x26]
- b _080DBF82
- .align 2, 0
-_080DBF68: .4byte gSprites
-_080DBF6C:
- ldr r0, _080DBF94 @ =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF7A:
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x20]
- negs r0, r0
-_080DBF80:
- strh r0, [r1, 0x26]
-_080DBF82:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DC014
- b _080DBFF4
- .align 2, 0
-_080DBF94: .4byte gSprites
-_080DBF98:
- ldrh r0, [r4, 0xA]
- ands r1, r0
- cmp r1, 0
- beq _080DBFA8
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- b _080DBFAE
-_080DBFA8:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_080DBFAE:
- ldr r2, _080DBFFC @ =REG_BLDALPHA
- ldrh r0, [r4, 0x10]
- lsls r0, 8
- ldrh r1, [r4, 0xE]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _080DC014
- movs r5, 0x8
- adds r6, r4, 0
- adds r6, 0x8
-_080DBFCE:
- lsls r0, r5, 1
- adds r1, r6, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x40
- beq _080DBFEA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC000 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_080DBFEA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xC
- bls _080DBFCE
-_080DBFF4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC014
- .align 2, 0
-_080DBFFC: .4byte REG_BLDALPHA
-_080DC000: .4byte gSprites
-_080DC004:
- ldr r0, _080DC01C @ =REG_BLDALPHA
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC014:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC01C: .4byte REG_BLDALPHA
- thumb_func_end sub_80DBE98
-
- thumb_func_start sub_80DC020
-sub_80DC020: @ 80DC020
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- subs r0, 0xA
- cmp r1, r0
- ble _080DC04A
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080DC04A:
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080DC05C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DC05C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC020
-
- thumb_func_start sub_80DC068
-sub_80DC068: @ 80DC068
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DC0A4 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080DC094
- ldr r4, _080DC0A8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DC094:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2E]
- ldr r0, _080DC0AC @ =sub_80DC020
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC0A4: .4byte gUnknown_03004B00
-_080DC0A8: .4byte gUnknown_0202F7C8
-_080DC0AC: .4byte sub_80DC020
- thumb_func_end sub_80DC068
-
- thumb_func_start sub_80DC0B0
-sub_80DC0B0: @ 80DC0B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC10C @ =gTasks
- adds r5, r1, r0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC154
- ldr r0, _080DC110 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC120
- ldr r0, _080DC114 @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080DC118 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC11C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC10C: .4byte gTasks
-_080DC110: .4byte gUnknown_03004B00
-_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gUnknown_0202F7C9
-_080DC11C: .4byte gUnknown_0202F7C8
-_080DC120:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC150 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- b _080DC1D2
- .align 2, 0
-_080DC14C: .4byte gUnknown_0202F7C8
-_080DC150: .4byte gUnknown_0202F7C9
-_080DC154:
- ldr r0, _080DC198 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _080DC1A8
- ldr r0, _080DC19C @ =0x0000fff6
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1A4 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080DC1DE
- .align 2, 0
-_080DC198: .4byte gUnknown_03004B00
-_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gUnknown_0202F7C9
-_080DC1A4: .4byte gUnknown_0202F7C8
-_080DC1A8:
- movs r0, 0xA
- strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x1E]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r5, 0x20]
- ldr r4, _080DC1F4 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
-_080DC1D2:
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- subs r0, 0x8
-_080DC1DE:
- strh r0, [r5, 0x24]
- movs r0, 0x6
- strh r0, [r5, 0xA]
- ldr r0, _080DC1F8 @ =sub_80DC1FC
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC1F0: .4byte gUnknown_0202F7C8
-_080DC1F4: .4byte gUnknown_0202F7C9
-_080DC1F8: .4byte sub_80DC1FC
- thumb_func_end sub_80DC0B0
-
- thumb_func_start sub_80DC1FC
-sub_80DC1FC: @ 80DC1FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC21C @ =gTasks
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _080DC220
- cmp r1, 0x1
- beq _080DC294
- b _080DC2A8
- .align 2, 0
-_080DC21C: .4byte gTasks
-_080DC220:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080DC2A8
- strh r1, [r5, 0xA]
- ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC
- movs r2, 0x1E
- ldrsh r1, [r5, r2]
- movs r3, 0x20
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080DC274
- ldr r0, _080DC290 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x22]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x36]
- ldrh r0, [r5, 0x1C]
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldrb r0, [r5, 0xC]
- movs r1, 0x3
- ands r1, r0
- adds r0, r4, 0
- bl StartSpriteAffineAnim
-_080DC274:
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080DC2A8
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC2A8
- .align 2, 0
-_080DC28C: .4byte gSpriteTemplate_83DA9AC
-_080DC290: .4byte gSprites
-_080DC294:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _080DC2A8
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC2A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC1FC
-
- thumb_func_start sub_80DC2B0
-sub_80DC2B0: @ 80DC2B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DC2CE
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_080DC2CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC2B0
-
- thumb_func_start sub_80DC2D4
-sub_80DC2D4: @ 80DC2D4
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DC30C @ =gTasks
- adds r4, r1, r0
- ldr r0, _080DC310 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r1, 0
- subs r0, 0x20
- strh r0, [r4, 0x24]
- ldr r0, _080DC314 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _080DC32A
- cmp r0, 0x1
- bgt _080DC318
- cmp r0, 0
- beq _080DC31E
- b _080DC346
- .align 2, 0
-_080DC30C: .4byte gTasks
-_080DC310: .4byte gUnknown_0202F7C9
-_080DC314: .4byte gUnknown_03004B00
-_080DC318:
- cmp r0, 0x2
- beq _080DC336
- b _080DC346
-_080DC31E:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0x40
- b _080DC33E
-_080DC32A:
- movs r0, 0x2
- strh r0, [r4, 0x1E]
- movs r0, 0x5
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- b _080DC33E
-_080DC336:
- movs r0, 0x4
- strh r0, [r4, 0x1E]
- strh r0, [r4, 0x20]
- movs r0, 0
-_080DC33E:
- strh r0, [r4, 0x22]
- adds r0, r1, 0
- adds r0, 0x20
- strh r0, [r4, 0x26]
-_080DC346:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _080DC352
- movs r0, 0
- strh r0, [r4, 0x24]
-_080DC352:
- ldr r0, _080DC36C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DC378
- ldr r0, _080DC370 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC374 @ =REG_BG1HOFS
- b _080DC380
- .align 2, 0
-_080DC36C: .4byte gUnknown_0202F7C9
-_080DC370: .4byte gUnknown_030042C0
-_080DC374: .4byte REG_BG1HOFS
-_080DC378:
- ldr r0, _080DC3E0 @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r4, 0x1C]
- ldr r0, _080DC3E4 @ =REG_BG2HOFS
-_080DC380:
- str r0, [sp]
- ldrh r1, [r4, 0x24]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- bgt _080DC3BA
- ldr r5, _080DC3E8 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DC39A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1C]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- adds r0, 0x40
- cmp r1, r0
- ble _080DC39A
-_080DC3BA:
- ldr r0, _080DC3EC @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DC3F0 @ =sub_80DC3F4
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC3E0: .4byte gUnknown_03004288
-_080DC3E4: .4byte REG_BG2HOFS
-_080DC3E8: .4byte gUnknown_03004DE0
-_080DC3EC: .4byte 0xa2600001
-_080DC3F0: .4byte sub_80DC3F4
- thumb_func_end sub_80DC2D4
-
- thumb_func_start sub_80DC3F4
-sub_80DC3F4: @ 80DC3F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DC41C @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC4CE
- cmp r0, 0x1
- bgt _080DC420
- cmp r0, 0
- beq _080DC426
- b _080DC4E6
- .align 2, 0
-_080DC41C: .4byte gTasks
-_080DC420:
- cmp r0, 0x2
- beq _080DC4E0
- b _080DC4E6
-_080DC426:
- ldrh r3, [r5, 0x22]
- ldrh r4, [r5, 0x24]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bgt _080DC4BE
- ldr r0, _080DC470 @ =gSineTable
- mov r9, r0
- movs r7, 0x3
- ldr r1, _080DC474 @ =gUnknown_03004DE0
- mov r12, r1
- movs r2, 0xF0
- lsls r2, 3
- add r2, r12
- mov r8, r2
-_080DC448:
- lsls r2, r3, 16
- asrs r0, r2, 15
- add r0, r9
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r3, 0x20
- ldrsh r1, [r5, r3]
- asrs r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r3, r0, 16
- adds r6, r2, 0
- cmp r3, 0
- ble _080DC478
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- adds r0, r3, r0
- b _080DC484
- .align 2, 0
-_080DC470: .4byte gSineTable
-_080DC474: .4byte gUnknown_03004DE0
-_080DC478:
- cmp r3, 0
- bge _080DC488
- ldrh r1, [r5, 0xA]
- adds r0, r7, 0
- ands r0, r1
- subs r0, r3, r0
-_080DC484:
- lsls r0, 16
- lsrs r1, r0, 16
-_080DC488:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- mov r0, r12
- adds r4, r3, r0
- ldrh r0, [r5, 0x1C]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1, r0
- strh r0, [r4]
- add r3, r8
- ldrh r0, [r5, 0x1C]
- adds r1, r0
- strh r1, [r3]
- asrs r0, r6, 16
- ldrh r1, [r5, 0x1E]
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r2, r0
- ble _080DC448
-_080DC4BE:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _080DC4E6
- b _080DC4D4
-_080DC4CE:
- ldr r1, _080DC4DC @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080DC4D4:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080DC4E6
- .align 2, 0
-_080DC4DC: .4byte gUnknown_03004DC0
-_080DC4E0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080DC4E6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC3F4
-
- thumb_func_start sub_80DC4F4
-sub_80DC4F4: @ 80DC4F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DC528 @ =gTasks
- adds r7, r0, r1
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r5
- adds r6, r5, 0
- cmp r6, 0xFF
- bne _080DC52C
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DC5D6
- .align 2, 0
-_080DC528: .4byte gTasks
-_080DC52C:
- ldr r1, _080DC550 @ =gUnknown_03004B00
- ldrb r0, [r1]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- lsrs r1, r0, 16
- mov r9, r1
- asrs r0, 16
- cmp r0, 0
- bge _080DC554
- adds r0, r5, 0
- bl FreeOamMatrix
- mov r0, r8
- bl move_anim_task_del
- b _080DC5D6
- .align 2, 0
-_080DC550: .4byte gUnknown_03004B00
-_080DC554:
- ldr r2, _080DC5E4 @ =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r2, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, _080DC5E8 @ =SpriteCallbackDummy
- str r1, [r0]
- adds r4, r2
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ands r6, r0
- lsls r2, r6, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r1, _080DC5EC @ =gUnknown_03004B00
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r0, r10
- strh r0, [r7, 0x24]
- mov r1, r9
- strh r1, [r7, 0x26]
- ldr r0, _080DC5F0 @ =sub_80DC5F4
- str r0, [r7]
-_080DC5D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC5E4: .4byte gSprites
-_080DC5E8: .4byte SpriteCallbackDummy
-_080DC5EC: .4byte gUnknown_03004B00
-_080DC5F0: .4byte sub_80DC5F4
- thumb_func_end sub_80DC4F4
-
- thumb_func_start sub_80DC5F4
-sub_80DC5F4: @ 80DC5F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DC618 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DC678
- cmp r0, 0x1
- bgt _080DC61C
- cmp r0, 0
- beq _080DC626
- b _080DC6F8
- .align 2, 0
-_080DC618: .4byte gTasks
-_080DC61C:
- cmp r0, 0x2
- beq _080DC6C8
- cmp r0, 0x3
- beq _080DC6E8
- b _080DC6F8
-_080DC626:
- ldrh r0, [r4, 0xA]
- adds r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC674 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x30
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC674: .4byte gSineTable
-_080DC678:
- ldrh r0, [r4, 0xA]
- subs r0, 0x4
- strh r0, [r4, 0xA]
- ldr r1, _080DC6C4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8079AB8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DC6F8
- b _080DC6DA
- .align 2, 0
-_080DC6C4: .4byte gSineTable
-_080DC6C8:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DC6E4 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_080DC6DA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DC6F8
- .align 2, 0
-_080DC6E4: .4byte gSprites
-_080DC6E8:
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl FreeOamMatrix
- adds r0, r5, 0
- bl move_anim_task_del
-_080DC6F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DC5F4
-
- thumb_func_start sub_80DC700
-sub_80DC700: @ 80DC700
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DC778
- cmp r0, 0x1
- bgt _080DC716
- cmp r0, 0
- beq _080DC720
- b _080DC818
-_080DC716:
- cmp r0, 0x2
- beq _080DC7AA
- cmp r0, 0x3
- beq _080DC808
- b _080DC818
-_080DC720:
- ldr r4, _080DC76C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC74E
- ldrh r0, [r5, 0x22]
- adds r0, 0xC
- strh r0, [r5, 0x22]
-_080DC74E:
- movs r0, 0x8
- strh r0, [r5, 0x30]
- ldr r1, _080DC770 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DC774 @ =REG_BLDALPHA
- ldrh r1, [r5, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- b _080DC7A2
- .align 2, 0
-_080DC76C: .4byte gUnknown_0202F7C8
-_080DC770: .4byte REG_BLDCNT
-_080DC774: .4byte REG_BLDALPHA
-_080DC778:
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080DC818
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCB
- bl PlaySE12WithPanning
- adds r0, r5, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_080DC7A2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DC818
-_080DC7AA:
- ldrh r0, [r5, 0x32]
- adds r1, r0, 0x1
- strh r1, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DC7E8
- movs r0, 0
- strh r0, [r5, 0x32]
- ldrh r1, [r5, 0x30]
- subs r1, 0x1
- strh r1, [r5, 0x30]
- ldr r2, _080DC804 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DC7E8
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080DC7E8:
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r0, 0
- ldrh r1, [r5, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r5, 0x26]
- subs r0, r1
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r5, 0x34]
- b _080DC818
- .align 2, 0
-_080DC804: .4byte REG_BLDALPHA
-_080DC808:
- ldr r0, _080DC820 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl move_anim_8072740
-_080DC818:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC820: .4byte REG_BLDCNT
- thumb_func_end sub_80DC700
-
- thumb_func_start sub_80DC824
-sub_80DC824: @ 80DC824
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC850
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080DC84C @ =gUnknown_03004B00
- ldrh r1, [r0, 0x4]
- negs r1, r1
- strh r1, [r0, 0x4]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
- b _080DC880
- .align 2, 0
-_080DC84C: .4byte gUnknown_03004B00
-_080DC850:
- ldr r0, _080DC8E4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DC880
- adds r0, r6, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r1, _080DC8E8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_080DC880:
- ldr r5, _080DC8E4 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC8E8 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080DC8EC @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080DC8F0 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC8E4: .4byte gUnknown_0202F7C9
-_080DC8E8: .4byte gUnknown_03004B00
-_080DC8EC: .4byte sub_8078B34
-_080DC8F0: .4byte move_anim_8072740
- thumb_func_end sub_80DC824
-
- thumb_func_start sub_80DC8F4
-sub_80DC8F4: @ 80DC8F4
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC918
- ldr r1, _080DC914 @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
- adds r0, r6, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _080DC934
- .align 2, 0
-_080DC914: .4byte gUnknown_03004B00
-_080DC918:
- ldr r0, _080DC990 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DC934
- ldr r0, _080DC994 @ =gUnknown_03004B00
- ldrh r1, [r0, 0x2]
- negs r1, r1
- strh r1, [r0, 0x2]
- ldrh r1, [r0]
- negs r1, r1
- strh r1, [r0]
-_080DC934:
- ldr r5, _080DC990 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- ldr r4, _080DC994 @ =gUnknown_03004B00
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r6, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r6, 0x22]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x36]
- ldr r0, _080DC998 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080DC99C @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DC990: .4byte gUnknown_0202F7C9
-_080DC994: .4byte gUnknown_03004B00
-_080DC998: .4byte sub_8078B34
-_080DC99C: .4byte move_anim_8072740
- thumb_func_end sub_80DC8F4
-
- thumb_func_start sub_80DC9A0
-sub_80DC9A0: @ 80DC9A0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DC9BC
- ldr r0, _080DC9FC @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r0, 0x4]
-_080DC9BC:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r1, _080DC9FC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x22]
- strh r0, [r5, 0x34]
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080DCA04
- ldr r4, _080DCA00 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- b _080DCA16
- .align 2, 0
-_080DC9FC: .4byte gUnknown_03004B00
-_080DCA00: .4byte gUnknown_0202F7C9
-_080DCA04:
- ldr r0, _080DCA2C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x32
- adds r3, r5, 0
- adds r3, 0x36
- movs r1, 0x1
- bl sub_807A3FC
-_080DCA16:
- adds r0, r5, 0
- bl sub_8078BD4
- ldr r0, _080DCA30 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x6]
- strh r0, [r5, 0x38]
- ldr r0, _080DCA34 @ =sub_80DCA38
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCA2C: .4byte gUnknown_0202F7C9
-_080DCA30: .4byte gUnknown_03004B00
-_080DCA34: .4byte sub_80DCA38
- thumb_func_end sub_80DC9A0
-
- thumb_func_start sub_80DCA38
-sub_80DCA38: @ 80DCA38
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DCA4E
- adds r0, r4, 0
- bl move_anim_8072740
- b _080DCA6A
-_080DCA4E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0xD
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
-_080DCA6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCA38
-
- thumb_func_start sub_80DCA70
-sub_80DCA70: @ 80DCA70
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCAA0 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
- ldr r0, _080DCAA4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCAAC
- ldr r0, _080DCAA8 @ =gUnknown_03004B00
- ldrh r1, [r4, 0x20]
- ldrh r2, [r0]
- subs r1, r2
- strh r1, [r4, 0x20]
- b _080DCAB8
- .align 2, 0
-_080DCAA0: .4byte gUnknown_0202F7C9
-_080DCAA4: .4byte gUnknown_0202F7C8
-_080DCAA8: .4byte gUnknown_03004B00
-_080DCAAC:
- ldr r1, _080DCAE0 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, r1, 0
-_080DCAB8:
- ldrh r0, [r0, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _080DCAE4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DCAD4
- ldrh r0, [r4, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_080DCAD4:
- ldr r0, _080DCAE8 @ =sub_80DCAEC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCAE0: .4byte gUnknown_03004B00
-_080DCAE4: .4byte gUnknown_0202F7C9
-_080DCAE8: .4byte sub_80DCAEC
- thumb_func_end sub_80DCA70
-
- thumb_func_start sub_80DCAEC
-sub_80DCAEC: @ 80DCAEC
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DCB20
- movs r0, 0
- strh r0, [r3, 0x2E]
- 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]
-_080DCB20:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _080DCB34
- adds r0, r3, 0
- bl move_anim_8072740
-_080DCB34:
- pop {r0}
- bx r0
- thumb_func_end sub_80DCAEC
-
- thumb_func_start sub_80DCB38
-sub_80DCB38: @ 80DCB38
- ldr r2, _080DCB54 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r1, 0x10
- strh r1, [r2]
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- ldr r1, _080DCB58 @ =sub_80DCB5C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080DCB54: .4byte REG_BLDCNT
-_080DCB58: .4byte sub_80DCB5C
- thumb_func_end sub_80DCB38
-
- thumb_func_start sub_80DCB5C
-sub_80DCB5C: @ 80DCB5C
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x32]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0x13
- bgt _080DCB70
- adds r0, r1, 0x1
- strh r0, [r3, 0x32]
- b _080DCBA8
-_080DCB70:
- ldrh r1, [r3, 0x30]
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DCBA8
- ldrh r1, [r3, 0x2E]
- subs r1, 0x1
- strh r1, [r3, 0x2E]
- ldr r2, _080DCBAC @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DCBA8
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DCBB0 @ =sub_80DCBB4
- str r0, [r3, 0x1C]
-_080DCBA8:
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBAC: .4byte REG_BLDALPHA
-_080DCBB0: .4byte sub_80DCBB4
- thumb_func_end sub_80DCB5C
-
- thumb_func_start sub_80DCBB4
-sub_80DCBB4: @ 80DCBB4
- push {lr}
- ldr r1, _080DCBC8 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DCBC8: .4byte REG_BLDCNT
- thumb_func_end sub_80DCBB4
-
- thumb_func_start sub_80DCBCC
-sub_80DCBCC: @ 80DCBCC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DCBEC
- ldr r1, _080DCBE8 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- b _080DCC0E
- .align 2, 0
-_080DCBE8: .4byte gUnknown_03004B00
-_080DCBEC:
- ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCC0E
- ldr r1, _080DCCEC @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
- ldrh r0, [r1, 0x6]
- negs r0, r0
- strh r0, [r1, 0x6]
-_080DCC0E:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DCC5E
- ldr r0, _080DCCE8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080DCC5E
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- beq _080DCC4C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DCC5E
-_080DCC4C:
- ldr r0, _080DCCEC @ =gUnknown_03004B00
- movs r2, 0x4
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x4]
- movs r2, 0
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0]
-_080DCC5E:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r5, _080DCCF0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- ldr r6, _080DCCEC @ =gUnknown_03004B00
- lsrs r4, 24
- ldrh r0, [r6, 0x4]
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r6, 0x6]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r7, 0x20]
- lsls r0, r4, 16
- asrs r0, 16
- subs r0, r2
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r7, 0x22]
- lsrs r5, r1, 16
- asrs r1, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0x2E]
- strh r4, [r7, 0x32]
- strh r5, [r7, 0x36]
- ldr r0, _080DCCF4 @ =sub_8078B34
- str r0, [r7, 0x1C]
- ldr r1, _080DCCF8 @ =move_anim_8072740
- adds r0, r7, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCCE8: .4byte gUnknown_0202F7C8
-_080DCCEC: .4byte gUnknown_03004B00
-_080DCCF0: .4byte gUnknown_0202F7C9
-_080DCCF4: .4byte sub_8078B34
-_080DCCF8: .4byte move_anim_8072740
- thumb_func_end sub_80DCBCC
-
- thumb_func_start sub_80DCCFC
-sub_80DCCFC: @ 80DCCFC
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DCD68 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCD1C
- ldr r1, _080DCD6C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080DCD1C:
- ldr r4, _080DCD6C @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080DCD70 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- adds r0, r1
- strh r0, [r6, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r6, 0x38]
- adds r0, r6, 0
- bl sub_80786EC
- ldr r0, _080DCD74 @ =sub_80DCD78
- str r0, [r6, 0x1C]
- adds r2, r6, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCD68: .4byte gUnknown_0202F7C8
-_080DCD6C: .4byte gUnknown_03004B00
-_080DCD70: .4byte gUnknown_0202F7C9
-_080DCD74: .4byte sub_80DCD78
- thumb_func_end sub_80DCCFC
-
- thumb_func_start sub_80DCD78
-sub_80DCD78: @ 80DCD78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DCDA4
- adds r0, r4, 0
- bl move_anim_8072740
- b _080DCE34
-_080DCDA4:
- movs r0, 0x2E
- adds r0, r4
- mov r8, r0
- ldrh r7, [r4, 0x20]
- ldrh r5, [r4, 0x24]
- ldrh r1, [r4, 0x22]
- mov r12, r1
- ldrh r6, [r4, 0x26]
- mov r2, r8
- add r1, sp, 0x4
- movs r3, 0x7
-_080DCDBA:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCDBA
- adds r0, r7, r5
- lsls r0, 16
- lsrs r5, r0, 16
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- bne _080DCE34
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r1, r2
- lsls r2, r6, 16
- asrs r2, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 24
- adds r0, r1
- lsrs r0, 16
- movs r3, 0x80
- lsls r3, 1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- add r2, sp, 0x4
- mov r1, r8
- movs r3, 0x7
-_080DCE26:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080DCE26
-_080DCE34:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80DCD78
-
- thumb_func_start sub_80DCE40
-sub_80DCE40: @ 80DCE40
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DCE54 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DCE5C
- ldr r4, _080DCE58 @ =gUnknown_0202F7C8
- b _080DCE5E
- .align 2, 0
-_080DCE54: .4byte gUnknown_03004B00
-_080DCE58: .4byte gUnknown_0202F7C8
-_080DCE5C:
- ldr r4, _080DCE90 @ =gUnknown_0202F7C9
-_080DCE5E:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x12
- strh r0, [r5, 0x22]
- ldr r1, _080DCE94 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DCE98 @ =sub_80785E4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCE90: .4byte gUnknown_0202F7C9
-_080DCE94: .4byte move_anim_8074EE0
-_080DCE98: .4byte sub_80785E4
- thumb_func_end sub_80DCE40
-
- thumb_func_start sub_80DCE9C
-sub_80DCE9C: @ 80DCE9C
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _080DCF08 @ =gUnknown_03004B00
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080DCEBC
- ldr r0, _080DCF0C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- adds r2, r5, 0
- adds r2, 0x20
- adds r3, r5, 0
- adds r3, 0x22
- movs r1, 0
- bl sub_807A3FC
-_080DCEBC:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r4, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0xE
- strh r0, [r5, 0x22]
- ldrb r1, [r6, 0x2]
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- strh r4, [r5, 0x2E]
- strh r4, [r5, 0x30]
- movs r0, 0x4
- strh r0, [r5, 0x32]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldr r0, _080DCF10 @ =0x0000ffba
- strh r0, [r5, 0x36]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x38]
- ldr r1, _080DCF14 @ =sub_80DCF1C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r1, _080DCF18 @ =sub_8078278
- str r1, [r5, 0x1C]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF08: .4byte gUnknown_03004B00
-_080DCF0C: .4byte gUnknown_0202F7C9
-_080DCF10: .4byte 0x0000ffba
-_080DCF14: .4byte sub_80DCF1C
-_080DCF18: .4byte sub_8078278
- thumb_func_end sub_80DCE9C
-
- thumb_func_start sub_80DCF1C
-sub_80DCF1C: @ 80DCF1C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x38]
- ldrh r2, [r4, 0x20]
- adds r0, r1, r2
- strh r0, [r4, 0x20]
- movs r0, 0xC0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- movs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x20
- strh r0, [r4, 0x34]
- ldr r0, _080DCF54 @ =0x0000ffe8
- strh r0, [r4, 0x36]
- ldr r1, _080DCF58 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080DCF5C @ =sub_8078278
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCF54: .4byte 0x0000ffe8
-_080DCF58: .4byte move_anim_8074EE0
-_080DCF5C: .4byte sub_8078278
- thumb_func_end sub_80DCF1C
-
- thumb_func_start sub_80DCF60
-sub_80DCF60: @ 80DCF60
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DCF88 @ =gUnknown_03004B00
- ldrb r1, [r4, 0xA]
- bl StartSpriteAnim
- adds r0, r5, 0
- bl AnimateSprite
- ldr r0, _080DCF8C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DCF90
- ldrh r0, [r5, 0x20]
- ldrh r1, [r4]
- subs r0, r1
- b _080DCF96
- .align 2, 0
-_080DCF88: .4byte gUnknown_03004B00
-_080DCF8C: .4byte gUnknown_0202F7C8
-_080DCF90:
- ldrh r0, [r4]
- ldrh r1, [r5, 0x20]
- adds r0, r1
-_080DCF96:
- strh r0, [r5, 0x20]
- ldr r3, _080DCFD8 @ =gUnknown_03004B00
- ldrh r2, [r3, 0x2]
- ldrh r0, [r5, 0x22]
- adds r2, r0
- movs r4, 0
- strh r2, [r5, 0x22]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x30]
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r5, 0x32]
- strh r2, [r5, 0x34]
- ldrh r0, [r3, 0x6]
- adds r2, r0
- strh r2, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8078A5C
- strh r4, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _080DCFDC @ =sub_8078394
- str r0, [r5, 0x1C]
- ldr r1, _080DCFE0 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DCFD8: .4byte gUnknown_03004B00
-_080DCFDC: .4byte sub_8078394
-_080DCFE0: .4byte move_anim_8074EE0
- thumb_func_end sub_80DCF60
-
- thumb_func_start sub_80DCFE4
-sub_80DCFE4: @ 80DCFE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DCFFC @ =gUnknown_03004B00
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DD000
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080DD008
- .align 2, 0
-_080DCFFC: .4byte gUnknown_03004B00
-_080DD000:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080DD008:
- ldr r1, _080DD024 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x34]
- ldr r0, _080DD028 @ =sub_80DD02C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD024: .4byte gUnknown_03004B00
-_080DD028: .4byte sub_80DD02C
- thumb_func_end sub_80DCFE4
-
- thumb_func_start sub_80DD02C
-sub_80DD02C: @ 80DD02C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x38]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _080DD072
- adds r0, r4, 0
- bl move_anim_8072740
-_080DD072:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD02C
-
- thumb_func_start do_boulder_dust
-do_boulder_dust: @ 80DD078
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _080DD154 @ =REG_BLDCNT
- ldr r2, _080DD158 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _080DD15C @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DD0C4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080DD0C4:
- ldr r0, _080DD160 @ =gUnknown_030042C0
- strh r5, [r0]
- ldr r0, _080DD164 @ =gUnknown_030041B4
- strh r5, [r0]
- ldr r0, _080DD168 @ =REG_BG1HOFS
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r2, _080DD16C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080DD170 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew
- bl LZDecompressVram
- ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DD120
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080DD120:
- ldr r0, _080DD180 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080DD13A
- ldr r0, _080DD184 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DD13A
- movs r5, 0x1
-_080DD13A:
- ldr r0, _080DD188 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x8]
- ldr r0, _080DD18C @ =sub_80DD190
- str r0, [r1]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD154: .4byte REG_BLDCNT
-_080DD158: .4byte 0x00003f42
-_080DD15C: .4byte REG_BG1CNT
-_080DD160: .4byte gUnknown_030042C0
-_080DD164: .4byte gUnknown_030041B4
-_080DD168: .4byte REG_BG1HOFS
-_080DD16C: .4byte 0x040000d4
-_080DD170: .4byte 0x85000400
-_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
-_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
-_080DD17C: .4byte gBattleAnimSpritePalette_261
-_080DD180: .4byte gUnknown_03004B00
-_080DD184: .4byte gUnknown_0202F7C8
-_080DD188: .4byte gTasks
-_080DD18C: .4byte sub_80DD190
- thumb_func_end do_boulder_dust
-
- thumb_func_start sub_80DD190
-sub_80DD190: @ 80DD190
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080DD1C0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0
- bne _080DD1CC
- ldr r1, _080DD1C4 @ =gUnknown_030042C0
- ldr r5, _080DD1C8 @ =0x0000fffa
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- b _080DD1D2
- .align 2, 0
-_080DD1C0: .4byte gTasks
-_080DD1C4: .4byte gUnknown_030042C0
-_080DD1C8: .4byte 0x0000fffa
-_080DD1CC:
- ldr r1, _080DD204 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x6
-_080DD1D2:
- strh r0, [r1]
- adds r4, r1, 0
- ldr r1, _080DD208 @ =gUnknown_030041B4
- ldr r5, _080DD20C @ =0x0000ffff
- adds r0, r5, 0
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r3
- movs r5, 0x20
- ldrsh r0, [r0, r5]
- mov r8, r2
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080DD1F8
- b _080DD37C
-_080DD1F8:
- lsls r0, 2
- ldr r1, _080DD210 @ =_080DD214
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD204: .4byte gUnknown_030042C0
-_080DD208: .4byte gUnknown_030041B4
-_080DD20C: .4byte 0x0000ffff
-_080DD210: .4byte _080DD214
- .align 2, 0
-_080DD214:
- .4byte _080DD228
- .4byte _080DD270
- .4byte _080DD292
- .4byte _080DD2D4
- .4byte _080DD358
-_080DD228:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _080DD242
- b _080DD37C
-_080DD242:
- strh r4, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- adds r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD26C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r0, [r3, r2]
- cmp r0, 0x7
- beq _080DD260
- b _080DD37C
-_080DD260:
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r4, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD26C: .4byte REG_BLDALPHA
-_080DD270:
- mov r5, r8
- adds r0, r5, r7
- lsls r0, 3
- adds r1, r0, r3
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- strh r0, [r1, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x65
- bne _080DD37C
- movs r0, 0x7
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- b _080DD37C
-_080DD292:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r3, r0, r3
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080DD37C
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0x1E]
- subs r1, 0x1
- strh r1, [r3, 0x1E]
- ldr r2, _080DD2D0 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x1E
- ldrsh r1, [r3, r2]
- cmp r1, 0
- bne _080DD37C
- ldrh r0, [r3, 0x20]
- adds r0, 0x1
- strh r0, [r3, 0x20]
- strh r1, [r3, 0x1E]
- b _080DD37C
- .align 2, 0
-_080DD2D0: .4byte REG_BLDALPHA
-_080DD2D4:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _080DD38C @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- mov r9, r5
- ldr r0, _080DD390 @ =0x85000400
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r10, r0
-_080DD2F6:
- str r6, [sp, 0xC]
- mov r0, r9
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _080DD2F6
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r10
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, _080DD38C @ =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _080DD394 @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080DD344
- ldr r2, _080DD398 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080DD344:
- ldr r0, _080DD39C @ =gTasks
- mov r5, r8
- adds r1, r5, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x20]
- adds r0, 0x1
- strh r0, [r1, 0x20]
- ldr r4, _080DD3A0 @ =gUnknown_030042C0
- ldr r2, _080DD3A4 @ =gUnknown_030041B4
-_080DD358:
- movs r1, 0
- strh r1, [r4]
- strh r1, [r2]
- ldr r0, _080DD3A8 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _080DD398 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- bl move_anim_task_del
-_080DD37C:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD38C: .4byte 0x040000d4
-_080DD390: .4byte 0x85000400
-_080DD394: .4byte 0x85000200
-_080DD398: .4byte REG_BG1CNT
-_080DD39C: .4byte gTasks
-_080DD3A0: .4byte gUnknown_030042C0
-_080DD3A4: .4byte gUnknown_030041B4
-_080DD3A8: .4byte REG_BLDCNT
- thumb_func_end sub_80DD190
-
- thumb_func_start sub_80DD3AC
-sub_80DD3AC: @ 80DD3AC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD428
- ldr r4, _080DD3F0 @ =gUnknown_03004B00
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DD3F8
- ldr r0, _080DD3F4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DD3F8
- movs r0, 0x98
- lsls r0, 1
- strh r0, [r5, 0x20]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- ldrb r1, [r5, 0x3]
- subs r0, 0x40
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- b _080DD3FC
- .align 2, 0
-_080DD3F0: .4byte gUnknown_03004B00
-_080DD3F4: .4byte gUnknown_0202F7C8
-_080DD3F8:
- ldr r0, _080DD41C @ =0x0000ffc0
- strh r0, [r5, 0x20]
-_080DD3FC:
- ldr r4, _080DD420 @ =gUnknown_03004B00
- ldrh r0, [r4]
- strh r0, [r5, 0x22]
- ldr r1, _080DD424 @ =gUnknown_083DAD10
- adds r0, r5, 0
- bl SetSubspriteTables
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DD484
- .align 2, 0
-_080DD41C: .4byte 0x0000ffc0
-_080DD420: .4byte gUnknown_03004B00
-_080DD424: .4byte gUnknown_083DAD10
-_080DD428:
- ldrh r1, [r5, 0x30]
- ldrh r3, [r5, 0x34]
- adds r1, r3
- ldrh r2, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r2, r0
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r3, [r5, 0x24]
- adds r0, r3
- strh r0, [r5, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r3, [r5, 0x26]
- adds r0, r3
- strh r0, [r5, 0x26]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r5, 0x34]
- ands r2, r0
- strh r2, [r5, 0x36]
- movs r1, 0x38
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DD46E
- movs r2, 0x20
- ldrsh r0, [r5, r2]
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- adds r0, r1
- movs r1, 0x88
- lsls r1, 1
- cmp r0, r1
- ble _080DD484
- b _080DD480
-_080DD46E:
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _080DD484
-_080DD480:
- ldr r0, _080DD48C @ =move_anim_8072740
- str r0, [r5, 0x1C]
-_080DD484:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD48C: .4byte move_anim_8072740
- thumb_func_end sub_80DD3AC
-
- thumb_func_start sub_80DD490
-sub_80DD490: @ 80DD490
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD4C8 @ =gUnknown_03004B00
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x32]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldr r0, _080DD4CC @ =sub_8078B34
- str r0, [r4, 0x1C]
- ldr r1, _080DD4D0 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD4C8: .4byte gUnknown_03004B00
-_080DD4CC: .4byte sub_8078B34
-_080DD4D0: .4byte move_anim_8072740
- thumb_func_end sub_80DD490
-
- thumb_func_start sub_80DD4D4
-sub_80DD4D4: @ 80DD4D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DD554 @ =gTasks
- adds r6, r1, r0
- ldr r5, _080DD558 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xC0
- lsls r2, 13
- adds r0, r2
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- ldrb r4, [r4]
- cmp r0, r4
- bne _080DD544
- mov r8, r7
-_080DD544:
- bl sub_80DD8BC
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080DD560
- movs r0, 0x20
- b _080DD566
- .align 2, 0
-_080DD554: .4byte gTasks
-_080DD558: .4byte gUnknown_0202F7C8
-_080DD55C: .4byte gUnknown_0202F7C9
-_080DD560:
- lsls r1, r5, 3
- movs r0, 0x30
- subs r0, r1
-_080DD566:
- strh r0, [r6, 0x18]
- movs r4, 0
- strh r4, [r6, 0x8]
- strh r4, [r6, 0x1E]
- strh r4, [r6, 0x1A]
- movs r0, 0x1
- strh r0, [r6, 0x20]
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _080DD57E
- adds r0, 0x7
-_080DD57E:
- asrs r0, 3
- subs r0, 0x1
- strh r0, [r6, 0x1C]
- mov r2, r9
- lsls r0, r2, 3
- strh r0, [r6, 0xC]
- lsls r0, r7, 3
- strh r0, [r6, 0xE]
- mov r1, r10
- subs r0, r1, r2
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x10]
- mov r1, r8
- subs r0, r1, r7
- lsls r0, 3
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x12]
- strh r4, [r6, 0x14]
- strh r4, [r6, 0x16]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- asrs r4, 8
- lsrs r4, 16
- movs r0, 0x3F
- bl sub_8076F98
- lsls r0, 24
- strh r4, [r6, 0x22]
- asrs r0, 24
- lsls r4, 16
- asrs r4, 16
- subs r0, r4
- movs r2, 0x18
- ldrsh r1, [r6, r2]
- bl __divsi3
- strh r0, [r6, 0x24]
- strh r5, [r6, 0xA]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- ldr r0, _080DD600 @ =sub_80DD604
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD600: .4byte sub_80DD604
- thumb_func_end sub_80DD4D4
-
- thumb_func_start sub_80DD604
-sub_80DD604: @ 80DD604
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DD628 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080DD61E
- b _080DD76C
-_080DD61E:
- lsls r0, 2
- ldr r1, _080DD62C @ =_080DD630
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD628: .4byte gTasks
-_080DD62C: .4byte _080DD630
- .align 2, 0
-_080DD630:
- .4byte _080DD644
- .4byte _080DD6A8
- .4byte _080DD6B0
- .4byte _080DD70C
- .4byte _080DD75E
-_080DD644:
- ldrh r2, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- subs r2, r0
- strh r2, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- ldr r3, _080DD6A4 @ =gSprites
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 16
- asrs r2, 19
- strh r2, [r0, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080DD694
- movs r0, 0x14
- strh r0, [r4, 0x1E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD694:
- ldrh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xA2
- bl PlaySE12WithPanning
- b _080DD76C
- .align 2, 0
-_080DD6A4: .4byte gSprites
-_080DD6A8:
- ldrh r0, [r4, 0x1E]
- subs r0, 0x1
- strh r0, [r4, 0x1E]
- b _080DD750
-_080DD6B0:
- ldrh r0, [r4, 0x1A]
- subs r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _080DD6D0
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0x14]
- adds r0, r2
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- b _080DD6DA
-_080DD6D0:
- strh r0, [r4, 0x14]
- strh r0, [r4, 0x16]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DD6DA:
- ldr r2, _080DD708 @ =gSprites
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x24]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r1, 0x26]
- b _080DD76C
- .align 2, 0
-_080DD708: .4byte gSprites
-_080DD70C:
- ldrh r0, [r4, 0x10]
- ldrh r2, [r4, 0xC]
- adds r0, r2
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0xE]
- adds r0, r1
- strh r0, [r4, 0xE]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x1
- strh r0, [r4, 0x1A]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1C
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _080DD74A
- movs r0, 0
- strh r0, [r4, 0x1A]
- adds r0, r4, 0
- bl sub_80DD774
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xAF
- bl PlaySE12WithPanning
-_080DD74A:
- ldrh r0, [r4, 0x18]
- subs r0, 0x1
- strh r0, [r4, 0x18]
-_080DD750:
- lsls r0, 16
- cmp r0, 0
- bne _080DD76C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DD76C
-_080DD75E:
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DD76C
- adds r0, r2, 0
- bl move_anim_task_del
-_080DD76C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD604
-
- thumb_func_start sub_80DD774
-sub_80DD774: @ 80DD774
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bhi _080DD864
- lsls r0, 2
- ldr r1, _080DD790 @ =_080DD794
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DD790: .4byte _080DD794
- .align 2, 0
-_080DD794:
- .4byte _080DD7A8
- .4byte _080DD7B4
- .4byte _080DD7B4
- .4byte _080DD7C0
- .4byte _080DD7CC
-_080DD7A8:
- ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78
- movs r5, 0
- b _080DD7D0
- .align 2, 0
-_080DD7B0: .4byte gSpriteTemplate_83DAD78
-_080DD7B4:
- ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90
- movs r5, 0x50
- b _080DD7D0
- .align 2, 0
-_080DD7BC: .4byte gSpriteTemplate_83DAD90
-_080DD7C0:
- ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90
- movs r5, 0x40
- b _080DD7D0
- .align 2, 0
-_080DD7C8: .4byte gSpriteTemplate_83DAD90
-_080DD7CC:
- ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90
- movs r5, 0x30
-_080DD7D0:
- ldrh r1, [r4, 0xC]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0xE]
- lsls r2, 16
- asrs r2, 19
- lsls r2, 16
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- lsls r0, 2
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r0, r3, 0
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DD85C
- ldr r1, _080DD870 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x12
- strh r1, [r0, 0x2E]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 2
- adds r2, r6, r2
- movs r6, 0xA
- ldrsh r3, [r4, r6]
- lsls r1, r3, 1
- adds r1, r3
- adds r2, r1
- strh r2, [r0, 0x32]
- strh r7, [r0, 0x36]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r2, 1
- movs r3, 0x10
- negs r3, r3
- adds r1, r3, 0
- subs r1, r2
- strh r1, [r0, 0x38]
- ldrh r3, [r0, 0x4]
- lsls r2, r3, 22
- lsrs r2, 22
- adds r2, r5
- ldr r5, _080DD874 @ =0x000003ff
- adds r1, r5, 0
- ands r2, r1
- ldr r1, _080DD878 @ =0xfffffc00
- ands r1, r3
- orrs r1, r2
- strh r1, [r0, 0x4]
- bl sub_80786EC
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
-_080DD85C:
- movs r6, 0x20
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x20]
-_080DD864:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD86C: .4byte gSpriteTemplate_83DAD90
-_080DD870: .4byte gSprites
-_080DD874: .4byte 0x000003ff
-_080DD878: .4byte 0xfffffc00
- thumb_func_end sub_80DD774
-
- thumb_func_start sub_80DD87C
-sub_80DD87C: @ 80DD87C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080DD8AE
- ldr r0, _080DD8B4 @ =sub_80DD604
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080DD8A8
- ldr r0, _080DD8B8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- subs r0, 0x1
- strh r0, [r1, 0x1E]
-_080DD8A8:
- adds r0, r4, 0
- bl DestroySprite
-_080DD8AE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD8B4: .4byte sub_80DD604
-_080DD8B8: .4byte gTasks
- thumb_func_end sub_80DD87C
-
- thumb_func_start sub_80DD8BC
-sub_80DD8BC: @ 80DD8BC
- push {lr}
- ldr r0, _080DD8E4 @ =gUnknown_0202F7B4
- ldr r0, [r0]
- ldrb r1, [r0, 0x11]
- lsrs r0, r1, 4
- lsls r1, 28
- lsrs r1, 28
- subs r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x4
- bls _080DD8DE
- movs r1, 0x1
-_080DD8DE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080DD8E4: .4byte gUnknown_0202F7B4
- thumb_func_end sub_80DD8BC
-
- thumb_func_start sub_80DD8E8
-sub_80DD8E8: @ 80DD8E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD920 @ =gUnknown_03004B00
- ldrb r1, [r5, 0x8]
- bl StartSpriteAnim
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- ldrh r1, [r5, 0x4]
- subs r0, r1
- strh r0, [r4, 0x34]
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- ldr r0, _080DD924 @ =sub_80DD928
- str r0, [r4, 0x1C]
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD920: .4byte gUnknown_03004B00
-_080DD924: .4byte sub_80DD928
- thumb_func_end sub_80DD8E8
-
- thumb_func_start sub_80DD928
-sub_80DD928: @ 80DD928
- push {lr}
- adds r2, r0, 0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x34]
- movs r3, 0x34
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080DD960
- ldrh r3, [r2, 0x32]
- adds r0, r1, r3
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x2E]
- adds r1, r0
- strh r1, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r1, 16
- cmp r1, 0
- ble _080DD972
- movs r0, 0
- strh r0, [r2, 0x34]
- b _080DD972
-_080DD960:
- ldrh r0, [r2, 0x30]
- subs r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080DD972
- adds r0, r2, 0
- bl move_anim_8072740
-_080DD972:
- pop {r0}
- bx r0
- thumb_func_end sub_80DD928
-
- thumb_func_start sub_80DD978
-sub_80DD978: @ 80DD978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DD9A0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DD994
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DD994:
- adds r0, r4, 0
- bl sub_807941C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9A0: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80DD978
-
- thumb_func_start sub_80DD9A4
-sub_80DD9A4: @ 80DD9A4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DD9F4 @ =gUnknown_03004B00
- ldrh r3, [r2]
- ldrh r5, [r4, 0x20]
- adds r1, r3, r5
- strh r1, [r4, 0x20]
- ldrh r1, [r2, 0x2]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r3, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r2, 0x4]
- strh r0, [r4, 0x38]
- ldrb r1, [r2, 0x6]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080DD9F8 @ =sub_80DD9FC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DD9F0: .4byte gUnknown_0202F7C9
-_080DD9F4: .4byte gUnknown_03004B00
-_080DD9F8: .4byte sub_80DD9FC
- thumb_func_end sub_80DD9A4
-
- thumb_func_start sub_80DD9FC
-sub_80DD9FC: @ 80DD9FC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r0, r2
- strh r0, [r4, 0x36]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x28
- bl __divsi3
- ldrh r1, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x26]
- subs r1, r0
- strh r1, [r4, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8C
- ble _080DDA46
- adds r0, r4, 0
- bl move_anim_8072740
-_080DDA46:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DD9FC
-
- thumb_func_start sub_80DDA4C
-sub_80DDA4C: @ 80DDA4C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080DDA84 @ =gUnknown_0202F7B8
- ldr r0, [r2]
- cmp r0, 0x20
- bgt _080DDA60
- ldr r1, _080DDA88 @ =gUnknown_03004B00
- movs r0, 0
- strh r0, [r1, 0xE]
-_080DDA60:
- ldr r2, [r2]
- adds r0, r2, 0
- subs r0, 0x21
- cmp r0, 0x20
- bhi _080DDA70
- ldr r1, _080DDA88 @ =gUnknown_03004B00
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080DDA70:
- cmp r2, 0x41
- ble _080DDA7A
- ldr r1, _080DDA88 @ =gUnknown_03004B00
- movs r0, 0x2
- strh r0, [r1, 0xE]
-_080DDA7A:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080DDA84: .4byte gUnknown_0202F7B8
-_080DDA88: .4byte gUnknown_03004B00
- thumb_func_end sub_80DDA4C
-
- thumb_func_start sub_80DDA8C
-sub_80DDA8C: @ 80DDA8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080DDAE8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080DDAAE
- movs r0, 0
- bl sub_80789D4
- movs r0, 0xC8
- strh r0, [r5, 0xA]
-_080DDAAE:
- ldr r4, _080DDAEC @ =gUnknown_030041B8
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- ldrh r1, [r4]
- adds r1, r0
- strh r1, [r4]
- ldrh r0, [r5, 0xA]
- subs r0, 0x3
- strh r0, [r5, 0xA]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x78
- bne _080DDADA
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r6, 0
- bl move_anim_task_del
-_080DDADA:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDAE8: .4byte gTasks
-_080DDAEC: .4byte gUnknown_030041B8
- thumb_func_end sub_80DDA8C
-
- thumb_func_start sub_80DDAF0
-sub_80DDAF0: @ 80DDAF0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDB5C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDB1C
- movs r0, 0
- bl sub_80789D4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080DDB60 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
-_080DDB1C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x50
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0xA]
- ldr r6, _080DDB60 @ =gUnknown_030041B8
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0x4
- bl Cos
- ldrh r4, [r4, 0xC]
- adds r0, r4
- strh r0, [r6]
- ldr r0, _080DDB64 @ =gUnknown_03004B00
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- ldr r0, _080DDB68 @ =0x00000fff
- cmp r1, r0
- bne _080DDB54
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl move_anim_task_del
-_080DDB54:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDB5C: .4byte gTasks
-_080DDB60: .4byte gUnknown_030041B8
-_080DDB64: .4byte gUnknown_03004B00
-_080DDB68: .4byte 0x00000fff
- thumb_func_end sub_80DDAF0
-
- thumb_func_start sub_80DDB6C
-sub_80DDB6C: @ 80DDB6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DDBC8 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- bl sub_8078BD4
- ldr r0, _080DDBD0 @ =sub_80DDBD8
- str r0, [r4, 0x1C]
- movs r0, 0x10
- strh r0, [r4, 0x3A]
- ldr r1, _080DDBD4 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDBC8: .4byte gUnknown_03004B00
-_080DDBCC: .4byte gUnknown_0202F7C9
-_080DDBD0: .4byte sub_80DDBD8
-_080DDBD4: .4byte REG_BLDCNT
- thumb_func_end sub_80DDB6C
-
- thumb_func_start sub_80DDBD8
-sub_80DDBD8: @ 80DDBD8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80DDCC8
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _080DDBF8
- ldr r0, _080DDBF4 @ =sub_80DDC4C
- str r0, [r4, 0x1C]
- b _080DDC42
- .align 2, 0
-_080DDBF4: .4byte sub_80DDC4C
-_080DDBF8:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC30
- cmp r2, 0xC4
- ble _080DDC42
-_080DDC30:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC42
- ldr r0, _080DDC48 @ =gUnknown_0202F7D2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xC4
- bl PlaySE12WithPanning
-_080DDC42:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDC48: .4byte gUnknown_0202F7D2
- thumb_func_end sub_80DDBD8
-
- thumb_func_start sub_80DDC4C
-sub_80DDC4C: @ 80DDC4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078B5C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r1, 0xF
- bl Cos
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x38]
- adds r0, r2, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x38]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _080DDC92
- cmp r2, 0xC4
- ble _080DDC9E
-_080DDC92:
- lsls r0, 16
- cmp r0, 0
- ble _080DDC9E
- movs r0, 0xC4
- bl PlaySE
-_080DDC9E:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DDCBC
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DDCB8 @ =sub_807861C
- str r0, [r4, 0x1C]
- b _080DDCC2
- .align 2, 0
-_080DDCB8: .4byte sub_807861C
-_080DDCBC:
- adds r0, r4, 0
- bl sub_80DDCC8
-_080DDCC2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDC4C
-
- thumb_func_start sub_80DDCC8
-sub_80DDCC8: @ 80DDCC8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0xFF
- ble _080DDCEC
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- lsls r0, 16
- ldr r1, _080DDCE8 @ =0x010d0000
- cmp r0, r1
- bne _080DDD4C
- movs r0, 0
- b _080DDD4A
- .align 2, 0
-_080DDCE8: .4byte 0x010d0000
-_080DDCEC:
- ldrh r1, [r3, 0x3C]
- adds r4, r1, 0x1
- strh r4, [r3, 0x3C]
- movs r0, 0xFF
- ands r0, r1
- cmp r0, 0
- bne _080DDD4C
- ldr r1, _080DDD10 @ =0xffffff00
- ands r1, r4
- strh r1, [r3, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080DDD14
- adds r0, r2, 0x1
- b _080DDD16
- .align 2, 0
-_080DDD10: .4byte 0xffffff00
-_080DDD14:
- subs r0, r2, 0x1
-_080DDD16:
- strh r0, [r3, 0x3A]
- ldr r2, _080DDD54 @ =REG_BLDALPHA
- ldrh r1, [r3, 0x3A]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080DDD32
- cmp r0, 0x10
- bne _080DDD3E
-_080DDD32:
- ldrh r0, [r3, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r3, 0x3C]
-_080DDD3E:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080DDD4C
- movs r0, 0x80
- lsls r0, 1
-_080DDD4A:
- strh r0, [r3, 0x3A]
-_080DDD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DDCC8
-
- thumb_func_start sub_80DDD58
-sub_80DDD58: @ 80DDD58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r1, _080DDD74 @ =sub_80DDD78
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDD74: .4byte sub_80DDD78
- thumb_func_end sub_80DDD58
-
- thumb_func_start sub_80DDD78
-sub_80DDD78: @ 80DDD78
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x82
- bhi _080DDDAC
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x8
- b _080DDDB6
-_080DDDAC:
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
-_080DDDB6:
- orrs r1, r0
- strb r1, [r4, 0x5]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x13
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x50
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3D
- bne _080DDDE8
- adds r0, r4, 0
- bl move_anim_8072740
-_080DDDE8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDD78
-
- thumb_func_start sub_80DDDF0
-sub_80DDDF0: @ 80DDDF0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080DDE68 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078E70
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x80
- movs r3, 0
- bl obj_id_set_rotscale
- ldr r1, _080DDE6C @ =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r1, _080DDE70 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x80
- strh r1, [r0, 0x8]
- ldr r1, _080DDE74 @ =gUnknown_03004B00
- ldrh r1, [r1]
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x10
- strh r1, [r0, 0xE]
- ldr r1, _080DDE78 @ =sub_80DDE7C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDE68: .4byte REG_BLDCNT
-_080DDE6C: .4byte gSprites
-_080DDE70: .4byte gTasks
-_080DDE74: .4byte gUnknown_03004B00
-_080DDE78: .4byte sub_80DDE7C
- thumb_func_end sub_80DDDF0
-
- thumb_func_start sub_80DDE7C
-sub_80DDE7C: @ 80DDE7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DDEC4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DDEBE
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xC]
- adds r1, 0x1
- strh r1, [r3, 0xC]
- ldrh r0, [r3, 0xE]
- subs r0, 0x1
- strh r0, [r3, 0xE]
- ldr r2, _080DDEC8 @ =REG_BLDALPHA
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x9
- bne _080DDEBE
- ldr r0, _080DDECC @ =sub_80DDED0
- str r0, [r3]
-_080DDEBE:
- pop {r0}
- bx r0
- .align 2, 0
-_080DDEC4: .4byte gTasks
-_080DDEC8: .4byte REG_BLDALPHA
-_080DDECC: .4byte sub_80DDED0
- thumb_func_end sub_80DDE7C
-
- thumb_func_start sub_80DDED0
-sub_80DDED0: @ 80DDED0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _080DDEF4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DDEF8
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080DDF36
- .align 2, 0
-_080DDEF4: .4byte gTasks
-_080DDEF8:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r1, r0, 24
- ldrh r0, [r4, 0x8]
- adds r0, 0x8
- movs r6, 0
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _080DDF22
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- adds r0, r1, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- b _080DDF36
-_080DDF22:
- adds r0, r1, 0
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
- ldr r0, _080DDF3C @ =REG_BLDCNT
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
-_080DDF36:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDF3C: .4byte REG_BLDCNT
- thumb_func_end sub_80DDED0
-
- thumb_func_start sub_80DDF40
-sub_80DDF40: @ 80DDF40
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r5, [r4, 0x20]
- ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gUnknown_0202F7C8
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- strh r0, [r4, 0x20]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- mov r1, r9
- strh r1, [r4, 0x2E]
- ldr r2, _080DDFE0 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r4, 0x30]
- ldrh r1, [r2, 0x2]
- strh r1, [r4, 0x32]
- ldrh r1, [r2, 0x4]
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x20]
- lsls r1, 4
- strh r1, [r4, 0x36]
- lsls r0, 4
- strh r0, [r4, 0x38]
- lsls r5, 16
- asrs r5, 16
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- subs r5, r0
- lsls r5, 4
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r5, 0
- str r2, [sp]
- bl __divsi3
- strh r0, [r4, 0x3A]
- lsls r6, 16
- asrs r6, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- subs r6, r0
- lsls r6, 4
- ldr r2, [sp]
- movs r0, 0
- ldrsh r1, [r2, r0]
- lsls r1, 1
- adds r0, r6, 0
- bl __divsi3
- strh r0, [r4, 0x3C]
- ldr r0, _080DDFE4 @ =sub_80DDFE8
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DDFDC: .4byte gUnknown_0202F7C8
-_080DDFE0: .4byte gUnknown_03004B00
-_080DDFE4: .4byte sub_80DDFE8
- thumb_func_end sub_80DDF40
-
- thumb_func_start sub_80DDFE8
-sub_80DDFE8: @ 80DDFE8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080DE032
- cmp r0, 0x1
- bgt _080DDFFE
- cmp r0, 0
- beq _080DE008
- b _080DE0F6
-_080DDFFE:
- cmp r0, 0x2
- beq _080DE09C
- cmp r0, 0x3
- beq _080DE0F0
- b _080DE0F6
-_080DE008:
- ldrh r0, [r5, 0x3A]
- ldrh r2, [r5, 0x36]
- adds r0, r2
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- b _080DE0E2
-_080DE032:
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE098 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x30]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x20]
- lsls r0, 4
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x22]
- lsls r0, 4
- strh r0, [r5, 0x38]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3A]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r2, 0x22
- ldrsh r1, [r5, r2]
- subs r0, r1
- lsls r0, 4
- movs r2, 0x34
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r5, 0x3C]
- b _080DE0E2
- .align 2, 0
-_080DE098: .4byte gUnknown_0202F7C9
-_080DE09C:
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r1, [r5, 0x3C]
- ldrh r2, [r5, 0x38]
- adds r1, r2
- strh r1, [r5, 0x38]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r5, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x34]
- subs r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- cmp r0, 0
- bgt _080DE0F6
- ldr r4, _080DE0EC @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_080DE0E2:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _080DE0F6
- .align 2, 0
-_080DE0EC: .4byte gUnknown_0202F7C9
-_080DE0F0:
- adds r0, r5, 0
- bl move_anim_8074EE0
-_080DE0F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DDFE8
-
- thumb_func_start sub_80DE0FC
-sub_80DE0FC: @ 80DE0FC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080DE110 @ =sub_80DE114
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE110: .4byte sub_80DE114
- thumb_func_end sub_80DE0FC
-
- thumb_func_start sub_80DE114
-sub_80DE114: @ 80DE114
- push {r4-r6,lr}
- adds r3, r0, 0
- movs r5, 0
- movs r6, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080DE1AA
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x4
- ands r0, r2
- adds r4, r1, 0
- cmp r0, 0
- bne _080DE13E
- movs r0, 0x4
- orrs r0, r2
- strb r0, [r4]
-_080DE13E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _080DE14E
- cmp r0, 0x1
- beq _080DE158
- movs r6, 0x1
- b _080DE162
-_080DE14E:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _080DE162
- b _080DE166
-_080DE158:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bne _080DE162
- movs r5, 0x1
-_080DE162:
- cmp r5, 0
- beq _080DE198
-_080DE166:
- ldrb r2, [r4]
- 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
- strb r0, [r4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080DE1AA
- strh r1, [r3, 0x32]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080DE1AA
-_080DE198:
- cmp r6, 0
- beq _080DE1A4
- adds r0, r3, 0
- bl move_anim_8072740
- b _080DE1AA
-_080DE1A4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_080DE1AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE114
-
- thumb_func_start sub_80DE1B0
-sub_80DE1B0: @ 80DE1B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE1DC @ =gTasks
- adds r5, r0, r1
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- movs r6, 0
- movs r1, 0
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE1E0
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DE2C0
- .align 2, 0
-_080DE1DC: .4byte gTasks
-_080DE1E0:
- strh r1, [r5, 0xA]
- movs r0, 0xF
- strh r0, [r5, 0xC]
- movs r0, 0x2
- strh r0, [r5, 0xE]
- strh r1, [r5, 0x10]
- ldr r1, _080DE244 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080DE248 @ =REG_BLDALPHA
- ldrh r0, [r5, 0xE]
- lsls r0, 8
- ldrh r1, [r5, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r4, _080DE24C @ =gSprites
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x50
- strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DE258
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE254 @ =0x0000ff70
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x70
- b _080DE276
- .align 2, 0
-_080DE244: .4byte REG_BLDCNT
-_080DE248: .4byte REG_BLDALPHA
-_080DE24C: .4byte gSprites
-_080DE250: .4byte gUnknown_0202F7C9
-_080DE254: .4byte 0x0000ff70
-_080DE258:
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x90
- strh r1, [r0, 0x30]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2C8 @ =0x0000ff90
-_080DE276:
- strh r1, [r0, 0x32]
- ldr r4, _080DE2CC @ =gSprites
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x34]
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x36]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080DE2D0 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080DE2D4 @ =sub_8078394
- str r1, [r0]
- ldr r0, _080DE2D8 @ =sub_80DE2DC
- str r0, [r5]
-_080DE2C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE2C8: .4byte 0x0000ff90
-_080DE2CC: .4byte gSprites
-_080DE2D0: .4byte SpriteCallbackDummy
-_080DE2D4: .4byte sub_8078394
-_080DE2D8: .4byte sub_80DE2DC
- thumb_func_end sub_80DE1B0
-
- thumb_func_start sub_80DE2DC
-sub_80DE2DC: @ 80DE2DC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DE300 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE37C
- cmp r0, 0x1
- bgt _080DE304
- cmp r0, 0
- beq _080DE30A
- b _080DE3A6
- .align 2, 0
-_080DE300: .4byte gTasks
-_080DE304:
- cmp r0, 0x2
- beq _080DE3A0
- b _080DE3A6
-_080DE30A:
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0x1
- bne _080DE328
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DE328
- subs r0, r1, 0x1
- strh r0, [r4, 0xC]
-_080DE328:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _080DE33E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DE33E
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
-_080DE33E:
- ldr r2, _080DE374 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0xC]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DE3A6
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _080DE3A6
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DE378 @ =gSprites
- adds r0, r1
- bl obj_delete_but_dont_free_vram
- movs r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE374: .4byte REG_BLDALPHA
-_080DE378: .4byte gSprites
-_080DE37C:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DE3A6
- ldr r0, _080DE39C @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- b _080DE3A6
- .align 2, 0
-_080DE39C: .4byte REG_BLDCNT
-_080DE3A0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080DE3A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE2DC
-
- thumb_func_start sub_80DE3AC
-sub_80DE3AC: @ 80DE3AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080DE3CC @ =gTasks
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- ldr r2, _080DE3D0 @ =sub_80DE3D4
- str r2, [r1]
- bl _call_via_r2
- pop {r0}
- bx r0
- .align 2, 0
-_080DE3CC: .4byte gTasks
-_080DE3D0: .4byte sub_80DE3D4
- thumb_func_end sub_80DE3AC
-
- thumb_func_start sub_80DE3D4
-sub_80DE3D4: @ 80DE3D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080DE40C @ =gTasks
- adds r5, r0, r1
- ldr r0, _080DE410 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080DE400
- b _080DE604
-_080DE400:
- lsls r0, 2
- ldr r1, _080DE414 @ =_080DE418
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DE40C: .4byte gTasks
-_080DE410: .4byte gUnknown_0202F7C9
-_080DE414: .4byte _080DE418
- .align 2, 0
-_080DE418:
- .4byte _080DE42C
- .4byte _080DE500
- .4byte _080DE544
- .4byte _080DE5AC
- .4byte _080DE5E0
-_080DE42C:
- ldr r7, _080DE460 @ =0x00002771
- adds r0, r7, 0
- bl AllocSpritePalette
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- mov r8, r2
- strh r0, [r5, 0x24]
- cmp r0, 0xFF
- beq _080DE456
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bge _080DE464
- adds r0, r7, 0
- bl FreeSpritePaletteByTag
-_080DE456:
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DE60A
- .align 2, 0
-_080DE460: .4byte 0x00002771
-_080DE464:
- ldr r4, _080DE4E4 @ =gSprites
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r5, 0x24]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r2, 0x8
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- mov r3, r8
- strh r3, [r5, 0xA]
- strh r3, [r5, 0xC]
- movs r0, 0x10
- strh r0, [r5, 0xE]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x10]
- cmp r6, 0x1
- bne _080DE4EC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4E8 @ =0x0000fdff
- b _080DE4F4
- .align 2, 0
-_080DE4E4: .4byte gSprites
-_080DE4E8: .4byte 0x0000fdff
-_080DE4EC:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE4FC @ =0x0000fbff
-_080DE4F4:
- ands r0, r1
- strh r0, [r2]
- b _080DE604
- .align 2, 0
-_080DE4FC: .4byte 0x0000fbff
-_080DE500:
- movs r1, 0x24
- ldrsh r0, [r5, r1]
- adds r0, 0x10
- lsls r0, 4
- strh r0, [r5, 0x24]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- lsls r0, 1
- ldr r1, _080DE534 @ =gPlttBufferUnfaded
- adds r0, r1
- movs r3, 0x24
- ldrsh r1, [r5, r3]
- lsls r1, 1
- ldr r2, _080DE538 @ =gPlttBufferFaded
- adds r1, r2
- ldr r2, _080DE53C @ =REG_BG0CNT
- bl CpuSet
- ldrh r0, [r5, 0x10]
- ldr r3, _080DE540 @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0xA
- bl BlendPalette
- b _080DE604
- .align 2, 0
-_080DE534: .4byte gPlttBufferUnfaded
-_080DE538: .4byte gPlttBufferFaded
-_080DE53C: .4byte REG_BG0CNT
-_080DE540: .4byte 0x00003c0d
-_080DE544:
- ldr r2, _080DE580 @ =gSprites
- movs r0, 0x22
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- subs r1, 0x20
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _080DE564
- movs r2, 0
-_080DE564:
- cmp r6, 0x1
- bne _080DE584
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x4
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- b _080DE59C
- .align 2, 0
-_080DE580: .4byte gSprites
-_080DE584:
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r2, 0
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- str r2, [sp]
- movs r2, 0x8
- str r2, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
-_080DE59C:
- movs r2, 0x2
- movs r3, 0x6
- bl sub_8089944
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- b _080DE604
-_080DE5AC:
- cmp r6, 0x1
- bne _080DE5C0
- ldr r1, _080DE5B8 @ =REG_BLDCNT
- ldr r2, _080DE5BC @ =0x00003f42
- adds r0, r2, 0
- b _080DE5C6
- .align 2, 0
-_080DE5B8: .4byte REG_BLDCNT
-_080DE5BC: .4byte 0x00003f42
-_080DE5C0:
- ldr r1, _080DE5D4 @ =REG_BLDCNT
- ldr r3, _080DE5D8 @ =0x00003f44
- adds r0, r3, 0
-_080DE5C6:
- strh r0, [r1]
- ldr r1, _080DE5DC @ =REG_BLDALPHA
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _080DE604
- .align 2, 0
-_080DE5D4: .4byte REG_BLDCNT
-_080DE5D8: .4byte 0x00003f44
-_080DE5DC: .4byte REG_BLDALPHA
-_080DE5E0:
- cmp r6, 0x1
- bne _080DE5F0
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE5FA
-_080DE5F0:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE5FA:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- ldr r0, _080DE618 @ =sub_80DE61C
- str r0, [r5]
-_080DE604:
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
-_080DE60A:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE618: .4byte sub_80DE61C
- thumb_func_end sub_80DE3D4
-
- thumb_func_start sub_80DE61C
-sub_80DE61C: @ 80DE61C
- 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, _080DE6A0 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r0, 0x1
- ands r0, r1
- strh r0, [r4, 0x12]
- cmp r0, 0
- bne _080DE654
- ldr r1, _080DE6A4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- strh r0, [r4, 0xC]
-_080DE654:
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _080DE676
- ldr r1, _080DE6A4 @ =gSineTable
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x12
- bl __divsi3
- movs r1, 0x10
- subs r1, r0
- strh r1, [r4, 0xE]
-_080DE676:
- ldr r2, _080DE6A8 @ =REG_BLDALPHA
- ldrh r0, [r4, 0xE]
- lsls r0, 8
- ldrh r1, [r4, 0xC]
- orrs r0, r1
- strh r0, [r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0x80
- bne _080DE698
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _080DE6AC @ =sub_80DE6B0
- str r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
-_080DE698:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE6A0: .4byte gTasks
-_080DE6A4: .4byte gSineTable
-_080DE6A8: .4byte REG_BLDALPHA
-_080DE6AC: .4byte sub_80DE6B0
- thumb_func_end sub_80DE61C
-
- thumb_func_start sub_80DE6B0
-sub_80DE6B0: @ 80DE6B0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080DE6E0 @ =gTasks
- adds r4, r0, r1
- ldr r0, _080DE6E4 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080DE72C
- cmp r0, 0x1
- bgt _080DE6E8
- cmp r0, 0
- beq _080DE6EE
- b _080DE7AA
- .align 2, 0
-_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gUnknown_0202F7C9
-_080DE6E8:
- cmp r0, 0x2
- beq _080DE740
- b _080DE7AA
-_080DE6EE:
- ldr r1, _080DE710 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- cmp r6, 0x1
- bne _080DE718
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE714 @ =0x0000fdff
- b _080DE720
- .align 2, 0
-_080DE710: .4byte gUnknown_03004DC0
-_080DE714: .4byte 0x0000fdff
-_080DE718:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080DE728 @ =0x0000fbff
-_080DE720:
- ands r0, r1
- strh r0, [r2]
- b _080DE7AA
- .align 2, 0
-_080DE728: .4byte 0x0000fbff
-_080DE72C:
- ldrh r0, [r4, 0x10]
- ldr r3, _080DE73C @ =0x00003c0d
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- b _080DE7AA
- .align 2, 0
-_080DE73C: .4byte 0x00003c0d
-_080DE740:
- ldr r3, _080DE788 @ =gSprites
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl obj_delete_but_dont_free_vram
- ldr r0, _080DE78C @ =0x00002771
- bl FreeSpritePaletteByTag
- ldr r0, _080DE790 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- cmp r6, 0x1
- bne _080DE794
- subs r0, 0x52
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 2
- b _080DE79E
- .align 2, 0
-_080DE788: .4byte gSprites
-_080DE78C: .4byte 0x00002771
-_080DE790: .4byte REG_BLDCNT
-_080DE794:
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
-_080DE79E:
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
-_080DE7AA:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE6B0
-
- thumb_func_start sub_80DE7B8
-sub_80DE7B8: @ 80DE7B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- ldr r0, _080DE7F4 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DE800
- ldr r4, _080DE7F8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE7FC @ =gUnknown_0202F7C9
- b _080DE824
- .align 2, 0
-_080DE7F4: .4byte gUnknown_03004B00
-_080DE7F8: .4byte gUnknown_0202F7C8
-_080DE7FC: .4byte gUnknown_0202F7C9
-_080DE800:
- ldr r4, _080DE8C8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r2, 0xE0
- lsls r2, 13
- adds r0, r2
- lsrs r5, r0, 16
- ldr r4, _080DE8CC @ =gUnknown_0202F7C8
-_080DE824:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 8
- movs r1, 0xE0
- lsls r1, 13
- adds r0, r1
- lsrs r0, 16
- mov r9, r0
- mov r8, r5
- mov r2, r9
- subs r4, r2, r5
- lsls r4, 16
- lsrs r4, 16
- lsls r0, r6, 4
- strh r0, [r7, 0x2E]
- lsls r0, r5, 4
- strh r0, [r7, 0x30]
- mov r1, r10
- subs r0, r1, r6
- lsls r0, 4
- ldr r5, _080DE8D0 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl __divsi3
- strh r0, [r7, 0x32]
- lsls r4, 16
- asrs r4, 12
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl __divsi3
- strh r0, [r7, 0x34]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0x36]
- mov r1, r10
- strh r1, [r7, 0x38]
- mov r2, r9
- strh r2, [r7, 0x3A]
- movs r1, 0x36
- ldrsh r0, [r7, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r7, 0x3C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x5]
- strh r6, [r7, 0x20]
- mov r2, r8
- strh r2, [r7, 0x22]
- ldr r0, _080DE8D4 @ =sub_80DE8D8
- str r0, [r7, 0x1C]
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DE8C8: .4byte gUnknown_0202F7C9
-_080DE8CC: .4byte gUnknown_0202F7C8
-_080DE8D0: .4byte gUnknown_03004B00
-_080DE8D4: .4byte sub_80DE8D8
- thumb_func_end sub_80DE7B8
-
- thumb_func_start sub_80DE8D8
-sub_80DE8D8: @ 80DE8D8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x36]
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080DE910
- ldrh r0, [r2, 0x32]
- ldrh r4, [r2, 0x2E]
- adds r0, r4
- strh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x34]
- ldrh r4, [r2, 0x30]
- adds r1, r4
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r2, 0x22]
- subs r0, r3, 0x1
- strh r0, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080DE910
- strh r0, [r2, 0x2E]
-_080DE910:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DE8D8
-
- thumb_func_start sub_80DE918
-sub_80DE918: @ 80DE918
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DEA68 @ =gTasks
- adds r1, r0
- str r1, [sp]
- ldr r1, _080DEA6C @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0
- ldr r1, [sp]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- movs r0, 0x10
- strh r0, [r1, 0x1A]
- ldr r2, _080DEA70 @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldr r4, _080DEA74 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DE988
- b _080DEA88
-_080DE988:
- movs r4, 0
-_080DE98A:
- lsls r1, r4, 16
- asrs r3, r1, 16
- ldr r0, _080DEA74 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- str r1, [sp, 0x10]
- cmp r3, r2
- beq _080DEA56
- movs r0, 0x2
- eors r2, r0
- cmp r3, r2
- beq _080DEA56
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080DEA56
- ldr r6, [sp, 0x4]
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- asrs r7, r0, 16
- ldr r0, _080DEA78 @ =gSpriteTemplate_83DAF08
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEA56
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_807A100
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- lsls r5, r0, 4
- add r5, r8
- lsls r5, 2
- ldr r1, _080DEA7C @ =gSprites
- adds r4, r5, r1
- lsls r0, r6, 4
- strh r0, [r4, 0x2E]
- lsls r0, r7, 4
- strh r0, [r4, 0x30]
- mov r2, r10
- subs r0, r2, r6
- lsls r0, 4
- ldr r3, _080DEA70 @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- lsls r0, r3, 16
- asrs r0, 16
- subs r0, r7
- lsls r0, 4
- ldr r2, _080DEA70 @ =gUnknown_03004B00
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEA70 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- ldr r0, _080DEA80 @ =gSprites + 0x1C
- adds r5, r0
- ldr r0, _080DEA84 @ =sub_80DE8D8
- str r0, [r5]
- ldr r2, [sp]
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- adds r1, 0xD
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
-_080DEA56:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _080DE98A
- b _080DEB0C
- .align 2, 0
-_080DEA68: .4byte gTasks
-_080DEA6C: .4byte REG_BLDCNT
-_080DEA70: .4byte gUnknown_03004B00
-_080DEA74: .4byte gUnknown_0202F7C8
-_080DEA78: .4byte gSpriteTemplate_83DAF08
-_080DEA7C: .4byte gSprites
-_080DEA80: .4byte gSprites + 0x1C
-_080DEA84: .4byte sub_80DE8D8
-_080DEA88:
- ldr r0, _080DEB24 @ =gSpriteTemplate_83DAF08
- ldr r7, [sp, 0x4]
- ldr r2, [sp, 0x8]
- lsls r1, r2, 16
- asrs r1, 16
- str r1, [sp, 0xC]
- adds r1, r7, 0
- ldr r2, [sp, 0xC]
- movs r3, 0x37
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x40
- beq _080DEB0C
- movs r3, 0x30
- mov r10, r3
- movs r0, 0x28
- mov r9, r0
- ldr r6, _080DEB28 @ =gSprites
- mov r1, r8
- lsls r5, r1, 4
- add r5, r8
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, r7, 4
- strh r0, [r4, 0x2E]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 4
- strh r0, [r4, 0x30]
- subs r0, r3, r7
- lsls r0, 4
- ldr r3, _080DEB2C @ =gUnknown_03004B00
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl __divsi3
- strh r0, [r4, 0x32]
- mov r3, r9
- ldr r1, [sp, 0xC]
- subs r0, r3, r1
- lsls r0, 4
- ldr r2, _080DEB2C @ =gUnknown_03004B00
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl __divsi3
- strh r0, [r4, 0x34]
- ldr r1, _080DEB2C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x36]
- mov r2, r10
- strh r2, [r4, 0x38]
- mov r3, r9
- strh r3, [r4, 0x3A]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _080DEB30 @ =sub_80DE8D8
- str r0, [r5]
- mov r1, r8
- ldr r0, [sp]
- strh r1, [r0, 0x22]
- movs r0, 0x1
- ldr r2, [sp]
- strh r0, [r2, 0x20]
-_080DEB0C:
- ldr r0, _080DEB34 @ =sub_80DEB38
- ldr r3, [sp]
- str r0, [r3]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEB24: .4byte gSpriteTemplate_83DAF08
-_080DEB28: .4byte gSprites
-_080DEB2C: .4byte gUnknown_03004B00
-_080DEB30: .4byte sub_80DE8D8
-_080DEB34: .4byte sub_80DEB38
- thumb_func_end sub_80DE918
-
- thumb_func_start sub_80DEB38
-sub_80DEB38: @ 80DEB38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080DEB5C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080DEBEE
- cmp r1, 0x1
- bgt _080DEB60
- cmp r1, 0
- beq _080DEB6E
- b _080DECA4
- .align 2, 0
-_080DEB5C: .4byte gTasks
-_080DEB60:
- cmp r1, 0x2
- bne _080DEB66
- b _080DEC80
-_080DEB66:
- cmp r1, 0x3
- bne _080DEB6C
- b _080DEC94
-_080DEB6C:
- b _080DECA4
-_080DEB6E:
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DEBCE
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DEBCE
- strh r1, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DEBA4
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEBB2
- adds r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEBB2
-_080DEBA4:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBB2
- subs r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEBB2:
- ldr r2, _080DEBE0 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- ble _080DEBCE
- movs r0, 0
- strh r0, [r4, 0x16]
- movs r0, 0x1
- strh r0, [r4, 0x14]
-_080DEBCE:
- ldrh r1, [r4, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEBE4
- subs r0, r1, 0x1
- strh r0, [r4, 0x1C]
- b _080DECA4
- .align 2, 0
-_080DEBE0: .4byte REG_BLDALPHA
-_080DEBE4:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080DECA4
- b _080DEC8C
-_080DEBEE:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DECA4
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080DEC1E
- ldrh r1, [r4, 0x18]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080DEC2C
- subs r0, r1, 0x1
- strh r0, [r4, 0x18]
- b _080DEC2C
-_080DEC1E:
- ldrh r1, [r4, 0x1A]
- movs r2, 0x1A
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DEC2C
- adds r0, r1, 0x1
- strh r0, [r4, 0x1A]
-_080DEC2C:
- ldr r2, _080DEC48 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x1A]
- lsls r0, 8
- ldrh r1, [r4, 0x18]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, [r4, 0x18]
- movs r0, 0x80
- lsls r0, 13
- cmp r1, r0
- bne _080DECA4
- movs r5, 0
- b _080DEC70
- .align 2, 0
-_080DEC48: .4byte REG_BLDALPHA
-_080DEC4C:
- adds r1, r5, 0
- adds r1, 0xD
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080DEC7C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080DEC70:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r5, r0
- blt _080DEC4C
- b _080DEC8C
- .align 2, 0
-_080DEC7C: .4byte gSprites
-_080DEC80:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- cmp r0, 0
- ble _080DECA4
-_080DEC8C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DECA4
-_080DEC94:
- ldr r0, _080DECAC @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080DECA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DECAC: .4byte REG_BLDCNT
- thumb_func_end sub_80DEB38
-
- thumb_func_start sub_80DECB0
-sub_80DECB0: @ 80DECB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080DECF8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080DECFC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080DED00 @ =REG_WININ
- ldr r2, _080DED04 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x20
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xC8
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080DED08 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DECF4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080DED0C
-_080DECF4:
- movs r6, 0x28
- b _080DED0E
- .align 2, 0
-_080DECF8: .4byte gUnknown_030042C4
-_080DECFC: .4byte gUnknown_03004240
-_080DED00: .4byte REG_WININ
-_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gUnknown_0202F7C8
-_080DED0C:
- movs r6, 0xC8
-_080DED0E:
- ldr r1, _080DED4C @ =gUnknown_030042C4
- lsls r3, r6, 16
- asrs r2, r3, 16
- lsls r0, r2, 8
- orrs r0, r2
- strh r0, [r1]
- ldr r1, _080DED50 @ =gUnknown_03004240
- movs r5, 0x28
- ldr r0, _080DED54 @ =0x00002828
- strh r0, [r1]
- lsrs r3, 16
- movs r1, 0xF0
- subs r1, r2
- movs r4, 0x48
- ldr r2, _080DED58 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r2
- strh r3, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r5, [r0, 0xE]
- strh r4, [r0, 0x10]
- strh r6, [r0, 0x12]
- strh r5, [r0, 0x14]
- ldr r1, _080DED5C @ =sub_80DED60
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DED4C: .4byte gUnknown_030042C4
-_080DED50: .4byte gUnknown_03004240
-_080DED54: .4byte 0x00002828
-_080DED58: .4byte gTasks
-_080DED5C: .4byte sub_80DED60
- thumb_func_end sub_80DECB0
-
- thumb_func_start sub_80DED60
-sub_80DED60: @ 80DED60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DEE80 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0x8]
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
- ldrh r5, [r4, 0xA]
- ldrh r7, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- mov r10, r0
- ldrh r2, [r4, 0x10]
- str r2, [sp, 0xC]
- ldrh r0, [r4, 0x12]
- ldrh r2, [r4, 0x14]
- mov r8, r2
- lsls r1, 16
- asrs r6, r1, 16
- cmp r6, 0xF
- ble _080DED9C
- b _080DEE8C
-_080DED9C:
- lsls r0, 16
- asrs r0, 16
- bl __floatsidf
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- lsls r0, r5, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- adds r5, r1, 0
- adds r4, r0, 0
- adds r0, r6, 0
- bl __floatsidf
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- adds r1, r5, 0
- adds r0, r4, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r0, r7, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- adds r5, r1, 0
- adds r4, r0, 0
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __subdf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, [sp, 0xC]
- lsls r0, r1, 16
- asrs r0, 16
- bl __floatsidf
- ldr r2, _080DEE84 @ =0x3fb00000
- ldr r3, _080DEE88 @ =0x00000000
- bl __muldf3
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl __muldf3
- adds r3, r1, 0
- adds r2, r0, 0
- adds r1, r5, 0
- adds r0, r4, 0
- bl __adddf3
- bl __fixunsdfsi
- lsls r0, 16
- lsrs r5, r0, 16
- b _080DEEBA
- .align 2, 0
-_080DEE80: .4byte gTasks
-_080DEE84: .4byte 0x3fb00000
-_080DEE88: .4byte 0x00000000
-_080DEE8C:
- movs r2, 0
- mov r9, r2
- movs r7, 0xF0
- movs r6, 0
- movs r5, 0x70
- str r6, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- lsls r0, 16
- lsrs r0, 16
- str r6, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080DEEDC @ =sub_80DEEE8
- str r0, [r4]
-_080DEEBA:
- ldr r1, _080DEEE0 @ =gUnknown_030042C4
- mov r2, r9
- lsls r0, r2, 8
- orrs r7, r0
- strh r7, [r1]
- ldr r1, _080DEEE4 @ =gUnknown_03004240
- lsls r0, r6, 8
- orrs r5, r0
- strh r5, [r1]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEEDC: .4byte sub_80DEEE8
-_080DEEE0: .4byte gUnknown_030042C4
-_080DEEE4: .4byte gUnknown_03004240
- thumb_func_end sub_80DED60
-
- thumb_func_start sub_80DEEE8
-sub_80DEEE8: @ 80DEEE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080DEF28 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080DEF20
- ldr r0, _080DEF2C @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _080DEF30 @ =gUnknown_03004240
- strh r2, [r0]
- ldr r0, _080DEF34 @ =REG_WININ
- ldr r4, _080DEF38 @ =0x00003f3f
- adds r1, r4, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x6
- strh r2, [r0]
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r3, 0
- bl move_anim_task_del
-_080DEF20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF28: .4byte gPaletteFade
-_080DEF2C: .4byte gUnknown_030042C4
-_080DEF30: .4byte gUnknown_03004240
-_080DEF34: .4byte REG_WININ
-_080DEF38: .4byte 0x00003f3f
- thumb_func_end sub_80DEEE8
-
- thumb_func_start sub_80DEF3C
-sub_80DEF3C: @ 80DEF3C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _080DEF68 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080DEF70
- movs r2, 0x18
- ldr r3, _080DEF6C @ =0x0000fffe
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
- b _080DEF74
- .align 2, 0
-_080DEF68: .4byte gUnknown_0202F7C8
-_080DEF6C: .4byte 0x0000fffe
-_080DEF70:
- ldr r2, _080DEF90 @ =0x0000ffe8
- movs r3, 0x2
-_080DEF74:
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- strh r3, [r4, 0x30]
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- ldr r0, _080DEF94 @ =sub_80DEF98
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DEF90: .4byte 0x0000ffe8
-_080DEF94: .4byte sub_80DEF98
- thumb_func_end sub_80DEF3C
-
- thumb_func_start sub_80DEF98
-sub_80DEF98: @ 80DEF98
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080DEFAA
- subs r0, r1, 0x1
- b _080DF00E
-_080DEFAA:
- ldrh r0, [r3, 0x30]
- ldrh r4, [r3, 0x24]
- adds r1, r0, r4
- strh r1, [r3, 0x24]
- adds r0, r1, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bls _080DF010
- ldrh r0, [r3, 0x20]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r0, 0
- strh r0, [r3, 0x24]
- ldrh r2, [r3, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x8
- ldr r4, _080DEFFC @ =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _080DF000 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DF00C
- movs r0, 0x1E
- strh r0, [r3, 0x2E]
- ldr r0, _080DF004 @ =sub_80782D8
- str r0, [r3, 0x1C]
- ldr r1, _080DF008 @ =sub_80DF018
- adds r0, r3, 0
- bl oamt_set_x3A_32
- b _080DF010
- .align 2, 0
-_080DEFFC: .4byte 0x000003ff
-_080DF000: .4byte 0xfffffc00
-_080DF004: .4byte sub_80782D8
-_080DF008: .4byte sub_80DF018
-_080DF00C:
- movs r0, 0x28
-_080DF00E:
- strh r0, [r3, 0x2E]
-_080DF010:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DEF98
-
- thumb_func_start sub_80DF018
-sub_80DF018: @ 80DF018
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _080DF044
- ldr r1, _080DF040 @ =REG_BLDCNT
- movs r4, 0xFD
- lsls r4, 6
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- strh r2, [r3, 0x32]
- b _080DF082
- .align 2, 0
-_080DF040: .4byte REG_BLDCNT
-_080DF044:
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- bgt _080DF054
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080DF082
-_080DF054:
- movs r0, 0
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- ldr r2, _080DF088 @ =REG_BLDALPHA
- movs r1, 0x10
- subs r1, r0
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- cmp r0, 0x10
- bne _080DF082
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF08C @ =sub_80DF090
- str r0, [r3, 0x1C]
-_080DF082:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF088: .4byte REG_BLDALPHA
-_080DF08C: .4byte sub_80DF090
- thumb_func_end sub_80DF018
-
- thumb_func_start sub_80DF090
-sub_80DF090: @ 80DF090
- push {lr}
- ldr r1, _080DF0AC @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- ldr r1, _080DF0B0 @ =gUnknown_030042C4
- strh r2, [r1]
- ldr r1, _080DF0B4 @ =gUnknown_03004240
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF0AC: .4byte REG_BLDCNT
-_080DF0B0: .4byte gUnknown_030042C4
-_080DF0B4: .4byte gUnknown_03004240
- thumb_func_end sub_80DF090
-
- thumb_func_start sub_80DF0B8
-sub_80DF0B8: @ 80DF0B8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Sin
- strh r0, [r4, 0x24]
- ldr r0, _080DF120 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF0DC
- ldrh r0, [r4, 0x24]
- negs r0, r0
- strh r0, [r4, 0x24]
-_080DF0DC:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _080DF12C
- ldr r0, _080DF124 @ =0x0000050b
- strh r0, [r4, 0x3A]
- ldr r1, _080DF128 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x3A]
- strh r0, [r1]
- b _080DF17E
- .align 2, 0
-_080DF120: .4byte gUnknown_0202F7C8
-_080DF124: .4byte 0x0000050b
-_080DF128: .4byte REG_BLDCNT
-_080DF12C:
- cmp r0, 0x1E
- ble _080DF17E
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x3A]
- lsls r0, r1, 16
- asrs r0, 24
- lsls r0, 16
- movs r2, 0xFF
- ands r2, r1
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _080DF150
- movs r3, 0x10
-_080DF150:
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _080DF15C
- movs r2, 0
-_080DF15C:
- ldr r1, _080DF184 @ =REG_BLDALPHA
- lsls r0, r3, 8
- orrs r0, r2
- strh r0, [r1]
- strh r0, [r4, 0x3A]
- cmp r3, 0x10
- bne _080DF17E
- cmp r2, 0
- bne _080DF17E
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080DF188 @ =sub_80DF18C
- str r0, [r4, 0x1C]
-_080DF17E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF184: .4byte REG_BLDALPHA
-_080DF188: .4byte sub_80DF18C
- thumb_func_end sub_80DF0B8
-
- thumb_func_start sub_80DF18C
-sub_80DF18C: @ 80DF18C
- push {lr}
- ldr r1, _080DF1A0 @ =REG_BLDCNT
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_080DF1A0: .4byte REG_BLDCNT
- thumb_func_end sub_80DF18C
-
- thumb_func_start sub_80DF1A4
-sub_80DF1A4: @ 80DF1A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080DF23C @ =gTasks
- adds r4, r0
- movs r6, 0
- strh r6, [r4, 0x8]
- movs r0, 0x10
- mov r8, r0
- mov r2, r8
- strh r2, [r4, 0xA]
- ldr r5, _080DF240 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- ldrb r0, [r5]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_807A100
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- adds r1, 0x8
- strh r1, [r4, 0x1E]
- strh r6, [r4, 0x16]
- ldrb r0, [r5]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x12]
- ldrb r0, [r5]
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x2
- strh r0, [r4, 0x14]
- strh r6, [r4, 0xE]
- mov r0, r8
- strh r0, [r4, 0x10]
- ldr r1, _080DF244 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0x18]
- ldr r0, _080DF248 @ =sub_80DF24C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF23C: .4byte gTasks
-_080DF240: .4byte gUnknown_0202F7C8
-_080DF244: .4byte REG_BLDCNT
-_080DF248: .4byte sub_80DF24C
- thumb_func_end sub_80DF1A4
-
- thumb_func_start sub_80DF24C
-sub_80DF24C: @ 80DF24C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080DF270 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080DF266
- b _080DF3CC
-_080DF266:
- lsls r0, 2
- ldr r1, _080DF274 @ =_080DF278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DF270: .4byte gTasks
-_080DF274: .4byte _080DF278
- .align 2, 0
-_080DF278:
- .4byte _080DF290
- .4byte _080DF300
- .4byte _080DF342
- .4byte _080DF356
- .4byte _080DF3AC
- .4byte _080DF3BC
-_080DF290:
- movs r6, 0
-_080DF292:
- movs r2, 0x1A
- ldrsh r1, [r4, r2]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- ldrb r3, [r4, 0x14]
- ldr r0, _080DF2F4 @ =gSpriteTemplate_83DAF80
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080DF2E6
- ldr r1, _080DF2F8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r1
- strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080DF2C8
- movs r1, 0x1
-_080DF2C8:
- strh r1, [r5, 0x30]
- movs r0, 0x2A
- muls r0, r6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x1E]
- strh r0, [r5, 0x34]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_080DF2E6:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080DF292
- b _080DF3B4
- .align 2, 0
-_080DF2F4: .4byte gSpriteTemplate_83DAF80
-_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gUnknown_0202F7C8
-_080DF300:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF31E
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0xD
- bgt _080DF32C
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF32C
-_080DF31E:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- ble _080DF32C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF32C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0xE
- bne _080DF39C
- cmp r2, 0x4
- bne _080DF39C
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF396
-_080DF342:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080DF3CC
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080DF3B4
-_080DF356:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080DF374
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080DF382
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _080DF382
-_080DF374:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF382
- adds r0, r1, 0x1
- strh r0, [r4, 0x10]
-_080DF382:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- bne _080DF39C
- cmp r2, 0x10
- bne _080DF39C
- movs r0, 0x1
- strh r0, [r4, 0x18]
-_080DF396:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080DF39C:
- ldr r1, _080DF3A8 @ =REG_BLDALPHA
- lsls r0, r2, 8
- orrs r0, r3
- strh r0, [r1]
- b _080DF3CC
- .align 2, 0
-_080DF3A8: .4byte REG_BLDALPHA
-_080DF3AC:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080DF3CC
-_080DF3B4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080DF3CC
-_080DF3BC:
- ldr r0, _080DF3D4 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_080DF3CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF3D4: .4byte REG_BLDCNT
- thumb_func_end sub_80DF24C
-
- thumb_func_start sub_80DF3D8
-sub_80DF3D8: @ 80DF3D8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080DF3EA
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- b _080DF3EE
-_080DF3EA:
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
-_080DF3EE:
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- subs r0, 0x41
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7E
- bhi _080DF430
- ldr r2, _080DF42C @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x12]
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- b _080DF444
- .align 2, 0
-_080DF42C: .4byte gTasks
-_080DF430:
- ldr r2, _080DF498 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0x3
- ldrb r1, [r0, 0x12]
- ands r1, r2
-_080DF444:
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r1, 0x7
- bl Sin
- strh r0, [r4, 0x26]
- ldr r2, _080DF498 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x18
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080DF492
- ldrh r0, [r1, 0x16]
- subs r0, 0x1
- strh r0, [r1, 0x16]
- adds r0, r4, 0
- bl DestroySprite
-_080DF492:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF498: .4byte gTasks
- thumb_func_end sub_80DF3D8
-
- thumb_func_start sub_80DF49C
-sub_80DF49C: @ 80DF49C
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- ldr r2, _080DF4E0 @ =gUnknown_02024BE0
- ldr r1, _080DF4E4 @ =gUnknown_0202F7C8
- ldrb r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0xA
- strh r1, [r0, 0x30]
- ldr r2, _080DF4E8 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r0, 0x32]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0x34]
- ldr r1, _080DF4EC @ =sub_80DF4F4
- str r1, [r0, 0x1C]
- ldr r2, _080DF4F0 @ =gSprites
- movs r3, 0x38
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080DF4E0: .4byte gUnknown_02024BE0
-_080DF4E4: .4byte gUnknown_0202F7C8
-_080DF4E8: .4byte gUnknown_03004B00
-_080DF4EC: .4byte sub_80DF4F4
-_080DF4F0: .4byte gSprites
- thumb_func_end sub_80DF49C
-
- thumb_func_start sub_80DF4F4
-sub_80DF4F4: @ 80DF4F4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x34]
- movs r1, 0x34
- ldrsh r3, [r5, r1]
- cmp r3, 0
- beq _080DF55C
- subs r0, 0x1
- strh r0, [r5, 0x34]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- ldr r4, _080DF554 @ =gSprites
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Cos
- movs r1, 0x38
- ldrsh r2, [r5, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x32]
- ldrh r2, [r5, 0x2E]
- adds r1, r0, r2
- strh r1, [r5, 0x2E]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _080DF590
- ldr r2, _080DF558 @ =0xffffff00
- adds r0, r1, r2
- strh r0, [r5, 0x2E]
- b _080DF590
- .align 2, 0
-_080DF554: .4byte gSprites
-_080DF558: .4byte 0xffffff00
-_080DF55C:
- ldr r2, _080DF598 @ =gSprites
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- subs r1, 0x8
- strh r1, [r0, 0x22]
- ldr r0, _080DF59C @ =move_anim_8074EE0
- str r0, [r5, 0x1C]
-_080DF590:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF598: .4byte gSprites
-_080DF59C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF4F4
-
- thumb_func_start sub_80DF5A0
-sub_80DF5A0: @ 80DF5A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF5F0
- ldr r2, _080DF5EC @ =gUnknown_03004B00
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r2, 0x6]
- negs r0, r0
- strh r0, [r2, 0x6]
- ldrh r0, [r2, 0x8]
- negs r0, r0
- strh r0, [r2, 0x8]
- adds r1, r2, 0
- b _080DF5FA
- .align 2, 0
-_080DF5E8: .4byte gUnknown_0202F7C8
-_080DF5EC: .4byte gUnknown_03004B00
-_080DF5F0:
- ldr r1, _080DF630 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
-_080DF5FA:
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x2E]
- ldrh r0, [r1, 0x6]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x34]
- ldrh r0, [r1, 0xA]
- strh r0, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080DF634 @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldr r0, _080DF638 @ =sub_8078504
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF630: .4byte gUnknown_03004B00
-_080DF634: .4byte move_anim_8074EE0
-_080DF638: .4byte sub_8078504
- thumb_func_end sub_80DF5A0
-
- thumb_func_start sub_80DF63C
-sub_80DF63C: @ 80DF63C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078650
- ldr r4, _080DF694 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF6A0
- ldr r2, _080DF69C @ =gUnknown_03004B00
- ldrh r0, [r5, 0x20]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x22]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldrh r0, [r5, 0x32]
- ldrh r1, [r2, 0x4]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- b _080DF6CA
- .align 2, 0
-_080DF694: .4byte gUnknown_0202F7C9
-_080DF698: .4byte gUnknown_0202F7C8
-_080DF69C: .4byte gUnknown_03004B00
-_080DF6A0:
- ldr r1, _080DF6E4 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- ldrh r0, [r1, 0x4]
- ldrh r2, [r5, 0x32]
- adds r0, r2
- strh r0, [r5, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080DF6CA:
- ldr r0, _080DF6E4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080DF6E8 @ =sub_8078B34
- str r0, [r5, 0x1C]
- ldr r1, _080DF6EC @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF6E4: .4byte gUnknown_03004B00
-_080DF6E8: .4byte sub_8078B34
-_080DF6EC: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF63C
-
- thumb_func_start sub_80DF6F0
-sub_80DF6F0: @ 80DF6F0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080DF704 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080DF70C
- ldr r4, _080DF708 @ =gUnknown_0202F7C8
- b _080DF70E
- .align 2, 0
-_080DF704: .4byte gUnknown_03004B00
-_080DF708: .4byte gUnknown_0202F7C8
-_080DF70C:
- ldr r4, _080DF750 @ =gUnknown_0202F7C9
-_080DF70E:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r4, _080DF754 @ =gUnknown_03004B00
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- bl sub_807867C
- ldrh r0, [r4, 0x4]
- ldrh r1, [r5, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, _080DF758 @ =sub_8078600
- str r0, [r5, 0x1C]
- ldr r1, _080DF75C @ =move_anim_8074EE0
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF750: .4byte gUnknown_0202F7C9
-_080DF754: .4byte gUnknown_03004B00
-_080DF758: .4byte sub_8078600
-_080DF75C: .4byte move_anim_8074EE0
- thumb_func_end sub_80DF6F0
-
- thumb_func_start sub_80DF760
-sub_80DF760: @ 80DF760
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080DF788 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080DF77A
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080DF77A:
- adds r0, r4, 0
- bl sub_80DF63C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF788: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80DF760
-
- thumb_func_start sub_80DF78C
-sub_80DF78C: @ 80DF78C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r6, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- strh r5, [r6, 0x36]
- movs r0, 0x1
- strh r0, [r6, 0x38]
- ldr r0, _080DF7E4 @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r6, 0x3A]
- ldr r4, _080DF7E8 @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r1, 0
- bl sub_807A100
- lsls r7, r0, 16
- lsrs r5, r7, 16
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_807A100
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r5, r0
- bls _080DF7EC
- lsrs r0, r7, 17
- b _080DF7EE
- .align 2, 0
-_080DF7E0: .4byte gUnknown_0202F7C8
-_080DF7E4: .4byte gUnknown_03004B00
-_080DF7E8: .4byte gUnknown_02024C07
-_080DF7EC:
- lsrs r0, r1, 17
-_080DF7EE:
- strh r0, [r6, 0x3C]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Cos
- strh r0, [r6, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r2, 0x3C
- ldrsh r1, [r6, r2]
- bl Sin
- strh r0, [r6, 0x26]
- ldr r0, _080DF818 @ =sub_80DF81C
- str r0, [r6, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF818: .4byte sub_80DF81C
- thumb_func_end sub_80DF78C
-
- thumb_func_start sub_80DF81C
-sub_80DF81C: @ 80DF81C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080DF82E
- cmp r5, 0x1
- beq _080DF89A
- b _080DF91E
-_080DF82E:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF880
- strh r5, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF880
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF880
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF880:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DF91E
- movs r0, 0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _080DF91E
-_080DF89A:
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x38]
- subs r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x95
- bgt _080DF8C2
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x95
- ble _080DF8C2
- movs r0, 0x96
- strh r0, [r4, 0x3C]
-_080DF8C2:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080DF90A
- movs r0, 0
- strh r0, [r4, 0x36]
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- bgt _080DF90A
- adds r0, r1, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _080DF90A
- movs r0, 0x10
- strh r0, [r4, 0x38]
-_080DF90A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080DF91E
- adds r0, r4, 0
- bl move_anim_8072740
-_080DF91E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DF81C
-
- thumb_func_start sub_80DF924
-sub_80DF924: @ 80DF924
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080DF950 @ =gTasks
- adds r4, r1, r0
- ldr r0, _080DF954 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DF960
- ldr r0, _080DF958 @ =REG_BG1HOFS
- str r0, [sp]
- ldr r0, _080DF95C @ =gUnknown_030042C0
- b _080DF966
- .align 2, 0
-_080DF950: .4byte gTasks
-_080DF954: .4byte gUnknown_0202F7C8
-_080DF958: .4byte REG_BG1HOFS
-_080DF95C: .4byte gUnknown_030042C0
-_080DF960:
- ldr r0, _080DF9DC @ =REG_BG2HOFS
- str r0, [sp]
- ldr r0, _080DF9E0 @ =gUnknown_03004288
-_080DF966:
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- ldr r0, _080DF9E4 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r5, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r5, [r0, 0x9]
- ldr r0, _080DF9E8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0xE]
- adds r0, 0x20
- strh r0, [r4, 0x10]
- cmp r1, 0
- bge _080DF996
- strh r5, [r4, 0xE]
-_080DF996:
- ldrh r3, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bgt _080DF9C4
- ldr r5, _080DF9EC @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080DF9A8:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0xC]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _080DF9A8
-_080DF9C4:
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _080DF9F0 @ =sub_80DF9F4
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DF9DC: .4byte REG_BG2HOFS
-_080DF9E0: .4byte gUnknown_03004288
-_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gUnknown_0202F7C8
-_080DF9EC: .4byte gUnknown_03004DE0
-_080DF9F0: .4byte sub_80DF9F4
- thumb_func_end sub_80DF924
-
- thumb_func_start sub_80DF9F4
-sub_80DF9F4: @ 80DF9F4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080DFA18 @ =gTasks
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bhi _080DFAAA
- lsls r0, 2
- ldr r1, _080DFA1C @ =_080DFA20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080DFA18: .4byte gTasks
-_080DFA1C: .4byte _080DFA20
- .align 2, 0
-_080DFA20:
- .4byte _080DFA34
- .4byte _080DFA56
- .4byte _080DFA66
- .4byte _080DFA92
- .4byte _080DFAA4
-_080DFA34:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- adds r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _080DFA8A
- b _080DFA84
-_080DFA56:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080DFA8A
- b _080DFA84
-_080DFA66:
- ldrh r0, [r2, 0x16]
- adds r0, 0x1
- strh r0, [r2, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080DFA8A
- movs r0, 0
- strh r0, [r2, 0x16]
- ldrh r0, [r2, 0x14]
- subs r0, 0x1
- strh r0, [r2, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _080DFA8A
-_080DFA84:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_080DFA8A:
- adds r0, r2, 0
- bl sub_80DFAB0
- b _080DFAAA
-_080DFA92:
- ldr r1, _080DFAA0 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080DFAAA
- .align 2, 0
-_080DFAA0: .4byte gUnknown_03004DC0
-_080DFAA4:
- adds r0, r3, 0
- bl move_anim_task_del
-_080DFAAA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DF9F4
-
- thumb_func_start sub_80DFAB0
-sub_80DFAB0: @ 80DFAB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- ldrh r3, [r5, 0x12]
- ldrh r4, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r4, r0
- bgt _080DFB06
- ldr r7, _080DFB1C @ =gUnknown_03004DE0
- mov r12, r7
- ldr r0, _080DFB20 @ =gSineTable
- mov r8, r0
- ldr r6, _080DFB24 @ =gUnknown_03004DC0
-_080DFACE:
- lsls r2, r4, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- lsls r0, r3, 1
- add r0, r8
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x14
- ldrsh r0, [r5, r7]
- muls r0, r1
- asrs r0, 7
- ldrh r1, [r5, 0xC]
- adds r0, r1
- strh r0, [r2]
- adds r3, 0x8
- movs r0, 0xFF
- ands r3, r0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0x10
- ldrsh r0, [r5, r7]
- cmp r4, r0
- ble _080DFACE
-_080DFB06:
- ldrh r0, [r5, 0x12]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x12]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFB1C: .4byte gUnknown_03004DE0
-_080DFB20: .4byte gSineTable
-_080DFB24: .4byte gUnknown_03004DC0
- thumb_func_end sub_80DFAB0
-
- thumb_func_start sub_80DFB28
-sub_80DFB28: @ 80DFB28
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080DFBC8 @ =gUnknown_03004B00
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- movs r1, 0x5
- bl __divsi3
- adds r6, r0, 0
- ldr r1, _080DFBCC @ =gUnknown_0202F7C8
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r5, 0x8]
- adds r0, r3
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r4, 0x30]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- lsls r6, 16
- asrs r6, 16
- adds r1, r6, 0
- bl Sin
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- ldrh r2, [r5]
- adds r3, r2, 0
- muls r3, r1
- adds r1, r3, 0
- ldrh r3, [r4, 0x20]
- adds r1, r3
- strh r1, [r4, 0x20]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r1, 0
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x34]
- ldr r0, _080DFBD0 @ =sub_80DFBD8
- str r0, [r4, 0x1C]
- adds r4, 0x2E
- ldr r2, _080DFBD4 @ =gUnknown_03000730
- movs r1, 0x6
-_080DFBB0:
- ldrh r0, [r4]
- strh r0, [r2]
- adds r4, 0x2
- adds r2, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _080DFBB0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFBC8: .4byte gUnknown_03004B00
-_080DFBCC: .4byte gUnknown_0202F7C8
-_080DFBD0: .4byte sub_80DFBD8
-_080DFBD4: .4byte gUnknown_03000730
- thumb_func_end sub_80DFB28
-
- thumb_func_start sub_80DFBD8
-sub_80DFBD8: @ 80DFBD8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x32]
- ldrh r2, [r4, 0x38]
- adds r0, r2
- strh r0, [r4, 0x38]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x24]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl __divsi3
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _080DFC1C
- adds r0, r4, 0
- bl move_anim_8072740
-_080DFC1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFBD8
-
- thumb_func_start sub_80DFC24
-sub_80DFC24: @ 80DFC24
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080DFC58 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC5C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- ldr r0, _080DFC60 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- movs r2, 0x10
- strh r2, [r1, 0xA]
- ldr r1, _080DFC64 @ =REG_BLDALPHA
- strh r2, [r1]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFC70
- ldr r1, _080DFC68 @ =REG_BLDCNT
- ldr r2, _080DFC6C @ =0x00003f42
- b _080DFC74
- .align 2, 0
-_080DFC58: .4byte gTasks
-_080DFC5C: .4byte gUnknown_03004B00
-_080DFC60: .4byte gUnknown_0202F7C8
-_080DFC64: .4byte REG_BLDALPHA
-_080DFC68: .4byte REG_BLDCNT
-_080DFC6C: .4byte 0x00003f42
-_080DFC70:
- ldr r1, _080DFC8C @ =REG_BLDCNT
- ldr r2, _080DFC90 @ =0x00003f44
-_080DFC74:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFC94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080DFC98 @ =sub_80DFC9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFC8C: .4byte REG_BLDCNT
-_080DFC90: .4byte 0x00003f44
-_080DFC94: .4byte gTasks
-_080DFC98: .4byte sub_80DFC9C
- thumb_func_end sub_80DFC24
-
- thumb_func_start sub_80DFC9C
-sub_80DFC9C: @ 80DFC9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080DFD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- lsrs r2, r0, 8
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- ldrb r3, [r4, 0x8]
- cmp r0, r3
- bne _080DFD18
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r2, 8
- orrs r1, r0
- movs r3, 0
- strh r1, [r4, 0xA]
- ldr r0, _080DFD08 @ =REG_BLDALPHA
- strh r1, [r0]
- strh r3, [r4, 0xC]
- cmp r2, 0x10
- bne _080DFD1E
- ldr r2, _080DFD0C @ =gSprites
- ldr r1, _080DFD10 @ =gUnknown_02024BE0
- ldr r0, _080DFD14 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
- b _080DFD1E
- .align 2, 0
-_080DFD04: .4byte gTasks
-_080DFD08: .4byte REG_BLDALPHA
-_080DFD0C: .4byte gSprites
-_080DFD10: .4byte gUnknown_02024BE0
-_080DFD14: .4byte gUnknown_0202F7C8
-_080DFD18:
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_080DFD1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFC9C
-
- thumb_func_start sub_80DFD24
-sub_80DFD24: @ 80DFD24
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080DFD48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080DFD4C @ =gUnknown_03004B00
- ldrh r0, [r0]
- strh r0, [r1, 0x8]
- movs r2, 0x80
- lsls r2, 5
- strh r2, [r1, 0xA]
- ldr r0, _080DFD50 @ =sub_80DFD58
- str r0, [r1]
- ldr r0, _080DFD54 @ =REG_BLDALPHA
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080DFD48: .4byte gTasks
-_080DFD4C: .4byte gUnknown_03004B00
-_080DFD50: .4byte sub_80DFD58
-_080DFD54: .4byte REG_BLDALPHA
- thumb_func_end sub_80DFD24
-
- thumb_func_start sub_80DFD58
-sub_80DFD58: @ 80DFD58
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDA8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xA]
- lsrs r1, r0, 8
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0xC
- ldrsh r0, [r2, r3]
- ldrb r3, [r2, 0x8]
- cmp r0, r3
- bne _080DFDB4
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r3, 8
- orrs r1, r0
- movs r0, 0
- strh r1, [r2, 0xA]
- ldr r5, _080DFDAC @ =REG_BLDALPHA
- strh r1, [r5]
- strh r0, [r2, 0xC]
- cmp r3, 0
- bne _080DFDBA
- ldr r0, _080DFDB0 @ =REG_BLDCNT
- strh r3, [r0]
- strh r3, [r5]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080DFDBA
- .align 2, 0
-_080DFDA8: .4byte gTasks
-_080DFDAC: .4byte REG_BLDALPHA
-_080DFDB0: .4byte REG_BLDCNT
-_080DFDB4:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
-_080DFDBA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFD58
-
- thumb_func_start sub_80DFDC0
-sub_80DFDC0: @ 80DFDC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080DFDE8 @ =REG_BLDALPHA
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080DFDEC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFDF8
- ldr r1, _080DFDF0 @ =REG_BLDCNT
- ldr r2, _080DFDF4 @ =0x00003f42
- b _080DFDFC
- .align 2, 0
-_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gUnknown_0202F7C8
-_080DFDF0: .4byte REG_BLDCNT
-_080DFDF4: .4byte 0x00003f42
-_080DFDF8:
- ldr r1, _080DFE0C @ =REG_BLDCNT
- ldr r2, _080DFE10 @ =0x00003f44
-_080DFDFC:
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE0C: .4byte REG_BLDCNT
-_080DFE10: .4byte 0x00003f44
- thumb_func_end sub_80DFDC0
-
- thumb_func_start sub_80DFE14
-sub_80DFE14: @ 80DFE14
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _080DFE80 @ =gUnknown_0202F7C9
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x34]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- movs r0, 0x7E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8078A5C
- ldrh r0, [r4, 0x30]
- negs r0, r0
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x32]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldr r0, _080DFE88 @ =0x0000ffd8
- strh r0, [r4, 0x3A]
- ldr r1, _080DFE8C @ =sub_80DFE90
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFE80: .4byte gUnknown_0202F7C9
-_080DFE84: .4byte gUnknown_0202F7C8
-_080DFE88: .4byte 0x0000ffd8
-_080DFE8C: .4byte sub_80DFE90
- thumb_func_end sub_80DFE14
-
- thumb_func_start sub_80DFE90
-sub_80DFE90: @ 80DFE90
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r5, [r4, 0x30]
- ldrh r0, [r4, 0x34]
- adds r2, r5, r0
- strh r2, [r4, 0x34]
- ldrh r3, [r4, 0x32]
- ldrh r6, [r4, 0x36]
- adds r1, r3, r6
- strh r1, [r4, 0x36]
- lsls r0, r2, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r4, 0x26]
- movs r6, 0x3C
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _080DFED2
- adds r0, r2, r5
- strh r0, [r4, 0x34]
- adds r1, r3
- strh r1, [r4, 0x36]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
-_080DFED2:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r6, [r4, 0x26]
- adds r0, r6
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x38]
- adds r0, 0x3
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x38]
- cmp r0, 0x7F
- ble _080DFF02
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x14
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_080DFF02:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _080DFF14
- adds r0, r4, 0
- bl move_anim_8072740
-_080DFF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80DFE90
-
- thumb_func_start sub_80DFF1C
-sub_80DFF1C: @ 80DFF1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080DFF50 @ =gUnknown_03004B00
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrb r1, [r5, 0x4]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x32]
- ldr r0, _080DFF54 @ =sub_80DFF58
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF50: .4byte gUnknown_03004B00
-_080DFF54: .4byte sub_80DFF58
- thumb_func_end sub_80DFF1C
-
- thumb_func_start sub_80DFF58
-sub_80DFF58: @ 80DFF58
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x36]
- adds r0, r1
- strh r0, [r2, 0x36]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x38]
- adds r1, r3
- strh r1, [r2, 0x38]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bne _080DFF8E
- ldr r0, _080DFF94 @ =sub_80DFF98
- str r0, [r2, 0x1C]
-_080DFF8E:
- pop {r0}
- bx r0
- .align 2, 0
-_080DFF94: .4byte sub_80DFF98
- thumb_func_end sub_80DFF58
-
- thumb_func_start sub_80DFF98
-sub_80DFF98: @ 80DFF98
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x36]
- ldrh r0, [r3, 0x2E]
- subs r1, r0
- strh r1, [r3, 0x36]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x30]
- subs r0, r2
- strh r0, [r3, 0x38]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r3, 0x24]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _080DFFCA
- adds r0, r3, 0
- bl move_anim_8074EE0
-_080DFFCA:
- pop {r0}
- bx r0
- thumb_func_end sub_80DFF98
-
- thumb_func_start sub_80DFFD0
-sub_80DFFD0: @ 80DFFD0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _080DFFE4 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r3, r0, 0
- cmp r1, 0
- bne _080DFFEC
- ldr r0, _080DFFE8 @ =gUnknown_0202F7C8
- b _080DFFEE
- .align 2, 0
-_080DFFE4: .4byte gUnknown_03004B00
-_080DFFE8: .4byte gUnknown_0202F7C8
-_080DFFEC:
- ldr r0, _080E001C @ =gUnknown_0202F7C9
-_080DFFEE:
- ldrb r5, [r0]
- movs r6, 0x14
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- ldr r7, _080E0020 @ =0x000003ff
- adds r0, r7, 0
- ands r1, r0
- ldr r0, _080E0024 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _080E004C
- cmp r0, 0x1
- bgt _080E0028
- cmp r0, 0
- beq _080E0032
- b _080E00A0
- .align 2, 0
-_080E001C: .4byte gUnknown_0202F7C9
-_080E0020: .4byte 0x000003ff
-_080E0024: .4byte 0xfffffc00
-_080E0028:
- cmp r0, 0x2
- beq _080E0066
- cmp r0, 0x3
- beq _080E007E
- b _080E00A0
-_080E0032:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E004C:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
- strh r0, [r4, 0x22]
- b _080E00A0
-_080E0066:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x8
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x8
- b _080E0094
-_080E007E:
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0xE
- strh r0, [r4, 0x20]
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x10
-_080E0094:
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r6, 0xEC
-_080E00A0:
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- lsls r0, r6, 24
- asrs r0, 24
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- adds r0, 0xC
- strh r0, [r4, 0x36]
- ldr r0, _080E00C8 @ =0x0000fff4
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E00CC @ =sub_80E00D0
- str r0, [r4, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E00C8: .4byte 0x0000fff4
-_080E00CC: .4byte sub_80E00D0
- thumb_func_end sub_80DFFD0
-
- thumb_func_start sub_80E00D0
-sub_80E00D0: @ 80E00D0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E00E4
- adds r0, r4, 0
- bl move_anim_8074EE0
-_080E00E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E00D0
-
- thumb_func_start sub_80E00EC
-sub_80E00EC: @ 80E00EC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E0150 @ =gTasks
- adds r5, r1, r0
- ldr r4, _080E0154 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- strh r1, [r5, 0x12]
- strh r0, [r5, 0x10]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r5, 0x24]
- adds r0, 0x20
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080E015C
- ldr r0, _080E0158 @ =0x0000fff4
- b _080E015E
- .align 2, 0
-_080E0150: .4byte gTasks
-_080E0154: .4byte gUnknown_0202F7C8
-_080E0158: .4byte 0x0000fff4
-_080E015C:
- ldr r0, _080E01A8 @ =0x0000ffc0
-_080E015E:
- strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E01C4
- add r4, sp, 0xC
- adds r0, r4, 0
- bl sub_8078914
- ldr r0, _080E01B0 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E01B4 @ =REG_BLDCNT
- ldr r2, _080E01B8 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- ldrb r1, [r4, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E01BC @ =REG_BG1VOFS
- str r0, [sp]
- movs r7, 0x2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E01C0 @ =gUnknown_03004288
- b _080E01EE
- .align 2, 0
-_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gUnknown_0202F7C8
-_080E01B0: .4byte gUnknown_030041B4
-_080E01B4: .4byte REG_BLDCNT
-_080E01B8: .4byte 0x00003f42
-_080E01BC: .4byte REG_BG1VOFS
-_080E01C0: .4byte gUnknown_03004288
-_080E01C4:
- ldr r0, _080E0278 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- ldr r1, _080E027C @ =REG_BLDCNT
- ldr r2, _080E0280 @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
- ldr r0, _080E0284 @ =REG_BG2VOFS
- str r0, [sp]
- movs r7, 0x4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E01F4
- ldr r1, _080E0288 @ =gUnknown_030042C0
-_080E01EE:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
-_080E01F4:
- ldr r0, _080E028C @ =0xa2600001
- str r0, [sp, 0x4]
- mov r2, sp
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- mov r0, sp
- strb r1, [r0, 0x9]
- strh r1, [r5, 0x1E]
- movs r0, 0x10
- strh r0, [r5, 0x20]
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- strh r1, [r5, 0xC]
- movs r0, 0x3
- bl sub_80E08CC
- movs r3, 0
- ldr r4, _080E0290 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r4, r0
-_080E0220:
- lsls r1, r3, 1
- adds r2, r1, r4
- ldrh r0, [r5, 0x1C]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r5, 0x1C]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E0220
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r1, _080E0294 @ =REG_WINOUT
- movs r0, 0x3F
- eors r7, r0
- movs r2, 0xFC
- lsls r2, 6
- adds r0, r2, 0
- orrs r7, r0
- strh r7, [r1]
- subs r1, 0x2
- adds r2, 0x3F
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E0298 @ =gUnknown_030042C4
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E029C @ =gUnknown_03004240
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080E02A0 @ =sub_80E02A4
- str r0, [r5]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0278: .4byte gUnknown_03004280
-_080E027C: .4byte REG_BLDCNT
-_080E0280: .4byte 0x00003f44
-_080E0284: .4byte REG_BG2VOFS
-_080E0288: .4byte gUnknown_030042C0
-_080E028C: .4byte 0xa2600001
-_080E0290: .4byte gUnknown_03004DE0
-_080E0294: .4byte REG_WINOUT
-_080E0298: .4byte gUnknown_030042C4
-_080E029C: .4byte gUnknown_03004240
-_080E02A0: .4byte sub_80E02A4
- thumb_func_end sub_80E00EC
-
- thumb_func_start sub_80E02A4
-sub_80E02A4: @ 80E02A4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E02C8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E02BE
- b _080E03B6
-_080E02BE:
- lsls r0, 2
- ldr r1, _080E02CC @ =_080E02D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E02C8: .4byte gTasks
-_080E02CC: .4byte _080E02D0
- .align 2, 0
-_080E02D0:
- .4byte _080E02E4
- .4byte _080E0344
- .4byte _080E035E
- .4byte _080E039C
- .4byte _080E03B0
-_080E02E4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E03B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0314
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- beq _080E0322
- adds r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0322
-_080E0314:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _080E0322
- subs r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0322:
- ldr r2, _080E0340 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0xC
- bne _080E03B6
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0340: .4byte REG_BLDALPHA
-_080E0344:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _080E03B6
- b _080E03A2
-_080E035E:
- ldrh r0, [r4, 0x10]
- subs r0, 0x8
- strh r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80E079C
- ldrh r1, [r4, 0x24]
- adds r1, 0x4
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r2, r0, 0x4
- strh r2, [r4, 0x26]
- lsls r1, 16
- lsls r0, r2, 16
- cmp r1, r0
- blt _080E0380
- strh r2, [r4, 0x24]
-_080E0380:
- ldr r3, _080E0398 @ =gUnknown_030042C4
- ldrh r2, [r4, 0x24]
- lsls r0, r2, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r3]
- lsls r2, 16
- lsls r1, 16
- cmp r2, r1
- bne _080E03B6
- b _080E03A2
- .align 2, 0
-_080E0398: .4byte gUnknown_030042C4
-_080E039C:
- ldr r1, _080E03AC @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E03A2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E03B6
- .align 2, 0
-_080E03AC: .4byte gUnknown_03004DC0
-_080E03B0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E03B6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E02A4
-
- thumb_func_start sub_80E03BC
-sub_80E03BC: @ 80E03BC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080E03E4 @ =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bls _080E03D8
- b _080E05F2
-_080E03D8:
- lsls r0, 2
- ldr r1, _080E03E8 @ =_080E03EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E03E4: .4byte gTasks
-_080E03E8: .4byte _080E03EC
- .align 2, 0
-_080E03EC:
- .4byte _080E0400
- .4byte _080E048C
- .4byte _080E04D0
- .4byte _080E053C
- .4byte _080E05A4
-_080E0400:
- bl sub_8076BE0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E043C
- ldr r0, _080E042C @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0430 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _080E0434 @ =REG_WININ
- ldr r2, _080E0438 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- bl move_anim_task_del
- b _080E05F2
- .align 2, 0
-_080E042C: .4byte gUnknown_030042C4
-_080E0430: .4byte gUnknown_03004240
-_080E0434: .4byte REG_WININ
-_080E0438: .4byte 0x00003f3f
-_080E043C:
- ldr r0, _080E045C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xE]
- cmp r0, 0x1
- bne _080E046C
- ldr r1, _080E0460 @ =REG_BLDCNT
- ldr r2, _080E0464 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0468 @ =gUnknown_03004288
- b _080E0476
- .align 2, 0
-_080E045C: .4byte gUnknown_0202F7C9
-_080E0460: .4byte REG_BLDCNT
-_080E0464: .4byte 0x00003f42
-_080E0468: .4byte gUnknown_03004288
-_080E046C:
- ldr r1, _080E0480 @ =REG_BLDCNT
- ldr r2, _080E0484 @ =0x00003f44
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0488 @ =gUnknown_030042C0
-_080E0476:
- ldrh r0, [r1]
- adds r0, 0xF0
- strh r0, [r1]
- b _080E0590
- .align 2, 0
-_080E0480: .4byte REG_BLDCNT
-_080E0484: .4byte 0x00003f44
-_080E0488: .4byte gUnknown_030042C0
-_080E048C:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E04B4
- mov r0, sp
- bl sub_8078914
- ldr r0, _080E04B0 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- movs r0, 0
- movs r2, 0x20
- bl FillPalette
- b _080E04C4
- .align 2, 0
-_080E04B0: .4byte gUnknown_030041B4
-_080E04B4:
- ldr r0, _080E04CC @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r5, 0x1C]
- movs r0, 0
- movs r1, 0x90
- movs r2, 0x20
- bl FillPalette
-_080E04C4:
- movs r0, 0x3
- bl sub_80E08CC
- b _080E0590
- .align 2, 0
-_080E04CC: .4byte gUnknown_03004280
-_080E04D0:
- ldr r4, _080E051C @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1F
- movs r6, 0
- strh r0, [r5, 0x16]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- subs r0, 0x7
- strh r0, [r5, 0x14]
- ldrh r1, [r5, 0x16]
- subs r1, r0
- lsls r1, 8
- strh r1, [r5, 0x22]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x4
- strh r1, [r5, 0x24]
- adds r0, 0x4
- strh r0, [r5, 0x26]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080E0524
- ldr r0, _080E0520 @ =0x0000fff4
- b _080E0526
- .align 2, 0
-_080E051C: .4byte gUnknown_0202F7C9
-_080E0520: .4byte 0x0000fff4
-_080E0524:
- ldr r0, _080E0538 @ =0x0000ffc0
-_080E0526:
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x10]
- strh r0, [r5, 0x12]
- movs r0, 0xC
- strh r0, [r5, 0x1E]
- movs r0, 0x8
- strh r0, [r5, 0x20]
- b _080E0590
- .align 2, 0
-_080E0538: .4byte 0x0000ffc0
-_080E053C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _080E054C
- ldr r0, _080E0548 @ =REG_BG1VOFS
- b _080E054E
- .align 2, 0
-_080E0548: .4byte REG_BG1VOFS
-_080E054C:
- ldr r0, _080E0598 @ =REG_BG2VOFS
-_080E054E:
- str r0, [sp, 0xC]
- movs r3, 0
- add r4, sp, 0xC
- ldr r6, _080E059C @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r7, r6, r0
-_080E055C:
- lsls r1, r3, 1
- adds r2, r1, r6
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r2]
- adds r1, r7
- ldrh r0, [r5, 0x1C]
- adds r0, 0x9F
- subs r0, r3
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x6F
- bls _080E055C
- ldr r1, _080E05A0 @ =0xa2600001
- str r1, [r4, 0x4]
- movs r2, 0
- movs r0, 0x1
- strb r0, [r4, 0x8]
- strb r2, [r4, 0x9]
- ldr r0, [sp, 0xC]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
-_080E0590:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _080E05F2
- .align 2, 0
-_080E0598: .4byte REG_BG2VOFS
-_080E059C: .4byte gUnknown_03004DE0
-_080E05A0: .4byte 0xa2600001
-_080E05A4:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _080E05BC
- ldr r1, _080E05B4 @ =REG_WINOUT
- ldr r2, _080E05B8 @ =0x00003f3d
- b _080E05C0
- .align 2, 0
-_080E05B4: .4byte REG_WINOUT
-_080E05B8: .4byte 0x00003f3d
-_080E05BC:
- ldr r1, _080E05FC @ =REG_WINOUT
- ldr r2, _080E0600 @ =0x00003f3b
-_080E05C0:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E0604 @ =REG_WININ
- ldr r2, _080E0608 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080E060C @ =gUnknown_030042C4
- ldrh r0, [r5, 0x24]
- lsls r0, 8
- ldrh r1, [r5, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0610 @ =gUnknown_03004240
- movs r0, 0xA0
- strh r0, [r1]
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldr r1, _080E0614 @ =REG_BLDALPHA
- ldr r2, _080E0618 @ =0x0000080c
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E061C @ =sub_80E0620
- str r0, [r5]
-_080E05F2:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E05FC: .4byte REG_WINOUT
-_080E0600: .4byte 0x00003f3b
-_080E0604: .4byte REG_WININ
-_080E0608: .4byte 0x00003f3f
-_080E060C: .4byte gUnknown_030042C4
-_080E0610: .4byte gUnknown_03004240
-_080E0614: .4byte REG_BLDALPHA
-_080E0618: .4byte 0x0000080c
-_080E061C: .4byte sub_80E0620
- thumb_func_end sub_80E03BC
-
- thumb_func_start sub_80E0620
-sub_80E0620: @ 80E0620
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E0644 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E063A
- b _080E0784
-_080E063A:
- lsls r0, 2
- ldr r1, _080E0648 @ =_080E064C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0644: .4byte gTasks
-_080E0648: .4byte _080E064C
- .align 2, 0
-_080E064C:
- .4byte _080E0660
- .4byte _080E068C
- .4byte _080E06F4
- .4byte _080E0754
- .4byte _080E0768
-_080E0660:
- ldrh r0, [r4, 0x12]
- adds r0, 0x8
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x16]
- movs r3, 0x16
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E0676
- strh r2, [r4, 0x12]
-_080E0676:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080E068A
- b _080E0784
-_080E068A:
- b _080E075A
-_080E068C:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- subs r0, r1
- cmp r0, 0x3F
- bgt _080E06A8
- ldrh r0, [r4, 0x24]
- subs r0, 0x4
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x4
- strh r0, [r4, 0x26]
- b _080E06AC
-_080E06A8:
- movs r0, 0x1
- strh r0, [r4, 0xA]
-_080E06AC:
- ldr r2, _080E06F0 @ =gUnknown_030042C4
- ldrh r0, [r4, 0x24]
- lsls r0, 8
- ldrh r1, [r4, 0x26]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x14]
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E06CE
- strh r2, [r4, 0x10]
-_080E06CE:
- adds r0, r4, 0
- bl sub_80E079C
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E0784
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- b _080E075A
- .align 2, 0
-_080E06F0: .4byte gUnknown_030042C4
-_080E06F4:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E0784
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E0724
- ldrh r1, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E0732
- subs r0, r1, 0x1
- strh r0, [r4, 0x1E]
- b _080E0732
-_080E0724:
- ldrh r1, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0xF
- bgt _080E0732
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
-_080E0732:
- ldr r2, _080E0750 @ =REG_BLDALPHA
- ldrh r0, [r4, 0x20]
- lsls r0, 8
- ldrh r1, [r4, 0x1E]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E0784
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bne _080E0784
- b _080E075A
- .align 2, 0
-_080E0750: .4byte REG_BLDALPHA
-_080E0754:
- ldr r1, _080E0764 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E075A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E0784
- .align 2, 0
-_080E0764: .4byte gUnknown_03004DC0
-_080E0768:
- ldr r0, _080E078C @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E0790 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r0, _080E0794 @ =REG_WININ
- ldr r3, _080E0798 @ =0x00003f3f
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r2, 0
- bl move_anim_task_del
-_080E0784:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E078C: .4byte gUnknown_030042C4
-_080E0790: .4byte gUnknown_03004240
-_080E0794: .4byte REG_WININ
-_080E0798: .4byte 0x00003f3f
- thumb_func_end sub_80E0620
-
- thumb_func_start sub_80E079C
-sub_80E079C: @ 80E079C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrh r0, [r6, 0x12]
- ldrh r4, [r6, 0x10]
- subs r0, r4
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- beq _080E0890
- movs r2, 0x22
- ldrsh r0, [r6, r2]
- bl __divsi3
- mov r8, r0
- movs r3, 0x14
- ldrsh r0, [r6, r3]
- lsls r5, r0, 8
- lsls r0, r4, 16
- movs r4, 0
- cmp r0, 0
- ble _080E07FC
- ldr r0, _080E0888 @ =gUnknown_03004DE0
- mov r12, r0
- ldr r7, _080E088C @ =gUnknown_03004DC0
-_080E07D0:
- lsls r2, r4, 16
- asrs r2, 16
- lsls r3, r2, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- add r3, r12
- adds r1, r2, 0
- subs r1, 0x9F
- ldrh r0, [r6, 0x1C]
- subs r0, r1
- strh r0, [r3]
- adds r2, 0x1
- lsls r2, 16
- lsrs r4, r2, 16
- asrs r2, 16
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r2, r0
- blt _080E07D0
-_080E07FC:
- ldrh r4, [r6, 0x10]
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bgt _080E0846
- ldr r0, _080E0888 @ =gUnknown_03004DE0
- mov r12, r0
- ldr r7, _080E088C @ =gUnknown_03004DC0
-_080E0810:
- asrs r4, r3, 16
- cmp r4, 0
- blt _080E0832
- asrs r1, r5, 8
- subs r1, r4
- lsls r3, r4, 1
- ldrb r2, [r7, 0x14]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 7
- adds r3, r0
- add r3, r12
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r6, 0x1C]
- adds r1, r2
- strh r1, [r3]
-_080E0832:
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r3, r4, 16
- asrs r1, r3, 16
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _080E0810
-_080E0846:
- movs r3, 0x1C
- ldrsh r0, [r6, r3]
- adds r0, 0x9F
- lsls r2, r4, 16
- asrs r1, r2, 16
- subs r5, r0, r1
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bge _080E08BE
- ldr r7, _080E0888 @ =gUnknown_03004DE0
- ldr r4, _080E088C @ =gUnknown_03004DC0
-_080E085E:
- asrs r3, r2, 16
- cmp r3, 0
- blt _080E0876
- lsls r2, r3, 1
- ldrb r1, [r4, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- strh r5, [r2]
- subs r5, 0x1
-_080E0876:
- adds r0, r3, 0x1
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r3, 0x16
- ldrsh r0, [r6, r3]
- cmp r1, r0
- blt _080E085E
- b _080E08BE
- .align 2, 0
-_080E0888: .4byte gUnknown_03004DE0
-_080E088C: .4byte gUnknown_03004DC0
-_080E0890:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- adds r5, r0, 0
- adds r5, 0x9F
- movs r4, 0
- ldr r3, _080E08C8 @ =gUnknown_03004DE0
- movs r2, 0xF0
- lsls r2, 3
- adds r6, r3, r2
-_080E08A2:
- lsls r0, r4, 16
- asrs r0, 16
- lsls r2, r0, 1
- adds r1, r2, r3
- strh r5, [r1]
- adds r2, r6
- strh r5, [r2]
- subs r5, 0x1
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _080E08A2
-_080E08BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E08C8: .4byte gUnknown_03004DE0
- thumb_func_end sub_80E079C
-
- thumb_func_start sub_80E08CC
-sub_80E08CC: @ 80E08CC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- ldr r7, _080E0914 @ =gSprites
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r0, 0xD
- negs r0, r0
- adds r6, r0, 0
-_080E08E2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E0902
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r0, r6
- orrs r0, r5
- strb r0, [r1, 0x5]
-_080E0902:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0914: .4byte gSprites
- thumb_func_end sub_80E08CC
-
- thumb_func_start sub_80E0918
-sub_80E0918: @ 80E0918
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r6, _080E09B8 @ =gUnknown_0202F7C8
- ldrb r0, [r6]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldrb r0, [r6]
- adds r1, r4, 0
- bl sub_8076034
- ldr r0, _080E09BC @ =gSprites
- mov r9, r0
- ldr r0, _080E09C0 @ =gUnknown_02024BE0
- mov r8, r0
- ldrb r0, [r6]
- add r0, r8
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r7, 0x5
- negs r7, r7
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r6]
- movs r5, 0x2
- eors r0, r5
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E09A2
- ldrb r0, [r6]
- eors r0, r5
- movs r1, 0x1
- eors r4, r1
- adds r1, r4, 0
- bl sub_8076034
- ldrb r0, [r6]
- eors r0, r5
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
-_080E09A2:
- mov r0, r10
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E09B8: .4byte gUnknown_0202F7C8
-_080E09BC: .4byte gSprites
-_080E09C0: .4byte gUnknown_02024BE0
- thumb_func_end sub_80E0918
-
- thumb_func_start sub_80E09C4
-sub_80E09C4: @ 80E09C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080E0A0C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
- adds r0, r5, 0
- bl sub_8076464
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E0A00
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_8076464
-_080E0A00:
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A0C: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E09C4
-
- thumb_func_start sub_80E0A10
-sub_80E0A10: @ 80E0A10
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E0A40 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- ldrb r1, [r1, 0x4]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _080E0A44 @ =sub_8078600
- str r0, [r4, 0x1C]
- ldr r1, _080E0A48 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0A40: .4byte gUnknown_03004B00
-_080E0A44: .4byte sub_8078600
-_080E0A48: .4byte move_anim_8072740
- thumb_func_end sub_80E0A10
-
- thumb_func_start sub_80E0A4C
-sub_80E0A4C: @ 80E0A4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080E0B50 @ =gUnknown_030042C4
- strh r7, [r0]
- ldr r0, _080E0B54 @ =gUnknown_03004240
- strh r7, [r0]
- ldr r1, _080E0B58 @ =REG_WININ
- ldr r2, _080E0B5C @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B60 @ =0x00003f3d
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E0B64 @ =REG_BLDCNT
- ldr r2, _080E0B68 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E0B6C @ =0x00000c08
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _080E0B70 @ =REG_BG1CNT
- ldrb r1, [r5]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r5]
- ldrb r1, [r5, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r5, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0AC4
- ldrb r0, [r5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5]
-_080E0AC4:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E0B40
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
- ldr r4, _080E0B74 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E0AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E0B40
-_080E0AF4:
- ldrb r0, [r4]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0B40
- ldr r3, _080E0B78 @ =gSprites
- ldr r1, _080E0B7C @ =gUnknown_02024BE0
- ldrb r0, [r4]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r5]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5]
- movs r7, 0x1
-_080E0B40:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E0B84
- ldr r0, _080E0B80 @ =0x02019348
- ldrh r5, [r0]
- b _080E0BCC
- .align 2, 0
-_080E0B50: .4byte gUnknown_030042C4
-_080E0B54: .4byte gUnknown_03004240
-_080E0B58: .4byte REG_WININ
-_080E0B5C: .4byte 0x00003f3f
-_080E0B60: .4byte 0x00003f3d
-_080E0B64: .4byte REG_BLDCNT
-_080E0B68: .4byte 0x00003f42
-_080E0B6C: .4byte 0x00000c08
-_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gUnknown_0202F7C8
-_080E0B78: .4byte gSprites
-_080E0B7C: .4byte gUnknown_02024BE0
-_080E0B80: .4byte 0x02019348
-_080E0B84:
- ldr r4, _080E0BA4 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E0BB0
- ldr r1, _080E0BA8 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0BAC @ =gEnemyParty
- b _080E0BC0
- .align 2, 0
-_080E0BA4: .4byte gUnknown_0202F7C8
-_080E0BA8: .4byte gUnknown_02024A6A
-_080E0BAC: .4byte gEnemyParty
-_080E0BB0:
- ldr r1, _080E0C58 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E0C5C @ =gPlayerParty
-_080E0BC0:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
-_080E0BCC:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E0C60 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E0C64 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E0C68 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E0C6C @ =gUnknown_08D1D574
- bl LZDecompressVram
- ldr r0, _080E0C70 @ =gUnknown_08D1D410
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E0C74 @ =gUnknown_08D1D54C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r2, _080E0C78 @ =gUnknown_030042C0
- ldr r0, _080E0C7C @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x60
- strh r0, [r2]
- ldr r2, _080E0C80 @ =gUnknown_030041B4
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- ldr r2, _080E0C84 @ =gUnknown_03004B00
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E0C88
- adds r0, r1, 0
- movs r1, 0
- bl sub_8079108
- b _080E0C94
- .align 2, 0
-_080E0C58: .4byte gUnknown_02024A6A
-_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gUnknown_0202F7C8
-_080E0C64: .4byte 0x040000d4
-_080E0C68: .4byte 0x85000400
-_080E0C6C: .4byte gUnknown_08D1D574
-_080E0C70: .4byte gUnknown_08D1D410
-_080E0C74: .4byte gUnknown_08D1D54C
-_080E0C78: .4byte gUnknown_030042C0
-_080E0C7C: .4byte gSprites
-_080E0C80: .4byte gUnknown_030041B4
-_080E0C84: .4byte gUnknown_03004B00
-_080E0C88:
- lsls r0, r1, 4
- ldrh r3, [r2, 0x4]
- movs r1, 0x10
- movs r2, 0xB
- bl BlendPalette
-_080E0C94:
- ldr r1, _080E0CC4 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r2, _080E0CC8 @ =gUnknown_03004B00
- ldrh r1, [r2]
- strh r1, [r0, 0xA]
- ldrh r1, [r2, 0x2]
- strh r1, [r0, 0xC]
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x14]
- ldr r1, _080E0CCC @ =sub_80E0CD0
- str r1, [r0]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0CC4: .4byte gTasks
-_080E0CC8: .4byte gUnknown_03004B00
-_080E0CCC: .4byte sub_80E0CD0
- thumb_func_end sub_80E0A4C
-
- thumb_func_start sub_80E0CD0
-sub_80E0CD0: @ 80E0CD0
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080E0DF0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r2, _080E0DF4 @ =gUnknown_030042C0
- ldrh r3, [r2]
- subs r1, r3, 0x4
- strh r1, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x80
- bne _080E0DE8
- strh r5, [r4, 0x1C]
- adds r0, r3, 0
- adds r0, 0x7C
- strh r0, [r2]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _080E0DE8
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E0DF8 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E0DFC @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E0E00 @ =REG_WININ
- ldr r2, _080E0E04 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E0D40
- ldr r2, _080E0E08 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E0D40:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E0E0C @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080E0E10 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- adds r1, r0, 0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _080E0D84
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_8079108
-_080E0D84:
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E0E14 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E0E18 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E0DE2
- ldr r2, _080E0E1C @ =gUnknown_02024BE0
- ldr r0, _080E0E20 @ =gUnknown_0202F7C8
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E0DE2:
- adds r0, r7, 0
- bl move_anim_task_del
-_080E0DE8:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0DF0: .4byte gTasks
-_080E0DF4: .4byte gUnknown_030042C0
-_080E0DF8: .4byte gUnknown_030042C4
-_080E0DFC: .4byte gUnknown_03004240
-_080E0E00: .4byte REG_WININ
-_080E0E04: .4byte 0x00003f3f
-_080E0E08: .4byte REG_BG1CNT
-_080E0E0C: .4byte REG_BLDCNT
-_080E0E10: .4byte gSprites
-_080E0E14: .4byte 0x040000d4
-_080E0E18: .4byte 0x85000200
-_080E0E1C: .4byte gUnknown_02024BE0
-_080E0E20: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E0CD0
-
- thumb_func_start sub_80E0E24
-sub_80E0E24: @ 80E0E24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E0E44 @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0x7
- bhi _080E0E88
- lsls r0, r1, 2
- ldr r1, _080E0E48 @ =_080E0E4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E0E44: .4byte gUnknown_03004B00
-_080E0E48: .4byte _080E0E4C
- .align 2, 0
-_080E0E4C:
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E6C
- .4byte _080E0E78
- .4byte _080E0E7C
- .4byte _080E0E80
- .4byte _080E0E84
-_080E0E6C:
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r2, r0, 24
- b _080E0E8A
-_080E0E78:
- movs r4, 0
- b _080E0E90
-_080E0E7C:
- movs r4, 0x2
- b _080E0E90
-_080E0E80:
- movs r4, 0x1
- b _080E0E90
-_080E0E84:
- movs r4, 0x3
- b _080E0E90
-_080E0E88:
- movs r2, 0xFF
-_080E0E8A:
- movs r0, 0
- cmp r0, 0
- beq _080E0EB6
-_080E0E90:
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E0EB4
- ldr r0, _080E0EB0 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r2, [r0]
- b _080E0EB6
- .align 2, 0
-_080E0EB0: .4byte gUnknown_02024BE0
-_080E0EB4:
- movs r2, 0xFF
-_080E0EB6:
- cmp r2, 0xFF
- beq _080E0ED2
- ldr r1, _080E0EE0 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- adds r0, 0x10
- ldr r1, _080E0EE4 @ =gUnknown_03004B00
- ldrb r1, [r1, 0x2]
- bl sub_8079108
-_080E0ED2:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0EE0: .4byte gSprites
-_080E0EE4: .4byte gUnknown_03004B00
- thumb_func_end sub_80E0E24
-
- thumb_func_start sub_80E0EE8
-sub_80E0EE8: @ 80E0EE8
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E0F14 @ =gUnknown_0202F7C4
- ldrb r0, [r2]
- cmp r0, 0x1
- bhi _080E0EFC
- ldr r1, _080E0F18 @ =gUnknown_03004B00
- movs r0, 0
- strh r0, [r1, 0xE]
-_080E0EFC:
- ldrb r0, [r2]
- cmp r0, 0x2
- bne _080E0F08
- ldr r1, _080E0F18 @ =gUnknown_03004B00
- movs r0, 0x1
- strh r0, [r1, 0xE]
-_080E0F08:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F14: .4byte gUnknown_0202F7C4
-_080E0F18: .4byte gUnknown_03004B00
- thumb_func_end sub_80E0EE8
-
- thumb_func_start sub_80E0F1C
-sub_80E0F1C: @ 80E0F1C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E0F74 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- ldr r5, _080E0F78 @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x36]
- ldr r0, _080E0F7C @ =0x0000ffd8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _080E0F80 @ =sub_80E0F84
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0F74: .4byte gUnknown_0202F7C8
-_080E0F78: .4byte gUnknown_0202F7C9
-_080E0F7C: .4byte 0x0000ffd8
-_080E0F80: .4byte sub_80E0F84
- thumb_func_end sub_80E0F1C
-
- thumb_func_start sub_80E0F84
-sub_80E0F84: @ 80E0F84
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FD8
- ldrh r0, [r5, 0x24]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E0FE4 @ =sub_80E0FE8
- str r0, [r5, 0x1C]
-_080E0FD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E0FE0: .4byte gUnknown_0202F7C8
-_080E0FE4: .4byte sub_80E0FE8
- thumb_func_end sub_80E0F84
-
- thumb_func_start sub_80E0FE8
-sub_80E0FE8: @ 80E0FE8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E0FFC
- adds r0, r4, 0
- bl move_anim_8072740
-_080E0FFC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E0FE8
-
- thumb_func_start sub_80E1004
-sub_80E1004: @ 80E1004
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_8078764
- ldr r0, _080E1064 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E1024
- ldr r1, _080E1068 @ =gUnknown_03004B00
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1024:
- ldr r4, _080E1068 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x8]
- strh r0, [r6, 0x2E]
- ldr r5, _080E106C @ =gUnknown_0202F7C9
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r6, 0x32]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r4, [r4, 0x6]
- adds r0, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1070 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080E1074 @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1064: .4byte gUnknown_0202F7C8
-_080E1068: .4byte gUnknown_03004B00
-_080E106C: .4byte gUnknown_0202F7C9
-_080E1070: .4byte sub_8078B34
-_080E1074: .4byte move_anim_8072740
- thumb_func_end sub_80E1004
-
- thumb_func_start sub_80E1078
-sub_80E1078: @ 80E1078
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r4, _080E10F8 @ =gUnknown_0202F7C9
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077EE4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077EE4
- lsls r0, 24
- lsrs r7, r0, 24
- bl Random
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- bl Random
- ands r4, r0
- adds r1, r5, 0
- cmp r1, 0x10
- ble _080E10C0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E10C0:
- lsls r0, r4, 16
- asrs r1, r0, 16
- cmp r1, 0x10
- ble _080E10D0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_080E10D0:
- ldr r0, _080E10FC @ =gUnknown_03004B00
- ldrh r0, [r0, 0x4]
- strh r0, [r6, 0x2E]
- mov r1, r8
- adds r0, r1, r5
- strh r0, [r6, 0x32]
- adds r0, r7, r4
- strh r0, [r6, 0x36]
- ldr r0, _080E1100 @ =sub_8078B34
- str r0, [r6, 0x1C]
- ldr r1, _080E1104 @ =move_anim_8074EE0
- adds r0, r6, 0
- bl oamt_set_x3A_32
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E10F8: .4byte gUnknown_0202F7C9
-_080E10FC: .4byte gUnknown_03004B00
-_080E1100: .4byte sub_8078B34
-_080E1104: .4byte move_anim_8074EE0
- thumb_func_end sub_80E1078
-
- thumb_func_start sub_80E1108
-sub_80E1108: @ 80E1108
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x1
- ldr r3, _080E1168 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E116C @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- ldr r6, _080E1170 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080E117C
- ldr r4, _080E1174 @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r6, 0x2]
- adds r0, r2
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r3, [r6, 0x4]
- adds r0, r3
- strh r0, [r5, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- ble _080E1162
- movs r1, 0x1
-_080E1162:
- strh r1, [r5, 0x2E]
- ldr r0, _080E1178 @ =sub_80E1198
- b _080E118A
- .align 2, 0
-_080E1168: .4byte 0x000003ff
-_080E116C: .4byte 0xfffffc00
-_080E1170: .4byte gUnknown_03004B00
-_080E1174: .4byte gUnknown_0202F7C8
-_080E1178: .4byte sub_80E1198
-_080E117C:
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x4]
- strh r0, [r5, 0x22]
- negs r0, r0
- strh r0, [r5, 0x26]
- ldr r0, _080E1194 @ =sub_80E11D4
-_080E118A:
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1194: .4byte sub_80E11D4
- thumb_func_end sub_80E1108
-
- thumb_func_start sub_80E1198
-sub_80E1198: @ 80E1198
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E11B6
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
-_080E11B6:
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E11CE
- adds r0, r2, 0
- bl move_anim_8072740
-_080E11CE:
- pop {r0}
- bx r0
- thumb_func_end sub_80E1198
-
- thumb_func_start sub_80E11D4
-sub_80E11D4: @ 80E11D4
- push {lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0
- beq _080E11E6
- cmp r1, 0x1
- beq _080E11FC
- b _080E123E
-_080E11E6:
- ldrh r0, [r3, 0x26]
- adds r0, 0x4
- strh r0, [r3, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _080E123E
- strh r1, [r3, 0x26]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _080E123E
-_080E11FC:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _080E123E
- movs r0, 0
- strh r0, [r3, 0x30]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r2, [r1]
- 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]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080E123E
- adds r0, r3, 0
- bl move_anim_8072740
-_080E123E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E11D4
-
- thumb_func_start sub_80E1244
-sub_80E1244: @ 80E1244
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1264 @ =gTasks
- adds r1, r0, r1
- ldr r0, _080E1268 @ =gUnknown_03004B00
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E1270
- ldr r0, _080E126C @ =sub_80E1284
- b _080E1272
- .align 2, 0
-_080E1264: .4byte gTasks
-_080E1268: .4byte gUnknown_03004B00
-_080E126C: .4byte sub_80E1284
-_080E1270:
- ldr r0, _080E1280 @ =sub_80E143C
-_080E1272:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E1280: .4byte sub_80E143C
- thumb_func_end sub_80E1244
-
- thumb_func_start sub_80E1284
-sub_80E1284: @ 80E1284
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E12A8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _080E129E
- b _080E1432
-_080E129E:
- lsls r0, 2
- ldr r1, _080E12AC @ =_080E12B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E12A8: .4byte gTasks
-_080E12AC: .4byte _080E12B0
- .align 2, 0
-_080E12B0:
- .4byte _080E12C4
- .4byte _080E134C
- .4byte _080E135C
- .4byte _080E1400
- .4byte _080E1414
-_080E12C4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E12EC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E12F8
- ldr r0, _080E12F0 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E12F4 @ =gUnknown_030041B4
- b _080E1300
- .align 2, 0
-_080E12EC: .4byte gUnknown_0202F7C8
-_080E12F0: .4byte gUnknown_030042C0
-_080E12F4: .4byte gUnknown_030041B4
-_080E12F8:
- ldr r0, _080E133C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E1340 @ =gUnknown_03004280
-_080E1300:
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E1344 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- cmp r1, 0
- bge _080E1322
- movs r0, 0
- strh r0, [r4, 0x24]
-_080E1322:
- ldr r2, _080E1348 @ =gSprites
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080E1406
- .align 2, 0
-_080E133C: .4byte gUnknown_03004288
-_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gUnknown_0202F7C8
-_080E1348: .4byte gSprites
-_080E134C:
- ldrb r0, [r4, 0x1E]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- bl sub_80E1668
- b _080E1406
-_080E135C:
- ldrh r0, [r4, 0xC]
- adds r0, 0x6
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E137E
- movs r0, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
-_080E137E:
- ldr r1, _080E13A0 @ =gSineTable
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- ldrh r3, [r4, 0xE]
- adds r2, r0, r3
- strh r2, [r4, 0x12]
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080E13A8
- ldr r1, _080E13A4 @ =gUnknown_030041B4
- b _080E13AA
- .align 2, 0
-_080E13A0: .4byte gSineTable
-_080E13A4: .4byte gUnknown_030041B4
-_080E13A8:
- ldr r1, _080E13CC @ =gUnknown_03004280
-_080E13AA:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _080E1432
- ldrh r0, [r4, 0x24]
- movs r1, 0x78
- subs r2, r1, r0
- strh r2, [r4, 0x12]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E13D4
- ldr r1, _080E13D0 @ =gUnknown_030041B4
- b _080E13D6
- .align 2, 0
-_080E13CC: .4byte gUnknown_03004280
-_080E13D0: .4byte gUnknown_030041B4
-_080E13D4:
- ldr r1, _080E13F8 @ =gUnknown_03004280
-_080E13D6:
- ldrh r0, [r4, 0x22]
- subs r0, r2
- strh r0, [r1]
- ldr r2, _080E13FC @ =gSprites
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x88
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r2
- strh r0, [r1, 0x24]
- b _080E1406
- .align 2, 0
-_080E13F8: .4byte gUnknown_03004280
-_080E13FC: .4byte gSprites
-_080E1400:
- ldr r1, _080E1410 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E1406:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1432
- .align 2, 0
-_080E1410: .4byte gUnknown_03004DC0
-_080E1414:
- adds r0, r2, 0
- bl move_anim_task_del
- ldr r2, _080E1438 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080E1432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1438: .4byte gSprites
- thumb_func_end sub_80E1284
-
- thumb_func_start sub_80E143C
-sub_80E143C: @ 80E143C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E147C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r3]
- movs r4, 0
- strh r4, [r1, 0x24]
- strh r4, [r1, 0x26]
- ldr r0, _080E1480 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E1488
- ldr r0, _080E1484 @ =gUnknown_030041B4
- b _080E148A
- .align 2, 0
-_080E147C: .4byte gSprites
-_080E1480: .4byte gUnknown_0202F7C8
-_080E1484: .4byte gUnknown_030041B4
-_080E1488:
- ldr r0, _080E1498 @ =gUnknown_03004280
-_080E148A:
- strh r4, [r0]
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1498: .4byte gUnknown_03004280
- thumb_func_end sub_80E143C
-
- thumb_func_start sub_80E149C
-sub_80E149C: @ 80E149C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14BC @ =gTasks
- adds r1, r0, r1
- ldr r0, _080E14C0 @ =gUnknown_03004B00
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bne _080E14C8
- ldr r0, _080E14C4 @ =sub_80E14DC
- b _080E14CA
- .align 2, 0
-_080E14BC: .4byte gTasks
-_080E14C0: .4byte gUnknown_03004B00
-_080E14C4: .4byte sub_80E14DC
-_080E14C8:
- ldr r0, _080E14D8 @ =sub_80E1560
-_080E14CA:
- str r0, [r1]
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E14D8: .4byte sub_80E1560
- thumb_func_end sub_80E149C
-
- thumb_func_start sub_80E14DC
-sub_80E14DC: @ 80E14DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E14FC @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080E1500
- cmp r5, 0x1
- beq _080E1554
- b _080E155A
- .align 2, 0
-_080E14FC: .4byte gTasks
-_080E1500:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r3, _080E1550 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x24]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x22]
- movs r0, 0xA0
- subs r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E155A
- .align 2, 0
-_080E1550: .4byte gSprites
-_080E1554:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E155A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E14DC
-
- thumb_func_start sub_80E1560
-sub_80E1560: @ 80E1560
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1584 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _080E1662
- lsls r0, 2
- ldr r1, _080E1588 @ =_080E158C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E1584: .4byte gTasks
-_080E1588: .4byte _080E158C
- .align 2, 0
-_080E158C:
- .4byte _080E15A0
- .4byte _080E15F4
- .4byte _080E1602
- .4byte _080E161C
- .4byte _080E165C
-_080E15A0:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1C]
- ldr r0, _080E15C4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- cmp r0, 0x1
- bne _080E15CC
- ldr r0, _080E15C8 @ =gUnknown_030042C0
- b _080E15CE
- .align 2, 0
-_080E15C4: .4byte gUnknown_0202F7C8
-_080E15C8: .4byte gUnknown_030042C0
-_080E15CC:
- ldr r0, _080E15EC @ =gUnknown_03004288
-_080E15CE:
- ldrh r0, [r0]
- strh r0, [r4, 0x20]
- ldr r0, _080E15F0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- subs r1, 0x20
- strh r1, [r4, 0x24]
- adds r0, 0x20
- strh r0, [r4, 0x26]
- b _080E164A
- .align 2, 0
-_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gUnknown_0202F7C8
-_080E15F4:
- ldrb r0, [r4, 0x1E]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0
- bl sub_80E1668
- b _080E164A
-_080E1602:
- ldr r2, _080E1618 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x60
- strh r1, [r0, 0x26]
- b _080E164A
- .align 2, 0
-_080E1618: .4byte gSprites
-_080E161C:
- ldr r2, _080E1654 @ =gSprites
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- subs r1, 0x8
- strh r1, [r0, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E1662
- ldr r1, _080E1658 @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_080E164A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1662
- .align 2, 0
-_080E1654: .4byte gSprites
-_080E1658: .4byte gUnknown_03004DC0
-_080E165C:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E1662:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1560
-
- thumb_func_start sub_80E1668
-sub_80E1668: @ 80E1668
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- cmp r0, 0x1
- bne _080E168C
- ldr r0, _080E1684 @ =gUnknown_030042C0
- ldrh r3, [r0]
- ldr r0, _080E1688 @ =REG_BG1HOFS
- b _080E1692
- .align 2, 0
-_080E1684: .4byte gUnknown_030042C0
-_080E1688: .4byte REG_BG1HOFS
-_080E168C:
- ldr r0, _080E1718 @ =gUnknown_03004288
- ldrh r3, [r0]
- ldr r0, _080E171C @ =REG_BG2HOFS
-_080E1692:
- str r0, [sp]
- lsls r0, r1, 16
- cmp r0, 0
- bge _080E169C
- movs r1, 0
-_080E169C:
- lsls r2, r1, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- cmp r2, r0
- bge _080E16C8
- ldr r5, _080E1720 @ =gUnknown_03004DE0
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_080E16AE:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r5
- strh r3, [r0]
- adds r1, r6
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r2, r1, 16
- asrs r0, r2, 16
- cmp r0, r4
- blt _080E16AE
-_080E16C8:
- lsls r1, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- bgt _080E16F6
- ldr r4, _080E1720 @ =gUnknown_03004DE0
- lsls r0, r3, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_080E16E0:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- adds r2, 0x1
- lsls r1, r2, 16
- asrs r0, r1, 16
- cmp r0, 0x9F
- ble _080E16E0
-_080E16F6:
- ldr r0, _080E1724 @ =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1718: .4byte gUnknown_03004288
-_080E171C: .4byte REG_BG2HOFS
-_080E1720: .4byte gUnknown_03004DE0
-_080E1724: .4byte 0xa2600001
- thumb_func_end sub_80E1668
-
- thumb_func_start sub_80E1728
-sub_80E1728: @ 80E1728
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _080E173C @ =gUnknown_03004B00
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r7, r0, 0
- cmp r1, 0
- bne _080E1744
- ldr r0, _080E1740 @ =gUnknown_0202F7C8
- b _080E1746
- .align 2, 0
-_080E173C: .4byte gUnknown_03004B00
-_080E1740: .4byte gUnknown_0202F7C8
-_080E1744:
- ldr r0, _080E17A8 @ =gUnknown_0202F7C9
-_080E1746:
- ldrb r4, [r0]
- movs r6, 0x18
- adds r1, r7, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _080E1762
- negs r0, r6
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x4]
-_080E1762:
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r6
- strh r0, [r5, 0x20]
- adds r0, r4, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x1E
- strh r0, [r5, 0x22]
- ldrh r1, [r7, 0xA]
- strh r1, [r5, 0x2E]
- ldrh r1, [r7, 0x4]
- ldrh r2, [r5, 0x20]
- adds r1, r2
- strh r1, [r5, 0x32]
- ldrh r1, [r7, 0x6]
- adds r0, r1
- strh r0, [r5, 0x36]
- ldrh r0, [r7, 0x8]
- strh r0, [r5, 0x38]
- adds r0, r5, 0
- bl sub_80786EC
- ldr r0, _080E17AC @ =sub_80E17B0
- str r0, [r5, 0x1C]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E17A8: .4byte gUnknown_0202F7C9
-_080E17AC: .4byte sub_80E17B0
- thumb_func_end sub_80E1728
-
- thumb_func_start sub_80E17B0
-sub_80E17B0: @ 80E17B0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _080E17C4
- adds r0, r4, 0
- bl move_anim_8072740
-_080E17C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E17B0
-
- thumb_func_start sub_80E17CC
-sub_80E17CC: @ 80E17CC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _080E17E0 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E17E8
- ldr r0, _080E17E4 @ =gUnknown_0202F7C8
- b _080E17EA
- .align 2, 0
-_080E17E0: .4byte gUnknown_03004B00
-_080E17E4: .4byte gUnknown_0202F7C8
-_080E17E8:
- ldr r0, _080E1848 @ =gUnknown_0202F7C9
-_080E17EA:
- ldrb r5, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E184C @ =0x0000fff0
- adds r0, r2
- ldr r4, _080E1850 @ =gUnknown_03004B00
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- lsls r1, 5
- adds r0, r1
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r6, 0x22]
- ldrh r2, [r6, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 3
- adds r1, r0
- ldr r3, _080E1854 @ =0x000003ff
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _080E1858 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r6, 0x4]
- ldr r1, _080E185C @ =move_anim_8072740
- adds r0, r6, 0
- bl oamt_set_x3A_32
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x2E]
- ldr r0, _080E1860 @ =sub_80782D8
- str r0, [r6, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1848: .4byte gUnknown_0202F7C9
-_080E184C: .4byte 0x0000fff0
-_080E1850: .4byte gUnknown_03004B00
-_080E1854: .4byte 0x000003ff
-_080E1858: .4byte 0xfffffc00
-_080E185C: .4byte move_anim_8072740
-_080E1860: .4byte sub_80782D8
- thumb_func_end sub_80E17CC
-
- thumb_func_start sub_80E1864
-sub_80E1864: @ 80E1864
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E1888 @ =gTasks
- adds r4, r0, r1
- ldr r0, _080E188C @ =gUnknown_03004B00
- ldrh r2, [r0, 0x2]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _080E1890
- adds r0, r2, 0x3
- b _080E189C
- .align 2, 0
-_080E1888: .4byte gTasks
-_080E188C: .4byte gUnknown_03004B00
-_080E1890:
- ldr r0, _080E18BC @ =gUnknown_0202F7BC
- ldrh r0, [r0]
- movs r1, 0xA
- bl __udivsi3
- adds r0, 0x3
-_080E189C:
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x24]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xE]
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x4
- beq _080E18C8
- cmp r0, 0x5
- bne _080E1908
- ldr r0, _080E18C0 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r4, 0x22]
- ldr r0, _080E18C4 @ =sub_80E1934
- b _080E1926
- .align 2, 0
-_080E18BC: .4byte gUnknown_0202F7BC
-_080E18C0: .4byte gUnknown_030041B0
-_080E18C4: .4byte sub_80E1934
-_080E18C8:
- movs r0, 0
- strh r0, [r4, 0x22]
- movs r5, 0
-_080E18CE:
- lsls r0, r5, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E18F8
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- adds r0, 0x9
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x8
- adds r1, r0
- ldr r0, _080E1904 @ =gUnknown_02024BE0
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r1]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_080E18F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E18CE
- b _080E1924
- .align 2, 0
-_080E1904: .4byte gUnknown_02024BE0
-_080E1908:
- ldrb r0, [r6]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1A]
- cmp r0, 0xFF
- bne _080E1920
- adds r0, r5, 0
- bl move_anim_task_del
- b _080E1928
-_080E1920:
- movs r0, 0x1
- strh r0, [r4, 0x22]
-_080E1924:
- ldr r0, _080E1930 @ =sub_80E1A2C
-_080E1926:
- str r0, [r4]
-_080E1928:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1930: .4byte sub_80E1A2C
- thumb_func_end sub_80E1864
-
- thumb_func_start sub_80E1934
-sub_80E1934: @ 80E1934
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E1958 @ =gTasks
- adds r3, r0, r1
- movs r0, 0x8
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _080E19B8
- cmp r1, 0x1
- bgt _080E195C
- cmp r1, 0
- beq _080E1962
- b _080E1A24
- .align 2, 0
-_080E1958: .4byte gTasks
-_080E195C:
- cmp r1, 0x2
- beq _080E1A18
- b _080E1A24
-_080E1962:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- strh r1, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E198C
- ldr r1, _080E1988 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E1996
- .align 2, 0
-_080E1988: .4byte gUnknown_030041B0
-_080E198C:
- ldr r0, _080E19B4 @ =gUnknown_030041B0
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x26]
- subs r1, r2
- strh r1, [r0]
-_080E1996:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- b _080E1A0C
- .align 2, 0
-_080E19B4: .4byte gUnknown_030041B0
-_080E19B8:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1A24
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- ands r1, r0
- cmp r1, 0
- bne _080E19E4
- ldr r1, _080E19E0 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x24]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r1]
- b _080E19EE
- .align 2, 0
-_080E19E0: .4byte gUnknown_030041B0
-_080E19E4:
- ldr r0, _080E1A14 @ =gUnknown_030041B0
- ldrh r1, [r3, 0x22]
- ldrh r2, [r3, 0x24]
- subs r1, r2
- strh r1, [r0]
-_080E19EE:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1A24
- movs r0, 0
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x24]
- subs r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1A24
-_080E1A0C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E1A24
- .align 2, 0
-_080E1A14: .4byte gUnknown_030041B0
-_080E1A18:
- ldr r1, _080E1A28 @ =gUnknown_030041B0
- ldrh r0, [r3, 0x22]
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
-_080E1A24:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1A28: .4byte gUnknown_030041B0
- thumb_func_end sub_80E1934
-
- thumb_func_start sub_80E1A2C
-sub_80E1A2C: @ 80E1A2C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1A50 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _080E1A8C
- cmp r5, 0x1
- bgt _080E1A54
- cmp r5, 0
- beq _080E1A5A
- b _080E1B06
- .align 2, 0
-_080E1A50: .4byte gTasks
-_080E1A54:
- cmp r5, 0x2
- beq _080E1AC8
- b _080E1B06
-_080E1A5A:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- b _080E1AC0
-_080E1A8C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E1B06
- strh r5, [r4, 0xA]
- adds r0, r4, 0
- bl sub_80E1B10
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E1B06
- strh r5, [r4, 0xC]
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080E1B06
-_080E1AC0:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E1B06
-_080E1AC8:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r4, r7]
- cmp r2, r0
- bge _080E1B00
- ldr r0, _080E1B0C @ =gSprites
- mov r12, r0
- adds r5, r4, 0
- adds r5, 0x8
- movs r6, 0
-_080E1ADC:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- strh r6, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r2, r0
- blt _080E1ADC
-_080E1B00:
- adds r0, r3, 0
- bl move_anim_task_del
-_080E1B06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B0C: .4byte gSprites
- thumb_func_end sub_80E1A2C
-
- thumb_func_start sub_80E1B10
-sub_80E1B10: @ 80E1B10
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xC]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E1B38
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
- ldrh r2, [r3, 0x24]
- adds r0, r4, 0
- ands r0, r2
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- b _080E1B48
-_080E1B38:
- movs r1, 0x24
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
-_080E1B48:
- movs r2, 0
- movs r7, 0x22
- ldrsh r0, [r3, r7]
- cmp r2, r0
- bge _080E1B7C
- ldr r6, _080E1B84 @ =gSprites
- adds r5, r3, 0
- adds r5, 0x8
-_080E1B58:
- adds r0, r2, 0
- adds r0, 0x9
- lsls r0, 1
- adds r0, r5, r0
- movs r7, 0
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r4, [r0, 0x24]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x22
- ldrsh r0, [r3, r1]
- cmp r2, r0
- blt _080E1B58
-_080E1B7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1B84: .4byte gSprites
- thumb_func_end sub_80E1B10
-
- thumb_func_start sub_80E1B88
-sub_80E1B88: @ 80E1B88
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r3, _080E1BA8 @ =gUnknown_03004B00
- movs r2, 0
- ldr r0, _080E1BAC @ =gUnknown_0202F7BC
- ldrh r0, [r0]
- cmp r0, 0x63
- bls _080E1B9C
- movs r2, 0x1
-_080E1B9C:
- strh r2, [r3, 0x1E]
- adds r0, r1, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E1BA8: .4byte gUnknown_03004B00
-_080E1BAC: .4byte gUnknown_0202F7BC
- thumb_func_end sub_80E1B88
-
- thumb_func_start sub_80E1BB0
-sub_80E1BB0: @ 80E1BB0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080E1BC8 @ =gUnknown_03004B00
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- beq _080E1BD0
- ldr r0, _080E1BCC @ =gUnknown_0202F7C9
- b _080E1BD2
- .align 2, 0
-_080E1BC8: .4byte gUnknown_03004B00
-_080E1BCC: .4byte gUnknown_0202F7C9
-_080E1BD0:
- ldr r0, _080E1C40 @ =gUnknown_0202F7C8
-_080E1BD2:
- ldrb r0, [r0]
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- ble _080E1BE2
- movs r0, 0x2
- eors r5, r0
-_080E1BE2:
- ldr r0, _080E1C44 @ =sub_80E1C58
- ldrb r1, [r6, 0x2]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _080E1C48 @ =gTasks
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x20
- subs r1, r0
- ldr r2, _080E1C4C @ =0x000001ff
- adds r0, r2, 0
- ands r1, r0
- strh r1, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x40
- subs r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0xC]
- ldr r2, _080E1C50 @ =gUnknown_030041B0
- ldrh r0, [r4, 0xA]
- strh r0, [r2]
- ldr r0, _080E1C54 @ =gUnknown_030041B8
- strh r1, [r0]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0xE]
- adds r0, r7, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1C40: .4byte gUnknown_0202F7C8
-_080E1C44: .4byte sub_80E1C58
-_080E1C48: .4byte gTasks
-_080E1C4C: .4byte 0x000001ff
-_080E1C50: .4byte gUnknown_030041B0
-_080E1C54: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1BB0
-
- thumb_func_start sub_80E1C58
-sub_80E1C58: @ 80E1C58
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080E1C88 @ =gTasks
- adds r2, r0, r1
- ldr r0, _080E1C8C @ =gUnknown_03004B00
- movs r4, 0xE
- ldrsh r1, [r0, r4]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- cmp r1, r0
- bne _080E1C98
- ldr r0, _080E1C90 @ =gUnknown_030041B0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E1C94 @ =gUnknown_030041B8
- strh r1, [r0]
- adds r0, r3, 0
- bl DestroyTask
- b _080E1CA4
- .align 2, 0
-_080E1C88: .4byte gTasks
-_080E1C8C: .4byte gUnknown_03004B00
-_080E1C90: .4byte gUnknown_030041B0
-_080E1C94: .4byte gUnknown_030041B8
-_080E1C98:
- ldr r1, _080E1CAC @ =gUnknown_030041B0
- ldrh r0, [r2, 0xA]
- strh r0, [r1]
- ldr r1, _080E1CB0 @ =gUnknown_030041B8
- ldrh r0, [r2, 0xC]
- strh r0, [r1]
-_080E1CA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1CAC: .4byte gUnknown_030041B0
-_080E1CB0: .4byte gUnknown_030041B8
- thumb_func_end sub_80E1C58
-
- thumb_func_start sub_80E1CB4
-sub_80E1CB4: @ 80E1CB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E1CEC @ =gUnknown_03004B00
- ldrh r0, [r5]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E1CF4
- ldrh r0, [r5, 0x6]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080E1D02
- .align 2, 0
-_080E1CEC: .4byte gUnknown_03004B00
-_080E1CF0: .4byte gUnknown_0202F7C8
-_080E1CF4:
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080E1D02:
- ldr r0, _080E1D18 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x34]
- ldr r1, _080E1D1C @ =sub_80E1D20
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1D18: .4byte gUnknown_03004B00
-_080E1D1C: .4byte sub_80E1D20
- thumb_func_end sub_80E1CB4
-
- thumb_func_start sub_80E1D20
-sub_80E1D20: @ 80E1D20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r1, 0x1E
- bl Cos
- strh r0, [r4, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- movs r1, 0xA
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x7F
- bhi _080E1D52
- ldrb r0, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x5]
- b _080E1D5A
-_080E1D52:
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_080E1D5A:
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _080E1D7E
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1D7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1D20
-
- thumb_func_start sub_80E1D84
-sub_80E1D84: @ 80E1D84
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _080E1DBC @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl BeginNormalPaletteFade
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1DC0 @ =sub_80E1E0C
- str r0, [r5, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1DBC: .4byte gUnknown_03004B00
-_080E1DC0: .4byte sub_80E1E0C
- thumb_func_end sub_80E1D84
-
- thumb_func_start sub_80E1DC4
-sub_80E1DC4: @ 80E1DC4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x1
- mov r8, r0
- mov r1, r8
- ands r1, r4
- mov r8, r1
- lsls r0, 16
- asrs r1, r0, 17
- ands r1, r4
- asrs r2, r0, 18
- ands r2, r4
- asrs r3, r0, 19
- ands r3, r4
- asrs r6, r0, 20
- ands r6, r4
- asrs r5, r0, 21
- ands r5, r4
- asrs r0, 22
- ands r0, r4
- str r6, [sp]
- str r5, [sp, 0x4]
- str r0, [sp, 0x8]
- mov r0, r8
- bl sub_80791A8
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1DC4
-
- thumb_func_start sub_80E1E0C
-sub_80E1E0C: @ 80E1E0C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E1E28 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1E22
- adds r0, r2, 0
- bl move_anim_8072740
-_080E1E22:
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E28: .4byte gPaletteFade
- thumb_func_end sub_80E1E0C
-
- thumb_func_start sub_80E1E2C
-sub_80E1E2C: @ 80E1E2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E1E78 @ =gUnknown_03004B00
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- ldrh r0, [r4, 0x4]
- strh r0, [r5, 0x32]
- ldrh r0, [r4, 0x6]
- strh r0, [r5, 0x34]
- ldrh r0, [r4, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r4, 0xA]
- strh r0, [r5, 0x38]
- ldrh r0, [r4, 0xC]
- strh r0, [r5, 0x3A]
- ldrh r0, [r4]
- strh r0, [r5, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- bl sub_80E1DC4
- ldrb r1, [r4, 0x8]
- ldrh r2, [r4, 0x6]
- bl BlendPalettes
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _080E1E7C @ =sub_80E1E80
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1E78: .4byte gUnknown_03004B00
-_080E1E7C: .4byte sub_80E1E80
- thumb_func_end sub_80E1E2C
-
- thumb_func_start sub_80E1E80
-sub_80E1E80: @ 80E1E80
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E1E94
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E1F04
-_080E1E94:
- ldr r0, _080E1EB0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F04
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E1EB8
- ldr r0, _080E1EB4 @ =sub_80E1F0C
- str r0, [r4, 0x1C]
- b _080E1F04
- .align 2, 0
-_080E1EB0: .4byte gPaletteFade
-_080E1EB4: .4byte sub_80E1F0C
-_080E1EB8:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- bl sub_80E1DC4
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E1EDE
- ldrh r1, [r4, 0x36]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x34]
- adds r0, r3, 0
- bl BlendPalettes
- b _080E1EEC
-_080E1EDE:
- ldrh r1, [r4, 0x3A]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x38]
- adds r0, r3, 0
- bl BlendPalettes
-_080E1EEC:
- ldrh r0, [r4, 0x30]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- eors r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x32]
- subs r0, 0x1
- strh r0, [r4, 0x32]
-_080E1F04:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E1E80
-
- thumb_func_start sub_80E1F0C
-sub_80E1F0C: @ 80E1F0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E1F38 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1F32
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0
- movs r2, 0
- bl BlendPalettes
- adds r0, r4, 0
- bl move_anim_8072740
-_080E1F32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F38: .4byte gPaletteFade
- thumb_func_end sub_80E1F0C
-
- thumb_func_start sub_80E1F3C
-sub_80E1F3C: @ 80E1F3C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _080E1F80 @ =gUnknown_03004B00
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r2, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x30]
- movs r0, 0x8
- strh r0, [r4, 0x32]
- movs r0, 0x28
- strh r0, [r4, 0x34]
- movs r0, 0x70
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x38]
- ldr r1, _080E1F84 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _080E1F88 @ =sub_8078174
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1F80: .4byte gUnknown_03004B00
-_080E1F84: .4byte move_anim_8074EE0
-_080E1F88: .4byte sub_8078174
- thumb_func_end sub_80E1F3C
-
- thumb_func_start sub_80E1F8C
-sub_80E1F8C: @ 80E1F8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E1FD0 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E1FD4 @ =gUnknown_03004B00
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E1FDC
- ldr r0, _080E1FD8 @ =sub_80E202C
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E1FD0: .4byte gTasks
-_080E1FD4: .4byte gUnknown_03004B00
-_080E1FD8: .4byte sub_80E202C
- thumb_func_end sub_80E1F8C
-
- thumb_func_start sub_80E1FDC
-sub_80E1FDC: @ 80E1FDC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E2028 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r2, [r4, 0x12]
- str r2, [sp]
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2028: .4byte gTasks
- thumb_func_end sub_80E1FDC
-
- thumb_func_start sub_80E202C
-sub_80E202C: @ 80E202C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2064 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E208E
- ldr r1, _080E2068 @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E2088
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E206C
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2070
- .align 2, 0
-_080E2064: .4byte gPaletteFade
-_080E2068: .4byte gTasks
-_080E206C:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2070:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2080
- movs r2, 0
-_080E2080:
- adds r0, r4, 0
- bl sub_80E1FDC
- b _080E208E
-_080E2088:
- adds r0, r4, 0
- bl move_anim_task_del
-_080E208E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E202C
-
- thumb_func_start sub_80E2094
-sub_80E2094: @ 80E2094
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E20D8 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r3, _080E20DC @ =gUnknown_03004B00
- ldrh r1, [r3]
- movs r5, 0
- strh r1, [r4, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r4, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r4, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r4, 0xE]
- ldrh r2, [r3, 0x8]
- strh r2, [r4, 0x10]
- ldrh r1, [r3, 0xA]
- strh r1, [r4, 0x12]
- strh r5, [r4, 0x18]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0
- bl sub_80E20E4
- ldr r0, _080E20E0 @ =sub_80E2140
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E20D8: .4byte gTasks
-_080E20DC: .4byte gUnknown_03004B00
-_080E20E0: .4byte sub_80E2140
- thumb_func_end sub_80E2094
-
- thumb_func_start sub_80E20E4
-sub_80E20E4: @ 80E20E4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _080E213C @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r0, [r4, 0x8]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- movs r1, 0xA
- ldrsb r1, [r4, r1]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x18]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x18]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E213C: .4byte gTasks
- thumb_func_end sub_80E20E4
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- ldr r0, _080E2178 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E21A2
- ldr r1, _080E217C @ =gTasks
- lsls r2, r3, 2
- adds r0, r2, r3
- lsls r0, 3
- adds r3, r0, r1
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- adds r6, r1, 0
- adds r5, r2, 0
- cmp r0, 0
- ble _080E219C
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E2180
- ldrb r1, [r3, 0xE]
- ldrb r2, [r3, 0x10]
- b _080E2184
- .align 2, 0
-_080E2178: .4byte gPaletteFade
-_080E217C: .4byte gTasks
-_080E2180:
- ldrb r1, [r3, 0x10]
- ldrb r2, [r3, 0xE]
-_080E2184:
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r6
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _080E2194
- movs r2, 0
-_080E2194:
- adds r0, r4, 0
- bl sub_80E20E4
- b _080E21A2
-_080E219C:
- adds r0, r4, 0
- bl move_anim_task_del
-_080E21A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2140
-
- thumb_func_start sub_80E21A8
-sub_80E21A8: @ 80E21A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E2208 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r5, _080E220C @ =gUnknown_03004B00
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xA]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r5]
- strh r0, [r4, 0x16]
- ldrh r0, [r5]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldrb r3, [r5, 0x8]
- ldrh r0, [r5, 0x6]
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080E2210 @ =sub_80E2214
- str r0, [r4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2208: .4byte gTasks
-_080E220C: .4byte gUnknown_03004B00
-_080E2210: .4byte sub_80E2214
- thumb_func_end sub_80E21A8
-
- thumb_func_start sub_80E2214
-sub_80E2214: @ 80E2214
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2238 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x8]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080E223C
- subs r0, r1, 0x1
- strh r0, [r4, 0x8]
- b _080E22C0
- .align 2, 0
-_080E2238: .4byte gTasks
-_080E223C:
- ldr r0, _080E2258 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E22C0
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _080E2260
- ldr r0, _080E225C @ =sub_80E22CC
- str r0, [r4]
- b _080E22C0
- .align 2, 0
-_080E2258: .4byte gPaletteFade
-_080E225C: .4byte sub_80E22CC
-_080E2260:
- ldrh r0, [r4, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r2, 0x1
- lsls r2, r0
- ldrh r1, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080E228E
- ldrb r3, [r4, 0x10]
- ldrh r0, [r4, 0xE]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
- b _080E229E
-_080E228E:
- ldrb r3, [r4, 0x14]
- ldrh r0, [r4, 0x12]
- str r0, [sp]
- adds r0, r2, 0
- movs r1, 0
- adds r2, r3, 0
- bl BeginNormalPaletteFade
-_080E229E:
- ldr r0, _080E22C8 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- eors r0, r2
- strh r0, [r1, 0xA]
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
-_080E22C0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E22C8: .4byte gTasks
- thumb_func_end sub_80E2214
-
- thumb_func_start sub_80E22CC
-sub_80E22CC: @ 80E22CC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E231C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080E2312
- ldr r1, _080E2320 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x16]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- str r5, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r4, 0
- bl move_anim_task_del
-_080E2312:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E231C: .4byte gPaletteFade
-_080E2320: .4byte gTasks
- thumb_func_end sub_80E22CC
-
- thumb_func_start sub_80E2324
-sub_80E2324: @ 80E2324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080E239C @ =gUnknown_0202F7C8
- ldrb r6, [r0]
- ldr r0, _080E23A0 @ =gUnknown_0202F7C9
- ldrb r7, [r0]
- ldr r4, _080E23A4 @ =gUnknown_03004B00
- ldrh r1, [r4]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E235E
- str r2, [sp]
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
-_080E235E:
- ldrh r1, [r4, 0x2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2370
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r6
- orrs r2, r0
-_080E2370:
- ldrh r1, [r4, 0x4]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2382
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r7
- orrs r2, r0
-_080E2382:
- adds r0, r2, 0
- bl InvertPlttBuffer
- mov r0, r8
- bl move_anim_task_del
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E239C: .4byte gUnknown_0202F7C8
-_080E23A0: .4byte gUnknown_0202F7C9
-_080E23A4: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2324
-
- thumb_func_start unref_sub_80E23A8
-unref_sub_80E23A8: @ 80E23A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r1, _080E249C @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E23EA
- ldr r1, _080E24A0 @ =gUnknown_03004B00
- ldrh r0, [r1]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xA]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x12]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r1, 0xC]
- strh r0, [r4, 0x16]
-_080E23EA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _080E24A4 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- mov r9, r0
- ldr r0, _080E24A8 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- mov r10, r0
- ldrh r1, [r4, 0xC]
- movs r7, 0x80
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E240C
- ldr r5, _080E24AC @ =0x0000ffff
-_080E240C:
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080E243C
- ldr r2, _080E24B0 @ =gSprites
- ldr r0, _080E24B4 @ =gUnknown_03004340
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- lsls r1, r0
- lsls r1, 16
- orrs r5, r1
-_080E243C:
- ldrh r1, [r4, 0xE]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2450
- adds r0, r6, 0
- mov r2, r9
- lsls r0, r2
- lsls r0, 16
- orrs r5, r0
-_080E2450:
- ldrh r1, [r4, 0x10]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080E2464
- adds r0, r6, 0
- mov r1, r10
- lsls r0, r1
- lsls r0, 16
- orrs r5, r0
-_080E2464:
- movs r1, 0x12
- ldrsb r1, [r4, r1]
- movs r2, 0x14
- ldrsb r2, [r4, r2]
- movs r3, 0x16
- ldrsb r3, [r4, r3]
- adds r0, r5, 0
- bl TintPlttBuffer
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E248E
- adds r0, r5, 0
- bl UnfadePlttBuffer
- mov r0, r8
- bl move_anim_task_del
-_080E248E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E249C: .4byte gTasks
-_080E24A0: .4byte gUnknown_03004B00
-_080E24A4: .4byte gUnknown_0202F7C8
-_080E24A8: .4byte gUnknown_0202F7C9
-_080E24AC: .4byte 0x0000ffff
-_080E24B0: .4byte gSprites
-_080E24B4: .4byte gUnknown_03004340
- thumb_func_end unref_sub_80E23A8
-
- thumb_func_start sub_80E24B8
-sub_80E24B8: @ 80E24B8
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080E24EC @ =gUnknown_03004B00
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x34]
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080E2500
- cmp r0, 0x1
- bgt _080E24F0
- cmp r0, 0
- beq _080E24F6
- b _080E2518
- .align 2, 0
-_080E24EC: .4byte gUnknown_03004B00
-_080E24F0:
- cmp r0, 0x2
- beq _080E2508
- b _080E2518
-_080E24F6:
- ldr r1, _080E24FC @ =gUnknown_030041B0
- b _080E250A
- .align 2, 0
-_080E24FC: .4byte gUnknown_030041B0
-_080E2500:
- ldr r1, _080E2504 @ =gUnknown_030041B8
- b _080E250A
- .align 2, 0
-_080E2504: .4byte gUnknown_030041B8
-_080E2508:
- ldr r1, _080E2514 @ =gSpriteCoordOffsetX
-_080E250A:
- adds r0, r4, 0
- bl oamt_set_x3A_32
- b _080E2520
- .align 2, 0
-_080E2514: .4byte gSpriteCoordOffsetX
-_080E2518:
- ldr r1, _080E2550 @ =gSpriteCoordOffsetY
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_080E2520:
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- lsls r0, 16
- orrs r1, r0
- ldr r0, [r1]
- strh r0, [r4, 0x36]
- ldr r0, _080E2554 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E2544
- bl sub_80E260C
-_080E2544:
- ldr r0, _080E2558 @ =sub_80E255C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2550: .4byte gSpriteCoordOffsetY
-_080E2554: .4byte gUnknown_03004B00
-_080E2558: .4byte sub_80E255C
- thumb_func_end sub_80E24B8
-
- thumb_func_start sub_80E255C
-sub_80E255C: @ 80E255C
- push {r4-r7,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E25A0
- subs r0, r1, 0x1
- strh r0, [r3, 0x34]
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _080E257E
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080E25FA
-_080E257E:
- ldrh r0, [r3, 0x32]
- strh r0, [r3, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- ldrh r0, [r3, 0x2E]
- negs r0, r0
- strh r0, [r3, 0x2E]
- b _080E25FA
-_080E25A0:
- movs r2, 0x3A
- ldrsh r1, [r3, r2]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- lsls r0, 16
- orrs r1, r0
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- str r0, [r1]
- ldrh r0, [r3, 0x38]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080E25F4
- movs r4, 0
- ldr r5, _080E2600 @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r4, r0
- bcs _080E25F4
- ldr r2, _080E2604 @ =gSprites
- mov r12, r2
- ldr r6, _080E2608 @ =gUnknown_02024BE0
- movs r7, 0x3
- negs r7, r7
-_080E25D2:
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5]
- cmp r4, r0
- bcc _080E25D2
-_080E25F4:
- adds r0, r3, 0
- bl move_anim_8072740
-_080E25FA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2600: .4byte gUnknown_02024A68
-_080E2604: .4byte gSprites
-_080E2608: .4byte gUnknown_02024BE0
- thumb_func_end sub_80E255C
-
- thumb_func_start sub_80E260C
-sub_80E260C: @ 80E260C
- push {r4-r6,lr}
- ldr r6, _080E2680 @ =gSprites
- ldr r4, _080E2684 @ =gUnknown_02024BE0
- ldr r5, _080E2688 @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x3
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r3, _080E268C @ =gUnknown_0202F7C9
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- ldr r0, _080E2690 @ =gUnknown_03004B00
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _080E2694
- ldrb r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- b _080E26B0
- .align 2, 0
-_080E2680: .4byte gSprites
-_080E2684: .4byte gUnknown_02024BE0
-_080E2688: .4byte gUnknown_0202F7C8
-_080E268C: .4byte gUnknown_0202F7C9
-_080E2690: .4byte gUnknown_03004B00
-_080E2694:
- cmp r0, 0
- bne _080E269C
- ldrb r0, [r5]
- b _080E269E
-_080E269C:
- ldrb r0, [r3]
-_080E269E:
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
-_080E26B0:
- orrs r1, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E260C
-
- thumb_func_start sub_80E26BC
-sub_80E26BC: @ 80E26BC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E26FC @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- ldr r3, _080E2700 @ =gUnknown_03004B00
- ldrh r1, [r3]
- strh r1, [r2, 0x8]
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xA]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x18]
- ldr r4, _080E2704 @ =gUnknown_030041B0
- ldrh r1, [r3]
- strh r1, [r4]
- ldr r4, _080E2708 @ =gUnknown_030041B8
- ldrh r1, [r3, 0x2]
- strh r1, [r4]
- ldr r1, _080E270C @ =sub_80E2710
- str r1, [r2]
- bl _call_via_r1
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E26FC: .4byte gTasks
-_080E2700: .4byte gUnknown_03004B00
-_080E2704: .4byte gUnknown_030041B0
-_080E2708: .4byte gUnknown_030041B8
-_080E270C: .4byte sub_80E2710
- thumb_func_end sub_80E26BC
-
- thumb_func_start sub_80E2710
-sub_80E2710: @ 80E2710
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E2740 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- mov r12, r1
- cmp r0, 0
- bne _080E2796
- ldr r0, _080E2744 @ =gUnknown_030041B0
- ldrh r2, [r0]
- movs r7, 0x8
- ldrsh r1, [r3, r7]
- adds r6, r0, 0
- cmp r2, r1
- bne _080E2748
- ldrh r0, [r3, 0x8]
- negs r0, r0
- b _080E274A
- .align 2, 0
-_080E2740: .4byte gTasks
-_080E2744: .4byte gUnknown_030041B0
-_080E2748:
- ldrh r0, [r3, 0x8]
-_080E274A:
- strh r0, [r6]
- ldr r2, _080E2768 @ =gUnknown_030041B8
- ldrh r3, [r2]
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- mov r7, r12
- adds r4, r0, r7
- movs r7, 0xA
- ldrsh r0, [r4, r7]
- cmn r3, r0
- bne _080E276C
- movs r0, 0
- b _080E2770
- .align 2, 0
-_080E2768: .4byte gUnknown_030041B8
-_080E276C:
- ldrh r0, [r4, 0xA]
- negs r0, r0
-_080E2770:
- strh r0, [r2]
- adds r0, r1, r5
- lsls r0, 3
- add r0, r12
- ldrh r1, [r0, 0x18]
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0xC]
- subs r1, 0x1
- strh r1, [r0, 0xC]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _080E279A
- strh r1, [r6]
- strh r1, [r2]
- adds r0, r5, 0
- bl move_anim_task_del
- b _080E279A
-_080E2796:
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_080E279A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2710
-
- thumb_func_start sub_80E27A0
-sub_80E27A0: @ 80E27A0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E27C0 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E27C4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E27CC
- .align 2, 0
-_080E27C0: .4byte gUnknown_03004B00
-_080E27C4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E27CC:
- ldr r0, _080E27E0 @ =sub_80785E4
- str r0, [r5, 0x1C]
- ldr r1, _080E27E4 @ =move_anim_8072740
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E27E0: .4byte sub_80785E4
-_080E27E4: .4byte move_anim_8072740
- thumb_func_end sub_80E27A0
-
- thumb_func_start sub_80E27E8
-sub_80E27E8: @ 80E27E8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E2808 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E280C
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E2814
- .align 2, 0
-_080E2808: .4byte gUnknown_03004B00
-_080E280C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E2814:
- ldr r0, _080E282C @ =gUnknown_03004B00
- ldrh r0, [r0, 0x8]
- strh r0, [r5, 0x2E]
- ldr r0, _080E2830 @ =sub_80785E4
- str r0, [r5, 0x1C]
- ldr r1, _080E2834 @ =sub_80DA48C
- adds r0, r5, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E282C: .4byte gUnknown_03004B00
-_080E2830: .4byte sub_80785E4
-_080E2834: .4byte sub_80DA48C
- thumb_func_end sub_80E27E8
-
- thumb_func_start sub_80E2838
-sub_80E2838: @ 80E2838
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2868 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E285C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E285C
- ldr r1, _080E286C @ =gUnknown_03004B00
- ldrh r0, [r1, 0x2]
- negs r0, r0
- strh r0, [r1, 0x2]
-_080E285C:
- adds r0, r4, 0
- bl sub_80E27A0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2868: .4byte gUnknown_0202F7C8
-_080E286C: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2838
-
- thumb_func_start sub_80E2870
-sub_80E2870: @ 80E2870
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E28A8 @ =gUnknown_03004B00
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080E288C
- bl Random
- movs r1, 0x3
- ands r1, r0
- strh r1, [r5, 0x2]
-_080E288C:
- ldrb r1, [r5, 0x2]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E28AC
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- b _080E28B4
- .align 2, 0
-_080E28A8: .4byte gUnknown_03004B00
-_080E28AC:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
-_080E28B4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x30
- bl __umodsi3
- ldr r1, _080E28F8 @ =0x0000ffe8
- adds r0, r1
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x18
- bl __umodsi3
- ldr r1, _080E28FC @ =0x0000fff4
- adds r0, r1
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldr r1, _080E2900 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E2904 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E28F8: .4byte 0x0000ffe8
-_080E28FC: .4byte 0x0000fff4
-_080E2900: .4byte move_anim_8074EE0
-_080E2904: .4byte sub_80785E4
- thumb_func_end sub_80E2870
-
- thumb_func_start sub_80E2908
-sub_80E2908: @ 80E2908
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _080E2968 @ =gUnknown_03004B00
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, _080E296C @ =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x26]
- ldrb r1, [r5, 0x6]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- ldr r1, _080E2970 @ =move_anim_8074EE0
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E2974 @ =sub_80785E4
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2968: .4byte gUnknown_03004B00
-_080E296C: .4byte gSprites
-_080E2970: .4byte move_anim_8074EE0
-_080E2974: .4byte sub_80785E4
- thumb_func_end sub_80E2908
-
- thumb_func_start sub_80E2978
-sub_80E2978: @ 80E2978
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080E2990 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E2994
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E299C
- .align 2, 0
-_080E2990: .4byte gUnknown_03004B00
-_080E2994:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8078764
-_080E299C:
- ldr r0, _080E29B4 @ =gUnknown_03004B00
- ldrh r0, [r0, 0x6]
- strh r0, [r4, 0x2E]
- ldr r1, _080E29B8 @ =move_anim_8072740
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _080E29BC @ =sub_80782D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29B4: .4byte gUnknown_03004B00
-_080E29B8: .4byte move_anim_8072740
-_080E29BC: .4byte sub_80782D8
- thumb_func_end sub_80E2978
-
- thumb_func_start sub_80E29C0
-sub_80E29C0: @ 80E29C0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080E29E0 @ =gUnknown_03004B00
- ldrb r1, [r4, 0x6]
- bl StartSpriteAffineAnim
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E29E4
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80787B0
- b _080E29EC
- .align 2, 0
-_080E29E0: .4byte gUnknown_03004B00
-_080E29E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
-_080E29EC:
- ldr r0, _080E29F8 @ =sub_80E29FC
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E29F8: .4byte sub_80E29FC
- thumb_func_end sub_80E29C0
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- adds r3, r0, 0
- 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]
- ldrh r0, [r3, 0x2E]
- adds r1, r0, 0x1
- strh r1, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _080E2A32
- adds r0, r3, 0
- bl move_anim_8072740
-_080E2A32:
- pop {r0}
- bx r0
- thumb_func_end sub_80E29FC
-
- thumb_func_start sub_80E2A38
-sub_80E2A38: @ 80E2A38
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2A78 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_80E1DC4
- adds r6, r0, 0
- ldrh r3, [r4]
- lsls r3, 16
- asrs r0, r3, 23
- movs r4, 0x1
- ands r0, r4
- asrs r1, r3, 24
- ands r1, r4
- asrs r2, r3, 25
- ands r2, r4
- asrs r3, 26
- ands r3, r4
- bl sub_80792C0
- orrs r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2A78: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2A38
-
- thumb_func_start sub_80E2A7C
-sub_80E2A7C: @ 80E2A7C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- movs r0, 0x1
- bl sub_80E1DC4
- adds r5, r0, 0
- ldr r0, _080E2AA8 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _080E2B26
- lsls r0, 2
- ldr r1, _080E2AAC @ =_080E2AB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2AA8: .4byte gUnknown_03004B00
-_080E2AAC: .4byte _080E2AB0
- .align 2, 0
-_080E2AB0:
- .4byte _080E2AD2
- .4byte _080E2ADE
- .4byte _080E2AD0
- .4byte _080E2ADC
- .4byte _080E2AEC
- .4byte _080E2B04
- .4byte _080E2B0C
- .4byte _080E2B18
-_080E2AD0:
- movs r5, 0
-_080E2AD2:
- mov r0, sp
- ldr r1, _080E2AD8 @ =gUnknown_0202F7C8
- b _080E2AE2
- .align 2, 0
-_080E2AD8: .4byte gUnknown_0202F7C8
-_080E2ADC:
- movs r5, 0
-_080E2ADE:
- mov r0, sp
- ldr r1, _080E2AE8 @ =gUnknown_0202F7C9
-_080E2AE2:
- ldrb r1, [r1]
- strb r1, [r0]
- b _080E2B26
- .align 2, 0
-_080E2AE8: .4byte gUnknown_0202F7C9
-_080E2AEC:
- mov r1, sp
- ldr r0, _080E2AFC @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080E2B00 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- b _080E2B26
- .align 2, 0
-_080E2AFC: .4byte gUnknown_0202F7C8
-_080E2B00: .4byte gUnknown_0202F7C9
-_080E2B04:
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- b _080E2B26
-_080E2B0C:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B14 @ =gUnknown_0202F7C8
- b _080E2B1E
- .align 2, 0
-_080E2B14: .4byte gUnknown_0202F7C8
-_080E2B18:
- movs r5, 0
- mov r2, sp
- ldr r0, _080E2B70 @ =gUnknown_0202F7C9
-_080E2B1E:
- ldrb r0, [r0]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r2]
-_080E2B26:
- movs r4, 0
- mov r6, sp
-_080E2B2A:
- ldrb r0, [r6]
- cmp r4, r0
- beq _080E2B54
- ldrb r0, [r6, 0x1]
- cmp r4, r0
- beq _080E2B54
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E2B54
- adds r0, r4, 0
- bl sub_80793A8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- orrs r5, r1
-_080E2B54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080E2B2A
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80E2C8C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2B70: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80E2A7C
-
- thumb_func_start sub_80E2B74
-sub_80E2B74: @ 80E2B74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E2B98 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_80E1DC4
- adds r2, r0, 0
- ldr r0, _080E2B9C @ =gUnknown_0300428C
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _080E2C4A
- lsls r0, 2
- ldr r1, _080E2BA0 @ =_080E2BA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E2B98: .4byte gUnknown_03004B00
-_080E2B9C: .4byte gUnknown_0300428C
-_080E2BA0: .4byte _080E2BA4
- .align 2, 0
-_080E2BA4:
- .4byte _080E2BCC
- .4byte _080E2BDC
- .4byte _080E2BE8
- .4byte _080E2BF8
- .4byte _080E2C04
- .4byte _080E2C14
- .4byte _080E2C24
- .4byte _080E2C34
- .4byte _080E2C44
- .4byte _080E2C44
-_080E2BCC:
- ldr r1, _080E2BD4 @ =gUnknown_03004B00
- ldr r0, _080E2BD8 @ =0x00000b0c
- b _080E2C48
- .align 2, 0
-_080E2BD4: .4byte gUnknown_03004B00
-_080E2BD8: .4byte 0x00000b0c
-_080E2BDC:
- ldr r1, _080E2BE4 @ =gUnknown_03004B00
- movs r0, 0x9E
- lsls r0, 4
- b _080E2C48
- .align 2, 0
-_080E2BE4: .4byte gUnknown_03004B00
-_080E2BE8:
- ldr r1, _080E2BF0 @ =gUnknown_03004B00
- ldr r0, _080E2BF4 @ =0x00002f1e
- b _080E2C48
- .align 2, 0
-_080E2BF0: .4byte gUnknown_03004B00
-_080E2BF4: .4byte 0x00002f1e
-_080E2BF8:
- ldr r1, _080E2C00 @ =gUnknown_03004B00
- movs r0, 0x90
- lsls r0, 7
- b _080E2C48
- .align 2, 0
-_080E2C00: .4byte gUnknown_03004B00
-_080E2C04:
- ldr r1, _080E2C0C @ =gUnknown_03004B00
- ldr r0, _080E2C10 @ =0x00007ecb
- b _080E2C48
- .align 2, 0
-_080E2C0C: .4byte gUnknown_03004B00
-_080E2C10: .4byte 0x00007ecb
-_080E2C14:
- ldr r1, _080E2C1C @ =gUnknown_03004B00
- ldr r0, _080E2C20 @ =0x00007ecb
- b _080E2C48
- .align 2, 0
-_080E2C1C: .4byte gUnknown_03004B00
-_080E2C20: .4byte 0x00007ecb
-_080E2C24:
- ldr r1, _080E2C2C @ =gUnknown_03004B00
- ldr r0, _080E2C30 @ =0x00002a16
- b _080E2C48
- .align 2, 0
-_080E2C2C: .4byte gUnknown_03004B00
-_080E2C30: .4byte 0x00002a16
-_080E2C34:
- ldr r1, _080E2C3C @ =gUnknown_03004B00
- ldr r0, _080E2C40 @ =0x00000d2e
- b _080E2C48
- .align 2, 0
-_080E2C3C: .4byte gUnknown_03004B00
-_080E2C40: .4byte 0x00000d2e
-_080E2C44:
- ldr r1, _080E2C58 @ =gUnknown_03004B00
- ldr r0, _080E2C5C @ =0x00007fff
-_080E2C48:
- strh r0, [r1, 0x8]
-_080E2C4A:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C58: .4byte gUnknown_03004B00
-_080E2C5C: .4byte 0x00007fff
- thumb_func_end sub_80E2B74
-
- thumb_func_start sub_80E2C60
-sub_80E2C60: @ 80E2C60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E2C88 @ =gUnknown_03004B00
- ldrh r0, [r0]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- adds r0, r4, 0
- bl sub_80E2C8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2C88: .4byte gUnknown_03004B00
- thumb_func_end sub_80E2C60
-
- thumb_func_start sub_80E2C8C
-sub_80E2C8C: @ 80E2C8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080E2CC4 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- strh r1, [r2, 0x8]
- lsrs r1, 16
- strh r1, [r2, 0xA]
- ldr r3, _080E2CC8 @ =gUnknown_03004B00
- ldrh r1, [r3, 0x2]
- strh r1, [r2, 0xC]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0xE]
- ldrh r1, [r3, 0x6]
- strh r1, [r2, 0x10]
- ldrh r1, [r3, 0x8]
- strh r1, [r2, 0x12]
- ldrh r1, [r3, 0x4]
- strh r1, [r2, 0x1C]
- ldr r1, _080E2CCC @ =sub_80E2CD0
- str r1, [r2]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080E2CC4: .4byte gTasks
-_080E2CC8: .4byte gUnknown_03004B00
-_080E2CCC: .4byte sub_80E2CD0
- thumb_func_end sub_80E2C8C
-
- thumb_func_start sub_80E2CD0
-sub_80E2CD0: @ 80E2CD0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- ldr r2, _080E2D50 @ =gTasks
- lsls r5, r7, 2
- adds r0, r5, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x1A]
- mov r8, r0
- movs r4, 0x1A
- ldrsh r1, [r3, r4]
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- mov r9, r2
- cmp r1, r0
- bne _080E2D66
- strh r6, [r3, 0x1A]
- movs r0, 0x8
- ldrsh r4, [r3, r0]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r0, 16
- orrs r4, r0
- mov r8, r5
- cmp r4, 0
- beq _080E2D32
- adds r5, r3, 0
-_080E2D10:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E2D24
- ldrb r2, [r5, 0x1C]
- ldrh r3, [r5, 0x12]
- adds r0, r6, 0
- movs r1, 0x10
- bl BlendPalette
-_080E2D24:
- adds r0, r6, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r4, 1
- cmp r4, 0
- bne _080E2D10
-_080E2D32:
- mov r4, r8
- adds r0, r4, r7
- lsls r0, 3
- mov r1, r9
- adds r2, r0, r1
- ldrh r0, [r2, 0x1C]
- movs r4, 0x1C
- ldrsh r3, [r2, r4]
- movs r4, 0x10
- ldrsh r1, [r2, r4]
- cmp r3, r1
- bge _080E2D54
- adds r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
- .align 2, 0
-_080E2D50: .4byte gTasks
-_080E2D54:
- cmp r3, r1
- ble _080E2D5E
- subs r0, 0x1
- strh r0, [r2, 0x1C]
- b _080E2D6C
-_080E2D5E:
- adds r0, r7, 0
- bl move_anim_task_del
- b _080E2D6C
-_080E2D66:
- mov r0, r8
- adds r0, 0x1
- strh r0, [r3, 0x1A]
-_080E2D6C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2CD0
-
- thumb_func_start sub_80E2D78
-sub_80E2D78: @ 80E2D78
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080E2DAC @ =gUnknown_03004B00
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- ldrb r4, [r4, 0x8]
- str r4, [sp]
- bl BeginHardwarePaletteFade
- ldr r1, _080E2DB0 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080E2DB4 @ =sub_80E2DB8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DAC: .4byte gUnknown_03004B00
-_080E2DB0: .4byte gTasks
-_080E2DB4: .4byte sub_80E2DB8
- thumb_func_end sub_80E2D78
-
- thumb_func_start sub_80E2DB8
-sub_80E2DB8: @ 80E2DB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E2DD4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E2DD0
- adds r0, r2, 0
- bl move_anim_task_del
-_080E2DD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080E2DD4: .4byte gPaletteFade
- thumb_func_end sub_80E2DB8
-
- thumb_func_start sub_80E2DD8
-sub_80E2DD8: @ 80E2DD8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080E2E04 @ =gTasks
- adds r1, r0
- ldr r2, _080E2E08 @ =gUnknown_03004B00
- ldrh r0, [r2]
- movs r3, 0
- strh r0, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x4]
- strh r0, [r1, 0xE]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0x10]
- strh r3, [r1, 0x12]
- ldr r0, _080E2E0C @ =sub_80E2E10
- str r0, [r1]
- bx lr
- .align 2, 0
-_080E2E04: .4byte gTasks
-_080E2E08: .4byte gUnknown_03004B00
-_080E2E0C: .4byte sub_80E2E10
- thumb_func_end sub_80E2DD8
-
- thumb_func_start sub_80E2E10
-sub_80E2E10: @ 80E2E10
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080E2E3C @ =gTasks
- adds r4, r0, r1
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E2ED4
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2E40
- subs r0, r1, 0x1
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2E3C: .4byte gTasks
-_080E2E40:
- ldrb r0, [r4, 0x8]
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- blt _080E2EBE
- ldr r6, _080E2ECC @ =gSprites
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r3, r1, r6
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x2
- cmp r0, 0
- beq _080E2E68
- movs r2, 0x1
-_080E2E68:
- lsls r2, 2
- ldrb r1, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x5]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r4, 0xE]
- strh r1, [r0, 0x2E]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r5, [r0, 0x30]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strh r1, [r0, 0x32]
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080E2ED0 @ =sub_80E2EE8
- str r1, [r0]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_080E2EBE:
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _080E2EE2
- .align 2, 0
-_080E2ECC: .4byte gSprites
-_080E2ED0: .4byte sub_80E2EE8
-_080E2ED4:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E2EE2
- adds r0, r2, 0
- bl move_anim_task_del
-_080E2EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2E10
-
- thumb_func_start sub_80E2EE8
-sub_80E2EE8: @ 80E2EE8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080E2EFC
- subs r0, r1, 0x1
- strh r0, [r4, 0x2E]
- b _080E2F20
-_080E2EFC:
- ldr r3, _080E2F28 @ =gTasks
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_080E2F20:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E2F28: .4byte gTasks
- thumb_func_end sub_80E2EE8
-
- thumb_func_start sub_80E2F2C
-sub_80E2F2C: @ 80E2F2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r7, 0
- ldr r0, _080E3038 @ =gUnknown_030042C4
- strh r7, [r0]
- ldr r0, _080E303C @ =gUnknown_03004240
- strh r7, [r0]
- ldr r1, _080E3040 @ =REG_WININ
- ldr r2, _080E3044 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3048 @ =0x00003f3d
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E304C @ =REG_BLDCNT
- ldr r2, _080E3050 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E3054 @ =0x00000c08
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3058 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- mov r8, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E2FAC
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E2FAC:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E3028
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
- ldr r5, _080E305C @ =gUnknown_0202F7C8
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E2FDC
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E3028
-_080E2FDC:
- ldrb r0, [r5]
- movs r6, 0x2
- eors r0, r6
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E3028
- ldr r3, _080E3060 @ =gSprites
- ldr r1, _080E3064 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r7, 0x1
-_080E3028:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E306C
- ldr r0, _080E3068 @ =0x02019348
- ldrh r4, [r0]
- b _080E30B4
- .align 2, 0
-_080E3038: .4byte gUnknown_030042C4
-_080E303C: .4byte gUnknown_03004240
-_080E3040: .4byte REG_WININ
-_080E3044: .4byte 0x00003f3f
-_080E3048: .4byte 0x00003f3d
-_080E304C: .4byte REG_BLDCNT
-_080E3050: .4byte 0x00003f42
-_080E3054: .4byte 0x00000c08
-_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gUnknown_0202F7C8
-_080E3060: .4byte gSprites
-_080E3064: .4byte gUnknown_02024BE0
-_080E3068: .4byte 0x02019348
-_080E306C:
- ldr r4, _080E308C @ =gUnknown_0202F7C8
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3098
- ldr r1, _080E3090 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3094 @ =gEnemyParty
- b _080E30A8
- .align 2, 0
-_080E308C: .4byte gUnknown_0202F7C8
-_080E3090: .4byte gUnknown_02024A6A
-_080E3094: .4byte gEnemyParty
-_080E3098:
- ldr r1, _080E3160 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3164 @ =gPlayerParty
-_080E30A8:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E30B4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3168 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _080E316C @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080E3170 @ =0x85000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _080E3174 @ =gUnknown_08D20A30
- bl LZDecompressVram
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3106
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3106:
- ldr r0, _080E3178 @ =gUnknown_08D20A14
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _080E317C @ =gUnknown_083DB568
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- adds r1, 0x1
- movs r2, 0x2
- bl LoadPalette
- ldr r2, _080E3180 @ =gUnknown_030042C0
- ldr r0, _080E3184 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r2, _080E3188 @ =gUnknown_030041B4
- ldrh r0, [r1, 0x22]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r2]
- ldr r1, _080E318C @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0x14]
- ldr r1, _080E3190 @ =sub_80E3194
- str r1, [r0]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3160: .4byte gUnknown_02024A6A
-_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gUnknown_0202F7C8
-_080E316C: .4byte 0x040000d4
-_080E3170: .4byte 0x85000400
-_080E3174: .4byte gUnknown_08D20A30
-_080E3178: .4byte gUnknown_08D20A14
-_080E317C: .4byte gUnknown_083DB568
-_080E3180: .4byte gUnknown_030042C0
-_080E3184: .4byte gSprites
-_080E3188: .4byte gUnknown_030041B4
-_080E318C: .4byte gTasks
-_080E3190: .4byte sub_80E3194
- thumb_func_end sub_80E2F2C
-
- thumb_func_start sub_80E3194
-sub_80E3194: @ 80E3194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E32AC @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x1C]
- ldr r7, _080E32B0 @ =gUnknown_030041B4
- ldrh r2, [r7]
- subs r1, r2, 0x4
- strh r1, [r7]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- bne _080E329E
- strh r5, [r4, 0x1C]
- adds r0, r2, 0
- adds r0, 0x3C
- strh r0, [r7]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080E329E
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E32B4 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E32B8 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E32BC @ =REG_WININ
- ldr r2, _080E32C0 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3208
- ldr r2, _080E32C4 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3208:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E32C8 @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- ldr r0, _080E32CC @ =gSprites
- mov r8, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- bl DestroySprite
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- str r5, [sp, 0xC]
- ldr r1, _080E32D0 @ =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080E32D4 @ =0x85000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3288
- ldr r2, _080E32D8 @ =gUnknown_02024BE0
- ldr r0, _080E32DC @ =gUnknown_0202F7C8
- ldrb r1, [r0]
- movs r0, 0x2
- eors r0, r1
- adds r0, r2
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E3288:
- ldr r2, _080E32C4 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0
- strh r0, [r7]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E329E:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E32AC: .4byte gTasks
-_080E32B0: .4byte gUnknown_030041B4
-_080E32B4: .4byte gUnknown_030042C4
-_080E32B8: .4byte gUnknown_03004240
-_080E32BC: .4byte REG_WININ
-_080E32C0: .4byte 0x00003f3f
-_080E32C4: .4byte REG_BG1CNT
-_080E32C8: .4byte REG_BLDCNT
-_080E32CC: .4byte gSprites
-_080E32D0: .4byte 0x040000d4
-_080E32D4: .4byte 0x85000200
-_080E32D8: .4byte gUnknown_02024BE0
-_080E32DC: .4byte gUnknown_0202F7C8
- thumb_func_end sub_80E3194
-
- thumb_func_start sub_80E32E0
-sub_80E32E0: @ 80E32E0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _080E332C @ =gTasks
- mov r12, r0
- ldr r1, _080E3330 @ =sub_80E3338
- mov r8, r1
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r4, r0, 3
- mov r7, r12
- adds r7, 0x8
- adds r5, r1, 0
- ldr r6, _080E3334 @ =gUnknown_03004B00
-_080E3302:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r1, r7
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _080E3302
- adds r0, r5, r3
- lsls r0, 3
- add r0, r12
- mov r1, r8
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E332C: .4byte gTasks
-_080E3330: .4byte sub_80E3338
-_080E3334: .4byte gUnknown_03004B00
- thumb_func_end sub_80E32E0
-
- thumb_func_start sub_80E3338
-sub_80E3338: @ 80E3338
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0
- str r0, [sp, 0x1C]
- movs r1, 0
- str r1, [sp, 0x20]
- add r7, sp, 0xC
- ldr r2, _080E3388 @ =gTasks
- mov r3, r9
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- mov r10, r1
- adds r1, r2, 0
- adds r1, 0x8
- adds r1, r0, r1
- adds r3, r7, 0
- movs r4, 0
- movs r2, 0x7
-_080E336C:
- ldrh r0, [r1]
- strh r0, [r3]
- strh r4, [r1]
- adds r1, 0x2
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080E336C
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3390
- ldr r0, _080E338C @ =gUnknown_0202F7C8
- b _080E3392
- .align 2, 0
-_080E3388: .4byte gTasks
-_080E338C: .4byte gUnknown_0202F7C8
-_080E3390:
- ldr r0, _080E34B4 @ =gUnknown_0202F7C9
-_080E3392:
- ldrb r5, [r0]
- movs r0, 0x2
- mov r8, r5
- mov r2, r8
- eors r2, r0
- mov r8, r2
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E33BC
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E33C0
- mov r0, r8
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080E33C0
-_080E33BC:
- movs r0, 0
- strh r0, [r7, 0x6]
-_080E33C0:
- ldr r0, _080E34B8 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E34BC @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080E34C0 @ =REG_WININ
- ldr r2, _080E34C4 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080E34C8 @ =0x00003f3d
- adds r0, r3, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E34CC @ =REG_BLDCNT
- ldr r2, _080E34D0 @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E34D4 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r6, 0x4
- negs r6, r6
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3432
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3432:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080E34A4
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E34A4
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080E345E
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080E34A4
-_080E345E:
- mov r0, r8
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E34A4
- ldr r1, _080E34D8 @ =gSprites
- ldr r0, _080E34DC @ =gUnknown_02024BE0
- add r0, r8
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- subs r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldrb r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- movs r2, 0x1
- str r2, [sp, 0x20]
-_080E34A4:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E34E4
- ldr r0, _080E34E0 @ =0x02019348
- ldrh r4, [r0]
- b _080E3522
- .align 2, 0
-_080E34B4: .4byte gUnknown_0202F7C9
-_080E34B8: .4byte gUnknown_030042C4
-_080E34BC: .4byte gUnknown_03004240
-_080E34C0: .4byte REG_WININ
-_080E34C4: .4byte 0x00003f3f
-_080E34C8: .4byte 0x00003f3d
-_080E34CC: .4byte REG_BLDCNT
-_080E34D0: .4byte 0x00003f42
-_080E34D4: .4byte REG_BG1CNT
-_080E34D8: .4byte gSprites
-_080E34DC: .4byte gUnknown_02024BE0
-_080E34E0: .4byte 0x02019348
-_080E34E4:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3508
- ldr r1, _080E3500 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3504 @ =gEnemyParty
- b _080E3516
- .align 2, 0
-_080E3500: .4byte gUnknown_02024A6A
-_080E3504: .4byte gEnemyParty
-_080E3508:
- ldr r1, _080E3568 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E356C @ =gPlayerParty
-_080E3516:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3522:
- ldr r6, _080E3570 @ =gUnknown_02024BE0
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _080E3550
- mov r1, r8
- adds r0, r1, r6
- ldrb r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
-_080E3550:
- mov r0, sp
- bl sub_8078914
- movs r2, 0
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E3578
- ldr r0, _080E3574 @ =gBattleStatMask1_Tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
- b _080E3580
- .align 2, 0
-_080E3568: .4byte gUnknown_02024A6A
-_080E356C: .4byte gPlayerParty
-_080E3570: .4byte gUnknown_02024BE0
-_080E3574: .4byte gBattleStatMask1_Tilemap
-_080E3578:
- ldr r0, _080E35B0 @ =gBattleStatMask2_Tilemap
- ldr r1, [sp, 0x4]
- bl LZDecompressVram
-_080E3580:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3598
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3598:
- ldr r0, _080E35B4 @ =gBattleStatMask_Gfx
- ldr r1, [sp]
- bl LZDecompressVram
- ldrh r0, [r7, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080E35BC
- ldr r0, _080E35B8 @ =gBattleStatMask2_Pal
- b _080E35FE
- .align 2, 0
-_080E35B0: .4byte gBattleStatMask2_Tilemap
-_080E35B4: .4byte gBattleStatMask_Gfx
-_080E35B8: .4byte gBattleStatMask2_Pal
-_080E35BC:
- cmp r0, 0x1
- bne _080E35C8
- ldr r0, _080E35C4 @ =gBattleStatMask1_Pal
- b _080E35FE
- .align 2, 0
-_080E35C4: .4byte gBattleStatMask1_Pal
-_080E35C8:
- cmp r0, 0x2
- bne _080E35D4
- ldr r0, _080E35D0 @ =gBattleStatMask3_Pal
- b _080E35FE
- .align 2, 0
-_080E35D0: .4byte gBattleStatMask3_Pal
-_080E35D4:
- cmp r0, 0x3
- bne _080E35E0
- ldr r0, _080E35DC @ =gBattleStatMask4_Pal
- b _080E35FE
- .align 2, 0
-_080E35DC: .4byte gBattleStatMask4_Pal
-_080E35E0:
- cmp r0, 0x4
- bne _080E35EC
- ldr r0, _080E35E8 @ =gBattleStatMask6_Pal
- b _080E35FE
- .align 2, 0
-_080E35E8: .4byte gBattleStatMask6_Pal
-_080E35EC:
- cmp r0, 0x5
- bne _080E35F8
- ldr r0, _080E35F4 @ =gBattleStatMask7_Pal
- b _080E35FE
- .align 2, 0
-_080E35F4: .4byte gBattleStatMask7_Pal
-_080E35F8:
- cmp r0, 0x6
- bne _080E3610
- ldr r0, _080E360C @ =gBattleStatMask8_Pal
-_080E35FE:
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080E361E
- .align 2, 0
-_080E360C: .4byte gBattleStatMask8_Pal
-_080E3610:
- ldr r0, _080E3644 @ =gBattleStatMask5_Pal
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
-_080E361E:
- ldr r2, _080E3648 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r2]
- ldr r0, _080E364C @ =gUnknown_030041B4
- strh r1, [r0]
- movs r3, 0
- ldrsh r0, [r7, r3]
- cmp r0, 0x1
- bne _080E3658
- movs r0, 0x40
- strh r0, [r2]
- ldr r2, _080E3650 @ =gTasks
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- ldr r1, _080E3654 @ =0x0000fffd
- strh r1, [r0, 0xA]
- b _080E3668
- .align 2, 0
-_080E3644: .4byte gBattleStatMask5_Pal
-_080E3648: .4byte gUnknown_030042C0
-_080E364C: .4byte gUnknown_030041B4
-_080E3650: .4byte gTasks
-_080E3654: .4byte 0x0000fffd
-_080E3658:
- ldr r0, _080E3680 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- movs r2, 0x3
- strh r2, [r1, 0xA]
- adds r2, r0, 0
-_080E3668:
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E3684
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- strh r1, [r0, 0x10]
- movs r1, 0x14
- b _080E3692
- .align 2, 0
-_080E3680: .4byte gTasks
-_080E3684:
- mov r0, r10
- add r0, r9
- lsls r0, 3
- adds r0, r2
- movs r1, 0xD
- strh r1, [r0, 0x10]
- movs r1, 0x1E
-_080E3692:
- strh r1, [r0, 0x12]
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- ldrh r0, [r7, 0x6]
- strh r0, [r1, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r1, 0xE]
- mov r3, sp
- ldrh r3, [r3, 0x20]
- strh r3, [r1, 0x14]
- ldr r0, _080E36D8 @ =gUnknown_02024BE0
- add r0, r8
- ldrb r0, [r0]
- strh r0, [r1, 0x16]
- ldr r0, _080E36DC @ =sub_80E3704
- str r0, [r1]
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _080E36E0
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xEF
- bl PlaySE12WithPanning
- b _080E36F4
- .align 2, 0
-_080E36D8: .4byte gUnknown_02024BE0
-_080E36DC: .4byte sub_80E3704
-_080E36E0:
- movs r0, 0x40
- negs r0, r0
- bl sub_8077094
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xF5
- bl PlaySE12WithPanning
-_080E36F4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E3338
-
- thumb_func_start sub_80E3704
-sub_80E3704: @ 80E3704
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080E3730 @ =gUnknown_030041B4
- ldr r1, _080E3734 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- movs r3, 0x26
- ldrsh r2, [r4, r3]
- cmp r2, 0x1
- beq _080E3774
- cmp r2, 0x1
- bgt _080E3738
- cmp r2, 0
- beq _080E373E
- b _080E3866
- .align 2, 0
-_080E3730: .4byte gUnknown_030041B4
-_080E3734: .4byte gTasks
-_080E3738:
- cmp r2, 0x2
- beq _080E378E
- b _080E3866
-_080E373E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- bgt _080E374C
- b _080E3866
-_080E374C:
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3770 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3866
- b _080E3786
- .align 2, 0
-_080E3770: .4byte REG_BLDALPHA
-_080E3774:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3866
-_080E3786:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3866
-_080E378E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- cmp r0, 0
- ble _080E3866
- movs r0, 0
- strh r0, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E386C @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3866
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3870 @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E3874 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E3878 @ =REG_WININ
- ldr r2, _080E387C @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E37E8
- ldr r2, _080E3880 @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E37E8:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E3884 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E3888 @ =gSprites
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3828
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3828:
- movs r3, 0x14
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _080E3854
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrb r3, [r2, 0x5]
- lsls r1, r3, 28
- lsrs r1, 30
- adds r1, 0x1
- movs r0, 0x3
- ands r1, r0
- lsls r1, 2
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080E3854:
- ldr r2, _080E3880 @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E3866:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E386C: .4byte REG_BLDALPHA
-_080E3870: .4byte gUnknown_030042C4
-_080E3874: .4byte gUnknown_03004240
-_080E3878: .4byte REG_WININ
-_080E387C: .4byte 0x00003f3f
-_080E3880: .4byte REG_BG1CNT
-_080E3884: .4byte REG_BLDCNT
-_080E3888: .4byte gSprites
- thumb_func_end sub_80E3704
-
- thumb_func_start sub_80E388C
-sub_80E388C: @ 80E388C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x1
- bl sub_80792C0
- adds r6, r0, 0
- movs r1, 0
- bl sub_80E39BC
- ldr r0, _080E38EC @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- lsrs r0, r6, 16
- movs r5, 0
- strh r0, [r4, 0x24]
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r6, r0, 0
- ldr r1, _080E38F0 @ =0x0000ffff
- ands r6, r1
- adds r0, r6, 0
- bl sub_80E39BC
- strh r6, [r4, 0x26]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r0, _080E38F4 @ =sub_80E38F8
- str r0, [r4]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E38EC: .4byte gTasks
-_080E38F0: .4byte 0x0000ffff
-_080E38F4: .4byte sub_80E38F8
- thumb_func_end sub_80E388C
-
- thumb_func_start sub_80E38F8
-sub_80E38F8: @ 80E38F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _080E391C @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _080E393C
- cmp r1, 0x1
- bgt _080E3920
- cmp r1, 0
- beq _080E3926
- b _080E39B6
- .align 2, 0
-_080E391C: .4byte gTasks
-_080E3920:
- cmp r1, 0x2
- beq _080E39B0
- b _080E39B6
-_080E3926:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080E39B6
- strh r1, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0xC]
- b _080E39A4
-_080E393C:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _080E39B6
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- movs r5, 0
- movs r6, 0x1
-_080E3958:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3972
- lsls r0, r5, 20
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- ldr r3, _080E39AC @ =0x0000ffff
- bl BlendPalette
-_080E3972:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- asrs r0, r5
- ands r0, r6
- cmp r0, 0
- beq _080E3992
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldrb r2, [r4, 0xC]
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_080E3992:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xF
- bls _080E3958
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080E39B6
-_080E39A4:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E39B6
- .align 2, 0
-_080E39AC: .4byte 0x0000ffff
-_080E39B0:
- adds r0, r2, 0
- bl move_anim_task_del
-_080E39B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E38F8
-
- thumb_func_start sub_80E39BC
-sub_80E39BC: @ 80E39BC
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r2, 0
-_080E39C6:
- movs r0, 0x1
- ands r0, r3
- lsrs r4, r3, 1
- adds r5, r2, 0x1
- cmp r0, 0
- beq _080E39F2
- lsls r0, r2, 20
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x10
- cmp r2, r0
- bge _080E39F2
- ldr r1, _080E3A04 @ =gPlttBufferFaded
- adds r3, r0, 0
-_080E39E2:
- lsls r0, r2, 1
- adds r0, r1
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- blt _080E39E2
-_080E39F2:
- adds r3, r4, 0
- lsls r0, r5, 16
- lsrs r2, r0, 16
- cmp r2, 0x1F
- bls _080E39C6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A04: .4byte gPlttBufferFaded
- thumb_func_end sub_80E39BC
-
- thumb_func_start sub_80E3A08
-sub_80E3A08: @ 80E3A08
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r2, 0
- ldr r0, _080E3A50 @ =gUnknown_0202F7C8
- ldrb r3, [r0]
- movs r5, 0x1
-_080E3A18:
- cmp r3, r2
- beq _080E3A26
- adds r1, r2, 0
- adds r1, 0x10
- adds r0, r5, 0
- lsls r0, r1
- orrs r4, r0
-_080E3A26:
- adds r2, 0x1
- cmp r2, 0x3
- bls _080E3A18
- movs r2, 0x5
- ldr r0, _080E3A54 @ =gUnknown_03004B00
- adds r1, r0, 0
- adds r1, 0x8
-_080E3A34:
- ldrh r0, [r1]
- strh r0, [r1, 0x2]
- subs r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E3A34
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80E2C8C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3A50: .4byte gUnknown_0202F7C8
-_080E3A54: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3A08
-
- thumb_func_start sub_80E3A58
-sub_80E3A58: @ 80E3A58
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl sub_80789D4
- ldr r0, _080E3AC0 @ =sub_80E3AD0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080E3AC4 @ =gUnknown_03004B00
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3A94
- ldr r0, _080E3AC8 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3A94
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- negs r0, r0
- strh r0, [r4, 0x2]
-_080E3A94:
- ldr r0, _080E3ACC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r2, _080E3AC4 @ =gUnknown_03004B00
- ldrh r0, [r2]
- strh r0, [r1, 0xA]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0xC]
- ldrh r0, [r2, 0x6]
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- adds r0, r6, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3AC0: .4byte sub_80E3AD0
-_080E3AC4: .4byte gUnknown_03004B00
-_080E3AC8: .4byte gUnknown_0202F7C8
-_080E3ACC: .4byte gTasks
- thumb_func_end sub_80E3A58
-
- thumb_func_start sub_80E3AD0
-sub_80E3AD0: @ 80E3AD0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E3B3C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0xA]
- ldrh r0, [r1, 0x1C]
- adds r3, r0
- movs r4, 0
- mov r12, r4
- strh r3, [r1, 0x1C]
- ldrh r2, [r1, 0xC]
- ldrh r7, [r1, 0x1E]
- adds r2, r7
- strh r2, [r1, 0x1E]
- ldr r6, _080E3B40 @ =gUnknown_030041B0
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r4, [r6]
- adds r0, r4
- strh r0, [r6]
- ldr r4, _080E3B44 @ =gUnknown_030041B8
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r7, [r4]
- adds r0, r7
- strh r0, [r4]
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1, 0x1C]
- ands r2, r0
- strh r2, [r1, 0x1E]
- ldr r0, _080E3B48 @ =gUnknown_03004B00
- movs r3, 0xE
- ldrsh r2, [r0, r3]
- movs r7, 0xE
- ldrsh r0, [r1, r7]
- cmp r2, r0
- bne _080E3B36
- mov r0, r12
- strh r0, [r6]
- strh r0, [r4]
- movs r0, 0x1
- bl sub_80789D4
- adds r0, r5, 0
- bl DestroyTask
-_080E3B36:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B3C: .4byte gTasks
-_080E3B40: .4byte gUnknown_030041B0
-_080E3B44: .4byte gUnknown_030041B8
-_080E3B48: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3AD0
-
- thumb_func_start sub_80E3B4C
-sub_80E3B4C: @ 80E3B4C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B70 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3B74 @ =gUnknown_03004B00
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B70: .4byte gUnknown_0202F7C8
-_080E3B74: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3B4C
-
- thumb_func_start sub_80E3B78
-sub_80E3B78: @ 80E3B78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080E3B9C @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- ldr r1, _080E3BA0 @ =gUnknown_03004B00
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3B9C: .4byte gUnknown_0202F7C9
-_080E3BA0: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3B78
-
- thumb_func_start sub_80E3BA4
-sub_80E3BA4: @ 80E3BA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r5, _080E3BD0 @ =gUnknown_03004B00
- movs r4, 0
- ldr r0, _080E3BD4 @ =gUnknown_0202F7C8
- ldrb r2, [r0]
- movs r0, 0x2
- ldr r1, _080E3BD8 @ =gUnknown_0202F7C9
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bne _080E3BC0
- movs r4, 0x1
-_080E3BC0:
- strh r4, [r5, 0xE]
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3BD0: .4byte gUnknown_03004B00
-_080E3BD4: .4byte gUnknown_0202F7C8
-_080E3BD8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_80E3BA4
-
- thumb_func_start sub_80E3BDC
-sub_80E3BDC: @ 80E3BDC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, _080E3C3C @ =gSprites
-_080E3BE6:
- ldr r0, _080E3C40 @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- cmp r4, r0
- beq _080E3C24
- lsls r0, r4, 24
- lsrs r0, 24
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080E3C24
- ldr r0, _080E3C44 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldr r1, _080E3C48 @ =gUnknown_03004B00
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r3, [r1]
- ands r3, r0
- lsls r3, 2
- ldrb r0, [r2]
- movs r7, 0x5
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E3C24:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080E3BE6
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gUnknown_0202F7C8
-_080E3C44: .4byte gUnknown_02024BE0
-_080E3C48: .4byte gUnknown_03004B00
- thumb_func_end sub_80E3BDC
-
- thumb_func_start sub_80E3C4C
-sub_80E3C4C: @ 80E3C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r1, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- movs r0, 0
- str r0, [sp, 0x18]
- movs r0, 0x2
- adds r6, r7, 0
- eors r6, r0
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3CAE
- mov r1, r8
- cmp r1, 0
- beq _080E3CB2
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _080E3CB2
-_080E3CAE:
- movs r2, 0
- mov r8, r2
-_080E3CB2:
- ldr r0, _080E3D34 @ =gUnknown_030042C4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3D38 @ =gUnknown_03004240
- strh r1, [r0]
- ldr r1, _080E3D3C @ =REG_WININ
- ldr r3, _080E3D40 @ =0x00003f3f
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E3D44 @ =0x00003f3d
- adds r0, r2, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080E3D48 @ =REG_BLDCNT
- ldr r2, _080E3D4C @ =0x00003f42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r4, _080E3D50 @ =REG_BG1CNT
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3D22
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_080E3D22:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3D58
- ldr r0, _080E3D54 @ =0x02019348
- ldrh r4, [r0]
- b _080E3D96
- .align 2, 0
-_080E3D34: .4byte gUnknown_030042C4
-_080E3D38: .4byte gUnknown_03004240
-_080E3D3C: .4byte REG_WININ
-_080E3D40: .4byte 0x00003f3f
-_080E3D44: .4byte 0x00003f3d
-_080E3D48: .4byte REG_BLDCNT
-_080E3D4C: .4byte 0x00003f42
-_080E3D50: .4byte REG_BG1CNT
-_080E3D54: .4byte 0x02019348
-_080E3D58:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080E3D7C
- ldr r1, _080E3D74 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3D78 @ =gEnemyParty
- b _080E3D8A
- .align 2, 0
-_080E3D74: .4byte gUnknown_02024A6A
-_080E3D78: .4byte gEnemyParty
-_080E3D7C:
- ldr r1, _080E3E48 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E3E4C @ =gPlayerParty
-_080E3D8A:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_080E3D96:
- ldr r5, _080E3E50 @ =gUnknown_02024BE0
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r0, r7, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r8
- cmp r0, 0
- beq _080E3DC0
- adds r0, r6, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_807A4A0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
-_080E3DC0:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- ldr r0, [sp, 0x50]
- bl LZDecompressVram
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E3DE6
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
-_080E3DE6:
- ldr r1, [sp]
- ldr r0, [sp, 0x4C]
- bl LZDecompressVram
- mov r0, sp
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- ldr r0, [sp, 0x54]
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r0, _080E3E54 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E3E58 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r1, _080E3E5C @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x10]
- mov r2, r10
- strh r2, [r0, 0x12]
- mov r3, sp
- ldrh r3, [r3, 0x14]
- strh r3, [r0, 0x14]
- strh r7, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xE]
- ldr r1, _080E3E60 @ =sub_80E3E64
- str r1, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3E48: .4byte gUnknown_02024A6A
-_080E3E4C: .4byte gPlayerParty
-_080E3E50: .4byte gUnknown_02024BE0
-_080E3E54: .4byte gUnknown_030042C0
-_080E3E58: .4byte gUnknown_030041B4
-_080E3E5C: .4byte gTasks
-_080E3E60: .4byte sub_80E3E64
- thumb_func_end sub_80E3C4C
-
- thumb_func_start sub_80E3E64
-sub_80E3E64: @ 80E3E64
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E3E9C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0xA
- ldrsh r2, [r3, r0]
- adds r5, r1, 0
- cmp r2, 0
- bge _080E3E80
- negs r2, r2
-_080E3E80:
- ldrh r0, [r3, 0x22]
- adds r4, r0, r2
- strh r4, [r3, 0x22]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080E3EA4
- ldr r2, _080E3EA0 @ =gUnknown_030041B4
- lsls r1, r4, 16
- asrs r1, 24
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- b _080E3EB0
- .align 2, 0
-_080E3E9C: .4byte gTasks
-_080E3EA0: .4byte gUnknown_030041B4
-_080E3EA4:
- ldr r1, _080E3ED4 @ =gUnknown_030041B4
- lsls r0, r4, 16
- asrs r0, 24
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
-_080E3EB0:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r5
- ldrh r1, [r4, 0x22]
- movs r0, 0xFF
- ands r0, r1
- movs r2, 0
- strh r0, [r4, 0x22]
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- beq _080E3F18
- cmp r0, 0x1
- bgt _080E3ED8
- cmp r0, 0
- beq _080E3EDE
- b _080E3FE2
- .align 2, 0
-_080E3ED4: .4byte gUnknown_030041B4
-_080E3ED8:
- cmp r0, 0x2
- beq _080E3F32
- b _080E3FE2
-_080E3EDE:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _080E3F14 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080E3FE2
- b _080E3F2A
- .align 2, 0
-_080E3F14: .4byte REG_BLDALPHA
-_080E3F18:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080E3FE2
-_080E3F2A:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _080E3FE2
-_080E3F32:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x14
- ldrsh r1, [r4, r3]
- cmp r0, r1
- blt _080E3FE2
- strh r2, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r7, _080E3FE8 @ =REG_BLDALPHA
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r7]
- movs r0, 0x20
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _080E3FE2
- movs r0, 0
- bl sub_8076464
- ldr r0, _080E3FEC @ =gUnknown_030042C4
- strh r5, [r0]
- ldr r0, _080E3FF0 @ =gUnknown_03004240
- strh r5, [r0]
- ldr r0, _080E3FF4 @ =REG_WININ
- ldr r2, _080E3FF8 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080E3F90
- ldr r2, _080E3FFC @ =REG_BG1CNT
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080E3F90:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- ldr r0, _080E4000 @ =REG_BLDCNT
- strh r5, [r0]
- strh r5, [r7]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080E4004 @ =gSprites
- adds r0, r5
- bl DestroySprite
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080E3FD0
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_080E3FD0:
- ldr r2, _080E3FFC @ =REG_BG1CNT
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- adds r0, r6, 0
- bl move_anim_task_del
-_080E3FE2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E3FE8: .4byte REG_BLDALPHA
-_080E3FEC: .4byte gUnknown_030042C4
-_080E3FF0: .4byte gUnknown_03004240
-_080E3FF4: .4byte REG_WININ
-_080E3FF8: .4byte 0x00003f3f
-_080E3FFC: .4byte REG_BG1CNT
-_080E4000: .4byte REG_BLDCNT
-_080E4004: .4byte gSprites
- thumb_func_end sub_80E3E64
-
- thumb_func_start sub_80E4008
-sub_80E4008: @ 80E4008
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4020 @ =gUnknown_03004B00
- ldr r1, _080E4024 @ =gUnknown_0300428C
- ldrb r1, [r1]
- strh r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E4020: .4byte gUnknown_03004B00
-_080E4024: .4byte gUnknown_0300428C
- thumb_func_end sub_80E4008
-
- thumb_func_start sub_80E4028
-sub_80E4028: @ 80E4028
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4068 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E406C
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E4084
- movs r2, 0x1
-_080E405A:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E405A
- b _080E4084
- .align 2, 0
-_080E4068: .4byte gUnknown_03004B00
-_080E406C:
- cmp r0, 0x1
- bne _080E4078
- ldr r0, _080E4074 @ =gUnknown_0202F7C8
- b _080E407E
- .align 2, 0
-_080E4074: .4byte gUnknown_0202F7C8
-_080E4078:
- cmp r0, 0x2
- bne _080E4084
- ldr r0, _080E409C @ =gUnknown_0202F7C9
-_080E407E:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E4084:
- ldr r0, _080E40A0 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r5, r0, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E40A8
- ldr r0, _080E40A4 @ =0x02014800
- b _080E40AA
- .align 2, 0
-_080E409C: .4byte gUnknown_0202F7C9
-_080E40A0: .4byte gUnknown_03004B00
-_080E40A4: .4byte 0x02014800
-_080E40A8:
- ldr r0, _080E40C8 @ =0x02018000
-_080E40AA:
- adds r2, r5, r0
- lsls r1, r4, 5
- ldr r0, _080E40CC @ =gPlttBufferUnfaded
- adds r1, r0
- adds r0, r2, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E40C8: .4byte 0x02018000
-_080E40CC: .4byte gPlttBufferUnfaded
- thumb_func_end sub_80E4028
-
- thumb_func_start sub_80E40D0
-sub_80E40D0: @ 80E40D0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _080E4110 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E4114
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E412C
- movs r2, 0x1
-_080E4102:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E4102
- b _080E412C
- .align 2, 0
-_080E4110: .4byte gUnknown_03004B00
-_080E4114:
- cmp r0, 0x1
- bne _080E4120
- ldr r0, _080E411C @ =gUnknown_0202F7C8
- b _080E4126
- .align 2, 0
-_080E411C: .4byte gUnknown_0202F7C8
-_080E4120:
- cmp r0, 0x2
- bne _080E412C
- ldr r0, _080E4148 @ =gUnknown_0202F7C9
-_080E4126:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E412C:
- lsls r1, r4, 5
- ldr r0, _080E414C @ =gPlttBufferUnfaded
- adds r5, r1, r0
- ldr r0, _080E4150 @ =gUnknown_03004B00
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- lsls r4, r0, 5
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E4158
- ldr r0, _080E4154 @ =0x02014800
- b _080E415A
- .align 2, 0
-_080E4148: .4byte gUnknown_0202F7C9
-_080E414C: .4byte gPlttBufferUnfaded
-_080E4150: .4byte gUnknown_03004B00
-_080E4154: .4byte 0x02014800
-_080E4158:
- ldr r0, _080E4174 @ =0x02018000
-_080E415A:
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x20
- bl memcpy
- adds r0, r6, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4174: .4byte 0x02018000
- thumb_func_end sub_80E40D0
-
- thumb_func_start sub_80E4178
-sub_80E4178: @ 80E4178
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080E41B8 @ =gUnknown_03004B00
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080E41BC
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080E41D4
- movs r2, 0x1
-_080E41AA:
- lsrs r1, 1
- adds r4, 0x1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _080E41AA
- b _080E41D4
- .align 2, 0
-_080E41B8: .4byte gUnknown_03004B00
-_080E41BC:
- cmp r0, 0x1
- bne _080E41C8
- ldr r0, _080E41C4 @ =gUnknown_0202F7C8
- b _080E41CE
- .align 2, 0
-_080E41C4: .4byte gUnknown_0202F7C8
-_080E41C8:
- cmp r0, 0x2
- bne _080E41D4
- ldr r0, _080E41F4 @ =gUnknown_0202F7C9
-_080E41CE:
- ldrb r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
-_080E41D4:
- lsls r1, r4, 5
- ldr r0, _080E41F8 @ =gPlttBufferUnfaded
- adds r0, r1, r0
- ldr r2, _080E41FC @ =gPlttBufferFaded
- adds r1, r2
- movs r2, 0x20
- bl memcpy
- adds r0, r5, 0
- bl move_anim_task_del
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E41F4: .4byte gUnknown_0202F7C9
-_080E41F8: .4byte gPlttBufferUnfaded
-_080E41FC: .4byte gPlttBufferFaded
- thumb_func_end sub_80E4178
-
- thumb_func_start sub_80E4200
-sub_80E4200: @ 80E4200
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E4220
- ldr r1, _080E421C @ =gUnknown_03004B00
- movs r0, 0x1
- strh r0, [r1, 0xE]
- b _080E4224
- .align 2, 0
-_080E421C: .4byte gUnknown_03004B00
-_080E4220:
- ldr r0, _080E4230 @ =gUnknown_03004B00
- strh r1, [r0, 0xE]
-_080E4224:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4230: .4byte gUnknown_03004B00
- thumb_func_end sub_80E4200
-
- thumb_func_start sub_80E4234
-sub_80E4234: @ 80E4234
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4254 @ =gUnknown_0202F7C8
- ldr r1, _080E4258 @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E425C @ =gUnknown_0202F7C9
- ldr r1, _080E4260 @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E4254: .4byte gUnknown_0202F7C8
-_080E4258: .4byte gUnknown_02024C08
-_080E425C: .4byte gUnknown_0202F7C9
-_080E4260: .4byte gUnknown_02024C0A
- thumb_func_end sub_80E4234
-
- thumb_func_start sub_80E4264
-sub_80E4264: @ 80E4264
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E428C @ =gUnknown_0202F7C8
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r0, _080E4290 @ =gUnknown_0202F7C9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080E4298
- ldr r1, _080E4294 @ =gUnknown_03004B00
- movs r0, 0x1
- b _080E429C
- .align 2, 0
-_080E428C: .4byte gUnknown_0202F7C8
-_080E4290: .4byte gUnknown_0202F7C9
-_080E4294: .4byte gUnknown_03004B00
-_080E4298:
- ldr r1, _080E42AC @ =gUnknown_03004B00
- movs r0, 0
-_080E429C:
- strh r0, [r1, 0xE]
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E42AC: .4byte gUnknown_03004B00
- thumb_func_end sub_80E4264
-
- thumb_func_start sub_80E42B0
-sub_80E42B0: @ 80E42B0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42C8 @ =gUnknown_0202F7C9
- ldr r1, _080E42CC @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E42C8: .4byte gUnknown_0202F7C9
-_080E42CC: .4byte gUnknown_02024C08
- thumb_func_end sub_80E42B0
-
- thumb_func_start sub_80E42D0
-sub_80E42D0: @ 80E42D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E42F0 @ =gUnknown_0202F7C8
- ldr r1, _080E42F4 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r2]
- ldr r2, _080E42F8 @ =gUnknown_0202F7C9
- ldr r1, _080E42FC @ =gUnknown_02024C0A
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_080E42F0: .4byte gUnknown_0202F7C8
-_080E42F4: .4byte gUnknown_02024C07
-_080E42F8: .4byte gUnknown_0202F7C9
-_080E42FC: .4byte gUnknown_02024C0A
- thumb_func_end sub_80E42D0
-
- thumb_func_start sub_80E4300
-sub_80E4300: @ 80E4300
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080E4318
- adds r0, r4, 0
- bl move_anim_task_del
- b _080E434E
-_080E4318:
- ldr r0, _080E4354 @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- ldr r1, _080E4358 @ =gUnknown_0202F7C8
- ldrb r0, [r1]
- lsls r0, 2
- ldr r2, _080E435C @ =0x02017800
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- strh r0, [r3, 0x8]
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _080E4360 @ =sub_80E4368
- str r0, [r3]
- ldr r1, _080E4364 @ =gUnknown_0202F7B2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080E434E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4354: .4byte gTasks
-_080E4358: .4byte gUnknown_0202F7C8
-_080E435C: .4byte 0x02017800
-_080E4360: .4byte sub_80E4368
-_080E4364: .4byte gUnknown_0202F7B2
- thumb_func_end sub_80E4300
-
- thumb_func_start sub_80E4368
-sub_80E4368: @ 80E4368
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43B0 @ =gUnknown_03004B00
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _080E43A8
- ldr r0, _080E43B4 @ =gUnknown_0202F7C8
- ldrb r3, [r0]
- lsls r3, 2
- ldr r0, _080E43B8 @ =0x02017800
- adds r3, r0
- ldr r1, _080E43BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
-_080E43A8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E43B0: .4byte gUnknown_03004B00
-_080E43B4: .4byte gUnknown_0202F7C8
-_080E43B8: .4byte 0x02017800
-_080E43BC: .4byte gTasks
- thumb_func_end sub_80E4368
-
- thumb_func_start sub_80E43C0
-sub_80E43C0: @ 80E43C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E43D8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E43E0
- ldr r0, _080E43DC @ =sub_80E4C34
- b _080E4408
- .align 2, 0
-_080E43D8: .4byte gUnknown_020239F8
-_080E43DC: .4byte sub_80E4C34
-_080E43E0:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _080E4400
- ldr r0, _080E43F8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080E4400
- movs r4, 0x3
- ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8
- b _080E4408
- .align 2, 0
-_080E43F8: .4byte gGameVersion
-_080E43FC: .4byte task00_battle_intro_80BC6C8
-_080E4400:
- ldr r1, _080E4434 @ =gUnknown_083DB56C
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
-_080E4408:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080E4438 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r0, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4434: .4byte gUnknown_083DB56C
-_080E4438: .4byte gTasks
- thumb_func_end sub_80E43C0
-
- thumb_func_start sub_80E443C
-sub_80E443C: @ 80E443C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _080E4474 @ =gUnknown_030042C0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080E4478 @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _080E447C @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _080E4480 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _080E4484 @ =REG_BLDCNT
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- ldr r2, _080E4488 @ =0x00003f3f
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E4474: .4byte gUnknown_030042C0
-_080E4478: .4byte gUnknown_030041B4
-_080E447C: .4byte gUnknown_03004288
-_080E4480: .4byte gUnknown_03004280
-_080E4484: .4byte REG_BLDCNT
-_080E4488: .4byte 0x00003f3f
- thumb_func_end sub_80E443C
-
- thumb_func_start task_battle_intro_80BC47C
-task_battle_intro_80BC47C: @ 80E448C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E44C4 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x6
- strh r0, [r1]
- ldr r1, _080E44C8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x4
- bls _080E44B8
- b _080E46BE
-_080E44B8:
- lsls r0, 2
- ldr r1, _080E44CC @ =_080E44D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E44C4: .4byte gUnknown_030042C0
-_080E44C8: .4byte gTasks
-_080E44CC: .4byte _080E44D0
- .align 2, 0
-_080E44D0:
- .4byte _080E44E4
- .4byte _080E4514
- .4byte _080E4540
- .4byte _080E4588
- .4byte _080E46B8
-_080E44E4:
- ldr r0, _080E44FC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4500
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x10
- b _080E450A
- .align 2, 0
-_080E44FC: .4byte gUnknown_020239F8
-_080E4500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- movs r1, 0x1
-_080E450A:
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E46BE
-_080E4514:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r3, r8
- adds r1, r0, r3
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E452C
- b _080E46BE
-_080E452C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E453C @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E453C: .4byte REG_WININ
-_080E4540:
- ldr r1, _080E457C @ =gUnknown_03004240
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4558
- b _080E46BE
-_080E4558:
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4580 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4584 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E46BE
- .align 2, 0
-_080E457C: .4byte gUnknown_03004240
-_080E4580: .4byte gUnknown_02024DE8
-_080E4584: .4byte 0x0000fffe
-_080E4588:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- mov r5, r8
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r5, 0xE
- ldrsh r1, [r2, r5]
- mov r12, r0
- cmp r1, 0
- beq _080E45A4
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E45D2
-_080E45A4:
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080E45C4
- ldr r2, _080E45BC @ =gUnknown_030041B4
- ldrh r1, [r2]
- ldr r0, _080E45C0 @ =0x0000ffb0
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x2
- b _080E45D0
- .align 2, 0
-_080E45BC: .4byte gUnknown_030041B4
-_080E45C0: .4byte 0x0000ffb0
-_080E45C4:
- ldr r2, _080E4690 @ =gUnknown_030041B4
- ldrh r1, [r2]
- ldr r0, _080E4694 @ =0x0000ffc8
- cmp r1, r0
- beq _080E45D2
- subs r0, r1, 0x1
-_080E45D0:
- strh r0, [r2]
-_080E45D2:
- ldr r2, _080E4698 @ =gUnknown_03004240
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E45E6
- ldr r3, _080E469C @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E45E6:
- mov r5, r12
- adds r0, r5, r4
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E45FE
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E45FE:
- movs r3, 0
- ldr r5, _080E46A0 @ =gUnknown_03004DC0
- mov r9, r5
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
- mov r6, r9
- adds r5, r1, 0
-_080E460A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E460A
- cmp r3, 0x9F
- bgt _080E464E
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
- ldr r6, _080E46A0 @ =gUnknown_03004DC0
- ldr r1, _080E46A8 @ =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4634:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4634
-_080E464E:
- mov r3, r12
- adds r0, r3, r4
- lsls r0, 3
- mov r5, r8
- adds r1, r0, r5
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _080E46BE
- movs r0, 0x3
- mov r3, r9
- strb r0, [r3, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E46AC @ =0x0600e000
- ldr r2, _080E46B0 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E46B4 @ =REG_BG1CNT
- movs r5, 0x9C
- lsls r5, 8
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- b _080E46BE
- .align 2, 0
-_080E4690: .4byte gUnknown_030041B4
-_080E4694: .4byte 0x0000ffc8
-_080E4698: .4byte gUnknown_03004240
-_080E469C: .4byte 0xfffffc04
-_080E46A0: .4byte gUnknown_03004DC0
-_080E46A4: .4byte gUnknown_03004DE0
-_080E46A8: .4byte gTasks
-_080E46AC: .4byte 0x0600e000
-_080E46B0: .4byte 0x05000200
-_080E46B4: .4byte REG_BG1CNT
-_080E46B8:
- adds r0, r4, 0
- bl sub_80E443C
-_080E46BE:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task_battle_intro_80BC47C
-
- thumb_func_start task00_battle_intro_80BC6C8
-task00_battle_intro_80BC6C8: @ 80E46CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E46F8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x3
- beq _080E470C
- cmp r0, 0x3
- bgt _080E46FC
- cmp r0, 0x2
- beq _080E4700
- b _080E4714
- .align 2, 0
-_080E46F8: .4byte gTasks
-_080E46FC:
- cmp r0, 0x4
- bne _080E4714
-_080E4700:
- ldr r1, _080E4708 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x8
- b _080E4712
- .align 2, 0
-_080E4708: .4byte gUnknown_030042C0
-_080E470C:
- ldr r1, _080E4750 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x6
-_080E4712:
- strh r0, [r1]
-_080E4714:
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r4, r1, r2
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- adds r6, r0, 0
- cmp r1, 0x4
- bne _080E4778
- ldr r7, _080E4754 @ =gUnknown_030041B4
- ldrh r0, [r4, 0x14]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080E473A
- ldr r1, _080E4758 @ =0x000001ff
- adds r0, r1
-_080E473A:
- asrs r0, 9
- subs r0, 0x8
- strh r0, [r7]
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0xB3
- bgt _080E475C
- adds r0, r1, 0x4
- b _080E475E
- .align 2, 0
-_080E4750: .4byte gUnknown_030042C0
-_080E4754: .4byte gUnknown_030041B4
-_080E4758: .4byte 0x000001ff
-_080E475C:
- adds r0, r1, 0x6
-_080E475E:
- strh r0, [r4, 0x14]
- ldr r2, _080E4794 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r4, 0x14
- ldrsh r1, [r3, r4]
- movs r0, 0xB4
- lsls r0, 1
- cmp r1, r0
- bne _080E4778
- movs r0, 0
- strh r0, [r3, 0x14]
-_080E4778:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _080E4788
- b _080E4996
-_080E4788:
- lsls r0, 2
- ldr r1, _080E4798 @ =_080E479C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4794: .4byte gTasks
-_080E4798: .4byte _080E479C
- .align 2, 0
-_080E479C:
- .4byte _080E47B0
- .4byte _080E47E0
- .4byte _080E480C
- .4byte _080E485C
- .4byte _080E4990
-_080E47B0:
- ldr r1, _080E47CC @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x10
- strh r3, [r2, 0x10]
- ldr r0, _080E47D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E47D4
- strh r3, [r2, 0xC]
- b _080E47D8
- .align 2, 0
-_080E47CC: .4byte gTasks
-_080E47D0: .4byte gUnknown_020239F8
-_080E47D4:
- movs r0, 0x1
- strh r0, [r2, 0xC]
-_080E47D8:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _080E4996
-_080E47E0:
- ldr r0, _080E4804 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E47F6
- b _080E4996
-_080E47F6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4808 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4804: .4byte gTasks
-_080E4808: .4byte REG_WININ
-_080E480C:
- ldr r1, _080E484C @ =gUnknown_03004240
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4824
- b _080E4996
-_080E4824:
- ldr r0, _080E4850 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4854 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4858 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4996
- .align 2, 0
-_080E484C: .4byte gUnknown_03004240
-_080E4850: .4byte gTasks
-_080E4854: .4byte gUnknown_02024DE8
-_080E4858: .4byte 0x0000fffe
-_080E485C:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r3, [r1, 0xE]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _080E4898
- subs r0, r3, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r3, r0, 16
- cmp r3, 0
- bne _080E48B8
- ldr r1, _080E488C @ =REG_BLDCNT
- ldr r4, _080E4890 @ =0x00001842
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xF
- strh r0, [r1]
- ldr r0, _080E4894 @ =REG_BLDY
- strh r3, [r0]
- b _080E48B8
- .align 2, 0
-_080E488C: .4byte REG_BLDCNT
-_080E4890: .4byte 0x00001842
-_080E4894: .4byte REG_BLDY
-_080E4898:
- ldrh r3, [r1, 0x10]
- movs r0, 0x1F
- ands r0, r3
- cmp r0, 0
- beq _080E48B8
- ldrh r0, [r1, 0x12]
- subs r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E48B8
- adds r0, r3, 0
- adds r0, 0xFF
- strh r0, [r1, 0x10]
- movs r0, 0x4
- strh r0, [r1, 0x12]
-_080E48B8:
- ldr r3, _080E4970 @ =gUnknown_03004240
- ldrh r1, [r3]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E48CC
- ldr r4, _080E4974 @ =0xfffffc04
- adds r0, r1, r4
- strh r0, [r3]
-_080E48CC:
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E48E0
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E48E0:
- movs r3, 0
- ldr r4, _080E4978 @ =gUnknown_03004DC0
- mov r8, r4
- ldr r0, _080E497C @ =gUnknown_03004DE0
- mov r12, r0
- mov r7, r8
- adds r4, r1, 0
-_080E48EE:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E48EE
- cmp r3, 0x9F
- bgt _080E4932
- ldr r1, _080E497C @ =gUnknown_03004DE0
- mov r12, r1
- ldr r7, _080E4978 @ =gUnknown_03004DC0
- ldr r1, _080E4980 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r4, r0, r1
-_080E4918:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r12
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4918
-_080E4932:
- ldr r1, _080E4980 @ =gTasks
- adds r0, r6, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4996
- movs r0, 0x3
- mov r4, r8
- strb r0, [r4, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4984 @ =0x0600e000
- ldr r2, _080E4988 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E498C @ =REG_BG1CNT
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4996
- .align 2, 0
-_080E4970: .4byte gUnknown_03004240
-_080E4974: .4byte 0xfffffc04
-_080E4978: .4byte gUnknown_03004DC0
-_080E497C: .4byte gUnknown_03004DE0
-_080E4980: .4byte gTasks
-_080E4984: .4byte 0x0600e000
-_080E4988: .4byte 0x05000200
-_080E498C: .4byte REG_BG1CNT
-_080E4990:
- adds r0, r5, 0
- bl sub_80E443C
-_080E4996:
- ldr r0, _080E49B8 @ =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r2, r1, r0
- movs r4, 0x8
- ldrsh r0, [r2, r4]
- cmp r0, 0x4
- beq _080E49AC
- ldr r1, _080E49BC @ =REG_BLDALPHA
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E49AC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E49B8: .4byte gTasks
-_080E49BC: .4byte REG_BLDALPHA
- thumb_func_end task00_battle_intro_80BC6C8
-
- thumb_func_start task_battle_intro_anim
-task_battle_intro_anim: @ 80E49C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080E49F4 @ =gUnknown_030042C0
- ldrh r0, [r1]
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, _080E49F8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x4
- bls _080E49EA
- b _080E4C06
-_080E49EA:
- lsls r0, 2
- ldr r1, _080E49FC @ =_080E4A00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E49F4: .4byte gUnknown_030042C0
-_080E49F8: .4byte gTasks
-_080E49FC: .4byte _080E4A00
- .align 2, 0
-_080E4A00:
- .4byte _080E4A14
- .4byte _080E4A6C
- .4byte _080E4A9C
- .4byte _080E4AEC
- .4byte _080E4C00
-_080E4A14:
- ldr r1, _080E4A48 @ =REG_BLDCNT
- ldr r3, _080E4A4C @ =0x00001842
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080E4A50 @ =REG_BLDALPHA
- ldr r6, _080E4A54 @ =0x00000808
- adds r2, r6, 0
- strh r2, [r0]
- adds r1, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080E4A58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r3, r0, r1
- strh r2, [r3, 0x10]
- ldr r0, _080E4A5C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E4A60
- movs r0, 0x10
- b _080E4A62
- .align 2, 0
-_080E4A48: .4byte REG_BLDCNT
-_080E4A4C: .4byte 0x00001842
-_080E4A50: .4byte REG_BLDALPHA
-_080E4A54: .4byte 0x00000808
-_080E4A58: .4byte gTasks
-_080E4A5C: .4byte gUnknown_020239F8
-_080E4A60:
- movs r0, 0x1
-_080E4A62:
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _080E4C06
-_080E4A6C:
- ldr r0, _080E4A94 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4A84
- b _080E4C06
-_080E4A84:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4A98 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4A94: .4byte gTasks
-_080E4A98: .4byte REG_WININ
-_080E4A9C:
- ldr r1, _080E4ADC @ =gUnknown_03004240
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4AB4
- b _080E4C06
-_080E4AB4:
- ldr r0, _080E4AE0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- movs r0, 0x1
- strh r0, [r1, 0x12]
- ldr r2, _080E4AE4 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4AE8 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4C06
- .align 2, 0
-_080E4ADC: .4byte gUnknown_03004240
-_080E4AE0: .4byte gTasks
-_080E4AE4: .4byte gUnknown_02024DE8
-_080E4AE8: .4byte 0x0000fffe
-_080E4AEC:
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- adds r2, r1, r5
- ldrh r3, [r2, 0xE]
- movs r6, 0xE
- ldrsh r1, [r2, r6]
- mov r12, r0
- cmp r1, 0
- beq _080E4B06
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- b _080E4B26
-_080E4B06:
- ldrh r1, [r2, 0x10]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- beq _080E4B26
- ldrh r0, [r2, 0x12]
- subs r0, 0x1
- strh r0, [r2, 0x12]
- lsls r0, 16
- cmp r0, 0
- bne _080E4B26
- adds r0, r1, 0
- adds r0, 0xFF
- strh r0, [r2, 0x10]
- movs r0, 0x6
- strh r0, [r2, 0x12]
-_080E4B26:
- ldr r2, _080E4BE0 @ =gUnknown_03004240
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4B3A
- ldr r3, _080E4BE4 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E4B3A:
- mov r6, r12
- adds r0, r6, r4
- lsls r0, 3
- adds r1, r0, r5
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4B50
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4B50:
- movs r3, 0
- ldr r6, _080E4BE8 @ =gUnknown_03004DC0
- mov r8, r6
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
- adds r5, r1, 0
-_080E4B5A:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4B5A
- cmp r3, 0x9F
- bgt _080E4B9E
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
- ldr r6, _080E4BE8 @ =gUnknown_03004DC0
- ldr r1, _080E4BF0 @ =gTasks
- mov r2, r12
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r1
-_080E4B84:
- lsls r2, r3, 1
- ldrb r1, [r6, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r7
- ldrh r0, [r5, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4B84
-_080E4B9E:
- ldr r1, _080E4BF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _080E4C06
- movs r0, 0x3
- mov r6, r8
- strb r0, [r6, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r2, [sp]
- ldr r1, _080E4BF4 @ =0x0600e000
- ldr r2, _080E4BF8 @ =0x05000200
- mov r0, sp
- bl CpuSet
- ldr r1, _080E4BFC @ =REG_BG1CNT
- movs r2, 0x9C
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xBC
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- b _080E4C06
- .align 2, 0
-_080E4BE0: .4byte gUnknown_03004240
-_080E4BE4: .4byte 0xfffffc04
-_080E4BE8: .4byte gUnknown_03004DC0
-_080E4BEC: .4byte gUnknown_03004DE0
-_080E4BF0: .4byte gTasks
-_080E4BF4: .4byte 0x0600e000
-_080E4BF8: .4byte 0x05000200
-_080E4BFC: .4byte REG_BG1CNT
-_080E4C00:
- adds r0, r4, 0
- bl sub_80E443C
-_080E4C06:
- ldr r0, _080E4C2C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r6, 0x8
- ldrsh r0, [r2, r6]
- cmp r0, 0x4
- beq _080E4C1E
- ldr r1, _080E4C30 @ =REG_BLDALPHA
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
-_080E4C1E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4C2C: .4byte gTasks
-_080E4C30: .4byte REG_BLDALPHA
- thumb_func_end task_battle_intro_anim
-
- thumb_func_start sub_80E4C34
-sub_80E4C34: @ 80E4C34
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E4C80 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- ble _080E4CAA
- movs r2, 0x10
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bne _080E4CAA
- ldr r2, _080E4C84 @ =gUnknown_030042C0
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080E4C72
- cmp r1, 0x4F
- bhi _080E4C8C
-_080E4C72:
- adds r0, r1, 0x3
- strh r0, [r2]
- ldr r1, _080E4C88 @ =gUnknown_03004288
- ldrh r0, [r1]
- subs r0, 0x3
- strh r0, [r1]
- b _080E4CAA
- .align 2, 0
-_080E4C80: .4byte gTasks
-_080E4C84: .4byte gUnknown_030042C0
-_080E4C88: .4byte gUnknown_03004288
-_080E4C8C:
- str r5, [sp]
- ldr r1, _080E4CCC @ =0x0600e000
- ldr r4, _080E4CD0 @ =0x05000200
- mov r0, sp
- adds r2, r4, 0
- bl CpuSet
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldr r1, _080E4CD4 @ =0x0600f000
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x1
- strh r0, [r7, 0x10]
-_080E4CAA:
- ldr r0, _080E4CD8 @ =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- mov r12, r0
- adds r5, r2, 0
- cmp r1, 0x4
- bls _080E4CC2
- b _080E4EBA
-_080E4CC2:
- lsls r0, r1, 2
- ldr r1, _080E4CDC @ =_080E4CE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E4CCC: .4byte 0x0600e000
-_080E4CD0: .4byte 0x05000200
-_080E4CD4: .4byte 0x0600f000
-_080E4CD8: .4byte gTasks
-_080E4CDC: .4byte _080E4CE0
- .align 2, 0
-_080E4CE0:
- .4byte _080E4CF4
- .4byte _080E4D06
- .4byte _080E4DA8
- .4byte _080E4DEC
- .4byte _080E4EB4
-_080E4CF4:
- adds r0, r5, r6
- lsls r0, 3
- add r0, r12
- movs r1, 0x10
- strh r1, [r0, 0xC]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _080E4EBA
-_080E4D06:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r0, [r1, 0xC]
- subs r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- cmp r0, 0
- beq _080E4D1C
- b _080E4EBA
-_080E4D1C:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r5, _080E4D8C @ =gSprites
- ldr r4, _080E4D90 @ =0x02000000
- ldr r3, _080E4D94 @ =0x0001608a
- adds r6, r4, r3
- ldrb r0, [r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x8
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r6
- ldr r3, _080E4D98 @ =sub_800FE20
- str r3, [r0]
- ldr r0, _080E4D9C @ =0x0001608b
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r2, r1
- mov r1, r8
- orrs r2, r1
- strb r2, [r0, 0x1]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r3, [r0]
- ldr r1, _080E4DA0 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E4DA4 @ =0x00003f06
- b _080E4E94
- .align 2, 0
-_080E4D8C: .4byte gSprites
-_080E4D90: .4byte 0x02000000
-_080E4D94: .4byte 0x0001608a
-_080E4D98: .4byte sub_800FE20
-_080E4D9C: .4byte 0x0001608b
-_080E4DA0: .4byte REG_WININ
-_080E4DA4: .4byte 0x00003f06
-_080E4DA8:
- ldr r1, _080E4DE0 @ =gUnknown_03004240
- ldrh r0, [r1]
- subs r0, 0xFF
- strh r0, [r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- cmp r0, r1
- beq _080E4DC0
- b _080E4EBA
-_080E4DC0:
- adds r1, r5, r6
- lsls r1, 3
- add r1, r12
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xF0
- strh r0, [r1, 0xC]
- movs r0, 0x20
- strh r0, [r1, 0xE]
- ldr r2, _080E4DE4 @ =gUnknown_02024DE8
- ldrh r1, [r2]
- ldr r0, _080E4DE8 @ =0x0000fffe
- ands r0, r1
- strh r0, [r2]
- b _080E4EBA
- .align 2, 0
-_080E4DE0: .4byte gUnknown_03004240
-_080E4DE4: .4byte gUnknown_02024DE8
-_080E4DE8: .4byte 0x0000fffe
-_080E4DEC:
- ldr r2, _080E4E9C @ =gUnknown_03004240
- ldrh r1, [r2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _080E4E00
- ldr r3, _080E4EA0 @ =0xfffffc04
- adds r0, r1, r3
- strh r0, [r2]
-_080E4E00:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080E4E16
- subs r0, r2, 0x2
- strh r0, [r1, 0xC]
-_080E4E16:
- movs r3, 0
- ldr r0, _080E4EA4 @ =gUnknown_03004DC0
- mov r9, r0
- ldr r2, _080E4EA8 @ =gUnknown_03004DE0
- mov r8, r2
- mov r7, r9
- adds r4, r1, 0
-_080E4E24:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x4F
- ble _080E4E24
- cmp r3, 0x9F
- bgt _080E4E68
- ldr r0, _080E4EA8 @ =gUnknown_03004DE0
- mov r8, r0
- ldr r7, _080E4EA4 @ =gUnknown_03004DC0
- ldr r1, _080E4EAC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r4, r0, r1
-_080E4E4E:
- lsls r2, r3, 1
- ldrb r1, [r7, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- add r2, r8
- ldrh r0, [r4, 0xC]
- negs r0, r0
- strh r0, [r2]
- adds r3, 0x1
- cmp r3, 0x9F
- ble _080E4E4E
-_080E4E68:
- adds r0, r5, r6
- lsls r0, 3
- mov r2, r12
- adds r1, r0, r2
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080E4EBA
- movs r0, 0x3
- mov r2, r9
- strb r0, [r2, 0x15]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _080E4EB0 @ =REG_BG1CNT
- movs r3, 0x9C
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xBC
- lsls r2, 7
-_080E4E94:
- adds r0, r2, 0
- strh r0, [r1]
- b _080E4EBA
- .align 2, 0
-_080E4E9C: .4byte gUnknown_03004240
-_080E4EA0: .4byte 0xfffffc04
-_080E4EA4: .4byte gUnknown_03004DC0
-_080E4EA8: .4byte gUnknown_03004DE0
-_080E4EAC: .4byte gTasks
-_080E4EB0: .4byte REG_BG1CNT
-_080E4EB4:
- adds r0, r6, 0
- bl sub_80E443C
-_080E4EBA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E4C34
-
- thumb_func_start unref_sub_80E4EC8
-unref_sub_80E4EC8: @ 80E4EC8
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0x80
- lsls r4, 7
- str r4, [sp]
- movs r4, 0x1E
- str r4, [sp, 0x4]
- movs r4, 0x1
- str r4, [sp, 0x8]
- bl sub_80E4EF8
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80E4EC8
-
- thumb_func_start sub_80E4EF8
-sub_80E4EF8: @ 80E4EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r1
- adds r4, r2, 0
- ldr r1, [sp, 0x24]
- mov r8, r1
- ldr r1, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r7, r9
- lsls r7, 24
- adds r0, r7, 0
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsrs r6, r3, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E4FCC @ =0x040000d4
- ldr r1, _080E4FD0 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r4, r1
- ldr r1, _080E4FD4 @ =gUnknown_02024E84
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 11
- ldr r0, [r4]
- adds r0, r1
- str r0, [r2]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r2, 0x4]
- ldr r0, _080E4FD8 @ =0x80000400
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- mov r0, r8
- lsrs r0, 21
- lsls r5, 9
- subs r5, r0, r5
- mov r0, r9
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E4FBC
- mov r9, r1
- mov r1, r10
- lsls r1, 1
- mov r8, r1
- lsls r7, 11
- mov r12, r7
-_080E4F86:
- mov r2, r10
- adds r4, r2, 0
- adds r4, 0x8
- adds r1, r0, 0x1
- cmp r2, r4
- bge _080E4FB6
- ldr r3, [sp]
- lsls r6, r3, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- add r0, r12
- mov r7, r8
- adds r3, r7, r0
- subs r2, r4, r2
-_080E4FA6:
- adds r0, r5, 0
- orrs r0, r6
- strh r0, [r3]
- adds r5, 0x1
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E4FA6
-_080E4FB6:
- adds r0, r1, 0
- cmp r0, r9
- blt _080E4F86
-_080E4FBC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E4FCC: .4byte 0x040000d4
-_080E4FD0: .4byte gUnknown_081FAF4C
-_080E4FD4: .4byte gUnknown_02024E84
-_080E4FD8: .4byte 0x80000400
- thumb_func_end sub_80E4EF8
-
- thumb_func_start unref_sub_80E4FDC
-unref_sub_80E4FDC: @ 80E4FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- mov r8, r5
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- mov r7, r8
- lsls r7, 16
- lsrs r6, r7, 16
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- lsls r0, 24
- mov r9, r0
- ldr r4, _080E509C @ =0x040000d4
- ldr r0, _080E50A0 @ =gUnknown_081FAF4C
- lsrs r2, 22
- adds r2, r0
- lsrs r3, 13
- ldr r0, [r2]
- adds r0, r3
- str r0, [r4]
- movs r0, 0xC0
- lsls r0, 19
- adds r6, r0
- str r6, [r4, 0x4]
- ldr r0, _080E50A4 @ =0x80000400
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r2, r7, 0
- lsrs r2, 21
- mov r6, r9
- lsrs r6, 15
- subs r4, r2, r6
- lsrs r0, r1, 24
- adds r1, r0, 0
- adds r1, 0x8
- cmp r0, r1
- bge _080E508C
- mov r9, r1
- mov r7, r12
- lsls r7, 1
- mov r8, r7
- lsls r5, 11
- str r5, [sp]
-_080E5054:
- mov r2, r12
- adds r3, r2, 0
- adds r3, 0x8
- adds r5, r0, 0x1
- cmp r2, r3
- bge _080E5086
- mov r1, r10
- lsls r6, r1, 12
- lsls r0, 6
- movs r7, 0xC0
- lsls r7, 19
- adds r0, r7
- ldr r1, [sp]
- adds r0, r1, r0
- mov r7, r8
- adds r1, r7, r0
- subs r2, r3, r2
-_080E5076:
- adds r0, r4, 0
- orrs r0, r6
- strh r0, [r1]
- adds r4, 0x1
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _080E5076
-_080E5086:
- adds r0, r5, 0
- cmp r0, r9
- blt _080E5054
-_080E508C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E509C: .4byte 0x040000d4
-_080E50A0: .4byte gUnknown_081FAF4C
-_080E50A4: .4byte 0x80000400
- thumb_func_end unref_sub_80E4FDC
-
- thumb_func_start MovePlayerOnBike
-MovePlayerOnBike: @ 80E50A8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080E50CC @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E50D0
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnMachBike
- b _080E50D8
- .align 2, 0
-_080E50CC: .4byte gPlayerAvatar
-_080E50D0:
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnAcroBike
-_080E50D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerOnBike
-
- thumb_func_start MovePlayerOnMachBike
-MovePlayerOnMachBike: @ 80E50E0
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- strb r0, [r1]
- ldr r4, _080E510C @ =gUnknown_083DB594
- mov r0, sp
- bl CheckMovementInputMachBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E510C: .4byte gUnknown_083DB594
- thumb_func_end MovePlayerOnMachBike
-
- thumb_func_start CheckMovementInputMachBike
-CheckMovementInputMachBike: @ 80E5110
- push {r4,lr}
- adds r4, r0, 0
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5138
- strb r0, [r4]
- ldr r2, _080E5134 @ =gPlayerAvatar
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E514C
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E5160
- .align 2, 0
-_080E5134: .4byte gPlayerAvatar
-_080E5138:
- ldr r2, _080E5154 @ =gPlayerAvatar
- cmp r1, r3
- beq _080E515C
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- beq _080E515C
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _080E5158
- strb r3, [r4]
-_080E514C:
- movs r0, 0x2
- strb r0, [r2, 0x2]
- movs r0, 0x3
- b _080E5160
- .align 2, 0
-_080E5154: .4byte gPlayerAvatar
-_080E5158:
- movs r0, 0x1
- b _080E515E
-_080E515C:
- movs r0, 0x2
-_080E515E:
- strb r0, [r2, 0x2]
-_080E5160:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputMachBike
-
- thumb_func_start sub_80E5168
-sub_80E5168: @ 80E5168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- bl sub_80E6024
- pop {r0}
- bx r0
- thumb_func_end sub_80E5168
-
- thumb_func_start sub_80E517C
-sub_80E517C: @ 80E517C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E51AC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51B0 @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- beq _080E51B4
- adds r0, r5, 0
- bl PlayerTurnInPlace
- bl sub_80E6024
- b _080E51BE
- .align 2, 0
-_080E51AC: .4byte gPlayerAvatar
-_080E51B0: .4byte gMapObjects
-_080E51B4:
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_80E5168
-_080E51BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E517C
-
- thumb_func_start sub_80E51C4
-sub_80E51C4: @ 80E51C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- ldr r6, _080E51F8 @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E51FC @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x1E]
- adds r0, r5, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E520A
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5200
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5270
- b _080E5266
- .align 2, 0
-_080E51F8: .4byte gPlayerAvatar
-_080E51FC: .4byte gMapObjects
-_080E5200:
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- bl sub_80E5168
- b _080E5266
-_080E520A:
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5242
- cmp r4, 0x6
- bne _080E522C
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _080E5266
-_080E522C:
- bl sub_80E6024
- subs r0, r4, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5266
- adds r0, r5, 0
- bl PlayerOnBikeCollide
- b _080E5266
-_080E5242:
- ldr r1, _080E526C @ =gUnknown_083DB5A4
- ldrb r0, [r6, 0xA]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl _call_via_r1
- ldrb r2, [r6, 0xA]
- lsls r0, r2, 24
- lsrs r1, r0, 24
- lsrs r0, 25
- adds r0, r2, r0
- strb r0, [r6, 0xB]
- cmp r1, 0x1
- bhi _080E5266
- adds r0, r2, 0x1
- strb r0, [r6, 0xA]
-_080E5266:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E526C: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E51C4
-
- thumb_func_start sub_80E5270
-sub_80E5270: @ 80E5270
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r6, _080E52A8 @ =gPlayerAvatar
- ldrb r0, [r6, 0xB]
- cmp r0, 0
- beq _080E5286
- subs r0, 0x1
- strb r0, [r6, 0xB]
- strb r0, [r6, 0xA]
-_080E5286:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E52C2
- cmp r5, 0x6
- bne _080E52AC
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E52D2
- .align 2, 0
-_080E52A8: .4byte gPlayerAvatar
-_080E52AC:
- bl sub_80E6024
- subs r0, r5, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E52D2
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E52D2
-_080E52C2:
- ldr r0, _080E52D8 @ =gUnknown_083DB5A4
- ldrb r1, [r6, 0xA]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r7, 0
- bl _call_via_r1
-_080E52D2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E52D8: .4byte gUnknown_083DB5A4
- thumb_func_end sub_80E5270
-
- thumb_func_start MovePlayerOnAcroBike
-MovePlayerOnAcroBike: @ 80E52DC
- push {r4,lr}
- sub sp, 0x4
- mov r3, sp
- strb r0, [r3]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5310 @ =gUnknown_083DB5B0
- mov r0, sp
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- mov r1, sp
- ldrb r1, [r1]
- ldr r2, [r0]
- adds r0, r1, 0
- bl _call_via_r2
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5310: .4byte gUnknown_083DB5B0
- thumb_func_end MovePlayerOnAcroBike
-
- thumb_func_start CheckMovementInputAcroBike
-CheckMovementInputAcroBike: @ 80E5314
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E5338 @ =gUnknown_083DB5E4
- ldr r3, _080E533C @ =gPlayerAvatar
- ldrb r3, [r3, 0x8]
- lsls r3, 2
- adds r3, r4
- ldr r3, [r3]
- bl _call_via_r3
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5338: .4byte gUnknown_083DB5E4
-_080E533C: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBike
-
- thumb_func_start CheckMovementInputAcroBikeNormal
-CheckMovementInputAcroBikeNormal: @ 80E5340
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080E5374 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r2, 0xA]
- ldrb r1, [r4]
- cmp r1, 0
- bne _080E5380
- movs r0, 0x2
- ands r0, r6
- cmp r0, 0
- beq _080E5378
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0x2
- strb r0, [r2, 0x8]
- movs r0, 0x3
- b _080E53D4
- .align 2, 0
-_080E5374: .4byte gPlayerAvatar
-_080E5378:
- strb r3, [r4]
- strb r1, [r2, 0x2]
- movs r0, 0
- b _080E53D4
-_080E5380:
- cmp r1, r3
- bne _080E53A6
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080E539E
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _080E539E
- adds r0, 0x1
- strb r0, [r2, 0xB]
- movs r0, 0x4
- strb r0, [r2, 0x8]
- movs r0, 0xB
- b _080E53D4
-_080E539E:
- ldrb r0, [r4]
- ldr r2, _080E53CC @ =gPlayerAvatar
- cmp r0, r3
- beq _080E53D0
-_080E53A6:
- ldr r0, _080E53CC @ =gPlayerAvatar
- ldrb r1, [r0, 0x2]
- adds r2, r0, 0
- cmp r1, 0x2
- beq _080E53D0
- movs r1, 0
- movs r0, 0x1
- strb r0, [r2, 0x8]
- ldrb r0, [r4]
- strb r0, [r2, 0x9]
- strb r1, [r2, 0x2]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E53D4
- .align 2, 0
-_080E53CC: .4byte gPlayerAvatar
-_080E53D0:
- movs r0, 0x2
- strb r0, [r2, 0x2]
-_080E53D4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeNormal
-
- thumb_func_start CheckMovementInputAcroBikeChangingDirection
-CheckMovementInputAcroBikeChangingDirection: @ 80E53DC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080E5404 @ =gPlayerAvatar
- ldrb r0, [r4, 0x9]
- strb r0, [r5]
- ldrb r0, [r4, 0xA]
- adds r0, 0x1
- strb r0, [r4, 0xA]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _080E5408
- movs r0, 0x1
- strb r0, [r4, 0x2]
- movs r0, 0
- strb r0, [r4, 0x8]
- bl sub_80E6024
- movs r0, 0x1
- b _080E544E
- .align 2, 0
-_080E5404: .4byte gPlayerAvatar
-_080E5408:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_80E5C2C
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E544A
- bl sub_80E6024
- movs r0, 0x1
- strb r0, [r4, 0xB]
- adds r0, r6, 0
- bl GetOppositeDirection
- ldrb r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _080E543E
- movs r0, 0x6
- strb r0, [r4, 0x8]
- movs r0, 0x9
- b _080E544E
-_080E543E:
- movs r0, 0x2
- strb r0, [r4, 0x2]
- movs r0, 0x5
- strb r0, [r4, 0x8]
- movs r0, 0x8
- b _080E544E
-_080E544A:
- strb r6, [r5]
- movs r0, 0
-_080E544E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeChangingDirection
-
- thumb_func_start CheckMovementInputAcroBikeStandingWheelie
-CheckMovementInputAcroBikeStandingWheelie: @ 80E5454
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r4, r2, 16
- lsrs r4, 16
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _080E54A0 @ =gPlayerAvatar
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E54A4 @ =gMapObjects
- adds r1, r0, r1
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x2
- ands r4, r0
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0
- bne _080E54A8
- strb r4, [r5, 0xA]
- ldrb r0, [r1, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080E54AE
- strb r6, [r7]
- strb r0, [r5, 0x8]
- bl sub_80E6024
- movs r0, 0x4
- b _080E54EC
- .align 2, 0
-_080E54A0: .4byte gPlayerAvatar
-_080E54A4: .4byte gMapObjects
-_080E54A8:
- ldrb r0, [r5, 0xA]
- adds r0, 0x1
- strb r0, [r5, 0xA]
-_080E54AE:
- ldr r1, _080E54C4 @ =gPlayerAvatar
- ldrb r0, [r1, 0xA]
- cmp r0, 0x27
- bls _080E54C8
- strb r6, [r7]
- movs r0, 0x3
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0x6
- b _080E54EC
- .align 2, 0
-_080E54C4: .4byte gPlayerAvatar
-_080E54C8:
- ldrb r0, [r7]
- cmp r0, r6
- bne _080E54DE
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- bl sub_80E6024
- movs r0, 0xA
- b _080E54EC
-_080E54DE:
- cmp r0, 0
- beq _080E54E8
- movs r0, 0x1
- strb r0, [r1, 0x2]
- b _080E54EA
-_080E54E8:
- strb r6, [r7]
-_080E54EA:
- movs r0, 0x5
-_080E54EC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckMovementInputAcroBikeStandingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeBunnyHop
-CheckMovementInputAcroBikeBunnyHop: @ 80E54F4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E5554 @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5558 @ =gMapObjects
- adds r7, r0, r1
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5566
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080E555C
- movs r0, 0x2
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r9
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E558A
- .align 2, 0
-_080E5554: .4byte gPlayerAvatar
-_080E5558: .4byte gMapObjects
-_080E555C:
- strb r5, [r6]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x8]
- movs r0, 0x4
- b _080E558A
-_080E5566:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5570
- strb r5, [r6]
- b _080E557C
-_080E5570:
- cmp r0, r2
- beq _080E5582
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5582
- movs r0, 0x1
-_080E557C:
- strb r0, [r4, 0x2]
- movs r0, 0x6
- b _080E558A
-_080E5582:
- ldr r1, _080E5598 @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x7
-_080E558A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5598: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeBunnyHop
-
- thumb_func_start CheckMovementInputAcroBikeMovingWheelie
-CheckMovementInputAcroBikeMovingWheelie: @ 80E559C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r4, _080E55F8 @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E55FC @ =gMapObjects
- adds r7, r0, r1
- movs r0, 0x2
- mov r9, r0
- movs r0, 0x2
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E5634
- bl sub_80E6024
- ldrb r0, [r7, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E5620
- strb r1, [r4, 0x8]
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E5600
- strb r5, [r6]
- b _080E560A
- .align 2, 0
-_080E55F8: .4byte gPlayerAvatar
-_080E55FC: .4byte gMapObjects
-_080E5600:
- cmp r0, r5
- beq _080E5610
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E5610
-_080E560A:
- strb r1, [r4, 0x2]
- movs r0, 0x4
- b _080E5664
-_080E5610:
- ldr r1, _080E561C @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xC
- b _080E5664
- .align 2, 0
-_080E561C: .4byte gPlayerAvatar
-_080E5620:
- mov r0, r9
- strb r0, [r4, 0x8]
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- b _080E5664
-_080E5634:
- ldrb r0, [r6]
- cmp r0, 0
- bne _080E564A
- strb r5, [r6]
- mov r1, r9
- strb r1, [r4, 0x8]
- strb r0, [r4, 0x2]
- bl sub_80E6024
- movs r0, 0x5
- b _080E5664
-_080E564A:
- cmp r2, r0
- beq _080E565C
- ldrb r0, [r4, 0x2]
- cmp r0, 0x2
- beq _080E565C
- movs r0, 0
- strb r0, [r4, 0x2]
- movs r0, 0x5
- b _080E5664
-_080E565C:
- ldr r1, _080E5674 @ =gPlayerAvatar
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xA
-_080E5664:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5674: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeMovingWheelie
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode5
-CheckMovementInputAcroBikeUnknownMode5: @ 80E5678
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _080E56CC @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E56D0 @ =gMapObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- movs r0, 0
- strb r0, [r6, 0x8]
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56CC: .4byte gPlayerAvatar
-_080E56D0: .4byte gMapObjects
- thumb_func_end CheckMovementInputAcroBikeUnknownMode5
-
- thumb_func_start CheckMovementInputAcroBikeUnknownMode6
-CheckMovementInputAcroBikeUnknownMode6: @ 80E56D4
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080E56F4 @ =gPlayerAvatar
- movs r3, 0
- strb r3, [r4, 0x8]
- bl CheckMovementInputAcroBike
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E56F4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputAcroBikeUnknownMode6
-
- thumb_func_start sub_80E56F8
-sub_80E56F8: @ 80E56F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end sub_80E56F8
-
- thumb_func_start sub_80E5708
-sub_80E5708: @ 80E5708
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E573C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5740 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E572E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E572E:
- adds r0, r4, 0
- bl PlayerFaceDirection
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E573C: .4byte gPlayerAvatar
-_080E5740: .4byte gMapObjects
- thumb_func_end sub_80E5708
-
- thumb_func_start sub_80E5744
-sub_80E5744: @ 80E5744
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5774 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5778 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E577C
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E56F8
- b _080E57B6
- .align 2, 0
-_080E5774: .4byte gPlayerAvatar
-_080E5778: .4byte gMapObjects
-_080E577C:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E57B0
- cmp r1, 0x6
- bne _080E579E
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E57B6
-_080E579E:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E57B6
- adds r0, r4, 0
- bl PlayerOnBikeCollide
- b _080E57B6
-_080E57B0:
- adds r0, r6, 0
- bl npc_use_some_d2s
-_080E57B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5744
-
- thumb_func_start sub_80E57BC
-sub_80E57BC: @ 80E57BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E57F0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E57F4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E57E2
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E57E2:
- adds r0, r4, 0
- bl sub_805951C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E57F0: .4byte gPlayerAvatar
-_080E57F4: .4byte gMapObjects
- thumb_func_end sub_80E57BC
-
- thumb_func_start sub_80E57F8
-sub_80E57F8: @ 80E57F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E582C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5830 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E581E
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E581E:
- adds r0, r4, 0
- bl sub_8059534
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E582C: .4byte gPlayerAvatar
-_080E5830: .4byte gMapObjects
- thumb_func_end sub_80E57F8
-
- thumb_func_start sub_80E5834
-sub_80E5834: @ 80E5834
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E5868 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E586C @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E585A
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E585A:
- adds r0, r4, 0
- bl sub_8059504
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5868: .4byte gPlayerAvatar
-_080E586C: .4byte gMapObjects
- thumb_func_end sub_80E5834
-
- thumb_func_start sub_80E5870
-sub_80E5870: @ 80E5870
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58A8 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5896
- ldrb r0, [r5, 0x18]
- lsrs r4, r0, 4
-_080E5896:
- adds r0, r4, 0
- bl sub_805954C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E58A4: .4byte gPlayerAvatar
-_080E58A8: .4byte gMapObjects
- thumb_func_end sub_80E5870
-
- thumb_func_start sub_80E58AC
-sub_80E58AC: @ 80E58AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E58D8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E58DC @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E58E0
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_80E5870
- b _080E591A
- .align 2, 0
-_080E58D8: .4byte gPlayerAvatar
-_080E58DC: .4byte gMapObjects
-_080E58E0:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E5914
- cmp r1, 0x9
- beq _080E5914
- cmp r1, 0x6
- bne _080E58FE
- adds r0, r4, 0
- bl sub_8059594
- b _080E591A
-_080E58FE:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E591A
- cmp r1, 0xB
- bhi _080E5914
- adds r0, r4, 0
- bl sub_80E5870
- b _080E591A
-_080E5914:
- adds r0, r4, 0
- bl sub_8059570
-_080E591A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E58AC
-
- thumb_func_start sub_80E5920
-sub_80E5920: @ 80E5920
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _080E5954
- cmp r0, 0x7
- beq _080E5980
- cmp r0, 0x9
- bls _080E594C
- adds r0, r1, 0
- adds r1, r5, 0
- bl sub_80E5EC0
- lsls r0, 24
- cmp r0, 0
- bne _080E5954
-_080E594C:
- adds r0, r5, 0
- bl sub_80E5708
- b _080E5980
-_080E5954:
- ldr r0, _080E5988 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E598C @ =gMapObjects
- adds r4, r0
- movs r0, 0x22
- bl PlaySE
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- bl sub_80608A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
-_080E5980:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5988: .4byte gPlayerAvatar
-_080E598C: .4byte gMapObjects
- thumb_func_end sub_80E5920
-
- thumb_func_start sub_80E5990
-sub_80E5990: @ 80E5990
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80595B8
- pop {r0}
- bx r0
- thumb_func_end sub_80E5990
-
- thumb_func_start sub_80E59A0
-sub_80E59A0: @ 80E59A0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E59D0 @ =gPlayerAvatar
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E59D4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E59D8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059504
- b _080E5A28
- .align 2, 0
-_080E59D0: .4byte gPlayerAvatar
-_080E59D4: .4byte gMapObjects
-_080E59D8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5A1E
- cmp r1, 0x6
- bne _080E59FA
- adds r0, r4, 0
- bl sub_8059594
- b _080E5A28
-_080E59FA:
- cmp r1, 0x9
- beq _080E5A0E
- cmp r1, 0x4
- bhi _080E5A28
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5A16
-_080E5A0E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5A28
-_080E5A16:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5A28
-_080E5A1E:
- adds r0, r6, 0
- bl sub_8059618
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5A28:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E59A0
-
- thumb_func_start sub_80E5A30
-sub_80E5A30: @ 80E5A30
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r7, _080E5A60 @ =gPlayerAvatar
- ldrb r1, [r7, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5A64 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5A68
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_805951C
- b _080E5AB8
- .align 2, 0
-_080E5A60: .4byte gPlayerAvatar
-_080E5A64: .4byte gMapObjects
-_080E5A68:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5AAE
- cmp r1, 0x6
- bne _080E5A8A
- adds r0, r4, 0
- bl sub_8059594
- b _080E5AB8
-_080E5A8A:
- cmp r1, 0x9
- beq _080E5A9E
- cmp r1, 0x4
- bhi _080E5AB8
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5AA6
-_080E5A9E:
- adds r0, r4, 0
- bl sub_8059504
- b _080E5AB8
-_080E5AA6:
- adds r0, r4, 0
- bl sub_80595DC
- b _080E5AB8
-_080E5AAE:
- adds r0, r6, 0
- bl sub_8059600
- movs r0, 0x2
- strb r0, [r7, 0x2]
-_080E5AB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5A30
-
- thumb_func_start sub_80E5AC0
-sub_80E5AC0: @ 80E5AC0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r0, _080E5AF0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E5AF4 @ =gMapObjects
- adds r5, r0, r1
- ldrb r1, [r5, 0x1E]
- adds r0, r4, 0
- bl sub_80E5E70
- lsls r0, 24
- cmp r0, 0
- bne _080E5AF8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- bl sub_8059534
- b _080E5B32
- .align 2, 0
-_080E5AF0: .4byte gPlayerAvatar
-_080E5AF4: .4byte gMapObjects
-_080E5AF8:
- adds r0, r4, 0
- bl sub_80E5D34
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0xA
- bhi _080E5B2C
- cmp r1, 0x6
- bne _080E5B1A
- adds r0, r4, 0
- bl PlayerJumpLedge
- b _080E5B32
-_080E5B1A:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _080E5B32
- adds r0, r4, 0
- bl sub_8059534
- b _080E5B32
-_080E5B2C:
- adds r0, r6, 0
- bl sub_8059630
-_080E5B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5AC0
-
- thumb_func_start sub_80E5B38
-sub_80E5B38: @ 80E5B38
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r0, _080E5B5C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E5B56
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80E5B60
-_080E5B56:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5B5C: .4byte gPlayerAvatar
- thumb_func_end sub_80E5B38
-
- thumb_func_start sub_80E5B60
-sub_80E5B60: @ 80E5B60
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r5, 0
- bl sub_80E5CF4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, _080E5B88 @ =gPlayerAvatar
- ldr r0, [r4, 0xC]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5B8C
- ldrb r0, [r4, 0x14]
- cmp r0, 0xFE
- bhi _080E5B96
- adds r0, 0x1
- strb r0, [r4, 0x14]
- b _080E5B96
- .align 2, 0
-_080E5B88: .4byte gPlayerAvatar
-_080E5B8C:
- adds r0, r2, 0
- bl sub_80E5C7C
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5B96:
- movs r0, 0xF
- adds r2, r5, 0
- ands r2, r0
- ldr r4, _080E5BB4 @ =gPlayerAvatar
- ldr r0, [r4, 0x10]
- movs r1, 0xF
- ands r0, r1
- cmp r2, r0
- bne _080E5BB8
- ldrb r0, [r4, 0x1C]
- cmp r0, 0xFE
- bhi _080E5BC2
- adds r0, 0x1
- strb r0, [r4, 0x1C]
- b _080E5BC2
- .align 2, 0
-_080E5BB4: .4byte gPlayerAvatar
-_080E5BB8:
- adds r0, r2, 0
- bl sub_80E5CB8
- movs r0, 0
- strb r0, [r4, 0xB]
-_080E5BC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80E5B60
-
- thumb_func_start sub_80E5BC8
-sub_80E5BC8: @ 80E5BC8
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- movs r2, 0
- ldrb r0, [r3]
- cmp r0, 0
- beq _080E5BF2
- ldr r5, _080E5C0C @ =gUnknown_0202E86C
-_080E5BD8:
- adds r0, r2, r5
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bhi _080E5C08
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BD8
-_080E5BF2:
- movs r2, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _080E5C22
- ldr r3, _080E5C10 @ =gUnknown_0202E874
-_080E5BFC:
- adds r0, r2, r3
- adds r1, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _080E5C14
-_080E5C08:
- movs r0, 0
- b _080E5C24
- .align 2, 0
-_080E5C0C: .4byte gUnknown_0202E86C
-_080E5C10: .4byte gUnknown_0202E874
-_080E5C14:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E5BFC
-_080E5C22:
- movs r0, 0x1
-_080E5C24:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5BC8
-
- thumb_func_start sub_80E5C2C
-sub_80E5C2C: @ 80E5C2C
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_080E5C32:
- ldr r0, _080E5C64 @ =gUnknown_083DB608
- adds r4, r5, r0
- ldr r0, _080E5C68 @ =gPlayerAvatar
- ldr r1, [r0, 0xC]
- ldr r2, [r0, 0x10]
- ldr r0, [r4, 0x8]
- ands r1, r0
- ldr r0, [r4, 0xC]
- ands r2, r0
- ldr r0, [r4]
- cmp r1, r0
- bne _080E5C6C
- ldr r0, [r4, 0x4]
- cmp r2, r0
- bne _080E5C6C
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x14]
- bl sub_80E5BC8
- lsls r0, 24
- cmp r0, 0
- beq _080E5C6C
- ldrb r0, [r4, 0x18]
- b _080E5C76
- .align 2, 0
-_080E5C64: .4byte gUnknown_083DB608
-_080E5C68: .4byte gPlayerAvatar
-_080E5C6C:
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- bls _080E5C32
- movs r0, 0
-_080E5C76:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5C2C
-
- thumb_func_start sub_80E5C7C
-sub_80E5C7C: @ 80E5C7C
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CB4 @ =gPlayerAvatar
- ldr r2, [r3, 0xC]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0xC]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x14
-_080E5C98:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5C98
- movs r0, 0x1
- strb r0, [r4, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CB4: .4byte gPlayerAvatar
- thumb_func_end sub_80E5C7C
-
- thumb_func_start sub_80E5CB8
-sub_80E5CB8: @ 80E5CB8
- push {r4,lr}
- lsls r0, 24
- ldr r3, _080E5CF0 @ =gPlayerAvatar
- ldr r2, [r3, 0x10]
- lsls r2, 4
- movs r1, 0xF0
- lsls r1, 20
- ands r1, r0
- lsrs r1, 24
- orrs r2, r1
- str r2, [r3, 0x10]
- movs r1, 0x7
- adds r4, r3, 0
- adds r3, 0x1C
-_080E5CD4:
- adds r2, r1, r3
- subs r1, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080E5CD4
- movs r0, 0x1
- strb r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5CF0: .4byte gPlayerAvatar
- thumb_func_end sub_80E5CB8
-
- thumb_func_start sub_80E5CF4
-sub_80E5CF4: @ 80E5CF4
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E5D08
- movs r0, 0x2
- b _080E5D2E
-_080E5D08:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E5D14
- movs r0, 0x1
- b _080E5D2E
-_080E5D14:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080E5D20
- movs r0, 0x3
- b _080E5D2E
-_080E5D20:
- movs r0, 0x10
- ands r2, r0
- cmp r2, 0
- bne _080E5D2C
- movs r0, 0
- b _080E5D2E
-_080E5D2C:
- movs r0, 0x4
-_080E5D2E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5CF4
-
- thumb_func_start sub_80E5D34
-sub_80E5D34: @ 80E5D34
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080E5D98 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080E5D9C @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_80E5DA0
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080E5D98: .4byte gPlayerAvatar
-_080E5D9C: .4byte gMapObjects
- thumb_func_end sub_80E5D34
-
- thumb_func_start sub_80E5DA0
-sub_80E5DA0: @ 80E5DA0
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- str r5, [sp]
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _080E5DE0
- cmp r4, 0
- bne _080E5DDC
- adds r0, r5, 0
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- beq _080E5DD8
- movs r4, 0x2
-_080E5DD8:
- cmp r4, 0
- beq _080E5DE0
-_080E5DDC:
- bl sub_80E5E4C
-_080E5DE0:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DA0
-
- thumb_func_start sub_80E5DEC
-sub_80E5DEC: @ 80E5DEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5E04
- ldr r0, _080E5E08 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x8
- bne _080E5E0C
-_080E5E04:
- movs r0, 0x1
- b _080E5E0E
- .align 2, 0
-_080E5E08: .4byte gMapHeader
-_080E5E0C:
- movs r0, 0
-_080E5E0E:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5DEC
-
- thumb_func_start IsRunningDisallowedByMetatile
-IsRunningDisallowedByMetatile: @ 80E5E14
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsRunningDisallowed
- lsls r0, 24
- cmp r0, 0
- bne _080E5E3E
- adds r0, r4, 0
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- beq _080E5E42
- bl PlayerGetZCoord
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080E5E42
-_080E5E3E:
- movs r0, 0x1
- b _080E5E44
-_080E5E42:
- movs r0, 0
-_080E5E44:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end IsRunningDisallowedByMetatile
-
- thumb_func_start sub_80E5E4C
-sub_80E5E4C: @ 80E5E4C
- push {lr}
- ldr r0, _080E5E68 @ =gUnknown_02039250
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E5E62
- ldr r1, _080E5E6C @ =gUnknown_02039251
- ldrb r0, [r1]
- cmp r0, 0x63
- bhi _080E5E62
- adds r0, 0x1
- strb r0, [r1]
-_080E5E62:
- pop {r0}
- bx r0
- .align 2, 0
-_080E5E68: .4byte gUnknown_02039250
-_080E5E6C: .4byte gUnknown_02039251
- thumb_func_end sub_80E5E4C
-
- thumb_func_start sub_80E5E70
-sub_80E5E70: @ 80E5E70
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- movs r1, 0xFD
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080E5E9A
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- b _080E5EAC
-_080E5E9A:
- adds r0, r5, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- cmp r0, 0
- bne _080E5EB2
- adds r0, r5, 0
- bl MetatileBehavior_IsHorizontalRail
-_080E5EAC:
- lsls r0, 24
- cmp r0, 0
- beq _080E5EB6
-_080E5EB2:
- movs r0, 0
- b _080E5EB8
-_080E5EB6:
- movs r0, 0x1
-_080E5EB8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5E70
-
- thumb_func_start sub_80E5EC0
-sub_80E5EC0: @ 80E5EC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 24
- movs r3, 0xFF
- lsls r3, 24
- adds r1, r3
- lsrs r1, 24
- cmp r1, 0x1
- bhi _080E5EE0
- cmp r0, 0xA
- beq _080E5EE8
- cmp r0, 0xC
- bne _080E5EEC
- b _080E5EE8
-_080E5EE0:
- cmp r2, 0xB
- beq _080E5EE8
- cmp r2, 0xD
- bne _080E5EEC
-_080E5EE8:
- movs r0, 0
- b _080E5EEE
-_080E5EEC:
- movs r0, 0x1
-_080E5EEE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EC0
-
- thumb_func_start sub_80E5EF4
-sub_80E5EF4: @ 80E5EF4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080E5F30 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- bne _080E5F34
- 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 r0, 24
- bl IsRunningDisallowedByMetatile
- lsls r0, 24
- cmp r0, 0
- bne _080E5F34
- movs r0, 0
- b _080E5F36
- .align 2, 0
-_080E5F30: .4byte gPlayerAvatar
-_080E5F34:
- movs r0, 0x1
-_080E5F36:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E5EF4
-
- thumb_func_start player_should_look_direction_be_enforced_upon_movement
-player_should_look_direction_be_enforced_upon_movement: @ 80E5F40
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- ldr r2, _080E5F6C @ =gMapObjects
- ldr r0, _080E5F70 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E5F74
- movs r0, 0
- b _080E5F76
- .align 2, 0
-_080E5F6C: .4byte gMapObjects
-_080E5F70: .4byte gPlayerAvatar
-_080E5F74:
- movs r0, 0x1
-_080E5F76:
- pop {r1}
- bx r1
- thumb_func_end player_should_look_direction_be_enforced_upon_movement
-
- thumb_func_start GetOnOffBike
-GetOnOffBike: @ 80E5F7C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080E5FA4 @ =gUnknown_0202E854
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080E5FA8 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080E5FAC
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- bl sav1_reset_battle_music_maybe
- bl sub_8053E90
- b _080E5FC0
- .align 2, 0
-_080E5FA4: .4byte gUnknown_0202E854
-_080E5FA8: .4byte gPlayerAvatar
-_080E5FAC:
- adds r0, r2, 0
- bl SetPlayerAvatarTransitionFlags
- ldr r4, _080E5FC8 @ =0x00000193
- adds r0, r4, 0
- bl sav1_set_battle_music_maybe
- adds r0, r4, 0
- bl sub_8053FB0
-_080E5FC0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E5FC8: .4byte 0x00000193
- thumb_func_end GetOnOffBike
-
- thumb_func_start sub_80E5FCC
-sub_80E5FCC: @ 80E5FCC
- push {lr}
- ldr r2, _080E6008 @ =gPlayerAvatar
- movs r3, 0
- strb r3, [r2, 0x8]
- strb r3, [r2, 0x9]
- strb r3, [r2, 0xA]
- strb r3, [r2, 0xB]
- str r0, [r2, 0xC]
- str r1, [r2, 0x10]
- movs r1, 0
- adds r2, 0x14
-_080E5FE2:
- adds r0, r1, r2
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FE2
- movs r1, 0
- ldr r3, _080E600C @ =gUnknown_0202E874
- movs r2, 0
-_080E5FF6:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _080E5FF6
- pop {r0}
- bx r0
- .align 2, 0
-_080E6008: .4byte gPlayerAvatar
-_080E600C: .4byte gUnknown_0202E874
- thumb_func_end sub_80E5FCC
-
- thumb_func_start sub_80E6010
-sub_80E6010: @ 80E6010
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E6020 @ =gPlayerAvatar
- strb r0, [r2, 0xA]
- lsrs r1, r0, 1
- adds r0, r1
- strb r0, [r2, 0xB]
- bx lr
- .align 2, 0
-_080E6020: .4byte gPlayerAvatar
- thumb_func_end sub_80E6010
-
- thumb_func_start sub_80E6024
-sub_80E6024: @ 80E6024
- ldr r1, _080E6030 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0xA]
- strb r0, [r1, 0xB]
- bx lr
- .align 2, 0
-_080E6030: .4byte gPlayerAvatar
- thumb_func_end sub_80E6024
-
- thumb_func_start sub_80E6034
-sub_80E6034: @ 80E6034
- push {lr}
- sub sp, 0x8
- ldr r1, _080E605C @ =gUnknown_083DB600
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r2, _080E6060 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6064
- ldrb r0, [r2, 0xA]
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- b _080E607E
- .align 2, 0
-_080E605C: .4byte gUnknown_083DB600
-_080E6060: .4byte gPlayerAvatar
-_080E6064:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E6070
- movs r0, 0x3
- b _080E607E
-_080E6070:
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _080E607C
- movs r0, 0x1
- b _080E607E
-_080E607C:
- movs r0, 0x2
-_080E607E:
- add sp, 0x8
- pop {r1}
- bx r1
- thumb_func_end sub_80E6034
-
- thumb_func_start sub_80E6084
-sub_80E6084: @ 80E6084
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080E60D4 @ =gPlayerAvatar
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E60CC
- 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 r0, 24
- bl MetatileBehavior_IsBumpySlope
- lsls r0, 24
- cmp r0, 0
- beq _080E60CC
- movs r0, 0x2
- strb r0, [r5, 0x8]
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059C94
-_080E60CC:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E60D4: .4byte gPlayerAvatar
- thumb_func_end sub_80E6084
-
- thumb_func_start sub_80E60D8
-sub_80E60D8: @ 80E60D8
- push {r4-r7,lr}
- movs r4, 0x3
- ldr r0, _080E60F4 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xD
- bls _080E60E8
- b _080E6284
-_080E60E8:
- lsls r0, r1, 2
- ldr r1, _080E60F8 @ =_080E60FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E60F4: .4byte gUnknown_0202E8CC
-_080E60F8: .4byte _080E60FC
- .align 2, 0
-_080E60FC:
- .4byte _080E6134
- .4byte _080E613C
- .4byte _080E6144
- .4byte _080E614C
- .4byte _080E6154
- .4byte _080E619C
- .4byte _080E616C
- .4byte _080E61BC
- .4byte _080E61E0
- .4byte _080E61FC
- .4byte _080E6200
- .4byte _080E6214
- .4byte _080E623C
- .4byte _080E6260
-_080E6134:
- ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C
- b _080E624C
- .align 2, 0
-_080E6138: .4byte gSaveBlock1 + 0x2B1C
-_080E613C:
- ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28
- b _080E6276
- .align 2, 0
-_080E6140: .4byte gSaveBlock1 + 0x2B28
-_080E6144:
- ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34
- b _080E624C
- .align 2, 0
-_080E6148: .4byte gSaveBlock1 + 0x2B34
-_080E614C:
- ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40
- b _080E6276
- .align 2, 0
-_080E6150: .4byte gSaveBlock1 + 0x2B40
-_080E6154:
- ldr r0, _080E6164 @ =gUnknown_0202E8CE
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C
- adds r1, r0, r1
- b _080E624C
- .align 2, 0
-_080E6164: .4byte gUnknown_0202E8CE
-_080E6168: .4byte gSaveBlock1 + 0x2B4C
-_080E616C:
- ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- ldr r1, _080E6198 @ =sub_80546B8
- mov r12, r1
- adds r3, r0, 0
- adds r3, 0xE
- adds r5, r0, 0x2
- adds r6, r3, 0
-_080E617C:
- lsls r0, r2, 1
- adds r1, r3, r0
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080E617C
- adds r1, r6, 0
- b _080E627A
- .align 2, 0
-_080E6194: .4byte gSaveBlock1 + 0x2D94
-_080E6198: .4byte sub_80546B8
-_080E619C:
- ldr r0, _080E61B0 @ =gUnknown_0202E8CE
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
- adds r1, r0, r1
- ldr r0, _080E61B8 @ =gUnknown_0202E8D0
- ldrb r4, [r0]
- b _080E6276
- .align 2, 0
-_080E61B0: .4byte gUnknown_0202E8CE
-_080E61B4: .4byte gSaveBlock1 + 0x273C
-_080E61B8: .4byte gUnknown_0202E8D0
-_080E61BC:
- ldr r0, _080E61D4 @ =gUnknown_0202E8CE
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
- adds r1, r0
- ldr r0, _080E61DC @ =gUnknown_0202E8D0
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- b _080E624A
- .align 2, 0
-_080E61D4: .4byte gUnknown_0202E8CE
-_080E61D8: .4byte gSaveBlock1 + 0x2754
-_080E61DC: .4byte gUnknown_0202E8D0
-_080E61E0:
- ldr r0, _080E61F4 @ =gUnknown_0202E8CE
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A
- adds r1, r0, r1
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E61F4: .4byte gUnknown_0202E8CE
-_080E61F8: .4byte gSaveBlock1 + 0x273A
-_080E61FC:
- movs r1, 0
- b _080E624C
-_080E6200:
- ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16
- ldr r2, _080E6210 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- b _080E624A
- .align 2, 0
-_080E620C: .4byte gSaveBlock1 + 0x2B16
-_080E6210: .4byte 0x0000ffff
-_080E6214:
- ldr r0, _080E6230 @ =gUnknown_0202E8CE
- ldrh r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
- adds r1, r0
- ldr r0, _080E6238 @ =gUnknown_0202E8D0
- ldrh r0, [r0]
- lsls r0, 1
- adds r1, r0
- movs r4, 0
- b _080E6276
- .align 2, 0
-_080E6230: .4byte gUnknown_0202E8CE
-_080E6234: .4byte gSaveBlock1 + 0x273C
-_080E6238: .4byte gUnknown_0202E8D0
-_080E623C:
- ldr r0, _080E6254 @ =gUnknown_0202E8CE
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750
- adds r1, r0, r1
-_080E624A:
- movs r4, 0x1
-_080E624C:
- ldr r0, _080E625C @ =sub_80546B8
- mov r12, r0
- b _080E627A
- .align 2, 0
-_080E6254: .4byte gUnknown_0202E8CE
-_080E6258: .4byte gSaveBlock1 + 0x2750
-_080E625C: .4byte sub_80546B8
-_080E6260:
- ldr r1, _080E628C @ =0x02001000
- ldr r0, _080E6290 @ =0x00009c7c
- adds r2, r1, r0
- ldr r0, _080E6294 @ =0x0000ffff
- strh r0, [r2]
- ldr r0, _080E6298 @ =0x00009c7e
- adds r1, r0
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- adds r1, r2, 0
-_080E6276:
- ldr r2, _080E629C @ =sub_80546B8
- mov r12, r2
-_080E627A:
- ldrb r0, [r7]
- mov r2, r12
- adds r3, r4, 0
- bl sub_80E62A0
-_080E6284:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E628C: .4byte 0x02001000
-_080E6290: .4byte 0x00009c7c
-_080E6294: .4byte 0x0000ffff
-_080E6298: .4byte 0x00009c7e
-_080E629C: .4byte sub_80546B8
- thumb_func_end sub_80E60D8
-
- thumb_func_start sub_80E62A0
-sub_80E62A0: @ 80E62A0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080E62DC @ =0x02001000
- str r2, [r4]
- str r1, [r4, 0x4]
- strb r0, [r4, 0x8]
- strb r3, [r4, 0xB]
- cmp r0, 0x9
- bne _080E62D0
- ldr r0, _080E62E0 @ =0x00009c7c
- adds r2, r4, r0
- str r2, [r4, 0x4]
- ldr r0, _080E62E4 @ =gSaveBlock1
- ldr r3, _080E62E8 @ =0x00002dd8
- adds r1, r0, r3
- ldrh r1, [r1]
- strh r1, [r2]
- ldr r1, _080E62EC @ =0x00002dda
- adds r0, r1
- ldrh r1, [r0]
- ldr r2, _080E62F0 @ =0x00009c7e
- adds r0, r4, r2
- strh r1, [r0]
-_080E62D0:
- ldr r0, _080E62F4 @ =sub_80E62F8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E62DC: .4byte 0x02001000
-_080E62E0: .4byte 0x00009c7c
-_080E62E4: .4byte gSaveBlock1
-_080E62E8: .4byte 0x00002dd8
-_080E62EC: .4byte 0x00002dda
-_080E62F0: .4byte 0x00009c7e
-_080E62F4: .4byte sub_80E62F8
- thumb_func_end sub_80E62A0
-
- thumb_func_start sub_80E62F8
-sub_80E62F8: @ 80E62F8
- push {lr}
- sub sp, 0x4
- ldr r0, _080E6314 @ =gMain
- ldr r1, _080E6318 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _080E6344
- lsls r0, 2
- ldr r1, _080E631C @ =_080E6320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6314: .4byte gMain
-_080E6318: .4byte 0x0000043c
-_080E631C: .4byte _080E6320
- .align 2, 0
-_080E6320:
- .4byte _080E6344
- .4byte _080E6380
- .4byte _080E638C
- .4byte _080E63A8
- .4byte _080E63AE
- .4byte _080E63B4
- .4byte _080E63BE
- .4byte _080E63D8
- .4byte _080E63EA
-_080E6344:
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetSpriteData
- bl dp12_8087EA4
- bl remove_some_task
- bl sub_80EAD08
- ldr r2, _080E637C @ =gUnknown_083DB698
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80895F8
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080E6402
- .align 2, 0
-_080E637C: .4byte gUnknown_083DB698
-_080E6380:
- ldr r0, _080E6388 @ =gWindowConfig_81E6DA8
- bl SetUpWindowConfig
- b _080E6402
- .align 2, 0
-_080E6388: .4byte gWindowConfig_81E6DA8
-_080E638C:
- ldr r0, _080E63A0 @ =gWindowConfig_81E6D54
- bl InitMenuWindow
- ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080E6402
- .align 2, 0
-_080E63A0: .4byte gWindowConfig_81E6D54
-_080E63A4: .4byte gWindowConfig_81E6DA8
-_080E63A8:
- bl sub_80E6424
- b _080E6402
-_080E63AE:
- bl sub_80E8DD8
- b _080E6402
-_080E63B4:
- bl sub_80E8218
- bl sub_80E8CEC
- b _080E6402
-_080E63BE:
- bl sub_80E69F8
- ldr r0, _080E63D0 @ =sub_80E6AA8
- bl sub_80E682C
- ldr r0, _080E63D4 @ =sub_80E6A6C
- bl SetVBlankCallback
- b _080E6402
- .align 2, 0
-_080E63D0: .4byte sub_80E6AA8
-_080E63D4: .4byte sub_80E6A6C
-_080E63D8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _080E6402
-_080E63EA:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E6414 @ =sub_80E6A88
- bl SetMainCallback2
- ldr r0, _080E6418 @ =0x00000805
- bl FlagSet
-_080E6402:
- ldr r1, _080E641C @ =gMain
- ldr r0, _080E6420 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080E6414: .4byte sub_80E6A88
-_080E6418: .4byte 0x00000805
-_080E641C: .4byte gMain
-_080E6420: .4byte 0x0000043c
- thumb_func_end sub_80E62F8
-
- thumb_func_start sub_80E6424
-sub_80E6424: @ 80E6424
- push {lr}
- ldr r2, _080E6444 @ =0x02001000
- ldr r0, _080E6448 @ =gUnknown_083DB6A4
- ldrb r1, [r2, 0x8]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0x9]
- ldrb r0, [r2, 0x9]
- adds r3, r2, 0
- cmp r0, 0x5
- bhi _080E6512
- lsls r0, 2
- ldr r1, _080E644C @ =_080E6450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6444: .4byte 0x02001000
-_080E6448: .4byte gUnknown_083DB6A4
-_080E644C: .4byte _080E6450
- .align 2, 0
-_080E6450:
- .4byte _080E64A0
- .4byte _080E64B8
- .4byte _080E64DA
- .4byte _080E64F6
- .4byte _080E6468
- .4byte _080E6480
-_080E6468:
- movs r2, 0x4
- strb r2, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- movs r1, 0x2
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x5
- b _080E64D0
-_080E6480:
- movs r1, 0x4
- strb r1, [r3, 0xA]
- adds r2, r3, 0
- adds r2, 0x83
- movs r0, 0x1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x84
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- b _080E6510
-_080E64A0:
- movs r0, 0x6
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x84
- movs r2, 0x3
- strb r2, [r0]
- adds r1, 0x5
- b _080E64CE
-_080E64B8:
- movs r2, 0
- movs r0, 0x9
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- movs r0, 0x2
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- strb r0, [r1]
- adds r1, 0x4
-_080E64CE:
- movs r0, 0x4
-_080E64D0:
- strh r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8A
- strh r2, [r0]
- b _080E6512
-_080E64DA:
- movs r1, 0x1
- strb r1, [r3, 0xA]
- adds r0, r3, 0
- adds r0, 0x83
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r3, 0
- adds r1, 0x88
- movs r0, 0x10
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- b _080E6510
-_080E64F6:
- movs r0, 0x2
- strb r0, [r3, 0xA]
- adds r1, r3, 0
- adds r1, 0x83
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x1
- strb r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3
-_080E6510:
- strh r0, [r1]
-_080E6512:
- adds r1, r3, 0
- adds r1, 0x86
- movs r0, 0
- strb r0, [r1]
- subs r1, 0x1
- strb r0, [r1]
- adds r1, 0x2
- strb r0, [r1]
- subs r1, 0x61
- strb r0, [r1]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- movs r0, 0xDF
- lsls r0, 1
- adds r1, r3, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80E6554
- bl sub_80EAECC
- bl sub_80EB040
- bl sub_80E7E50
- bl sub_80E6630
- bl sub_80E6690
- pop {r0}
- bx r0
- thumb_func_end sub_80E6424
-
- thumb_func_start sub_80E6554
-sub_80E6554: @ 80E6554
- push {r4-r7,lr}
- sub sp, 0x4
- movs r4, 0
- movs r7, 0
- ldr r0, _080E6564 @ =0x02001000
- mov r12, r0
- b _080E656E
- .align 2, 0
-_080E6564: .4byte 0x02001000
-_080E6568:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080E656E:
- movs r5, 0
- lsls r3, r7, 1
- mov r6, r12
- adds r6, 0x2A
- adds r2, r3, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- beq _080E65A6
-_080E6586:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bhi _080E65A2
- adds r2, r5, r3
- adds r2, r6
- adds r1, r4, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- strb r1, [r2]
- cmp r4, 0x11
- bne _080E6586
-_080E65A2:
- cmp r4, 0x11
- bne _080E6568
-_080E65A6:
- movs r0, 0x11
- mov r1, r12
- strh r0, [r1, 0x28]
- cmp r4, 0x15
- bhi _080E6612
- mov r6, r12
- adds r2, r6, 0
- adds r2, 0x78
-_080E65B6:
- lsls r0, r4, 24
- lsrs r0, 24
- str r2, [sp]
- bl sub_80EAD7C
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, [sp]
- cmp r1, 0
- beq _080E65FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E65DC
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r5, 0
-_080E65DC:
- lsls r0, r7, 1
- adds r0, r5, r0
- adds r1, r6, 0
- adds r1, 0x2A
- adds r0, r1
- strb r4, [r0]
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r6, 0x28]
- adds r0, 0x1
- strh r0, [r6, 0x28]
- mov r12, r6
- b _080E6608
-_080E65FC:
- adds r0, r4, 0
- subs r0, 0x11
- adds r0, r2
- strb r1, [r0]
- ldr r0, _080E662C @ =0x02001000
- mov r12, r0
-_080E6608:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x15
- bls _080E65B6
-_080E6612:
- mov r1, r12
- ldrh r0, [r1, 0x28]
- adds r0, 0x1
- asrs r0, 1
- movs r1, 0xDB
- lsls r1, 1
- add r1, r12
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E662C: .4byte 0x02001000
- thumb_func_end sub_80E6554
-
- thumb_func_start sub_80E6630
-sub_80E6630: @ 80E6630
- push {r4-r7,lr}
- movs r1, 0
- ldr r0, _080E6664 @ =gUnknown_083DB6B2
- mov r12, r0
-_080E6638:
- lsls r0, r1, 4
- mov r2, r12
- adds r5, r0, r2
- movs r3, 0
- ldrb r0, [r5]
- adds r7, r1, 0x1
- cmp r0, 0xFF
- beq _080E6680
- lsls r0, r1, 3
- subs r0, r1
- lsls r4, r0, 1
- ldr r6, _080E6668 @ =0x02001040
-_080E6650:
- adds r0, r5, r3
- ldrb r1, [r0]
- adds r2, r1, 0
- cmp r2, 0
- beq _080E666C
- adds r0, r3, r4
- adds r0, r6
- adds r1, 0x46
- strb r1, [r0]
- b _080E6672
- .align 2, 0
-_080E6664: .4byte gUnknown_083DB6B2
-_080E6668: .4byte 0x02001040
-_080E666C:
- adds r0, r3, r4
- adds r0, r6
- strb r2, [r0]
-_080E6672:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E6650
-_080E6680:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080E6638
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E6630
-
- thumb_func_start sub_80E6690
-sub_80E6690: @ 80E6690
- push {r4-r6,lr}
- sub sp, 0x10
- mov r0, sp
- ldr r1, _080E66E0 @ =gUnknown_083DB7DC
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldr r1, [r1]
- str r1, [r0]
- movs r5, 0
- ldr r6, _080E66E4 @ =gUnknown_083DB7C0
-_080E66A4:
- ldr r0, _080E66E8 @ =0x02001000
- ldrb r0, [r0, 0x8]
- lsls r0, 1
- adds r0, r5, r0
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E66EC @ =gUnknown_083DB6F4
- adds r4, r0, r1
- lsls r0, r5, 3
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4]
- bl StringCopy
- adds r3, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _080E66F0
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- ldr r1, [r4, 0x4]
- bl StringCopy
- b _080E670A
- .align 2, 0
-_080E66E0: .4byte gUnknown_083DB7DC
-_080E66E4: .4byte gUnknown_083DB7C0
-_080E66E8: .4byte 0x02001000
-_080E66EC: .4byte gUnknown_083DB6F4
-_080E66F0:
- strb r0, [r3]
- adds r3, 0x1
- ldr r1, [r4, 0x4]
- adds r0, r3, 0
- bl StringCopy
- lsls r0, r5, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r0]
- movs r0, 0xFF
- strb r0, [r1]
-_080E670A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E66A4
- movs r5, 0
- ldr r3, _080E6758 @ =0x02001000
- ldr r0, _080E675C @ =0x00009da4
- adds r2, r3, r0
- movs r1, 0
-_080E671E:
- adds r0, r5, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x23
- bls _080E671E
- ldr r1, _080E675C @ =0x00009da4
- adds r0, r3, r1
- adds r0, r5, r0
- movs r4, 0x1
- negs r4, r4
- adds r2, r4, 0
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _080E6760 @ =0x00009f6e
- adds r3, r0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x11
- strb r0, [r3, 0x1]
- movs r0, 0xE0
- strb r0, [r3, 0x2]
- strb r2, [r3, 0x3]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6758: .4byte 0x02001000
-_080E675C: .4byte 0x00009da4
-_080E6760: .4byte 0x00009f6e
- thumb_func_end sub_80E6690
-
- thumb_func_start sub_80E6764
-sub_80E6764: @ 80E6764
- push {r4-r6,lr}
- movs r3, 0
- ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
- ldr r2, _080E6810 @ =gUnknown_083DB7EC
-_080E676C:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080E676C
- movs r3, 0
- ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28
- ldr r2, _080E6818 @ =gUnknown_083DB7F4
-_080E6786:
- lsls r0, r3, 1
- adds r1, r0, r4
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E6786
- movs r3, 0
- ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34
- ldr r0, _080E6820 @ =0x0000ffff
- adds r4, r0, 0
- adds r6, r5, 0
- adds r6, 0xC
-_080E67A6:
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r2]
- orrs r0, r4
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _080E67A6
- movs r3, 0
- ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C
- ldr r0, _080E6820 @ =0x0000ffff
- adds r5, r0, 0
-_080E67CA:
- movs r2, 0
- lsls r0, r3, 3
- adds r0, r3
- lsls r4, r0, 2
-_080E67D2:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r6
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x8
- bls _080E67D2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080E67CA
- movs r3, 0
- ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C
- movs r1, 0
-_080E67F8:
- adds r0, r3, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080E67F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E680C: .4byte gSaveBlock1 + 0x2B1C
-_080E6810: .4byte gUnknown_083DB7EC
-_080E6814: .4byte gSaveBlock1 + 0x2B28
-_080E6818: .4byte gUnknown_083DB7F4
-_080E681C: .4byte gSaveBlock1 + 0x2B34
-_080E6820: .4byte 0x0000ffff
-_080E6824: .4byte gSaveBlock1 + 0x2B4C
-_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end sub_80E6764
-
- thumb_func_start sub_80E682C
-sub_80E682C: @ 80E682C
- ldr r1, _080E6838 @ =0x02001000
- str r0, [r1, 0x20]
- movs r0, 0
- strh r0, [r1, 0x24]
- bx lr
- .align 2, 0
-_080E6838: .4byte 0x02001000
- thumb_func_end sub_80E682C
-
- thumb_func_start sub_80E683C
-sub_80E683C: @ 80E683C
- push {r4,r5,lr}
- ldr r1, _080E6890 @ =0x02001000
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0
- bne _080E6898
- movs r1, 0
- movs r0, 0xDB
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- bge _080E6876
- movs r0, 0xD5
- lsls r0, 1
- adds r5, r2, r0
- movs r4, 0x2
-_080E6864:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r1, r0
- blt _080E6864
-_080E6876:
- adds r0, r2, r1
- ldr r1, _080E6894 @ =0x000001a9
- adds r3, r0, r1
- ldrh r0, [r2, 0x28]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r3]
- cmp r0, 0
- bne _080E68B8
- movs r0, 0x2
- strb r0, [r3]
- b _080E68B8
- .align 2, 0
-_080E6890: .4byte 0x02001000
-_080E6894: .4byte 0x000001a9
-_080E6898:
- movs r3, 0xD5
- lsls r3, 1
- adds r1, r2, r3
- movs r0, 0x7
- strb r0, [r1]
- ldr r1, _080E68E0 @ =0x000001ab
- adds r3, r2, r1
- movs r1, 0x6
- strb r1, [r3]
- movs r3, 0xD6
- lsls r3, 1
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x1
- adds r1, r2, r3
- strb r0, [r1]
-_080E68B8:
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080E68E4 @ =0x000001a9
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0xC
- adds r1, r2, r3
- strb r0, [r1]
- adds r3, 0x2
- adds r1, r2, r3
- strb r0, [r1]
- bl sub_80E9A4C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E68E0: .4byte 0x000001ab
-_080E68E4: .4byte 0x000001a9
- thumb_func_end sub_80E683C
-
- thumb_func_start sub_80E68E8
-sub_80E68E8: @ 80E68E8
- push {r4-r6,lr}
- bl sub_80EB0B0
- ldr r3, _080E694C @ =0x02001000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E695C
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E6950 @ =0x00004178
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E6954 @ =0x00009a28
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E693A
- ldr r3, _080E6958 @ =0x000099a6
- adds r4, r5, r3
- movs r3, 0x2
-_080E6928:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E6928
-_080E693A:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E6958 @ =0x000099a6
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E6950 @ =0x00004178
- b _080E69AC
- .align 2, 0
-_080E694C: .4byte 0x02001000
-_080E6950: .4byte 0x00004178
-_080E6954: .4byte 0x00009a28
-_080E6958: .4byte 0x000099a6
-_080E695C:
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r3, r1
- ldrb r6, [r0]
- lsls r0, r6, 1
- ldr r2, _080E69E0 @ =0x00004142
- adds r1, r3, r2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x1
- asrs r0, 1
- ldr r1, _080E69E4 @ =0x00009a28
- adds r2, r3, r1
- strb r0, [r2]
- movs r1, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r5, r3, 0
- cmp r1, r0
- bge _080E699C
- ldr r3, _080E69E8 @ =0x000099a6
- adds r4, r5, r3
- movs r3, 0x2
-_080E698A:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- blt _080E698A
-_080E699C:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080E69E8 @ =0x000099a6
- adds r0, r5, r2
- adds r2, r1, r0
- lsls r0, r6, 1
- ldr r3, _080E69E0 @ =0x00004142
-_080E69AC:
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0
- bne _080E69C0
- movs r0, 0x2
- strb r0, [r2]
-_080E69C0:
- ldr r1, _080E69EC @ =0x000099a4
- adds r0, r5, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080E69F0 @ =0x000099a5
- adds r0, r5, r2
- strb r1, [r0]
- ldr r3, _080E69F4 @ =0x00009a29
- adds r0, r5, r3
- strb r1, [r0]
- bl sub_80E9A4C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E69E0: .4byte 0x00004142
-_080E69E4: .4byte 0x00009a28
-_080E69E8: .4byte 0x000099a6
-_080E69EC: .4byte 0x000099a4
-_080E69F0: .4byte 0x000099a5
-_080E69F4: .4byte 0x00009a29
- thumb_func_end sub_80E68E8
-
- thumb_func_start sub_80E69F8
-sub_80E69F8: @ 80E69F8
- push {r4,lr}
- ldr r0, _080E6A10 @ =0x02001000
- ldrb r1, [r0, 0x8]
- adds r4, r0, 0
- cmp r1, 0xD
- bhi _080E6A50
- lsls r0, r1, 2
- ldr r1, _080E6A14 @ =_080E6A18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E6A10: .4byte 0x02001000
-_080E6A14: .4byte _080E6A18
- .align 2, 0
-_080E6A18:
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A58
- .4byte _080E6A50
-_080E6A50:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- b _080E6A66
-_080E6A58:
- ldrb r0, [r4, 0x8]
- bl sub_80E9368
- ldrb r0, [r4, 0xB]
- ldrb r1, [r4, 0x9]
- bl sub_80E8BF4
-_080E6A66:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E69F8
-
- thumb_func_start sub_80E6A6C
-sub_80E6A6C: @ 80E6A6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl sub_80EAC5C
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80E6A6C
-
- thumb_func_start sub_80E6A88
-sub_80E6A88: @ 80E6A88
- push {lr}
- ldr r0, _080E6AA4 @ =0x02001000
- ldr r0, [r0, 0x20]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl sub_80EAD08
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AA4: .4byte 0x02001000
- thumb_func_end sub_80E6A88
-
- thumb_func_start sub_80E6AA8
-sub_80E6AA8: @ 80E6AA8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E6ABA
- ldr r0, _080E6AC0 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6ABA:
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AC0: .4byte sub_80E6AC4
- thumb_func_end sub_80E6AA8
-
- thumb_func_start sub_80E6AC4
-sub_80E6AC4: @ 80E6AC4
- push {lr}
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8398
- movs r0, 0
- bl sub_80E91D4
- ldr r0, _080E6AE0 @ =sub_80E6AE4
- bl sub_80E682C
- pop {r0}
- bx r0
- .align 2, 0
-_080E6AE0: .4byte sub_80E6AE4
- thumb_func_end sub_80E6AC4
-
- thumb_func_start sub_80E6AE4
-sub_80E6AE4: @ 80E6AE4
- push {r4,r5,lr}
- bl sub_80E75D8
- ldr r4, _080E6B44 @ =0x02001000
- adds r1, r4, 0
- adds r1, 0x87
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080E6AFE
- movs r0, 0x5
- bl PlaySE
-_080E6AFE:
- ldr r2, _080E6B48 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- adds r5, r2, 0
- cmp r0, 0
- beq _080E6BA4
- movs r0, 0x5
- bl PlaySE
- adds r1, r4, 0
- adds r1, 0x86
- adds r0, r4, 0
- adds r0, 0x84
- ldrb r2, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E6B78
- adds r0, r4, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080E6B60
- cmp r0, 0x1
- bgt _080E6B4C
- cmp r0, 0
- beq _080E6B52
- b _080E6BA4
- .align 2, 0
-_080E6B44: .4byte 0x02001000
-_080E6B48: .4byte gMain
-_080E6B4C:
- cmp r0, 0x2
- beq _080E6B6C
- b _080E6BA4
-_080E6B52:
- ldr r0, _080E6B5C @ =sub_80E6BC0
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B5C: .4byte sub_80E6BC0
-_080E6B60:
- ldr r0, _080E6B68 @ =sub_80E6C84
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B68: .4byte sub_80E6C84
-_080E6B6C:
- ldr r0, _080E6B74 @ =sub_80E6D7C
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6B74: .4byte sub_80E6D7C
-_080E6B78:
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x85
- adds r3, r0, 0
- muls r3, r2
- adds r0, r3, 0
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x27
- strb r0, [r1]
- bl sub_80E7574
- ldr r0, _080E6BA0 @ =sub_80E6F68
- bl sub_80E682C
- b _080E6BB4
- .align 2, 0
-_080E6BA0: .4byte sub_80E6F68
-_080E6BA4:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E6BB4
- ldr r0, _080E6BBC @ =sub_80E6C84
- bl sub_80E682C
-_080E6BB4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6BBC: .4byte sub_80E6C84
- thumb_func_end sub_80E6AE4
-
- thumb_func_start sub_80E6BC0
-sub_80E6BC0: @ 80E6BC0
- push {r4,lr}
- ldr r4, _080E6BD4 @ =0x02001000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6C12
- cmp r0, 0x1
- bgt _080E6BD8
- cmp r0, 0
- beq _080E6BE2
- b _080E6C76
- .align 2, 0
-_080E6BD4: .4byte 0x02001000
-_080E6BD8:
- cmp r0, 0x2
- beq _080E6C54
- cmp r0, 0x64
- beq _080E6C64
- b _080E6C76
-_080E6BE2:
- movs r0, 0x2
- bl sub_80E8398
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6BFA
- movs r0, 0x6
- bl sub_80E91D4
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6BFA:
- movs r0, 0x2
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- b _080E6C3E
-_080E6C12:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6C32
- cmp r1, 0
- bgt _080E6C2C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6C46
- b _080E6C76
-_080E6C2C:
- cmp r1, 0x1
- beq _080E6C46
- b _080E6C76
-_080E6C32:
- bl sub_80E7D6C
- bl sub_80E98C4
- bl sub_80E95A4
-_080E6C3E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6C76
-_080E6C46:
- ldr r1, _080E6C50 @ =0x02001000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6C76
- .align 2, 0
-_080E6C50: .4byte 0x02001000
-_080E6C54:
- bl sub_80E81FC
- ldr r0, _080E6C60 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6C76
- .align 2, 0
-_080E6C60: .4byte sub_80E6AC4
-_080E6C64:
- ldr r0, _080E6C7C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6C76
- ldr r0, _080E6C80 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6C76:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6C7C: .4byte gMain
-_080E6C80: .4byte sub_80E6AC4
- thumb_func_end sub_80E6BC0
-
- thumb_func_start sub_80E6C84
-sub_80E6C84: @ 80E6C84
- push {r4,lr}
- ldr r4, _080E6C98 @ =0x02001000
- ldrh r0, [r4, 0x24]
- cmp r0, 0x1
- beq _080E6CF4
- cmp r0, 0x1
- bgt _080E6C9C
- cmp r0, 0
- beq _080E6CA6
- b _080E6D72
- .align 2, 0
-_080E6C98: .4byte 0x02001000
-_080E6C9C:
- cmp r0, 0x2
- beq _080E6D24
- cmp r0, 0xFF
- beq _080E6D64
- b _080E6D72
-_080E6CA6:
- movs r0, 0x2
- bl sub_80E8398
- movs r0, 0x3
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
- ldrb r0, [r4, 0x8]
- cmp r0, 0x9
- beq _080E6CE8
- cmp r0, 0x4
- beq _080E6CE8
- cmp r0, 0x7
- beq _080E6CE8
- cmp r0, 0x8
- beq _080E6CE8
- cmp r0, 0xA
- beq _080E6CE8
- cmp r0, 0xB
- beq _080E6CE8
- cmp r0, 0xC
- beq _080E6CE8
- cmp r0, 0x5
- beq _080E6CE8
- cmp r0, 0xD
- bne _080E6D1C
-_080E6CE8:
- ldr r1, _080E6CF0 @ =0x02001000
- movs r0, 0x2
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6CF0: .4byte 0x02001000
-_080E6CF4:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D06
- cmp r1, 0
- ble _080E6D34
- b _080E6D3E
-_080E6D06:
- movs r0, 0x4
- bl sub_80E91D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0x1
- bl MoveMenuCursor
-_080E6D1C:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6D72
-_080E6D24:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080E6D44
- cmp r1, 0
- bgt _080E6D3E
-_080E6D34:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E6D58
- b _080E6D72
-_080E6D3E:
- cmp r1, 0x1
- beq _080E6D58
- b _080E6D72
-_080E6D44:
- ldr r0, _080E6D50 @ =gScriptResult
- strh r1, [r0]
- ldr r0, _080E6D54 @ =sub_80E752C
- bl sub_80E682C
- b _080E6D72
- .align 2, 0
-_080E6D50: .4byte gScriptResult
-_080E6D54: .4byte sub_80E752C
-_080E6D58:
- ldr r1, _080E6D60 @ =0x02001000
- movs r0, 0xFF
- strh r0, [r1, 0x24]
- b _080E6D72
- .align 2, 0
-_080E6D60: .4byte 0x02001000
-_080E6D64:
- bl sub_8072DEC
- bl sub_80E81FC
- ldr r0, _080E6D78 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6D72:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6D78: .4byte sub_80E6AC4
- thumb_func_end sub_80E6C84
-
- thumb_func_start sub_80E6D7C
-sub_80E6D7C: @ 80E6D7C
- push {r4-r7,lr}
- ldr r5, _080E6D98 @ =0x02001000
- ldrh r0, [r5, 0x24]
- cmp r0, 0xA
- bne _080E6D88
- b _080E6F06
-_080E6D88:
- cmp r0, 0xA
- bgt _080E6D9C
- cmp r0, 0
- beq _080E6DB6
- cmp r0, 0x1
- beq _080E6E3C
- b _080E6F5E
- .align 2, 0
-_080E6D98: .4byte 0x02001000
-_080E6D9C:
- cmp r0, 0x65
- bne _080E6DA2
- b _080E6F30
-_080E6DA2:
- cmp r0, 0x65
- bgt _080E6DAE
- cmp r0, 0x64
- bne _080E6DAC
- b _080E6F24
-_080E6DAC:
- b _080E6F5E
-_080E6DAE:
- cmp r0, 0x66
- bne _080E6DB4
- b _080E6F50
-_080E6DB4:
- b _080E6F5E
-_080E6DB6:
- movs r0, 0x2
- bl sub_80E8398
- bl sub_80E8054
- lsls r0, 24
- cmp r0, 0
- beq _080E6DCA
- movs r0, 0x5
- b _080E6DEE
-_080E6DCA:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6DFC
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6DDE
- movs r0, 0x8
- b _080E6DEE
-_080E6DDE:
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6DF8 @ =0x0000ffff
- cmp r0, r1
- beq _080E6DEC
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6DFC
-_080E6DEC:
- movs r0, 0x9
-_080E6DEE:
- bl sub_80E91D4
- movs r0, 0xA
- strh r0, [r5, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6DF8: .4byte 0x0000ffff
-_080E6DFC:
- ldr r0, _080E6E18 @ =0x02001000
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- bne _080E6E20
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- bne _080E6E20
- ldr r0, _080E6E1C @ =sub_80E6C84
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6E18: .4byte 0x02001000
-_080E6E1C: .4byte sub_80E6C84
-_080E6E20:
- movs r0, 0x1
- bl sub_80E91D4
- bl sub_80E9744
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- b _080E6F3C
-_080E6E3C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _080E6E5C
- cmp r6, 0
- bgt _080E6E56
- movs r0, 0x1
- negs r0, r0
- cmp r6, r0
- beq _080E6EDC
- b _080E6F5E
-_080E6E56:
- cmp r6, 0x1
- beq _080E6EDC
- b _080E6F5E
-_080E6E5C:
- ldr r7, _080E6EC8 @ =gScriptResult
- bl sub_80E7FA8
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r0, 31
- strh r0, [r7]
- bl sub_80E7D9C
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _080E6E82
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
- bl sub_80E8094
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E82:
- ldrb r0, [r5, 0x8]
- cmp r0, 0x9
- bne _080E6E9C
- bl sub_80E81C0
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
- ldr r1, _080E6ED0 @ =0x00009c7c
- adds r0, r5, r1
- bl sub_80FA364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6E9C:
- ldrb r0, [r5, 0x8]
- cmp r0, 0xD
- bne _080E6EBE
- ldrh r0, [r5, 0xC]
- ldr r1, _080E6ED4 @ =0x0000ffff
- cmp r0, r1
- beq _080E6EB0
- ldrh r0, [r5, 0xE]
- cmp r0, r1
- bne _080E6EB2
-_080E6EB0:
- strh r6, [r7]
-_080E6EB2:
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
- bl sub_80E810C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E6EBE:
- ldr r0, _080E6ED8 @ =sub_80E752C
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6EC8: .4byte gScriptResult
-_080E6ECC: .4byte gUnknown_0202E8CC
-_080E6ED0: .4byte 0x00009c7c
-_080E6ED4: .4byte 0x0000ffff
-_080E6ED8: .4byte sub_80E752C
-_080E6EDC:
- bl sub_8072DEC
- bl sub_80E81FC
- ldr r4, _080E6EFC @ =0x02001000
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- bne _080E6F00
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6F00
- movs r0, 0x64
- strh r0, [r4, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6EFC: .4byte 0x02001000
-_080E6F00:
- bl sub_80E95A4
- b _080E6F12
-_080E6F06:
- ldr r0, _080E6F1C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F12:
- ldr r0, _080E6F20 @ =sub_80E6AC4
- bl sub_80E682C
- b _080E6F5E
- .align 2, 0
-_080E6F1C: .4byte gMain
-_080E6F20: .4byte sub_80E6AC4
-_080E6F24:
- movs r0, 0x7
- bl sub_80E91D4
- ldrh r0, [r5, 0x24]
- adds r0, 0x1
- strh r0, [r5, 0x24]
-_080E6F30:
- ldr r0, _080E6F48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E6F5E
-_080E6F3C:
- ldr r1, _080E6F4C @ =0x02001000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E6F5E
- .align 2, 0
-_080E6F48: .4byte gMain
-_080E6F4C: .4byte 0x02001000
-_080E6F50:
- bl sub_80E7E50
- bl sub_80E95A4
- ldr r0, _080E6F64 @ =sub_80E6AC4
- bl sub_80E682C
-_080E6F5E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6F64: .4byte sub_80E6AC4
- thumb_func_end sub_80E6D7C
-
- thumb_func_start sub_80E6F68
-sub_80E6F68: @ 80E6F68
- push {r4,lr}
- ldr r4, _080E6F78 @ =0x02001000
- ldrh r0, [r4, 0x24]
- cmp r0, 0
- beq _080E6F7C
- cmp r0, 0x1
- beq _080E6F9C
- b _080E6FBC
- .align 2, 0
-_080E6F78: .4byte 0x02001000
-_080E6F7C:
- movs r0, 0x1
- bl sub_80E8398
- movs r0, 0xA
- bl sub_80E91D4
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E6FBC
-_080E6F9C:
- bl sub_80E9EA8
- lsls r0, 24
- cmp r0, 0
- beq _080E6FBC
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E6FC4 @ =sub_80E6FC8
- bl sub_80E682C
-_080E6FBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E6FC4: .4byte sub_80E6FC8
- thumb_func_end sub_80E6F68
-
- thumb_func_start sub_80E6FC8
-sub_80E6FC8: @ 80E6FC8
- push {r4,lr}
- bl sub_80E77C8
- adds r1, r0, 0
- ldr r4, _080E7000 @ =0x02001000
- adds r0, r4, 0
- adds r0, 0x96
- strb r1, [r0]
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E700C
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E7004 @ =sub_80E6FC8
- str r1, [r0]
- ldr r0, _080E7008 @ =sub_80E7458
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E7000: .4byte 0x02001000
-_080E7004: .4byte sub_80E6FC8
-_080E7008: .4byte sub_80E7458
-_080E700C:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E7018
- movs r0, 0x5
- bl PlaySE
-_080E7018:
- ldr r0, _080E7054 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E70E8
- ldr r2, _080E7058 @ =0x000001b7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7090
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- beq _080E7070
- cmp r0, 0x2
- bgt _080E705C
- cmp r0, 0x1
- beq _080E7062
- b _080E710A
- .align 2, 0
-_080E7054: .4byte gMain
-_080E7058: .4byte 0x000001b7
-_080E705C:
- cmp r0, 0x3
- beq _080E70F0
- b _080E710A
-_080E7062:
- ldr r0, _080E706C @ =sub_80E718C
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E706C: .4byte sub_80E718C
-_080E7070:
- ldrb r0, [r4, 0x8]
- cmp r0, 0x6
- beq _080E710A
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- ldr r1, _080E708C @ =0x0000ffff
- bl sub_80E7F00
- bl sub_80E7574
- bl sub_80E95A4
- b _080E710A
- .align 2, 0
-_080E708C: .4byte 0x0000ffff
-_080E7090:
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E70CA
- ldr r2, _080E70DC @ =0x000001a9
- adds r0, r4, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r4, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r0, [r2]
- lsls r0, 1
- ldr r2, _080E70E0 @ =0x00004142
- adds r1, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _080E710A
-_080E70CA:
- movs r0, 0x5
- bl PlaySE
- bl sub_80E7AD4
- ldr r0, _080E70E4 @ =sub_80E7218
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70DC: .4byte 0x000001a9
-_080E70E0: .4byte 0x00004142
-_080E70E4: .4byte sub_80E7218
-_080E70E8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E70FC
-_080E70F0:
- ldr r0, _080E70F8 @ =sub_80E7114
- bl sub_80E682C
- b _080E710A
- .align 2, 0
-_080E70F8: .4byte sub_80E7114
-_080E70FC:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E710A
- ldr r0, _080E7110 @ =sub_80E718C
- bl sub_80E682C
-_080E710A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7110: .4byte sub_80E718C
- thumb_func_end sub_80E6FC8
-
- thumb_func_start sub_80E7114
-sub_80E7114: @ 80E7114
- push {lr}
- ldr r0, _080E712C @ =0x02001000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E7182
- lsls r0, r1, 2
- ldr r1, _080E7130 @ =_080E7134
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E712C: .4byte 0x02001000
-_080E7130: .4byte _080E7134
- .align 2, 0
-_080E7134:
- .4byte _080E7148
- .4byte _080E715C
- .4byte _080E715C
- .4byte _080E7164
- .4byte _080E717C
-_080E7148:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E8D8C
- b _080E716E
-_080E715C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E7182
-_080E7164:
- bl sub_80E9F50
- lsls r0, 24
- cmp r0, 0
- beq _080E7182
-_080E716E:
- ldr r1, _080E7178 @ =0x02001000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7182
- .align 2, 0
-_080E7178: .4byte 0x02001000
-_080E717C:
- ldr r0, _080E7188 @ =sub_80E6AC4
- bl sub_80E682C
-_080E7182:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7188: .4byte sub_80E6AC4
- thumb_func_end sub_80E7114
-
- thumb_func_start sub_80E718C
-sub_80E718C: @ 80E718C
- push {r4,lr}
- ldr r0, _080E71A4 @ =0x02001000
- ldrh r1, [r0, 0x24]
- adds r4, r0, 0
- cmp r1, 0x1
- beq _080E71C6
- cmp r1, 0x1
- bgt _080E71A8
- cmp r1, 0
- beq _080E71AE
- b _080E71EC
- .align 2, 0
-_080E71A4: .4byte 0x02001000
-_080E71A8:
- cmp r1, 0x8
- beq _080E71F4
- b _080E71EC
-_080E71AE:
- bl sub_80E8504
- bl sub_80E9E98
- bl sub_80E88F0
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- bl sub_80E8D54
- b _080E720E
-_080E71C6:
- bl sub_80E9FD4
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- movs r2, 0
- adds r1, r4, 0
- adds r1, 0x26
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E71DE
- movs r2, 0x1
-_080E71DE:
- strb r2, [r1]
- bl sub_80E683C
- bl sub_80E9974
- bl sub_80E9E98
-_080E71EC:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E720E
-_080E71F4:
- bl sub_80EA014
- lsls r0, 24
- cmp r0, 0
- beq _080E720E
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
- ldr r0, _080E7214 @ =sub_80E6FC8
- bl sub_80E682C
-_080E720E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7214: .4byte sub_80E6FC8
- thumb_func_end sub_80E718C
-
- thumb_func_start sub_80E7218
-sub_80E7218: @ 80E7218
- push {r4,lr}
- ldr r4, _080E7230 @ =0x02001000
- ldrh r0, [r4, 0x24]
- adds r1, r4, 0
- cmp r0, 0x9
- beq _080E7260
- cmp r0, 0x9
- bgt _080E7234
- cmp r0, 0x8
- beq _080E7244
- b _080E723C
- .align 2, 0
-_080E7230: .4byte 0x02001000
-_080E7234:
- cmp r0, 0xA
- beq _080E7276
- cmp r0, 0xB
- beq _080E7288
-_080E723C:
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E7288
-_080E7244:
- movs r0, 0
- bl sub_80E8D8C
- bl sub_80E8504
- bl sub_80E9AD4
- bl sub_80E68E8
- bl sub_80E88F0
- bl sub_80E9E98
- b _080E726E
-_080E7260:
- bl sub_80EA050
- lsls r0, 24
- cmp r0, 0
- beq _080E7288
- bl sub_80E9C94
-_080E726E:
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7288
-_080E7276:
- movs r0, 0x1
- bl sub_80E87CC
- movs r0, 0x1
- bl sub_80E8958
- ldr r0, _080E7290 @ =sub_80E7294
- bl sub_80E682C
-_080E7288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7290: .4byte sub_80E7294
- thumb_func_end sub_80E7218
-
- thumb_func_start sub_80E7294
-sub_80E7294: @ 80E7294
- push {r4,lr}
- bl sub_80E7B40
- adds r1, r0, 0
- ldr r4, _080E72CC @ =0x02001000
- ldr r2, _080E72D0 @ =0x000001b9
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x7
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E72DC
- movs r0, 0x5
- bl PlaySE
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, _080E72D4 @ =sub_80E7294
- str r1, [r0]
- ldr r0, _080E72D8 @ =sub_80E7458
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E72CC: .4byte 0x02001000
-_080E72D0: .4byte 0x000001b9
-_080E72D4: .4byte sub_80E7294
-_080E72D8: .4byte sub_80E7458
-_080E72DC:
- lsls r0, r1, 24
- cmp r0, 0
- beq _080E72E8
- movs r0, 0x5
- bl PlaySE
-_080E72E8:
- ldr r0, _080E7304 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E730C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080E7308 @ =sub_80E7324
- bl sub_80E682C
- b _080E731A
- .align 2, 0
-_080E7304: .4byte gMain
-_080E7308: .4byte sub_80E7324
-_080E730C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E731A
- ldr r0, _080E7320 @ =sub_80E73D0
- bl sub_80E682C
-_080E731A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7320: .4byte sub_80E73D0
- thumb_func_end sub_80E7294
-
- thumb_func_start sub_80E7324
-sub_80E7324: @ 80E7324
- push {lr}
- ldr r0, _080E733C @ =0x02001000
- ldrh r1, [r0, 0x24]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080E73C6
- lsls r0, r1, 2
- ldr r1, _080E7340 @ =_080E7344
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E733C: .4byte 0x02001000
-_080E7340: .4byte _080E7344
- .align 2, 0
-_080E7344:
- .4byte _080E7358
- .4byte _080E737C
- .4byte _080E7384
- .4byte _080E738A
- .4byte _080E73A4
-_080E7358:
- bl sub_80E7DD0
- lsls r0, 24
- cmp r0, 0
- bne _080E7370
- ldr r0, _080E736C @ =sub_80E7294
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E736C: .4byte sub_80E7294
-_080E7370:
- bl sub_80E88F0
- movs r0, 0
- bl sub_80E87CC
- b _080E7394
-_080E737C:
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- b _080E73C6
-_080E7384:
- bl sub_80E9E98
- b _080E7394
-_080E738A:
- bl sub_80EA184
- lsls r0, 24
- cmp r0, 0
- beq _080E73C6
-_080E7394:
- ldr r1, _080E73A0 @ =0x02001000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E73C6
- .align 2, 0
-_080E73A0: .4byte 0x02001000
-_080E73A4:
- ldrb r0, [r2, 0x8]
- cmp r0, 0x6
- bne _080E73C0
- bl sub_80E7FA8
- lsls r0, 24
- cmp r0, 0
- beq _080E73C0
- ldr r0, _080E73BC @ =sub_80E6D7C
- bl sub_80E682C
- b _080E73C6
- .align 2, 0
-_080E73BC: .4byte sub_80E6D7C
-_080E73C0:
- ldr r0, _080E73CC @ =sub_80E6AC4
- bl sub_80E682C
-_080E73C6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E73CC: .4byte sub_80E6AC4
- thumb_func_end sub_80E7324
-
- thumb_func_start sub_80E73D0
-sub_80E73D0: @ 80E73D0
- push {lr}
- ldr r0, _080E73E4 @ =0x02001000
- ldrh r0, [r0, 0x24]
- cmp r0, 0x4
- bhi _080E744E
- lsls r0, 2
- ldr r1, _080E73E8 @ =_080E73EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E73E4: .4byte 0x02001000
-_080E73E8: .4byte _080E73EC
- .align 2, 0
-_080E73EC:
- .4byte _080E7400
- .4byte _080E740C
- .4byte _080E7416
- .4byte _080E742C
- .4byte _080E7444
-_080E7400:
- movs r0, 0
- bl sub_80E87CC
- bl sub_80E88F0
- b _080E7436
-_080E740C:
- bl sub_80E9AD4
- bl sub_80E9E98
- b _080E7436
-_080E7416:
- bl sub_80EA0E4
- lsls r0, 24
- cmp r0, 0
- beq _080E744E
- movs r0, 0x1
- bl sub_80E8D8C
- bl sub_80E9A14
- b _080E7436
-_080E742C:
- bl sub_80E8420
- movs r0, 0
- bl sub_80E8958
-_080E7436:
- ldr r1, _080E7440 @ =0x02001000
- ldrh r0, [r1, 0x24]
- adds r0, 0x1
- strh r0, [r1, 0x24]
- b _080E744E
- .align 2, 0
-_080E7440: .4byte 0x02001000
-_080E7444:
- bl sub_80E9974
- ldr r0, _080E7454 @ =sub_80E6FC8
- bl sub_80E682C
-_080E744E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7454: .4byte sub_80E6FC8
- thumb_func_end sub_80E73D0
-
- thumb_func_start sub_80E7458
-sub_80E7458: @ 80E7458
- push {r4,r5,lr}
- ldr r4, _080E7468 @ =0x02001000
- ldrh r5, [r4, 0x24]
- cmp r5, 0
- beq _080E746C
- cmp r5, 0x1
- beq _080E74A4
- b _080E7518
- .align 2, 0
-_080E7468: .4byte 0x02001000
-_080E746C:
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E7480 @ =sub_80E6FC8
- cmp r1, r0
- bne _080E7484
- bl sub_80E9D7C
- b _080E7488
- .align 2, 0
-_080E7480: .4byte sub_80E6FC8
-_080E7484:
- bl sub_80E9D00
-_080E7488:
- ldr r4, _080E74A0 @ =0x02001000
- movs r2, 0xDF
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80E9E08
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E7518
- .align 2, 0
-_080E74A0: .4byte 0x02001000
-_080E74A4:
- bl sub_80E9E54
- lsls r0, 24
- cmp r0, 0
- beq _080E7518
- movs r1, 0xE2
- lsls r1, 1
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _080E74DC @ =sub_80E6FC8
- cmp r1, r0
- bne _080E74E4
- bl sub_80E9D7C
- ldr r2, _080E74E0 @ =0x000001b5
- adds r1, r4, r2
- adds r2, 0xB
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7A98
- adds r0, r4, 0
- adds r0, 0x96
- b _080E74FE
- .align 2, 0
-_080E74DC: .4byte sub_80E6FC8
-_080E74E0: .4byte 0x000001b5
-_080E74E4:
- ldr r0, _080E7520 @ =0x00009a29
- adds r1, r4, r0
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bl sub_80E7D30
- ldr r1, _080E7524 @ =0x000001b9
- adds r0, r4, r1
-_080E74FE:
- strb r5, [r0]
- ldr r1, _080E7528 @ =0x02001000
- movs r0, 0xDF
- lsls r0, 1
- adds r2, r1, r0
- movs r0, 0x2
- strb r0, [r2]
- movs r2, 0xE2
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- bl sub_80E682C
-_080E7518:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7520: .4byte 0x00009a29
-_080E7524: .4byte 0x000001b9
-_080E7528: .4byte 0x02001000
- thumb_func_end sub_80E7458
-
- thumb_func_start sub_80E752C
-sub_80E752C: @ 80E752C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080E7540 @ =0x02001000
- ldrh r1, [r4, 0x24]
- cmp r1, 0
- beq _080E7544
- cmp r1, 0x1
- beq _080E755C
- b _080E756C
- .align 2, 0
-_080E7540: .4byte 0x02001000
-_080E7544:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- b _080E756C
-_080E755C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080E756C
- ldr r0, [r4]
- bl SetMainCallback2
-_080E756C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E752C
-
- thumb_func_start sub_80E7574
-sub_80E7574: @ 80E7574
- push {r4,r5,lr}
- ldr r4, _080E75B8 @ =0x02001000
- ldrb r5, [r4, 0x8]
- cmp r5, 0x1
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r4, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080E75BC
- adds r0, r4, 0
- adds r0, 0x27
- ldrb r0, [r0]
- lsls r0, 1
- subs r1, 0x72
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- beq _080E75BC
- adds r0, r4, 0
- adds r0, 0x7D
- strb r5, [r0]
- adds r1, r4, 0
- b _080E75C6
- .align 2, 0
-_080E75B8: .4byte 0x02001000
-_080E75BC:
- ldr r1, _080E75D4 @ =0x02001000
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0
- strb r0, [r2]
-_080E75C6:
- adds r1, 0x7D
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E75D4: .4byte 0x02001000
- thumb_func_end sub_80E7574
-
- thumb_func_start sub_80E75D8
-sub_80E75D8: @ 80E75D8
- push {r4-r6,lr}
- movs r4, 0
- ldr r2, _080E75FC @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7604
- ldr r1, _080E7600 @ =0x02001000
- adds r0, r1, 0
- adds r0, 0x84
- ldrb r0, [r0]
- adds r2, r1, 0
- adds r2, 0x86
- strb r0, [r2]
- adds r1, 0x85
- movs r0, 0x2
- b _080E768E
- .align 2, 0
-_080E75FC: .4byte gMain
-_080E7600: .4byte 0x02001000
-_080E7604:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080E7630
- ldr r2, _080E762C @ =0x02001000
- adds r1, r2, 0
- adds r1, 0x86
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E765C
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- strb r0, [r1]
- b _080E765C
- .align 2, 0
-_080E762C: .4byte 0x02001000
-_080E7630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E7658
- ldr r0, _080E7684 @ =0x02001000
- adds r3, r0, 0
- adds r3, 0x86
- ldrb r1, [r3]
- adds r1, 0x1
- strb r1, [r3]
- adds r0, 0x84
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- ble _080E7656
- strb r4, [r3]
-_080E7656:
- movs r4, 0x1
-_080E7658:
- cmp r4, 0
- beq _080E76EA
-_080E765C:
- ldr r2, _080E7684 @ =0x02001000
- ldrb r3, [r2, 0x9]
- cmp r3, 0x2
- bne _080E7692
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7688
- adds r0, r2, 0
- adds r0, 0x85
- strb r3, [r0]
- b _080E77BC
- .align 2, 0
-_080E7684: .4byte 0x02001000
-_080E7688:
- adds r1, r2, 0
- adds r1, 0x85
- movs r0, 0
-_080E768E:
- strb r0, [r1]
- b _080E77BC
-_080E7692:
- movs r0, 0x85
- adds r0, r2
- mov r12, r0
- adds r4, r2, 0
- adds r4, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrb r3, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r1, r0
- blt _080E76B0
- subs r0, r3, 0x1
- mov r1, r12
- strb r0, [r1]
-_080E76B0:
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r3, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- beq _080E77BC
- ldrb r0, [r4]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, 0
- mov r5, r12
- ldrb r5, [r5]
- adds r0, r5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
- mov r6, r12
- strb r0, [r6]
- b _080E77BC
-_080E76EA:
- ldrh r2, [r2, 0x30]
- movs r0, 0x20
- ands r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080E7744
- ldr r2, _080E7728 @ =0x02001000
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bge _080E77BC
- adds r1, r2, 0
- adds r1, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r4, [r1]
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E772C
- movs r0, 0x2
- b _080E77BA
- .align 2, 0
-_080E7728: .4byte 0x02001000
-_080E772C:
- adds r0, r2, 0
- adds r0, 0x83
- ldrb r0, [r0]
- subs r1, r0, 0x1
- strb r1, [r3]
- adds r5, r4, 0
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0
- lsls r1, 24
- lsrs r0, r1, 24
- b _080E77B2
-_080E7744:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080E77C0
- ldr r2, _080E777C @ =0x02001000
- adds r5, r2, 0
- adds r5, 0x86
- adds r0, r2, 0
- adds r0, 0x84
- movs r1, 0
- ldrsb r1, [r5, r1]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080E7780
- adds r1, r2, 0
- adds r1, 0x85
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- ble _080E77BC
- strb r4, [r1]
- b _080E77BC
- .align 2, 0
-_080E777C: .4byte 0x02001000
-_080E7780:
- adds r3, r2, 0
- adds r3, 0x85
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r6, 0x83
- adds r6, r2
- mov r12, r6
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r6, r1]
- cmp r0, r1
- blt _080E779E
- strb r4, [r3]
-_080E779E:
- ldrb r1, [r5]
- mov r4, r12
- ldrb r0, [r4]
- adds r5, r0, 0
- muls r5, r1
- adds r0, r5, 0
- ldrb r6, [r3]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
-_080E77B2:
- ldrb r1, [r2, 0xA]
- cmp r0, r1
- bcc _080E77BC
- subs r0, r1
-_080E77BA:
- strb r0, [r3]
-_080E77BC:
- movs r0, 0x1
- b _080E77C2
-_080E77C0:
- movs r0, 0
-_080E77C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80E75D8
-
- thumb_func_start sub_80E77C8
-sub_80E77C8: @ 80E77C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r1, _080E780C @ =0x02001000
- ldr r2, _080E7810 @ =0x000001b7
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r1, 0
- cmp r0, 0
- beq _080E783E
- ldr r1, _080E7814 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7818
- movs r4, 0xD4
- lsls r4, 1
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- ble _080E7806
- b _080E7948
-_080E7806:
- movs r0, 0x3
- strb r0, [r1]
- b _080E7948
- .align 2, 0
-_080E780C: .4byte 0x02001000
-_080E7810: .4byte 0x000001b7
-_080E7814: .4byte gMain
-_080E7818:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- bne _080E7822
- b _080E7950
-_080E7822:
- movs r5, 0xD4
- lsls r5, 1
- adds r1, r3, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bgt _080E7838
- b _080E7948
-_080E7838:
- movs r0, 0x1
- strb r0, [r1]
- b _080E7948
-_080E783E:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E789A
- movs r4, 0
- ldr r1, _080E7870 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E7874
- movs r6, 0xD4
- lsls r6, 1
- adds r1, r3, r6
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080E7944
- movs r0, 0x3
- strb r0, [r1]
- b _080E7944
- .align 2, 0
-_080E7870: .4byte gMain
-_080E7874:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E7894
- movs r0, 0xD4
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080E7892
- strb r7, [r1]
-_080E7892:
- movs r4, 0x1
-_080E7894:
- cmp r4, 0
- beq _080E7950
- b _080E7944
-_080E789A:
- movs r4, 0
- movs r1, 0xE0
- lsls r1, 1
- adds r5, r3, r1
- strb r7, [r5]
- ldr r1, _080E78E0 @ =gMain
- ldrh r2, [r1, 0x30]
- movs r0, 0x40
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _080E78E8
- movs r2, 0xD4
- lsls r2, 1
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E78C4
- b _080E7A88
-_080E78C4:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E78E4 @ =0x000001b5
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7932
- movs r0, 0xFF
- strb r0, [r5]
- b _080E7932
- .align 2, 0
-_080E78E0: .4byte gMain
-_080E78E4: .4byte 0x000001b5
-_080E78E8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E792E
- movs r0, 0xD4
- lsls r0, 1
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- movs r4, 0xDB
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E790E
- b _080E7A88
-_080E790E:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E794C @ =0x000001b5
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x3
- cmp r1, r0
- ble _080E792C
- movs r0, 0x1
- strb r0, [r5]
-_080E792C:
- movs r4, 0x1
-_080E792E:
- cmp r4, 0
- beq _080E7950
-_080E7932:
- movs r4, 0xE0
- lsls r4, 1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7944
- b _080E7A88
-_080E7944:
- bl sub_80E7A98
-_080E7948:
- movs r0, 0x1
- b _080E7A8A
- .align 2, 0
-_080E794C: .4byte 0x000001b5
-_080E7950:
- ldrh r1, [r6, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _080E7992
- ldr r5, _080E7974 @ =0x000001a9
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080E7978
- subs r0, r1, 0x1
- strb r0, [r2]
- b _080E79E6
- .align 2, 0
-_080E7974: .4byte 0x000001a9
-_080E7978:
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r4, 0xD5
- lsls r4, 1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- b _080E79E6
-_080E7992:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E79E2
- ldr r5, _080E79D4 @ =0x000001b7
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E79CC
- ldr r0, _080E79D8 @ =0x000001a9
- adds r4, r3, r0
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD5
- lsls r2, 1
- adds r0, r3, r2
- adds r1, r0
- ldrb r5, [r4]
- movs r2, 0
- ldrsb r2, [r4, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E79DC
-_080E79CC:
- ldr r4, _080E79D8 @ =0x000001a9
- adds r0, r3, r4
- strb r6, [r0]
- b _080E79E0
- .align 2, 0
-_080E79D4: .4byte 0x000001b7
-_080E79D8: .4byte 0x000001a9
-_080E79DC:
- adds r0, r5, 0x1
- strb r0, [r4]
-_080E79E0:
- movs r7, 0x1
-_080E79E2:
- cmp r7, 0
- beq _080E7A88
-_080E79E6:
- adds r2, r3, 0
- ldr r5, _080E7A48 @ =0x000001b7
- adds r7, r2, r5
- ldrb r6, [r7]
- mov r9, r6
- movs r1, 0
- ldr r0, _080E7A4C @ =0x000001a9
- adds r0, r2
- mov r12, r0
- subs r5, 0xF
- adds r4, r2, r5
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r6, 0xD5
- lsls r6, 1
- adds r6, r2
- mov r8, r6
- add r0, r8
- mov r6, r12
- movs r5, 0
- ldrsb r5, [r6, r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E7A1C
- movs r1, 0x1
-_080E7A1C:
- strb r1, [r7]
- cmp r1, 0
- beq _080E7A58
- ldr r0, _080E7A50 @ =0x000001b5
- adds r1, r2, r0
- ldrb r0, [r4]
- ldrb r1, [r1]
- subs r0, r1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- beq _080E7A36
- b _080E7948
-_080E7A36:
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080E7A54 @ =0x000001ab
- adds r0, r2, r1
- ldrb r0, [r0]
- mov r2, r12
- strb r0, [r2]
- b _080E7948
- .align 2, 0
-_080E7A48: .4byte 0x000001b7
-_080E7A4C: .4byte 0x000001a9
-_080E7A50: .4byte 0x000001b5
-_080E7A54: .4byte 0x000001ab
-_080E7A58:
- mov r6, r9
- cmp r6, 0
- bne _080E7A60
- b _080E7948
-_080E7A60:
- ldr r1, _080E7A84 @ =0x000001b5
- adds r0, r3, r1
- ldrb r0, [r0]
- ldrb r2, [r4]
- adds r0, r2
- strb r0, [r4]
- cmp r5, 0
- bne _080E7A72
- b _080E7948
-_080E7A72:
- movs r0, 0
- ldrsb r0, [r4, r0]
- add r0, r8
- ldrb r0, [r0]
- subs r0, 0x1
- mov r4, r12
- strb r0, [r4]
- b _080E7948
- .align 2, 0
-_080E7A84: .4byte 0x000001b5
-_080E7A88:
- movs r0, 0
-_080E7A8A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E77C8
-
- thumb_func_start sub_80E7A98
-sub_80E7A98: @ 80E7A98
- push {lr}
- ldr r1, _080E7ACC @ =0x02001000
- ldr r0, _080E7AD0 @ =0x000001a9
- adds r3, r1, r0
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0x2
- adds r1, r2
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldrb r2, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080E7AC6
- subs r0, r2, 0x1
- strb r0, [r3]
-_080E7AC6:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7ACC: .4byte 0x02001000
-_080E7AD0: .4byte 0x000001a9
- thumb_func_end sub_80E7A98
-
- thumb_func_start sub_80E7AD4
-sub_80E7AD4: @ 80E7AD4
- push {lr}
- ldr r3, _080E7B08 @ =0x02001000
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E7B10
- ldr r1, _080E7B0C @ =0x000001a9
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r2, 0xD4
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x2A
- adds r1, r0
- ldrb r1, [r1]
- adds r2, 0x10
- b _080E7B34
- .align 2, 0
-_080E7B08: .4byte 0x02001000
-_080E7B0C: .4byte 0x000001a9
-_080E7B10:
- ldr r1, _080E7B3C @ =0x000001a9
- adds r0, r3, r1
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r1, 0x1
- adds r0, r3, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r2, r0
- adds r0, r3, 0
- adds r0, 0x40
- adds r2, r0
- ldrb r1, [r2]
- movs r2, 0xDC
- lsls r2, 1
-_080E7B34:
- adds r0, r3, r2
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B3C: .4byte 0x000001a9
- thumb_func_end sub_80E7AD4
-
- thumb_func_start sub_80E7B40
-sub_80E7B40: @ 80E7B40
- push {r4-r7,lr}
- movs r5, 0
- ldr r2, _080E7B8C @ =0x02001000
- movs r0, 0xE0
- lsls r0, 1
- adds r6, r2, r0
- strb r5, [r6]
- ldr r1, _080E7B90 @ =gMain
- ldrh r4, [r1, 0x30]
- movs r0, 0x40
- ands r0, r4
- adds r3, r2, 0
- adds r7, r1, 0
- cmp r0, 0
- beq _080E7B9C
- ldr r2, _080E7B94 @ =0x000099a4
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _080E7B6E
- b _080E7D1A
-_080E7B6E:
- subs r0, r2, 0x1
- strb r0, [r1]
- ldr r4, _080E7B98 @ =0x00009a29
- adds r1, r3, r4
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- cmp r0, r1
- bge _080E7BF2
- movs r0, 0xFF
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7B8C: .4byte 0x02001000
-_080E7B90: .4byte gMain
-_080E7B94: .4byte 0x000099a4
-_080E7B98: .4byte 0x00009a29
-_080E7B9C:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _080E7BEE
- ldr r0, _080E7BE0 @ =0x000099a4
- adds r2, r3, r0
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r4, _080E7BE4 @ =0x00009a28
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, 0x1
- cmp r1, r0
- blt _080E7BBE
- b _080E7D1A
-_080E7BBE:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r1, 0
- ldrsb r1, [r2, r1]
- ldr r2, _080E7BE8 @ =0x00009a29
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- cmp r1, r0
- blt _080E7BEC
- movs r0, 0x1
- strb r0, [r6]
- b _080E7D1A
- .align 2, 0
-_080E7BE0: .4byte 0x000099a4
-_080E7BE4: .4byte 0x00009a28
-_080E7BE8: .4byte 0x00009a29
-_080E7BEC:
- movs r5, 0x1
-_080E7BEE:
- cmp r5, 0
- beq _080E7BFA
-_080E7BF2:
- bl sub_80E7D30
-_080E7BF6:
- movs r0, 0x1
- b _080E7D1C
-_080E7BFA:
- ldrh r1, [r7, 0x30]
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _080E7C38
- ldr r4, _080E7C30 @ =0x000099a5
- adds r2, r3, r4
- ldrb r0, [r2]
- subs r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- cmp r0, 0
- bge _080E7BF6
- ldr r6, _080E7C34 @ =0x000099a4
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, 0x1
- adds r1, r3, r4
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r2]
- b _080E7BF6
- .align 2, 0
-_080E7C30: .4byte 0x000099a5
-_080E7C34: .4byte 0x000099a4
-_080E7C38:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7C70
- ldr r6, _080E7C68 @ =0x000099a5
- adds r4, r3, r6
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r2, _080E7C6C @ =0x000099a4
- adds r1, r3, r2
- movs r2, 0
- ldrsb r2, [r1, r2]
- adds r6, 0x1
- adds r1, r3, r6
- adds r2, r1
- lsls r0, 24
- asrs r0, 24
- movs r1, 0
- ldrsb r1, [r2, r1]
- cmp r0, r1
- blt _080E7BF6
- strb r5, [r4]
- b _080E7BF6
- .align 2, 0
-_080E7C68: .4byte 0x000099a5
-_080E7C6C: .4byte 0x000099a4
-_080E7C70:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7CC4
- ldr r1, _080E7CBC @ =0x00009a29
- adds r0, r3, r1
- ldrb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080E7CA2
- negs r0, r1
- movs r4, 0xE0
- lsls r4, 1
- adds r2, r3, r4
- strb r0, [r2]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x4
- negs r1, r1
- cmp r0, r1
- bge _080E7CA2
- strb r1, [r2]
-_080E7CA2:
- ldr r6, _080E7CC0 @ =0x000099a4
- adds r1, r3, r6
- movs r2, 0xE0
- lsls r2, 1
- adds r0, r3, r2
- ldrb r0, [r0]
- ldrb r4, [r1]
- adds r0, r4
- strb r0, [r1]
- movs r6, 0xDF
- lsls r6, 1
- adds r1, r3, r6
- b _080E7D16
- .align 2, 0
-_080E7CBC: .4byte 0x00009a29
-_080E7CC0: .4byte 0x000099a4
-_080E7CC4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080E7D1A
- ldr r0, _080E7D24 @ =0x00009a29
- adds r4, r3, r0
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r6, _080E7D28 @ =0x00009a28
- adds r2, r3, r6
- movs r0, 0
- ldrsb r0, [r2, r0]
- subs r0, 0x4
- cmp r1, r0
- bge _080E7CFE
- ldrb r1, [r4]
- adds r1, 0x4
- ldrb r0, [r2]
- subs r0, r1
- movs r2, 0xE0
- lsls r2, 1
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080E7CFE
- movs r0, 0x4
- strb r0, [r1]
-_080E7CFE:
- ldr r4, _080E7D2C @ =0x000099a4
- adds r1, r3, r4
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r3, r6
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- movs r4, 0xDF
- lsls r4, 1
- adds r1, r3, r4
-_080E7D16:
- movs r0, 0x4
- strb r0, [r1]
-_080E7D1A:
- movs r0, 0
-_080E7D1C:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7D24: .4byte 0x00009a29
-_080E7D28: .4byte 0x00009a28
-_080E7D2C: .4byte 0x000099a4
- thumb_func_end sub_80E7B40
-
- thumb_func_start sub_80E7D30
-sub_80E7D30: @ 80E7D30
- push {r4,lr}
- ldr r0, _080E7D60 @ =0x02001000
- ldr r1, _080E7D64 @ =0x000099a5
- adds r4, r0, r1
- ldr r2, _080E7D68 @ =0x000099a4
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r2, 0x2
- adds r0, r2
- adds r1, r0
- movs r2, 0
- ldrsb r2, [r4, r2]
- ldrb r3, [r1]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- blt _080E7D5A
- subs r0, r3, 0x1
- strb r0, [r4]
-_080E7D5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D60: .4byte 0x02001000
-_080E7D64: .4byte 0x000099a5
-_080E7D68: .4byte 0x000099a4
- thumb_func_end sub_80E7D30
-
- thumb_func_start sub_80E7D6C
-sub_80E7D6C: @ 80E7D6C
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080E7D94 @ =0x02001000
- ldrb r1, [r0, 0xA]
- cmp r4, r1
- bcs _080E7D8E
- adds r5, r0, 0
-_080E7D7A:
- adds r0, r4, 0
- ldr r1, _080E7D98 @ =0x0000ffff
- bl sub_80E7F00
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r5, 0xA]
- cmp r4, r0
- bcc _080E7D7A
-_080E7D8E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7D94: .4byte 0x02001000
-_080E7D98: .4byte 0x0000ffff
- thumb_func_end sub_80E7D6C
-
- thumb_func_start sub_80E7D9C
-sub_80E7D9C: @ 80E7D9C
- push {r4,r5,lr}
- movs r2, 0
- ldr r0, _080E7DCC @ =0x02001000
- ldrb r1, [r0, 0xA]
- cmp r2, r1
- bcs _080E7DC6
- adds r3, r0, 0
- ldr r4, [r3, 0x4]
- adds r5, r3, 0
- adds r5, 0xC
-_080E7DB0:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r3, 0xA]
- cmp r2, r0
- bcc _080E7DB0
-_080E7DC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DCC: .4byte 0x02001000
- thumb_func_end sub_80E7D9C
-
- thumb_func_start sub_80E7DD0
-sub_80E7DD0: @ 80E7DD0
- push {r4,lr}
- ldr r2, _080E7E28 @ =0x02001000
- ldr r1, _080E7E2C @ =0x000099a5
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r3, _080E7E30 @ =0x000099a4
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0
- adds r3, 0x86
- adds r0, r2, r3
- adds r1, r0
- ldrh r4, [r1]
- adds r0, r2, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E7E34
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r2, 0
- adds r1, 0x7E
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _080E7E34
- adds r0, r4, 0
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bne _080E7E34
- movs r0, 0
- b _080E7E46
- .align 2, 0
-_080E7E28: .4byte 0x02001000
-_080E7E2C: .4byte 0x000099a5
-_080E7E30: .4byte 0x000099a4
-_080E7E34:
- ldr r0, _080E7E4C @ =0x02001000
- adds r0, 0x27
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_80E7F00
- bl sub_80E95A4
- movs r0, 0x1
-_080E7E46:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E7E4C: .4byte 0x02001000
- thumb_func_end sub_80E7DD0
-
- thumb_func_start sub_80E7E50
-sub_80E7E50: @ 80E7E50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r5, 0
- movs r2, 0
- ldr r1, _080E7EF0 @ =0x02001000
- adds r3, r1, 0
- adds r3, 0x84
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r2, r0
- bge _080E7EDE
- mov r8, r1
- adds r0, r1, 0
- str r0, [sp]
-_080E7E74:
- mov r0, r8
- adds r0, 0x7E
- adds r0, r2, r0
- movs r1, 0
- strb r1, [r0]
- movs r3, 0
- ldr r6, _080E7EF4 @ =0x02001083
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- cmp r3, r0
- bge _080E7ECE
- ldr r6, [sp]
- mov r12, r6
- movs r0, 0
- mov r10, r0
- ldr r1, _080E7EF4 @ =0x02001083
- mov r9, r1
- ldr r7, _080E7EF8 @ =0x0200100c
- lsls r4, r2, 1
-_080E7E9E:
- lsls r1, r5, 1
- adds r2, r1, r7
- mov r6, r12
- ldr r0, [r6, 0x4]
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- adds r0, r3, r4
- mov r1, r12
- adds r1, 0x8C
- adds r0, r1
- mov r1, r10
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- mov r6, r9
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r3, r0
- blt _080E7E9E
-_080E7ECE:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r6, _080E7EFC @ =0x02001084
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080E7E74
-_080E7EDE:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7EF0: .4byte 0x02001000
-_080E7EF4: .4byte 0x02001083
-_080E7EF8: .4byte 0x0200100c
-_080E7EFC: .4byte 0x02001084
- thumb_func_end sub_80E7E50
-
- thumb_func_start sub_80E7F00
-sub_80E7F00: @ 80E7F00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r7, _080E7F68 @ =0x02001000
- adds r0, r7, 0
- adds r0, 0x83
- movs r4, 0
- ldrsb r4, [r0, r4]
- adds r0, r6, 0
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r0, r6, 1
- adds r1, r7, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- bl sub_80EB2D4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r9
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, 0x7
- bne _080E7F6C
- cmp r3, 0x7
- beq _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- subs r0, 0x1
- b _080E7F7A
- .align 2, 0
-_080E7F68: .4byte 0x02001000
-_080E7F6C:
- cmp r3, 0x7
- bne _080E7F7C
- adds r1, r7, 0
- adds r1, 0x7E
- adds r1, r5, r1
- ldrb r0, [r1]
- adds r0, 0x1
-_080E7F7A:
- strb r0, [r1]
-_080E7F7C:
- movs r3, 0
- ldr r2, _080E7FA4 @ =0x02001000
- lsls r0, r5, 1
- add r0, r8
- adds r1, r2, 0
- adds r1, 0x8C
- adds r0, r1
- strb r3, [r0]
- lsls r0, r6, 1
- adds r2, 0xC
- adds r0, r2
- mov r1, r9
- strh r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7FA4: .4byte 0x02001000
- thumb_func_end sub_80E7F00
-
- thumb_func_start sub_80E7FA8
-sub_80E7FA8: @ 80E7FA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _080E8040 @ =0x02001000
- ldrb r1, [r0, 0xA]
- cmp r8, r1
- bcs _080E802E
- ldr r3, _080E8044 @ =0x00009e14
- adds r6, r0, r3
- ldr r1, _080E8048 @ =0x00009e41
- adds r1, r0
- mov r9, r1
-_080E7FC8:
- ldr r3, _080E804C @ =0xffff61ec
- adds r7, r6, r3
- ldr r0, [r7, 0x4]
- lsls r4, r5, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r1, _080E8050 @ =0xffff61f8
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0
- bl sub_80EB218
- adds r1, r6, 0
- mov r2, r9
- ldrb r0, [r1]
- adds r4, r5, 0x1
- ldrb r3, [r2]
- cmp r0, r3
- bne _080E8018
- adds r3, r7, 0
- cmp r0, 0xFF
- beq _080E8010
-_080E8000:
- adds r1, 0x1
- adds r2, 0x1
- ldrb r0, [r1]
- ldrb r5, [r2]
- cmp r0, r5
- bne _080E8018
- cmp r0, 0xFF
- bne _080E8000
-_080E8010:
- ldrb r0, [r1]
- ldrb r2, [r2]
- cmp r0, r2
- beq _080E8024
-_080E8018:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r3, _080E8040 @ =0x02001000
-_080E8024:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- ldrb r3, [r3, 0xA]
- cmp r5, r3
- bcc _080E7FC8
-_080E802E:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E8040: .4byte 0x02001000
-_080E8044: .4byte 0x00009e14
-_080E8048: .4byte 0x00009e41
-_080E804C: .4byte 0xffff61ec
-_080E8050: .4byte 0xffff61f8
- thumb_func_end sub_80E7FA8
-
- thumb_func_start sub_80E8054
-sub_80E8054: @ 80E8054
- push {r4,lr}
- movs r1, 0
- ldr r2, _080E8078 @ =0x02001000
- ldrb r0, [r2, 0xA]
- cmp r1, r0
- bcs _080E808A
- adds r4, r2, 0
- adds r4, 0xC
- ldr r3, _080E807C @ =0x0000ffff
- adds r2, r0, 0
-_080E8068:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _080E8080
- movs r0, 0
- b _080E808C
- .align 2, 0
-_080E8078: .4byte 0x02001000
-_080E807C: .4byte 0x0000ffff
-_080E8080:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080E8068
-_080E808A:
- movs r0, 0x1
-_080E808C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8054
-
- thumb_func_start sub_80E8094
-sub_80E8094: @ 80E8094
- push {r4-r7,lr}
- movs r5, 0
- ldr r6, _080E80C4 @ =0x0200ae14
- adds r7, r6, 0
- adds r7, 0x2D
-_080E809E:
- lsls r4, r5, 1
- ldr r1, _080E80C8 @ =0xffff61f8
- adds r0, r6, r1
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- ldr r0, _080E80CC @ =gMysteryEventPhrase
- adds r4, r0
- ldrh r1, [r4]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- adds r3, r6, 0
- adds r4, r7, 0
- b _080E80D8
- .align 2, 0
-_080E80C4: .4byte 0x0200ae14
-_080E80C8: .4byte 0xffff61f8
-_080E80CC: .4byte gMysteryEventPhrase
-_080E80D0:
- adds r4, 0x1
- adds r3, 0x1
- cmp r2, r1
- bne _080E80F4
-_080E80D8:
- ldrb r2, [r3]
- adds r0, r2, 0
- cmp r0, 0xFF
- beq _080E80EE
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E80D0
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E80F4
-_080E80EE:
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080E80F8
-_080E80F4:
- movs r0, 0
- b _080E8104
-_080E80F8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080E809E
- movs r0, 0x1
-_080E8104:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E8094
-
- thumb_func_start sub_80E810C
-sub_80E810C: @ 80E810C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r6, _080E8198 @ =0x0200ae6e
- ldr r0, _080E819C @ =0xffff6192
- adds r0, r6
- mov r9, r0
- movs r1, 0
- mov r8, r1
- adds r7, r6, 0
- adds r7, 0x80
- ldr r2, _080E81A0 @ =gBerryMasterWifePhrases
- mov r10, r2
-_080E812C:
- mov r0, r9
- ldrh r1, [r0, 0xC]
- adds r0, r6, 0
- movs r2, 0
- bl sub_80EB218
- mov r1, r8
- strb r1, [r0]
- adds r0, 0x1
- mov r2, r9
- ldrh r1, [r2, 0xE]
- movs r2, 0
- bl sub_80EB218
- lsls r4, r5, 2
- mov r1, r10
- adds r0, r4, r1
- ldrh r1, [r0]
- adds r0, r7, 0
- movs r2, 0
- bl sub_80EB218
- mov r2, r8
- strb r2, [r0]
- adds r0, 0x1
- ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- adds r0, r6, 0
- adds r3, r7, 0
- adds r4, r5, 0x1
-_080E8170:
- ldrb r2, [r0]
- cmp r2, 0xFF
- beq _080E818A
- ldrb r1, [r3]
- cmp r1, 0xFF
- beq _080E8184
- adds r3, 0x1
- adds r0, 0x1
- cmp r2, r1
- beq _080E8170
-_080E8184:
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E81A8
-_080E818A:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _080E81A8
- lsls r0, r4, 24
- lsrs r0, 24
- b _080E81B2
- .align 2, 0
-_080E8198: .4byte 0x0200ae6e
-_080E819C: .4byte 0xffff6192
-_080E81A0: .4byte gBerryMasterWifePhrases
-_080E81A4: .4byte gBerryMasterWifePhrases + 0x2
-_080E81A8:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _080E812C
- movs r0, 0
-_080E81B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80E810C
-
- thumb_func_start sub_80E81C0
-sub_80E81C0: @ 80E81C0
- push {r4,lr}
- ldr r0, _080E81EC @ =gStringVar2
- ldr r4, _080E81F0 @ =0x02001000
- ldr r2, _080E81F4 @ =0x00009c7c
- adds r1, r4, r2
- ldrh r1, [r1]
- movs r2, 0
- bl sub_80EB218
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- ldr r1, _080E81F8 @ =0x00009c7e
- adds r4, r1
- ldrh r1, [r4]
- movs r2, 0
- bl sub_80EB218
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81EC: .4byte gStringVar2
-_080E81F0: .4byte 0x02001000
-_080E81F4: .4byte 0x00009c7c
-_080E81F8: .4byte 0x00009c7e
- thumb_func_end sub_80E81C0
-
- thumb_func_start sub_80E81FC
-sub_80E81FC: @ 80E81FC
- push {lr}
- movs r0, 0x5
- bl PlaySE
- bl sub_80E95A4
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80E81FC
-
- thumb_func_start sub_80E8218
-sub_80E8218: @ 80E8218
- push {r4,r5,lr}
- sub sp, 0x40
- mov r1, sp
- ldr r0, _080E8260 @ =gSpriteSheets_Interview
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldr r0, [r0]
- str r0, [r1]
- add r4, sp, 0x28
- adds r1, r4, 0
- ldr r0, _080E8264 @ =gSpritePalettes_Interview
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- bl sub_80E8268
- bl sub_80E8818
- bl sub_80E8A7C
- add sp, 0x40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8260: .4byte gSpriteSheets_Interview
-_080E8264: .4byte gSpritePalettes_Interview
- thumb_func_end sub_80E8218
-
- thumb_func_start sub_80E8268
-sub_80E8268: @ 80E8268
- push {lr}
- ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E82B4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080E82B8 @ =gUnknown_083DB694
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x8
- movs r2, 0
- strh r0, [r1, 0x22]
- adds r0, r3, 0
- adds r0, 0x88
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- strh r2, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r0, r3, 0
- adds r0, 0x98
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080E82B0: .4byte gSpriteTemplate_83DBBFC
-_080E82B4: .4byte gSprites
-_080E82B8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8268
-
- thumb_func_start sub_80E82BC
-sub_80E82BC: @ 80E82BC
- push {r4-r7,lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080E838C
- ldr r0, _080E8334 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x87
- ldrb r1, [r1]
- mov r12, r0
- cmp r1, 0
- beq _080E836C
- adds r0, r2, 0
- adds r0, 0x86
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r2, 0
- adds r0, 0x85
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r4, r0, 16
- movs r7, 0
- movs r1, 0
- cmp r7, r4
- bcs _080E8316
- lsls r6, r5, 1
- adds r2, 0x8C
-_080E8300:
- adds r0, r1, r6
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bcc _080E8300
-_080E8316:
- mov r0, r12
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _080E8338
- movs r0, 0x60
- strh r0, [r3, 0x22]
- lsls r0, r4, 3
- subs r0, r4
- adds r0, 0x3
- b _080E8356
- .align 2, 0
-_080E8334: .4byte gUnknown_083DB694
-_080E8338:
- adds r1, r2, 0
- adds r1, 0x8A
- lsls r0, r5, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 3
- adds r0, 0x8
- strh r0, [r3, 0x22]
- adds r0, r2, 0
- adds r0, 0x88
- ldrh r0, [r0]
- adds r0, r7
- movs r1, 0xB
- muls r1, r4
- adds r0, r1
-_080E8356:
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3, 0x20]
- movs r1, 0
- ldr r0, _080E8368 @ =0x0000fffa
- strh r0, [r3, 0x24]
- strh r1, [r3, 0x2E]
- b _080E838C
- .align 2, 0
-_080E8368: .4byte 0x0000fffa
-_080E836C:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E838C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x24]
- adds r0, 0x1
- strh r0, [r3, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E838C
- ldr r0, _080E8394 @ =0x0000fffa
- strh r0, [r3, 0x24]
-_080E838C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8394: .4byte 0x0000fffa
- thumb_func_end sub_80E82BC
-
- thumb_func_start sub_80E8398
-sub_80E8398: @ 80E8398
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- beq _080E83D4
- cmp r3, 0x1
- bgt _080E83AC
- cmp r3, 0
- beq _080E83B2
- b _080E8416
-_080E83AC:
- cmp r3, 0x2
- beq _080E83F8
- b _080E8416
-_080E83B2:
- ldr r0, _080E83D0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0x98
- ldr r1, [r0]
- strh r3, [r1, 0x30]
- ldr r1, [r0]
- strh r3, [r1, 0x24]
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83D0: .4byte gUnknown_083DB694
-_080E83D4:
- ldr r0, _080E83F4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r0, [r1]
- movs r2, 0
- strh r3, [r0, 0x30]
- ldr r0, [r1]
- strh r2, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- b _080E8414
- .align 2, 0
-_080E83F4: .4byte gUnknown_083DB694
-_080E83F8:
- ldr r0, _080E841C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0x98
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x1
- strh r0, [r2, 0x30]
- ldr r0, [r1]
- strh r3, [r0, 0x24]
- ldr r1, [r1]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
-_080E8414:
- strb r0, [r1]
-_080E8416:
- pop {r0}
- bx r0
- .align 2, 0
-_080E841C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8398
-
- thumb_func_start sub_80E8420
-sub_80E8420: @ 80E8420
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E84E4 @ =gUnknown_083DB694
- ldr r7, [r1]
- adds r5, r7, 0
- adds r5, 0x9C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r4, _080E84E8 @ =gSprites
- adds r1, r4
- str r1, [r5]
- ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C
- str r0, [sp, 0x8]
- ldr r0, _080E84F0 @ =sub_80E872C
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r6, r7, 0
- adds r6, 0xA0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r6]
- ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C
- str r0, [sp, 0x8]
- ldr r0, _080E84F8 @ =sub_80E8760
- str r0, [sp, 0x14]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r2, r7, 0
- adds r2, 0xA4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- str r1, [r2]
- ldr r0, [r5]
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r0, [r6]
- strh r1, [r0, 0x2E]
- ldr r0, [r2]
- strh r1, [r0, 0x2E]
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 20
- ldr r2, _080E84FC @ =0x00000101
- adds r0, r2
- strh r0, [r1, 0x34]
- bl sub_80E8534
- adds r1, r7, 0
- adds r1, 0x96
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080E8500 @ =REG_BLDCNT
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E84E0: .4byte gSpriteTemplate_83DBCAC
-_080E84E4: .4byte gUnknown_083DB694
-_080E84E8: .4byte gSprites
-_080E84EC: .4byte gSpriteAnimTable_83DBC8C
-_080E84F0: .4byte sub_80E872C
-_080E84F4: .4byte gSpriteAnimTable_83DBC9C
-_080E84F8: .4byte sub_80E8760
-_080E84FC: .4byte 0x00000101
-_080E8500: .4byte REG_BLDCNT
- thumb_func_end sub_80E8420
-
- thumb_func_start sub_80E8504
-sub_80E8504: @ 80E8504
- push {r4,lr}
- ldr r0, _080E8530 @ =gUnknown_083DB694
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x9C
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0
- adds r0, 0xA4
- ldr r0, [r0]
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8530: .4byte gUnknown_083DB694
- thumb_func_end sub_80E8504
-
- thumb_func_start sub_80E8534
-sub_80E8534: @ 80E8534
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _080E8554 @ =gUnknown_083DB694
- ldr r3, [r1]
- ldr r2, _080E8558 @ =0x000001b7
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r4, r1, 0
- cmp r0, 0
- beq _080E8560
- ldr r1, _080E855C @ =gUnknown_020388AC
- movs r0, 0x1
- b _080E8598
- .align 2, 0
-_080E8554: .4byte gUnknown_083DB694
-_080E8558: .4byte 0x000001b7
-_080E855C: .4byte gUnknown_020388AC
-_080E8560:
- adds r0, r3, 0
- adds r0, 0x26
- ldrb r2, [r0]
- cmp r2, 0
- bne _080E8578
- ldr r0, _080E8574 @ =gUnknown_020388AC
- strb r2, [r0]
- adds r7, r0, 0
- b _080E859C
- .align 2, 0
-_080E8574: .4byte gUnknown_020388AC
-_080E8578:
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _080E8594
- ldr r1, _080E8590 @ =gUnknown_020388AC
- movs r0, 0x2
- b _080E8598
- .align 2, 0
-_080E8590: .4byte gUnknown_020388AC
-_080E8594:
- ldr r1, _080E85F4 @ =gUnknown_020388AC
- movs r0, 0x3
-_080E8598:
- strb r0, [r1]
- adds r7, r1, 0
-_080E859C:
- ldr r2, [r4]
- adds r4, r2, 0
- adds r4, 0x9C
- ldr r1, [r4]
- ldrb r0, [r7]
- movs r3, 0
- mov r8, r3
- strh r0, [r1, 0x32]
- adds r5, r2, 0
- adds r5, 0xA0
- ldr r1, [r5]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- adds r6, r2, 0
- adds r6, 0xA4
- ldr r1, [r6]
- ldrb r0, [r7]
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r5]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r6]
- ldrb r1, [r7]
- bl StartSpriteAnim
- ldr r0, [r4]
- movs r1, 0x8
- strh r1, [r0, 0x38]
- ldr r0, [r4]
- strh r1, [r0, 0x3A]
- ldr r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E85F4: .4byte gUnknown_020388AC
- thumb_func_end sub_80E8534
-
- thumb_func_start sub_80E85F8
-sub_80E85F8: @ 80E85F8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080E8624
- ldr r1, _080E8620 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r0, 0x8
- strh r0, [r5, 0x38]
- b _080E863A
- .align 2, 0
-_080E8620: .4byte gSineTable
-_080E8624:
- ldr r1, _080E8688 @ =gSineTable
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 21
- movs r0, 0x8
- subs r0, r1
- strh r0, [r5, 0x3A]
-_080E863A:
- ldrh r0, [r5, 0x30]
- adds r0, 0x5
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x30]
- ldr r2, _080E868C @ =REG_BLDALPHA
- ldrh r0, [r5, 0x3A]
- lsls r0, 8
- ldrh r1, [r5, 0x38]
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080E8690 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E871A
- bl sub_80E8534
- adds r1, r6, 0
- adds r1, 0x9C
- ldr r0, [r1]
- movs r2, 0x8
- strh r2, [r0, 0x38]
- ldr r0, [r1]
- strh r2, [r0, 0x3A]
- ldr r1, [r1]
- movs r0, 0
- strh r0, [r1, 0x30]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080E86C4
- cmp r0, 0x1
- bgt _080E8694
- cmp r0, 0
- beq _080E869E
- b _080E871A
- .align 2, 0
-_080E8688: .4byte gSineTable
-_080E868C: .4byte REG_BLDALPHA
-_080E8690: .4byte gUnknown_083DB694
-_080E8694:
- cmp r0, 0x2
- beq _080E86D6
- cmp r0, 0x3
- beq _080E86DE
- b _080E871A
-_080E869E:
- ldr r2, _080E86C0 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x20
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r2, 0xC
- b _080E870A
- .align 2, 0
-_080E86C0: .4byte 0x000001a9
-_080E86C4:
- movs r0, 0xD8
- strh r0, [r5, 0x20]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- b _080E8714
-_080E86D6:
- movs r0, 0x97
- strh r0, [r5, 0x20]
- movs r0, 0x60
- b _080E8718
-_080E86DE:
- ldr r4, _080E8720 @ =gUnknown_083DBCC4
- ldr r2, _080E8724 @ =0x000001a9
- adds r0, r6, r2
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xD4
- lsls r0, 1
- adds r3, r6, r0
- movs r2, 0
- ldrsb r2, [r3, r2]
- lsls r0, r2, 3
- subs r0, r2
- adds r1, r0
- adds r1, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 3
- adds r0, 0x1F
- strh r0, [r5, 0x20]
- movs r0, 0
- ldrsb r0, [r3, r0]
- ldr r2, _080E8728 @ =0x000001b5
-_080E870A:
- adds r1, r6, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
-_080E8714:
- lsls r0, 4
- adds r0, 0x60
-_080E8718:
- strh r0, [r5, 0x22]
-_080E871A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8720: .4byte gUnknown_083DBCC4
-_080E8724: .4byte 0x000001a9
-_080E8728: .4byte 0x000001b5
- thumb_func_end sub_80E85F8
-
- thumb_func_start sub_80E872C
-sub_80E872C: @ 80E872C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E875C @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8756
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _080E8756
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E8756:
- pop {r0}
- bx r0
- .align 2, 0
-_080E875C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E872C
-
- thumb_func_start sub_80E8760
-sub_80E8760: @ 80E8760
- push {lr}
- adds r2, r0, 0
- ldr r0, _080E8780 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x96
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E879E
- movs r3, 0x32
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080E8784
- cmp r0, 0x2
- beq _080E878E
- b _080E879E
- .align 2, 0
-_080E8780: .4byte gUnknown_083DB694
-_080E8784:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x40
- b _080E8796
-_080E878E:
- adds r1, 0x9C
- ldr r0, [r1]
- ldrh r0, [r0, 0x20]
- adds r0, 0x15
-_080E8796:
- strh r0, [r2, 0x20]
- ldr r0, [r1]
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x22]
-_080E879E:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8760
-
- thumb_func_start sub_80E87A4
-sub_80E87A4: @ 80E87A4
- push {r4,lr}
- lsls r0, 24
- ldr r1, _080E87C8 @ =gUnknown_083DB694
- ldr r1, [r1]
- adds r2, r1, 0
- adds r2, 0xA8
- ldr r3, [r2]
- movs r4, 0
- cmp r0, 0
- bne _080E87BA
- movs r4, 0x1
-_080E87BA:
- movs r1, 0
- strh r4, [r3, 0x30]
- ldr r0, [r2]
- strh r1, [r0, 0x24]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E87C8: .4byte gUnknown_083DB694
- thumb_func_end sub_80E87A4
-
- thumb_func_start sub_80E87CC
-sub_80E87CC: @ 80E87CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E8810 @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0xA8
- ldr r0, [r0]
- movs r3, 0
- cmp r4, 0
- bne _080E87E6
- movs r3, 0x1
-_080E87E6:
- adds r2, r0, 0
- adds r2, 0x3E
- lsls r3, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- adds r0, r4, 0
- bl sub_80E87A4
- cmp r4, 0
- beq _080E880A
- ldr r0, _080E8814 @ =0x000001b9
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
-_080E880A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8810: .4byte gUnknown_083DB694
-_080E8814: .4byte 0x000001b9
- thumb_func_end sub_80E87CC
-
- thumb_func_start sub_80E8818
-sub_80E8818: @ 80E8818
- push {lr}
- ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080E8854 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r0, [r1, 0x30]
- ldr r0, _080E8858 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xA8
- str r1, [r0]
- ldr r0, _080E885C @ =sub_80E8860
- str r0, [r1, 0x1C]
- movs r0, 0
- bl sub_80E87CC
- pop {r0}
- bx r0
- .align 2, 0
-_080E8850: .4byte gSpriteTemplate_83DBBFC
-_080E8854: .4byte gSprites
-_080E8858: .4byte gUnknown_083DB694
-_080E885C: .4byte sub_80E8860
- thumb_func_end sub_80E8818
-
- thumb_func_start sub_80E8860
-sub_80E8860: @ 80E8860
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r4, [r2, r0]
- cmp r4, 0
- bne _080E88E4
- ldr r0, _080E88B0 @ =gUnknown_083DB694
- ldr r3, [r0]
- ldr r1, _080E88B4 @ =0x000001b9
- adds r0, r3, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _080E88C4
- ldr r5, _080E88B8 @ =0x000099a5
- adds r0, r3, r5
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, 0x2C
- strh r0, [r2, 0x20]
- ldr r1, _080E88BC @ =0x000099a4
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r5, 0x84
- adds r1, r3, r5
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- subs r0, r1
- lsls r0, 4
- adds r0, 0x60
- strh r0, [r2, 0x22]
- ldr r0, _080E88C0 @ =0x0000fffa
- strh r0, [r2, 0x24]
- strh r4, [r2, 0x2E]
- b _080E88E4
- .align 2, 0
-_080E88B0: .4byte gUnknown_083DB694
-_080E88B4: .4byte 0x000001b9
-_080E88B8: .4byte 0x000099a5
-_080E88BC: .4byte 0x000099a4
-_080E88C0: .4byte 0x0000fffa
-_080E88C4:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _080E88E4
- strh r1, [r2, 0x2E]
- ldrh r0, [r2, 0x24]
- adds r0, 0x1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _080E88E4
- ldr r0, _080E88EC @ =0x0000fffa
- strh r0, [r2, 0x24]
-_080E88E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88EC: .4byte 0x0000fffa
- thumb_func_end sub_80E8860
-
- thumb_func_start sub_80E88F0
-sub_80E88F0: @ 80E88F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r0, _080E8950 @ =gUnknown_083DB694
- mov r8, r0
- ldr r0, [r0]
- movs r6, 0x4
- movs r5, 0
- movs r1, 0xB4
- adds r1, r0
- mov r12, r1
- adds r7, r0, 0
- adds r7, 0xAC
-_080E890C:
- lsls r2, r4, 2
- adds r3, r7, r2
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r3]
- strh r5, [r0, 0x30]
- add r2, r12
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- ldr r0, [r2]
- strh r5, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E890C
- mov r1, r8
- ldr r0, [r1]
- ldr r1, _080E8954 @ =0x00009c70
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8950: .4byte gUnknown_083DB694
-_080E8954: .4byte 0x00009c70
- thumb_func_end sub_80E88F0
-
- thumb_func_start sub_80E8958
-sub_80E8958: @ 80E8958
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _080E89B4
- movs r0, 0x64
- mov r9, r0
- ldr r0, _080E8998 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E899C @ =0x00009c6c
- adds r1, r2, r3
- ldr r3, _080E89A0 @ =0x000001b5
- adds r0, r2, r3
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E89A8
- movs r1, 0xDB
- lsls r1, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E89A4 @ =0x00009c71
- adds r1, r2, r3
- strb r0, [r1]
- b _080E8A00
- .align 2, 0
-_080E8998: .4byte gUnknown_083DB694
-_080E899C: .4byte 0x00009c6c
-_080E89A0: .4byte 0x000001b5
-_080E89A4: .4byte 0x00009c71
-_080E89A8:
- ldr r1, _080E89B0 @ =0x00009c71
- adds r0, r2, r1
- strb r7, [r0]
- b _080E8A00
- .align 2, 0
-_080E89B0: .4byte 0x00009c71
-_080E89B4:
- movs r3, 0x78
- mov r9, r3
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8A68 @ =0x00009c6c
- adds r1, r2, r0
- ldr r3, _080E8A6C @ =0x00009a29
- adds r0, r2, r3
- str r0, [r1]
- ldr r1, _080E8A70 @ =0x00009a28
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x4
- ldr r3, _080E8A74 @ =0x00009c71
- adds r1, r2, r3
- strb r0, [r1]
- movs r4, 0
- adds r5, r2, 0
- adds r5, 0xB4
- movs r0, 0x5
- negs r0, r0
- mov r12, r0
- movs r6, 0x1
-_080E89E2:
- lsls r3, r4, 2
- adds r3, r5, r3
- ldr r1, [r3]
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- strh r6, [r0, 0x30]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E89E2
-_080E8A00:
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r3, _080E8A74 @ =0x00009c71
- adds r1, r2, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E8A14
- movs r0, 0
- strb r0, [r1]
-_080E8A14:
- movs r4, 0
- adds r6, r2, 0
- adds r6, 0xAC
- movs r0, 0x5
- negs r0, r0
- mov r8, r0
-_080E8A20:
- lsls r2, r4, 2
- adds r2, r6, r2
- ldr r0, [r2]
- mov r1, r9
- strh r1, [r0, 0x20]
- ldr r1, [r2]
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r2]
- movs r5, 0x1
- strh r5, [r0, 0x30]
- ldr r0, [r2]
- adds r1, r7, 0
- bl StartSpriteAnim
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E8A20
- ldr r0, _080E8A64 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8A78 @ =0x00009c70
- adds r0, r1
- strb r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A64: .4byte gUnknown_083DB694
-_080E8A68: .4byte 0x00009c6c
-_080E8A6C: .4byte 0x00009a29
-_080E8A70: .4byte 0x00009a28
-_080E8A74: .4byte 0x00009c71
-_080E8A78: .4byte 0x00009c70
- thumb_func_end sub_80E8958
-
- thumb_func_start sub_80E8A7C
-sub_80E8A7C: @ 80E8A7C
- push {r4-r7,lr}
- sub sp, 0x18
- mov r1, sp
- ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- movs r5, 0
-_080E8A8E:
- lsls r2, r5, 3
- adds r2, r5
- lsls r2, 19
- movs r0, 0xA8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- mov r0, sp
- movs r1, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- lsls r0, r5, 2
- adds r2, 0xAC
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- adds r3, 0x3F
- movs r0, 0x1
- adds r2, r5, 0
- ands r2, r0
- lsls r2, 1
- ldrb r0, [r3]
- movs r4, 0x3
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8A8E
- mov r0, sp
- movs r1, 0x3
- strh r1, [r0]
- ldr r0, _080E8B74 @ =gUnknown_083DBD10
- str r0, [sp, 0x8]
- movs r5, 0
- movs r7, 0x3F
- movs r6, 0x40
-_080E8AF6:
- lsls r4, r5, 2
- adds r1, r4, r5
- lsls r1, 19
- movs r0, 0x8E
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- mov r0, sp
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080E8B6C @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r2, 0xB4
- adds r2, r4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8B70 @ =gSprites
- adds r0, r1
- str r0, [r2]
- strh r5, [r0, 0x2E]
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x1]
- ldr r3, [r2]
- ldrb r1, [r3, 0x3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r6
- strb r0, [r3, 0x3]
- ldr r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080E8AF6
- movs r0, 0
- bl sub_80E8958
- bl sub_80E88F0
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B68: .4byte gSpriteTemplate_83DBD18
-_080E8B6C: .4byte gUnknown_083DB694
-_080E8B70: .4byte gSprites
-_080E8B74: .4byte gUnknown_083DBD10
- thumb_func_end sub_80E8A7C
-
- thumb_func_start sub_80E8B78
-sub_80E8B78: @ 80E8B78
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080E8BB0 @ =gUnknown_083DB694
- ldr r1, [r0]
- ldr r2, _080E8BB4 @ =0x00009c70
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080E8BE8
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _080E8BBC
- movs r4, 0
- ldr r2, _080E8BB8 @ =0x00009c6c
- adds r0, r1, r2
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080E8BD6
- b _080E8BD4
- .align 2, 0
-_080E8BB0: .4byte gUnknown_083DB694
-_080E8BB4: .4byte 0x00009c70
-_080E8BB8: .4byte 0x00009c6c
-_080E8BBC:
- movs r4, 0
- ldr r2, _080E8BF0 @ =0x00009c6c
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x5
- adds r1, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bne _080E8BD6
-_080E8BD4:
- movs r4, 0x1
-_080E8BD6:
- adds r2, r3, 0
- adds r2, 0x3E
- lsls r3, r4, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_080E8BE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8BF0: .4byte 0x00009c6c
- thumb_func_end sub_80E8B78
-
- thumb_func_start sub_80E8BF4
-sub_80E8BF4: @ 80E8BF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, _080E8C28 @ =gUnknown_083DBD30
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- ldr r0, _080E8C2C @ =gUnknown_083DBD38
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- cmp r2, 0x2
- beq _080E8C20
- cmp r2, 0x5
- beq _080E8C30
-_080E8C20:
- movs r4, 0x40
- movs r5, 0x28
- b _080E8C34
- .align 2, 0
-_080E8C28: .4byte gUnknown_083DBD30
-_080E8C2C: .4byte gUnknown_083DBD38
-_080E8C30:
- movs r4, 0x24
- movs r5, 0x30
-_080E8C34:
- cmp r3, 0
- beq _080E8C3C
- cmp r3, 0x1
- beq _080E8C40
-_080E8C3C:
- movs r0, 0x43
- b _080E8C42
-_080E8C40:
- movs r0, 0x44
-_080E8C42:
- mov r8, r0
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- add r0, sp, 0xC
- bl LoadSpritePalette
- ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateSprite
- ldr r0, _080E8CE0 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x69
- cmp r0, 0
- bne _080E8C68
- movs r1, 0x64
-_080E8C68:
- ldr r7, _080E8CE4 @ =SpriteCallbackDummy
- adds r2, r4, 0
- subs r2, 0xC
- movs r6, 0
- str r6, [sp]
- adds r0, r1, 0
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8C9E
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x3
- bl StartSpriteAnim
-_080E8C9E:
- adds r2, r4, 0
- adds r2, 0xC
- str r6, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r3, r5, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E8CD0
- ldr r1, _080E8CE8 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8CD0:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8CDC: .4byte gSpriteTemplate_83DBD48
-_080E8CE0: .4byte gSaveBlock2
-_080E8CE4: .4byte SpriteCallbackDummy
-_080E8CE8: .4byte gSprites
- thumb_func_end sub_80E8BF4
-
- thumb_func_start sub_80E8CEC
-sub_80E8CEC: @ 80E8CEC
- push {lr}
- ldr r0, _080E8D24 @ =gUnknown_083DBD60
- bl LoadCompressedObjectPic
- ldr r0, _080E8D28 @ =gUnknown_083DBD68
- bl LoadSpritePalette
- ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4
- movs r1, 0xE0
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080E8D3C
- ldr r0, _080E8D30 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E8D34 @ =0x00009c74
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E8D38 @ =gSprites
- adds r0, r1
- str r0, [r2]
- b _080E8D48
- .align 2, 0
-_080E8D24: .4byte gUnknown_083DBD60
-_080E8D28: .4byte gUnknown_083DBD68
-_080E8D2C: .4byte gSpriteTemplate_83DBDE4
-_080E8D30: .4byte gUnknown_083DB694
-_080E8D34: .4byte 0x00009c74
-_080E8D38: .4byte gSprites
-_080E8D3C:
- ldr r0, _080E8D4C @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E8D50 @ =0x00009c74
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_080E8D48:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8D4C: .4byte gUnknown_083DB694
-_080E8D50: .4byte 0x00009c74
- thumb_func_end sub_80E8CEC
-
- thumb_func_start sub_80E8D54
-sub_80E8D54: @ 80E8D54
- push {lr}
- ldr r0, _080E8D78 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8D7C @ =0x00009c74
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8D88
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8D80
- adds r0, r1, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _080E8D88
- .align 2, 0
-_080E8D78: .4byte gUnknown_083DB694
-_080E8D7C: .4byte 0x00009c74
-_080E8D80:
- adds r0, r1, 0
- movs r1, 0x2
- bl StartSpriteAnim
-_080E8D88:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D54
-
- thumb_func_start sub_80E8D8C
-sub_80E8D8C: @ 80E8D8C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080E8DB8 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r1, _080E8DBC @ =0x00009c74
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080E8DD2
- cmp r3, 0
- beq _080E8DCA
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E8DC0
- adds r0, r1, 0
- movs r1, 0x3
- bl StartSpriteAnim
- b _080E8DD2
- .align 2, 0
-_080E8DB8: .4byte gUnknown_083DB694
-_080E8DBC: .4byte 0x00009c74
-_080E8DC0:
- adds r0, r1, 0
- movs r1, 0x4
- bl StartSpriteAnim
- b _080E8DD2
-_080E8DCA:
- adds r0, r1, 0
- movs r1, 0x5
- bl StartSpriteAnim
-_080E8DD2:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8D8C
-
- thumb_func_start sub_80E8DD8
-sub_80E8DD8: @ 80E8DD8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- ldr r0, _080E8F2C @ =REG_BG0HOFS
- movs r6, 0
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- subs r0, 0x2
- strh r6, [r0]
- adds r0, 0x4
- strh r6, [r0]
- adds r0, 0x2
- strh r6, [r0]
- ldr r1, _080E8F30 @ =REG_BG0CNT
- movs r2, 0x8B
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080E8F34 @ =0x00000d09
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080E8F38 @ =gUnknown_08E945D0
- ldr r1, _080E8F3C @ =gUnknown_083DB694
- ldr r1, [r1]
- mov r8, r1
- movs r4, 0xE4
- lsls r4, 1
- add r4, r8
- movs r5, 0xA0
- lsls r5, 2
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F40 @ =gUnknown_08E953D0
- movs r1, 0xD9
- lsls r1, 3
- add r1, r8
- bl LZ77UnCompWram
- ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx
- ldr r1, _080E8F48 @ =0x06008000
- bl LZ77UnCompVram
- ldr r1, _080E8F4C @ =0x06006800
- adds r0, r4, 0
- adds r2, r5, 0
- bl CpuSet
- ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal
- movs r1, 0x40
- movs r2, 0x40
- bl LoadPalette
- ldr r1, _080E8F54 @ =REG_BG2CNT
- ldr r2, _080E8F58 @ =0x00000e02
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F5C @ =0x06007000
- movs r5, 0x80
- lsls r5, 4
- mov r0, sp
- strh r6, [r0]
- ldr r4, _080E8F60 @ =0x040000d4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r0, r5, 1
- movs r2, 0x81
- lsls r2, 24
- orrs r0, r2
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F64 @ =gUnknown_08E9AB00
- ldr r2, _080E8F68 @ =0x06006000
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _080E8F6C @ =0x80000020
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F70 @ =gUnknown_08E9AB60
- bl LZ77UnCompVram
- ldr r0, _080E8F74 @ =gUnknown_08E9AB40
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F78 @ =gUnknown_083DBDFC
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080E8F7C @ =REG_BG3CNT
- ldr r2, _080E8F80 @ =0x00000f0f
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080E8F84 @ =0x06007800
- movs r0, 0
- mov r9, r0
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r4]
- str r1, [r4, 0x4]
- lsrs r5, 2
- movs r0, 0x85
- lsls r0, 24
- orrs r5, r0
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080E8F88 @ =gUnknown_083DBE40
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080E8F8C @ =gPlttBufferUnfaded
- adds r1, r0, 0
- adds r1, 0x7E
- ldr r3, _080E8F90 @ =0x00007fff
- strh r3, [r1]
- subs r1, 0x1C
- ldr r2, _080E8F94 @ =0x00006f5b
- strh r2, [r1]
- adds r0, 0x70
- ldr r1, _080E8F98 @ =0x0000739c
- strh r1, [r0]
- ldr r0, _080E8F9C @ =gPlttBufferFaded
- adds r4, r0, 0
- adds r4, 0x7E
- strh r3, [r4]
- adds r3, r0, 0
- adds r3, 0x62
- strh r2, [r3]
- adds r0, 0x70
- strh r1, [r0]
- movs r1, 0xBC
- add r8, r1
- mov r2, r8
- strb r6, [r2]
- bl sub_80E8FA4
- bl sub_80E948C
- movs r0, 0xA
- bl sub_80E9198
- movs r0, 0
- bl sub_80E91D4
- bl sub_80E95A4
- ldr r0, _080E8FA0 @ =REG_BLDCNT
- mov r1, r9
- strh r1, [r0]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8F2C: .4byte REG_BG0HOFS
-_080E8F30: .4byte REG_BG0CNT
-_080E8F34: .4byte 0x00000d09
-_080E8F38: .4byte gUnknown_08E945D0
-_080E8F3C: .4byte gUnknown_083DB694
-_080E8F40: .4byte gUnknown_08E953D0
-_080E8F44: .4byte gMenuWordGroupFrame_Gfx
-_080E8F48: .4byte 0x06008000
-_080E8F4C: .4byte 0x06006800
-_080E8F50: .4byte gMenuWordGroupFrame1_Pal
-_080E8F54: .4byte REG_BG2CNT
-_080E8F58: .4byte 0x00000e02
-_080E8F5C: .4byte 0x06007000
-_080E8F60: .4byte 0x040000d4
-_080E8F64: .4byte gUnknown_08E9AB00
-_080E8F68: .4byte 0x06006000
-_080E8F6C: .4byte 0x80000020
-_080E8F70: .4byte gUnknown_08E9AB60
-_080E8F74: .4byte gUnknown_08E9AB40
-_080E8F78: .4byte gUnknown_083DBDFC
-_080E8F7C: .4byte REG_BG3CNT
-_080E8F80: .4byte 0x00000f0f
-_080E8F84: .4byte 0x06007800
-_080E8F88: .4byte gUnknown_083DBE40
-_080E8F8C: .4byte gPlttBufferUnfaded
-_080E8F90: .4byte 0x00007fff
-_080E8F94: .4byte 0x00006f5b
-_080E8F98: .4byte 0x0000739c
-_080E8F9C: .4byte gPlttBufferFaded
-_080E8FA0: .4byte REG_BLDCNT
- thumb_func_end sub_80E8DD8
-
- thumb_func_start sub_80E8FA4
-sub_80E8FA4: @ 80E8FA4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x24]
- add r2, sp, 0xC
- mov r12, r2
-_080E8FBE:
- mov r3, r9
- lsls r1, r3, 1
- ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2
- adds r0, r1, r4
- ldrh r2, [r0]
- movs r0, 0x1F
- ands r0, r2
- lsls r0, 8
- str r0, [sp]
- ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8
- adds r1, r5
- ldrh r1, [r1]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0xC]
- lsls r2, 16
- lsrs r0, r2, 21
- movs r3, 0x1F
- ands r0, r3
- lsls r0, 8
- str r0, [sp, 0x4]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r3
- lsls r0, 8
- mov r4, r12
- str r0, [r4, 0x4]
- lsrs r2, 26
- ands r2, r3
- lsls r2, 8
- str r2, [sp, 0x8]
- lsrs r1, 26
- ands r1, r3
- lsls r1, 8
- str r1, [r4, 0x8]
- movs r3, 0
- mov r5, r9
- lsls r5, 3
- mov r10, r5
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x28]
- ldr r4, [sp, 0x24]
-_080E9016:
- lsls r0, r3, 2
- adds r2, r4, r0
- mov r5, r12
- adds r1, r5, r0
- add r0, sp
- ldr r1, [r1]
- ldr r0, [r0]
- subs r0, r1, r0
- cmp r0, 0
- bge _080E902C
- adds r0, 0x7
-_080E902C:
- asrs r0, 3
- str r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9016
- movs r4, 0
- ldr r0, _080E90FC @ =gUnknown_083DB694
- ldr r1, [r0]
- mov r0, r10
- add r0, r9
- lsls r0, 1
- mov r8, r0
- movs r5, 0x1F
- ldr r6, [sp, 0x24]
- ldr r0, _080E9100 @ =0x00009c34
- adds r7, r1, r0
-_080E9050:
- lsls r2, r4, 1
- add r2, r8
- adds r2, r7, r2
- ldr r1, [sp, 0x8]
- asrs r1, 8
- ands r1, r5
- lsls r1, 10
- ldr r0, [sp, 0x4]
- asrs r0, 8
- ands r0, r5
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp]
- asrs r0, 8
- ands r0, r5
- orrs r1, r0
- strh r1, [r2]
- movs r3, 0
- adds r4, 0x1
-_080E9076:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- adds r0, r6, r0
- ldr r1, [r2]
- ldr r0, [r0]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x2
- bls _080E9076
- lsls r0, r4, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080E9050
- ldr r2, _080E90FC @ =gUnknown_083DB694
- ldr r3, [r2]
- mov r0, r10
- add r0, r9
- adds r0, r4
- lsls r0, 1
- ldr r4, _080E9100 @ =0x00009c34
- adds r2, r3, r4
- adds r2, r0
- mov r5, r12
- ldr r1, [r5, 0x8]
- asrs r1, 8
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 10
- ldr r0, [r5, 0x4]
- asrs r0, 8
- movs r4, 0x1F
- ands r0, r4
- lsls r0, 5
- orrs r1, r0
- ldr r0, [sp, 0xC]
- asrs r0, 8
- ands r0, r4
- orrs r1, r0
- strh r1, [r2]
- ldr r5, [sp, 0x28]
- lsls r0, r5, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x2
- bhi _080E90DA
- b _080E8FBE
-_080E90DA:
- ldr r0, _080E9104 @ =0x00009c32
- adds r1, r3, r0
- movs r0, 0
- strb r0, [r1]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2
-_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8
-_080E90FC: .4byte gUnknown_083DB694
-_080E9100: .4byte 0x00009c34
-_080E9104: .4byte 0x00009c32
- thumb_func_end sub_80E8FA4
-
- thumb_func_start sub_80E9108
-sub_80E9108: @ 80E9108
- push {r4-r7,lr}
- lsls r0, 24
- ldr r1, _080E9164 @ =gUnknown_083DB694
- ldr r2, [r1]
- ldr r3, _080E9168 @ =0x00009c32
- adds r1, r2, r3
- lsrs r0, 24
- ldrb r3, [r1]
- adds r0, r3
- strb r0, [r1]
- movs r4, 0
- ldr r0, _080E916C @ =gPlttBufferUnfaded
- mov r12, r0
- adds r6, r1, 0
- ldr r3, _080E9170 @ =0x00009c34
- adds r5, r2, r3
- ldr r7, _080E9174 @ =gPlttBufferFaded
-_080E912A:
- adds r2, r4, 0
- adds r2, 0x51
- lsls r2, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r0, [r6]
- lsls r0, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r3]
- adds r2, r7
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080E912A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9164: .4byte gUnknown_083DB694
-_080E9168: .4byte 0x00009c32
-_080E916C: .4byte gPlttBufferUnfaded
-_080E9170: .4byte 0x00009c34
-_080E9174: .4byte gPlttBufferFaded
- thumb_func_end sub_80E9108
-
- thumb_func_start sub_80E9178
-sub_80E9178: @ 80E9178
- push {lr}
- ldr r0, _080E9190 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9194 @ =0x00009c32
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0
- bl sub_80E9108
- pop {r0}
- bx r0
- .align 2, 0
-_080E9190: .4byte gUnknown_083DB694
-_080E9194: .4byte 0x00009c32
- thumb_func_end sub_80E9178
-
- thumb_func_start sub_80E9198
-sub_80E9198: @ 80E9198
- ldr r1, _080E91A0 @ =gUnknown_03000740
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080E91A0: .4byte gUnknown_03000740
- thumb_func_end sub_80E9198
-
- thumb_func_start sub_80E91A4
-sub_80E91A4: @ 80E91A4
- ldr r0, _080E91AC @ =gUnknown_03000740
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080E91AC: .4byte gUnknown_03000740
- thumb_func_end sub_80E91A4
-
- thumb_func_start sub_80E91B0
-sub_80E91B0: @ 80E91B0
- push {lr}
- sub sp, 0x8
- lsls r2, 24
- lsls r1, 27
- lsrs r1, 24
- lsrs r2, 21
- lsls r3, 27
- lsrs r3, 24
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- movs r3, 0xB0
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_80E91B0
-
- thumb_func_start sub_80E91D4
-sub_80E91D4: @ 80E91D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080E91FC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- cmp r4, 0xA
- bne _080E9200
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0xA
- bl sub_80E9198
- b _080E935C
- .align 2, 0
-_080E91FC: .4byte gWindowConfig_81E6DA8
-_080E9200:
- bl sub_80E91A4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _080E9218
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080E9218:
- adds r0, r4, 0
- bl sub_80E9198
- cmp r4, 0x9
- bls _080E9224
- b _080E935C
-_080E9224:
- lsls r0, r4, 2
- ldr r1, _080E9230 @ =_080E9234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9230: .4byte _080E9234
- .align 2, 0
-_080E9234:
- .4byte _080E925C
- .4byte _080E9284
- .4byte _080E92AC
- .4byte _080E92C4
- .4byte _080E92F0
- .4byte _080E9308
- .4byte _080E9310
- .4byte _080E9318
- .4byte _080E933C
- .4byte _080E9350
-_080E925C:
- ldr r0, _080E9278 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E927C @ =0x00009c80
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9280 @ =0x00009cc9
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E9278: .4byte gUnknown_083DB694
-_080E927C: .4byte 0x00009c80
-_080E9280: .4byte 0x00009cc9
-_080E9284:
- ldr r0, _080E92A0 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r1, _080E92A4 @ =0x00009d12
- adds r0, r4, r1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92A8 @ =0x00009d5b
- adds r4, r0
- adds r0, r4, 0
- b _080E9326
- .align 2, 0
-_080E92A0: .4byte gUnknown_083DB694
-_080E92A4: .4byte 0x00009d12
-_080E92A8: .4byte 0x00009d5b
-_080E92AC:
- ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2
- b _080E9326
- .align 2, 0
-_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
-_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
-_080E92C4:
- ldr r0, _080E92D8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x4
- beq _080E92E0
- cmp r0, 0x9
- bne _080E92E8
- ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo
- b _080E933E
- .align 2, 0
-_080E92D8: .4byte gUnknown_083DB694
-_080E92DC: .4byte gOtherText_QuitGivingInfo
-_080E92E0:
- ldr r0, _080E92E4 @ =gOtherText_StopGivingMail
- b _080E933E
- .align 2, 0
-_080E92E4: .4byte gOtherText_StopGivingMail
-_080E92E8:
- ldr r0, _080E92EC @ =gOtherText_QuitEditing
- b _080E933E
- .align 2, 0
-_080E92EC: .4byte gOtherText_QuitEditing
-_080E92F0:
- ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2
- b _080E9326
- .align 2, 0
-_080E9300: .4byte gOtherText_EditedTextNoSavePage1
-_080E9304: .4byte gOtherText_EditedTextNoSavePage2
-_080E9308:
- ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord
- b _080E933E
- .align 2, 0
-_080E930C: .4byte gOtherText_EnterAPhraseOrWord
-_080E9310:
- ldr r0, _080E9314 @ =gOtherText_TextNoDelete
- b _080E933E
- .align 2, 0
-_080E9314: .4byte gOtherText_TextNoDelete
-_080E9318:
- ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x2
- bl sub_80E91B0
- ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored
-_080E9326:
- movs r1, 0x4
- movs r2, 0x11
- movs r3, 0x2
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E9334: .4byte gOtherText_OnlyOnePhrase
-_080E9338: .4byte gOtherText_OriginalSongRestored
-_080E933C:
- ldr r0, _080E934C @ =gOtherText_TrendyAlready
-_080E933E:
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
- b _080E935C
- .align 2, 0
-_080E934C: .4byte gOtherText_TrendyAlready
-_080E9350:
- ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases
- movs r1, 0x4
- movs r2, 0xF
- movs r3, 0x4
- bl sub_80E91B0
-_080E935C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9364: .4byte gOtherText_CombineTwoPhrases
- thumb_func_end sub_80E91D4
-
- thumb_func_start sub_80E9368
-sub_80E9368: @ 80E9368
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080E93F8
- lsls r0, 2
- ldr r1, _080E937C @ =_080E9380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E937C: .4byte _080E9380
- .align 2, 0
-_080E9380:
- .4byte _080E93B8
- .4byte _080E93C0
- .4byte _080E93C8
- .4byte _080E93D0
- .4byte _080E93F8
- .4byte _080E93E8
- .4byte _080E93D8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E0
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93E8
- .4byte _080E93F0
-_080E93B8:
- ldr r4, _080E93BC @ =gOtherText_Profile
- b _080E93FA
- .align 2, 0
-_080E93BC: .4byte gOtherText_Profile
-_080E93C0:
- ldr r4, _080E93C4 @ =gOtherText_AtBattleStart
- b _080E93FA
- .align 2, 0
-_080E93C4: .4byte gOtherText_AtBattleStart
-_080E93C8:
- ldr r4, _080E93CC @ =gOtherText_UponWinningBattle
- b _080E93FA
- .align 2, 0
-_080E93CC: .4byte gOtherText_UponWinningBattle
-_080E93D0:
- ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle
- b _080E93FA
- .align 2, 0
-_080E93D4: .4byte gOtherText_UponLosingBattle
-_080E93D8:
- ldr r4, _080E93DC @ =gOtherText_TheBardsSong
- b _080E93FA
- .align 2, 0
-_080E93DC: .4byte gOtherText_TheBardsSong
-_080E93E0:
- ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening
- b _080E93FA
- .align 2, 0
-_080E93E4: .4byte gOtherText_WhatsHipHappening
-_080E93E8:
- ldr r4, _080E93EC @ =gOtherText_Interview
- b _080E93FA
- .align 2, 0
-_080E93EC: .4byte gOtherText_Interview
-_080E93F0:
- ldr r4, _080E93F4 @ =gOtherText_GoodSaying
- b _080E93FA
- .align 2, 0
-_080E93F4: .4byte gOtherText_GoodSaying
-_080E93F8:
- movs r4, 0
-_080E93FA:
- ldr r0, _080E943C @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9440 @ =gUnknown_083DB694
- ldr r2, [r0]
- ldr r0, _080E9444 @ =0x00009f8e
- adds r5, r2, r0
- movs r3, 0xFC
- strb r3, [r5]
- adds r0, 0x1
- adds r1, r2, r0
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080E9448 @ =0x00009f90
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- cmp r4, 0
- beq _080E9450
- ldr r1, _080E944C @ =0x00009f91
- adds r0, r2, r1
- adds r1, r4, 0
- movs r2, 0xF0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- b _080E9476
- .align 2, 0
-_080E943C: .4byte gWindowConfig_81E6D8C
-_080E9440: .4byte gUnknown_083DB694
-_080E9444: .4byte 0x00009f8e
-_080E9448: .4byte 0x00009f90
-_080E944C: .4byte 0x00009f91
-_080E9450:
- ldr r0, _080E9484 @ =0x00009f91
- adds r1, r2, r0
- strb r3, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x1C
- movs r2, 0
- bl MenuPrint
-_080E9476:
- ldr r0, _080E9488 @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9484: .4byte 0x00009f91
-_080E9488: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9368
-
- thumb_func_start sub_80E948C
-sub_80E948C: @ 80E948C
- push {lr}
- sub sp, 0x10
- ldr r0, _080E94A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bls _080E949C
- b _080E9594
-_080E949C:
- lsls r0, 2
- ldr r1, _080E94AC @ =_080E94B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E94A8: .4byte gUnknown_083DB694
-_080E94AC: .4byte _080E94B0
- .align 2, 0
-_080E94B0:
- .4byte _080E9508
- .4byte _080E9530
- .4byte _080E9554
- .4byte _080E9578
- .4byte _080E94C8
- .4byte _080E94E8
-_080E94C8:
- ldr r0, _080E94E0 @ =0x06006800
- ldr r3, _080E94E4 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1A
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x6
- str r1, [sp, 0xC]
- movs r1, 0x3
- b _080E9568
- .align 2, 0
-_080E94E0: .4byte 0x06006800
-_080E94E4: .4byte gUnknown_08E94AD0
-_080E94E8:
- ldr r0, _080E9500 @ =0x06006800
- ldr r3, _080E9504 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- movs r1, 0xD
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0xE
- b _080E951E
- .align 2, 0
-_080E9500: .4byte 0x06006800
-_080E9504: .4byte gUnknown_08E94AD0
-_080E9508:
- ldr r0, _080E9528 @ =0x06006800
- ldr r3, _080E952C @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0x8
- str r1, [sp, 0xC]
- movs r1, 0x2
-_080E951E:
- movs r2, 0x2
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9528: .4byte 0x06006800
-_080E952C: .4byte gUnknown_08E94AD0
-_080E9530:
- ldr r0, _080E954C @ =0x06006800
- ldr r3, _080E9550 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x1A
- str r1, [sp, 0x8]
- movs r1, 0xA
- str r1, [sp, 0xC]
- movs r1, 0x2
- movs r2, 0
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E954C: .4byte 0x06006800
-_080E9550: .4byte gUnknown_08E94AD0
-_080E9554:
- ldr r0, _080E9570 @ =0x06006800
- ldr r3, _080E9574 @ =gUnknown_08E94AD0
- movs r2, 0xD
- str r2, [sp]
- movs r1, 0x12
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0xE
-_080E9568:
- movs r2, 0x3
- bl sub_809D104
- b _080E9594
- .align 2, 0
-_080E9570: .4byte 0x06006800
-_080E9574: .4byte gUnknown_08E94AD0
-_080E9578:
- ldr r0, _080E959C @ =0x06006800
- ldr r3, _080E95A0 @ =gUnknown_08E94AD0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x18
- str r1, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- movs r1, 0x3
- movs r2, 0x2
- bl sub_809D104
-_080E9594:
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080E959C: .4byte 0x06006800
-_080E95A0: .4byte gUnknown_08E94AD0
- thumb_func_end sub_80E948C
-
- thumb_func_start sub_80E95A4
-sub_80E95A4: @ 80E95A4
- push {lr}
- ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E95C4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9612
- lsls r0, 2
- ldr r1, _080E95C8 @ =_080E95CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E95C0: .4byte gWindowConfig_81E6D8C
-_080E95C4: .4byte gUnknown_083DB694
-_080E95C8: .4byte _080E95CC
- .align 2, 0
-_080E95CC:
- .4byte _080E95F2
- .4byte _080E95F6
- .4byte _080E9600
- .4byte _080E960A
- .4byte _080E95E4
- .4byte _080E95EE
-_080E95E4:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E9620
- b _080E9612
-_080E95EE:
- movs r0, 0x2
- b _080E9602
-_080E95F2:
- movs r0, 0x3
- b _080E95F8
-_080E95F6:
- movs r0, 0
-_080E95F8:
- movs r1, 0x5
- bl sub_80E9620
- b _080E9612
-_080E9600:
- movs r0, 0x4
-_080E9602:
- movs r1, 0x11
- bl sub_80E9620
- b _080E9612
-_080E960A:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E9620
-_080E9612:
- ldr r0, _080E961C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E961C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E95A4
-
- thumb_func_start sub_80E9620
-sub_80E9620: @ 80E9620
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r1, 0
- mov r10, r1
- lsrs r7, r0, 16
- mov r9, r1
- ldr r0, _080E9644 @ =gUnknown_083DB694
- ldr r0, [r0]
- b _080E971A
- .align 2, 0
-_080E9644: .4byte gUnknown_083DB694
-_080E9648:
- ldr r6, [sp, 0x14]
- movs r2, 0
- mov r8, r2
- adds r0, r7, 0x2
- str r0, [sp, 0x1C]
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x18]
- b _080E96E4
-_080E965A:
- mov r2, r10
- lsls r0, r2, 1
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- ldr r2, _080E9690 @ =0x0000ffff
- cmp r0, r2
- bne _080E969C
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r1, 0x9
- str r1, [sp, 0x8]
- movs r0, 0x2
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r0, _080E9694 @ =0x06007000
- adds r1, r6, 0
- adds r2, r7, 0
- ldr r3, _080E9698 @ =gUnknown_083DBE1C
- bl sub_8095C8C
- adds r0, r6, 0
- adds r0, 0xB
- b _080E96CC
- .align 2, 0
-_080E9690: .4byte 0x0000ffff
-_080E9694: .4byte 0x06007000
-_080E9698: .4byte gUnknown_083DBE1C
-_080E969C:
- ldr r0, _080E9738 @ =0x00009e14
- adds r4, r5, r0
- ldrh r1, [r1]
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_80EB218
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl MenuPrint
- mov r1, r9
- lsls r0, r1, 1
- add r0, r8
- adds r1, r5, 0
- adds r1, 0x8C
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xB
- ldrb r1, [r1]
- adds r0, r1
-_080E96CC:
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080E96E4:
- ldr r0, _080E973C @ =gUnknown_083DB694
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080E970A
- ldrb r2, [r5, 0xA]
- cmp r10, r2
- bcc _080E965A
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- ldr r0, _080E9740 @ =gUnknown_083DBEA8
- bl MenuPrint
-_080E970A:
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 16
- lsrs r7, r0, 16
- ldr r2, [sp, 0x18]
- lsls r0, r2, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
-_080E971A:
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r9, r0
- blt _080E9648
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9738: .4byte 0x00009e14
-_080E973C: .4byte gUnknown_083DB694
-_080E9740: .4byte gUnknown_083DBEA8
- thumb_func_end sub_80E9620
-
- thumb_func_start sub_80E9744
-sub_80E9744: @ 80E9744
- push {lr}
- ldr r0, _080E9760 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E9764 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E97B2
- lsls r0, 2
- ldr r1, _080E9768 @ =_080E976C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9760: .4byte gWindowConfig_81E6D8C
-_080E9764: .4byte gUnknown_083DB694
-_080E9768: .4byte _080E976C
- .align 2, 0
-_080E976C:
- .4byte _080E9792
- .4byte _080E9796
- .4byte _080E97A0
- .4byte _080E97AA
- .4byte _080E9784
- .4byte _080E978E
-_080E9784:
- movs r0, 0x4
- movs r1, 0x6
- bl sub_80E97C0
- b _080E97B2
-_080E978E:
- movs r0, 0x2
- b _080E97A2
-_080E9792:
- movs r0, 0x3
- b _080E9798
-_080E9796:
- movs r0, 0
-_080E9798:
- movs r1, 0x5
- bl sub_80E97C0
- b _080E97B2
-_080E97A0:
- movs r0, 0x4
-_080E97A2:
- movs r1, 0x11
- bl sub_80E97C0
- b _080E97B2
-_080E97AA:
- movs r0, 0x3
- movs r1, 0x6
- bl sub_80E97C0
-_080E97B2:
- ldr r0, _080E97BC @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_080E97BC: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E9744
-
- thumb_func_start sub_80E97C0
-sub_80E97C0: @ 80E97C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r7, 0
- movs r3, 0
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0x84
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080E98A6
-_080E97EA:
- ldr r1, [r1]
- ldr r0, _080E98BC @ =0x00009e6e
- adds r2, r1, r0
- movs r6, 0
- adds r0, r1, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r4, [sp]
- lsls r4, 24
- mov r8, r4
- lsls r4, r5, 24
- mov r9, r4
- adds r5, 0x2
- mov r10, r5
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r6, r0
- bge _080E985E
- ldrb r1, [r1, 0xA]
- cmp r7, r1
- bcs _080E985E
- ldr r0, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r0]
- ldr r5, _080E98C0 @ =0x0000ffff
-_080E981E:
- lsls r0, r7, 1
- adds r1, r4, 0
- adds r1, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- beq _080E983E
- adds r1, r0, 0
- adds r0, r2, 0
- movs r2, 0
- bl sub_80EB218
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
-_080E983E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r0, 0x83
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E985E
- ldrb r0, [r4, 0xA]
- cmp r7, r0
- bcc _080E981E
-_080E985E:
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- ldr r4, [r1]
- adds r0, r4, 0
- adds r0, 0x83
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0xB
- muls r1, r0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x13
- strb r0, [r2, 0x1]
- lsls r1, 3
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _080E98BC @ =0x00009e6e
- adds r0, r4, r2
- mov r3, r8
- lsrs r1, r3, 24
- mov r3, r9
- lsrs r2, r3, 24
- bl MenuPrint
- mov r1, r10
- lsls r0, r1, 16
- lsrs r5, r0, 16
- ldr r2, [sp, 0x4]
- lsls r0, r2, 24
- lsrs r3, r0, 24
- ldr r1, _080E98B8 @ =gUnknown_083DB694
- adds r4, 0x84
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r3, r0
- blt _080E97EA
-_080E98A6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E98B8: .4byte gUnknown_083DB694
-_080E98BC: .4byte 0x00009e6e
-_080E98C0: .4byte 0x0000ffff
- thumb_func_end sub_80E97C0
-
- thumb_func_start sub_80E98C4
-sub_80E98C4: @ 80E98C4
- push {lr}
- ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C
- bl BasicInitMenuWindow
- ldr r0, _080E98E4 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldrb r0, [r0, 0x9]
- cmp r0, 0x5
- bhi _080E9936
- lsls r0, 2
- ldr r1, _080E98E8 @ =_080E98EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E98E0: .4byte gWindowConfig_81E6D8C
-_080E98E4: .4byte gUnknown_083DB694
-_080E98E8: .4byte _080E98EC
- .align 2, 0
-_080E98EC:
- .4byte _080E990A
- .4byte _080E9910
- .4byte _080E9916
- .4byte _080E991A
- .4byte _080E9904
- .4byte _080E990A
-_080E9904:
- movs r1, 0x4
- movs r3, 0x2
- b _080E991E
-_080E990A:
- movs r1, 0x3
- movs r3, 0x2
- b _080E991E
-_080E9910:
- movs r1, 0x1
- movs r3, 0x3
- b _080E991E
-_080E9916:
- movs r1, 0x4
- b _080E991C
-_080E991A:
- movs r1, 0x3
-_080E991C:
- movs r3, 0x1
-_080E991E:
- lsls r3, 1
- adds r3, r1, r3
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- movs r2, 0x1B
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080E993C @ =gWindowConfig_81E6DA8
- bl BasicInitMenuWindow
-_080E9936:
- pop {r0}
- bx r0
- .align 2, 0
-_080E993C: .4byte gWindowConfig_81E6DA8
- thumb_func_end sub_80E98C4
-
- thumb_func_start sub_80E9940
-sub_80E9940: @ 80E9940
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 24
- lsrs r5, 24
- movs r4, 0x7
- ands r4, r5
- lsls r3, r4, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0x2
- movs r2, 0x1F
- bl MenuFillWindowRectWithBlankTile
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80E9A7C
- lsls r4, 1
- adds r0, r6, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_80E9A60
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9940
-
- thumb_func_start sub_80E9974
-sub_80E9974: @ 80E9974
- push {r4-r6,lr}
- ldr r0, _080E99C4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E99C8 @ =gUnknown_083DB694
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E99D4
- ldr r1, _080E99CC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r1, r0, 16
- lsrs r4, r1, 16
- adds r0, 0x4
- cmp r4, r0
- bge _080E9A08
- adds r5, r2, 0
- ldr r2, _080E99CC @ =0x000001b5
- adds r6, r5, r2
-_080E99A4:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E99D0 @ =0x00009dc9
- adds r0, r5, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, 0x4
- cmp r4, r0
- blt _080E99A4
- b _080E9A08
- .align 2, 0
-_080E99C4: .4byte gWindowConfig_81E6D54
-_080E99C8: .4byte gUnknown_083DB694
-_080E99CC: .4byte 0x000001b5
-_080E99D0: .4byte 0x00009dc9
-_080E99D4:
- bl sub_80E9AD4
- ldr r4, _080E9A10 @ =gUnknown_083DBEAC
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x20
- movs r1, 0x2
- movs r2, 0x2
- bl sub_80E9A60
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x2
- movs r2, 0x4
- bl sub_80E9A60
- adds r4, 0x60
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x6
- bl sub_80E9A60
-_080E9A08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A10: .4byte gUnknown_083DBEAC
- thumb_func_end sub_80E9974
-
- thumb_func_start sub_80E9A14
-sub_80E9A14: @ 80E9A14
- push {lr}
- bl sub_80E9A4C
- ldr r0, _080E9A44 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E9A40
- movs r0, 0xDD
- lsls r0, 1
- adds r2, r1, r0
- ldr r3, _080E9A48 @ =0x000001b5
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
-_080E9A40:
- pop {r0}
- bx r0
- .align 2, 0
-_080E9A44: .4byte gUnknown_083DB694
-_080E9A48: .4byte 0x000001b5
- thumb_func_end sub_80E9A14
-
- thumb_func_start sub_80E9A4C
-sub_80E9A4C: @ 80E9A4C
- ldr r0, _080E9A5C @ =gUnknown_083DB694
- ldr r0, [r0]
- movs r2, 0xDD
- lsls r2, 1
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080E9A5C: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A4C
-
- thumb_func_start sub_80E9A60
-sub_80E9A60: @ 80E9A60
- push {lr}
- lsls r2, 16
- movs r3, 0xF0
- lsls r3, 12
- ands r3, r2
- lsls r1, 24
- lsrs r1, 24
- lsrs r3, 16
- adds r2, r3, 0
- bl MenuPrint
- pop {r0}
- bx r0
- thumb_func_end sub_80E9A60
-
- thumb_func_start sub_80E9A7C
-sub_80E9A7C: @ 80E9A7C
- push {r4-r7,lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r0, r7, 17
- lsrs r5, r0, 16
- movs r4, 0
- ldr r0, _080E9AD0 @ =gUnknown_083DB694
- ldr r6, [r0]
-_080E9A8E:
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x12
- strb r0, [r2, 0x1]
- movs r0, 0x58
- muls r0, r4
- strb r0, [r2, 0x2]
- adds r2, 0x3
- lsls r1, r7, 1
- adds r1, r4, r1
- adds r0, r6, 0
- adds r0, 0x2A
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0xB
- bl sub_80EAD64
- adds r2, r0, 0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r6, 0x28]
- cmp r5, r0
- bcs _080E9ACA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080E9A8E
-_080E9ACA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AD0: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9A7C
-
- thumb_func_start sub_80E9AD4
-sub_80E9AD4: @ 80E9AD4
- push {r4,lr}
- ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r4, 0
-_080E9ADE:
- adds r0, r4, 0
- bl sub_80E9C74
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080E9ADE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9AF4: .4byte gWindowConfig_81E6D54
- thumb_func_end sub_80E9AD4
-
- thumb_func_start sub_80E9AF8
-sub_80E9AF8: @ 80E9AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- bl sub_80E9C74
- ldr r4, _080E9B7C @ =gUnknown_083DB694
- ldr r5, [r4]
- ldr r0, _080E9B80 @ =0x00009e14
- adds r0, r5
- mov r8, r0
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x11
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- ldr r2, _080E9B84 @ =0x00009e17
- adds r2, r5
- mov r8, r2
- adds r0, r5, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E9BF4
- movs r6, 0
- ldr r3, _080E9B88 @ =0x000099a6
- adds r0, r5, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- blt _080E9B4A
- b _080E9C52
-_080E9B4A:
- lsls r0, r7, 2
- mov r9, r0
- ldr r1, _080E9B8C @ =0x00009a2a
- adds r1, r5, r1
- str r1, [sp]
- lsls r2, r7, 17
- mov r10, r2
-_080E9B58:
- lsls r4, r6, 1
- mov r3, r9
- adds r0, r4, r3
- ldr r1, [sp]
- adds r0, r1, r0
- ldrh r0, [r0]
- bl sub_80EB2D4
- lsls r0, 16
- lsrs r0, 16
- adds r5, r4, 0
- cmp r0, 0x7
- bne _080E9B94
- ldr r0, _080E9B90 @ =gWindowConfig_81E6D70
- bl BasicInitMenuWindow
- b _080E9B9A
- .align 2, 0
-_080E9B7C: .4byte gUnknown_083DB694
-_080E9B80: .4byte 0x00009e14
-_080E9B84: .4byte 0x00009e17
-_080E9B88: .4byte 0x000099a6
-_080E9B8C: .4byte 0x00009a2a
-_080E9B90: .4byte gWindowConfig_81E6D70
-_080E9B94:
- ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
-_080E9B9A:
- ldr r2, _080E9BE4 @ =gUnknown_083DB694
- ldr r4, [r2]
- mov r3, r9
- adds r1, r5, r3
- ldr r2, _080E9BE8 @ =0x00009a2a
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- ldr r3, _080E9BEC @ =0x00009e14
- adds r0, r4, r3
- movs r1, 0xB
- muls r1, r6
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- mov r3, r10
- lsrs r2, r3, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080E9BF0 @ =0x000099a6
- adds r4, r0
- adds r4, r7
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r6, r0
- blt _080E9B58
- b _080E9C52
- .align 2, 0
-_080E9BE0: .4byte gWindowConfig_81E6D54
-_080E9BE4: .4byte gUnknown_083DB694
-_080E9BE8: .4byte 0x00009a2a
-_080E9BEC: .4byte 0x00009e14
-_080E9BF0: .4byte 0x000099a6
-_080E9BF4:
- ldr r0, _080E9C64 @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- movs r6, 0
- ldr r1, _080E9C68 @ =0x000099a6
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r6, r0
- bge _080E9C52
- adds r4, r5, 0
- adds r0, r4, r1
- adds r0, r7
- mov r9, r0
- lsls r5, r7, 17
-_080E9C16:
- lsls r1, r6, 1
- lsls r0, r7, 2
- adds r1, r0
- ldr r2, _080E9C6C @ =0x00009a2a
- adds r0, r4, r2
- adds r0, r1
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x9
- bl sub_80EB218
- movs r0, 0xB
- adds r1, r6, 0
- muls r1, r0
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _080E9C70 @ =0x00009e14
- adds r0, r4, r3
- lsrs r2, r5, 16
- bl sub_80E9A60
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r9
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r6, r0
- blt _080E9C16
-_080E9C52:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9C64: .4byte gWindowConfig_81E6D54
-_080E9C68: .4byte 0x000099a6
-_080E9C6C: .4byte 0x00009a2a
-_080E9C70: .4byte 0x00009e14
- thumb_func_end sub_80E9AF8
-
- thumb_func_start sub_80E9C74
-sub_80E9C74: @ 80E9C74
- push {lr}
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- lsls r3, r1, 1
- adds r1, r3, 0
- adds r3, 0x1
- movs r0, 0
- movs r2, 0x1D
- bl MenuFillWindowRectWithBlankTile
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C74
-
- thumb_func_start sub_80E9C94
-sub_80E9C94: @ 80E9C94
- push {r4-r6,lr}
- ldr r0, _080E9CAC @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r2, _080E9CB0 @ =0x00009a28
- adds r1, r0, r2
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x3
- bgt _080E9CB4
- lsls r0, 16
- lsrs r0, 16
- b _080E9CB6
- .align 2, 0
-_080E9CAC: .4byte gUnknown_083DB694
-_080E9CB0: .4byte 0x00009a28
-_080E9CB4:
- movs r0, 0x4
-_080E9CB6:
- adds r5, r0, 0
- movs r4, 0
- cmp r4, r5
- bcs _080E9CF4
- ldr r0, _080E9CE0 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080E9CE4 @ =0x00009a29
- adds r6, r0, r1
-_080E9CC6:
- movs r0, 0
- ldrsb r0, [r6, r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl sub_80E9AF8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080E9CC6
- b _080E9CF4
- .align 2, 0
-_080E9CE0: .4byte gUnknown_083DB694
-_080E9CE4: .4byte 0x00009a29
-_080E9CE8:
- adds r0, r4, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_80E9C74
-_080E9CF4:
- cmp r4, 0x3
- bls _080E9CE8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80E9C94
-
- thumb_func_start sub_80E9D00
-sub_80E9D00: @ 80E9D00
- push {r4-r6,lr}
- ldr r0, _080E9D28 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- ble _080E9D30
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D2C @ =0x00009a29
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
- b _080E9D46
- .align 2, 0
-_080E9D28: .4byte gUnknown_083DB694
-_080E9D2C: .4byte 0x00009a29
-_080E9D30:
- movs r0, 0
- ldrsb r0, [r1, r0]
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080E9D74 @ =0x00009a29
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r4
-_080E9D46:
- lsls r0, 16
- lsrs r5, r0, 16
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080E9D78 @ =0x0000ffff
- cmp r4, r0
- beq _080E9D6E
- adds r6, r0, 0
-_080E9D58:
- adds r0, r5, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_80E9AF8
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r6
- bne _080E9D58
-_080E9D6E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9D74: .4byte 0x00009a29
-_080E9D78: .4byte 0x0000ffff
- thumb_func_end sub_80E9D00
-
- thumb_func_start sub_80E9D7C
-sub_80E9D7C: @ 80E9D7C
- push {r4-r7,lr}
- ldr r0, _080E9DAC @ =gWindowConfig_81E6D54
- bl BasicInitMenuWindow
- ldr r0, _080E9DB0 @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xE0
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _080E9DB8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DB4 @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r0, r6
- b _080E9DCC
- .align 2, 0
-_080E9DAC: .4byte gWindowConfig_81E6D54
-_080E9DB0: .4byte gUnknown_083DB694
-_080E9DB4: .4byte 0x000001b5
-_080E9DB8:
- movs r0, 0
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080E9DFC @ =0x000001b5
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, 0x4
-_080E9DCC:
- lsls r0, 16
- lsrs r4, r0, 16
- movs r5, 0
- cmp r5, r6
- bcs _080E9DF6
- ldr r0, _080E9E00 @ =gUnknown_083DB694
- ldr r7, [r0]
-_080E9DDA:
- lsls r1, r4, 24
- lsrs r1, 24
- ldr r2, _080E9E04 @ =0x00009dc9
- adds r0, r7, r2
- bl sub_80E9940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcc _080E9DDA
-_080E9DF6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DFC: .4byte 0x000001b5
-_080E9E00: .4byte gUnknown_083DB694
-_080E9E04: .4byte 0x00009dc9
- thumb_func_end sub_80E9D7C
-
- thumb_func_start sub_80E9E08
-sub_80E9E08: @ 80E9E08
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080E9E4C @ =gUnknown_083DB694
- ldr r3, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r3, r0
- movs r5, 0xE0
- lsls r5, 1
- adds r2, r3, r5
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 4
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7F
- ands r0, r1
- subs r5, 0x4
- adds r1, r3, r5
- strh r0, [r1]
- adds r1, r4, 0
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bge _080E9E3E
- negs r1, r4
-_080E9E3E:
- ldr r2, _080E9E50 @ =0x000001bf
- adds r0, r3, r2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E4C: .4byte gUnknown_083DB694
-_080E9E50: .4byte 0x000001bf
- thumb_func_end sub_80E9E08
-
- thumb_func_start sub_80E9E54
-sub_80E9E54: @ 80E9E54
- push {r4,lr}
- ldr r0, _080E9E8C @ =gUnknown_083DB694
- ldr r2, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r3, r2, r0
- ldr r1, _080E9E90 @ =0x000001bf
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r4, [r3]
- adds r0, r4
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r3]
- movs r3, 0
- movs r4, 0xDE
- lsls r4, 1
- adds r1, r2, r4
- ldrh r1, [r1]
- cmp r0, r1
- bne _080E9E84
- movs r3, 0x1
-_080E9E84:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9E8C: .4byte gUnknown_083DB694
-_080E9E90: .4byte 0x000001bf
- thumb_func_end sub_80E9E54
-
- thumb_func_start nullsub_23
-nullsub_23: @ 80E9E94
- bx lr
- thumb_func_end nullsub_23
-
- thumb_func_start sub_80E9E98
-sub_80E9E98: @ 80E9E98
- ldr r0, _080E9EA4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080E9EA4: .4byte gUnknown_083DB694
- thumb_func_end sub_80E9E98
-
- thumb_func_start sub_80E9EA8
-sub_80E9EA8: @ 80E9EA8
- push {lr}
- ldr r1, _080E9EC4 @ =gUnknown_083DB694
- ldr r0, [r1]
- adds r0, 0xBE
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _080E9F48
- lsls r0, 2
- ldr r1, _080E9EC8 @ =_080E9ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9EC4: .4byte gUnknown_083DB694
-_080E9EC8: .4byte _080E9ECC
- .align 2, 0
-_080E9ECC:
- .4byte _080E9EE4
- .4byte _080E9EF4
- .4byte _080E9F0C
- .4byte _080E9F24
- .4byte _080E9F38
- .4byte _080E9F44
-_080E9EE4:
- bl sub_80EA24C
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9EF4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA4A4
- ldr r0, _080E9F08 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F08: .4byte gUnknown_083DB694
-_080E9F0C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- bl sub_80EA704
- ldr r0, _080E9F20 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F20: .4byte gUnknown_083DB694
-_080E9F24:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9F48
- ldr r0, _080E9F34 @ =gUnknown_083DB694
- ldr r1, [r0]
- b _080E9F3A
- .align 2, 0
-_080E9F34: .4byte gUnknown_083DB694
-_080E9F38:
- ldr r1, [r2]
-_080E9F3A:
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9F48
-_080E9F44:
- movs r0, 0x1
- b _080E9F4A
-_080E9F48:
- movs r0, 0
-_080E9F4A:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9EA8
-
- thumb_func_start sub_80E9F50
-sub_80E9F50: @ 80E9F50
- push {lr}
- ldr r0, _080E9F68 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x6
- bhi _080E9FCC
- lsls r0, 2
- ldr r1, _080E9F6C @ =_080E9F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9F68: .4byte gUnknown_083DB694
-_080E9F6C: .4byte _080E9F70
- .align 2, 0
-_080E9F70:
- .4byte _080E9F8C
- .4byte _080E9FAC
- .4byte _080E9F96
- .4byte _080E9FAC
- .4byte _080E9F9C
- .4byte _080E9FAC
- .4byte _080E9FC8
-_080E9F8C:
- bl nullsub_23
- bl sub_80EA764
- b _080E9FA0
-_080E9F96:
- bl sub_80EA5A0
- b _080E9FA0
-_080E9F9C:
- bl sub_80EA348
-_080E9FA0:
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080E9FAC:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080E9FCC
- ldr r0, _080E9FC4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080E9FCC
- .align 2, 0
-_080E9FC4: .4byte gUnknown_083DB694
-_080E9FC8:
- movs r0, 0x1
- b _080E9FCE
-_080E9FCC:
- movs r0, 0
-_080E9FCE:
- pop {r1}
- bx r1
- thumb_func_end sub_80E9F50
-
- thumb_func_start sub_80E9FD4
-sub_80E9FD4: @ 80E9FD4
- push {r4,lr}
- ldr r0, _080E9FEC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080E9FF0
- cmp r0, 0x1
- beq _080E9FFE
- b _080EA00C
- .align 2, 0
-_080E9FEC: .4byte gUnknown_083DB694
-_080E9FF0:
- bl nullsub_23
- bl sub_80EA5A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080E9FFE:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA00C
- movs r0, 0x1
- b _080EA00E
-_080EA00C:
- movs r0, 0
-_080EA00E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E9FD4
-
- thumb_func_start sub_80EA014
-sub_80EA014: @ 80EA014
- push {r4,lr}
- ldr r0, _080EA02C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EA030
- cmp r0, 0x1
- beq _080EA03A
- b _080EA048
- .align 2, 0
-_080EA02C: .4byte gUnknown_083DB694
-_080EA030:
- bl sub_80EA4A4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA03A:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA048
- movs r0, 0x1
- b _080EA04A
-_080EA048:
- movs r0, 0
-_080EA04A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA014
-
- thumb_func_start sub_80EA050
-sub_80EA050: @ 80EA050
- push {lr}
- ldr r0, _080EA068 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA0DC
- lsls r0, 2
- ldr r1, _080EA06C @ =_080EA070
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA068: .4byte gUnknown_083DB694
-_080EA06C: .4byte _080EA070
- .align 2, 0
-_080EA070:
- .4byte _080EA084
- .4byte _080EA08E
- .4byte _080EA09E
- .4byte _080EA0B4
- .4byte _080EA0D8
-_080EA084:
- bl nullsub_23
- bl sub_80EA764
- b _080EA0C4
-_080EA08E:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA7F4
- b _080EA0C4
-_080EA09E:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
- bl sub_80EA8BC
- b _080EA0C4
-_080EA0B4:
- movs r0, 0x1
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA0DC
-_080EA0C4:
- ldr r0, _080EA0D4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA0DC
- .align 2, 0
-_080EA0D4: .4byte gUnknown_083DB694
-_080EA0D8:
- movs r0, 0x1
- b _080EA0DE
-_080EA0DC:
- movs r0, 0
-_080EA0DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA050
-
- thumb_func_start sub_80EA0E4
-sub_80EA0E4: @ 80EA0E4
- push {lr}
- ldr r0, _080EA0FC @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBE
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080EA17C
- lsls r0, 2
- ldr r1, _080EA100 @ =_080EA104
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EA0FC: .4byte gUnknown_083DB694
-_080EA100: .4byte _080EA104
- .align 2, 0
-_080EA104:
- .4byte _080EA118
- .4byte _080EA128
- .4byte _080EA144
- .4byte _080EA15C
- .4byte _080EA178
-_080EA118:
- bl sub_80EA948
- ldr r0, _080EA140 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EA128:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EAA44
- b _080EA166
- .align 2, 0
-_080EA140: .4byte gUnknown_083DB694
-_080EA144:
- movs r0, 0x1
- negs r0, r0
- bl sub_80E9108
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
- bl sub_80EA704
- b _080EA166
-_080EA15C:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA17C
-_080EA166:
- ldr r0, _080EA174 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA17C
- .align 2, 0
-_080EA174: .4byte gUnknown_083DB694
-_080EA178:
- movs r0, 0x1
- b _080EA17E
-_080EA17C:
- movs r0, 0
-_080EA17E:
- pop {r1}
- bx r1
- thumb_func_end sub_80EA0E4
-
- thumb_func_start sub_80EA184
-sub_80EA184: @ 80EA184
- push {r4,lr}
- ldr r0, _080EA1A0 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0xBE
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EA1B4
- cmp r0, 0x1
- bgt _080EA1A4
- cmp r0, 0
- beq _080EA1AA
- b _080EA1D8
- .align 2, 0
-_080EA1A0: .4byte gUnknown_083DB694
-_080EA1A4:
- cmp r0, 0x2
- beq _080EA1D0
- b _080EA1D8
-_080EA1AA:
- bl sub_80EAAD4
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080EA1B4:
- bl sub_80EA1E0
- lsls r0, 24
- cmp r0, 0
- beq _080EA1D8
- ldr r0, _080EA1CC @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r1, 0xBE
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EA1D8
- .align 2, 0
-_080EA1CC: .4byte gUnknown_083DB694
-_080EA1D0:
- bl sub_80E9178
- movs r0, 0x1
- b _080EA1DA
-_080EA1D8:
- movs r0, 0
-_080EA1DA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA184
-
- thumb_func_start sub_80EA1E0
-sub_80EA1E0: @ 80EA1E0
- push {r4-r6,lr}
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC4
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EA244
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EA228
- adds r5, r1, 0
- adds r6, r0, 0
-_080EA200:
- lsls r0, r4, 4
- adds r0, 0xC8
- adds r0, r5, r0
- bl sub_80EAC0C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- adds r0, r5, r0
- bl sub_80EAC48
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EA200
-_080EA228:
- ldr r0, _080EA240 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xBC
- movs r0, 0x1
- strb r0, [r2]
- adds r1, 0xC4
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080EA246
- .align 2, 0
-_080EA240: .4byte gUnknown_083DB694
-_080EA244:
- movs r0, 0x1
-_080EA246:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EA1E0
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA340 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- ldr r1, _080EA344 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r6, 0x10
- str r6, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xD
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0xC
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0x9
- mov r3, r8
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA340: .4byte gUnknown_083DB694
-_080EA344: .4byte 0x0000fffe
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA348
-sub_80EA348: @ 80EA348
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA49C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r5, 0xF
- str r5, [sp]
- movs r1, 0x2
- mov r9, r1
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EA4A0 @ =0x0000fffe
- mov r8, r1
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0x2
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r5, 0x10
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r8
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0x2
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r6, r7, r1
- str r6, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xE
- mov r3, r8
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA49C: .4byte gUnknown_083DB694
-_080EA4A0: .4byte 0x0000fffe
- thumb_func_end sub_80EA348
-
- thumb_func_start sub_80EA4A4
-sub_80EA4A4: @ 80EA4A4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA598 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, _080EA59C @ =0x0000ffff
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xE
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x10
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r6, 0x1
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x9
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xC2
- movs r1, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA598: .4byte gUnknown_083DB694
-_080EA59C: .4byte 0x0000ffff
- thumb_func_end sub_80EA4A4
-
- thumb_func_start sub_80EA5A0
-sub_80EA5A0: @ 80EA5A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EA6FC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0xF
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r1, 0x1
- mov r8, r1
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EA700 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0xD
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r6, [sp, 0x10]
- movs r1, 0xC
- movs r2, 0xF
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x12
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x84
- lsls r1, 1
- adds r0, r7, r1
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r1, r8
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x50
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0x1
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x6
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x4
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6FC: .4byte gUnknown_083DB694
-_080EA700: .4byte 0x0000ffff
- thumb_func_end sub_80EA5A0
-
- thumb_func_start sub_80EA704
-sub_80EA704: @ 80EA704
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA75C @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r1, 0x14
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- ldr r3, _080EA760 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0xA
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xC2
- strh r5, [r0]
- adds r1, r6, 0
- adds r1, 0xC4
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA75C: .4byte gUnknown_083DB694
-_080EA760: .4byte 0x0000ffff
- thumb_func_end sub_80EA704
-
- thumb_func_start sub_80EA764
-sub_80EA764: @ 80EA764
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, _080EA7EC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EA7F0 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xC
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1E
- movs r2, 0xC
- movs r3, 0x1F
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0x1E
- movs r2, 0xC
- adds r3, r5, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7EC: .4byte gUnknown_083DB694
-_080EA7F0: .4byte 0x0000ffff
- thumb_func_end sub_80EA764
-
- thumb_func_start sub_80EA7F4
-sub_80EA7F4: @ 80EA7F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r0, _080EA8B4 @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r5, 0x1
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x14
- movs r2, 0xA
- movs r3, 0x19
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- ldr r3, _080EA8B8 @ =0x0000ffff
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r2, r7
- mov r8, r2
- str r2, [sp, 0x4]
- movs r1, 0x19
- movs r2, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r7, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x3
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8B4: .4byte gUnknown_083DB694
-_080EA8B8: .4byte 0x0000ffff
- thumb_func_end sub_80EA7F4
-
- thumb_func_start sub_80EA8BC
-sub_80EA8BC: @ 80EA8BC
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EA944 @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x4
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA944: .4byte gUnknown_083DB694
- thumb_func_end sub_80EA8BC
-
- thumb_func_start sub_80EA948
-sub_80EA948: @ 80EA948
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EAA3C @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r6, 0x14
- str r6, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r5, _080EAA40 @ =0x0000ffff
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x2
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x80
- adds r1, r7
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x3
- movs r2, 0xA
- movs r3, 0x5
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x1A
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- movs r1, 0x1A
- movs r2, 0xA
- adds r3, r5, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x19
- movs r2, 0xA
- movs r3, 0x1A
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAA3C: .4byte gUnknown_083DB694
-_080EAA40: .4byte 0x0000ffff
- thumb_func_end sub_80EA948
-
- thumb_func_start sub_80EAA44
-sub_80EAA44: @ 80EAA44
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, _080EAACC @ =gUnknown_083DB694
- ldr r6, [r0]
- adds r0, r6, 0
- adds r0, 0xC8
- movs r5, 0x14
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r6, 0
- adds r0, 0xD8
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, _080EAAD0 @ =0x0000ffff
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0x17
- movs r2, 0xA
- movs r3, 0x18
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r6, r1
- str r4, [sp]
- movs r2, 0xD9
- lsls r2, 3
- adds r1, r6, r2
- str r1, [sp, 0x4]
- movs r1, 0x1D
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r1, r6, 0
- adds r1, 0xC2
- movs r0, 0x2
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- strh r0, [r1]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAACC: .4byte gUnknown_083DB694
-_080EAAD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAA44
-
- thumb_func_start sub_80EAAD4
-sub_80EAAD4: @ 80EAAD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EABCC @ =gUnknown_083DB694
- ldr r7, [r0]
- adds r0, r7, 0
- adds r0, 0xC8
- movs r1, 0xF
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r5, 0x1
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- movs r1, 0xD9
- lsls r1, 3
- adds r1, r7
- mov r8, r1
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xD8
- movs r1, 0x14
- mov r9, r1
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- ldr r6, _080EABD0 @ =0x0000ffff
- str r6, [sp, 0x10]
- movs r1, 0
- movs r2, 0xF
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r7, r1
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xE8
- movs r1, 0xA
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r7, r1
- str r4, [sp]
- adds r1, 0x68
- adds r5, r7, r1
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80EAC30
- adds r0, r7, 0
- adds r0, 0xF8
- mov r1, r9
- str r1, [sp]
- str r4, [sp, 0x4]
- str r6, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0x1E
- bl sub_80EABD4
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r7, r1
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r1, 0
- movs r2, 0x14
- movs r3, 0
- bl sub_80EAC30
- adds r1, r7, 0
- adds r1, 0xC2
- movs r0, 0x4
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x5
- strh r0, [r1]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EABCC: .4byte gUnknown_083DB694
-_080EABD0: .4byte 0x0000ffff
- thumb_func_end sub_80EAAD4
-
- thumb_func_start sub_80EABD4
-sub_80EABD4: @ 80EABD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- ldr r7, [sp, 0x2C]
- mov r8, r7
- strh r1, [r0]
- strh r3, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r5, [r0, 0x6]
- strh r6, [r0, 0x8]
- strh r4, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r4, r8
- strh r4, [r0, 0xE]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD4
-
- thumb_func_start sub_80EAC0C
-sub_80EAC0C: @ 80EAC0C
- ldrh r1, [r0, 0x8]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0xA]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- ldrh r1, [r0, 0xC]
- ldrh r2, [r0, 0x4]
- adds r1, r2
- strh r1, [r0, 0x4]
- ldrh r1, [r0, 0xE]
- ldrh r2, [r0, 0x6]
- adds r1, r2
- strh r1, [r0, 0x6]
- bx lr
- thumb_func_end sub_80EAC0C
-
- thumb_func_start sub_80EAC30
-sub_80EAC30: @ 80EAC30
- push {r4,r5,lr}
- ldr r4, [sp, 0xC]
- ldr r5, [sp, 0x10]
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r4, [r0, 0x6]
- str r5, [r0, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC30
-
- thumb_func_start sub_80EAC48
-sub_80EAC48: @ 80EAC48
- ldrh r1, [r0, 0x4]
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x6]
- ldrh r2, [r0, 0x2]
- adds r1, r2
- strh r1, [r0, 0x2]
- bx lr
- thumb_func_end sub_80EAC48
-
- thumb_func_start sub_80EAC5C
-sub_80EAC5C: @ 80EAC5C
- push {r4-r6,lr}
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EACAC
- movs r4, 0
- adds r0, r1, 0
- adds r0, 0xC2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _080EACA2
- adds r5, r1, 0
- adds r6, r0, 0
-_080EAC7C:
- lsls r1, r4, 4
- adds r1, 0xC8
- adds r1, r5, r1
- lsls r2, r4, 1
- adds r2, r4
- lsls r2, 2
- movs r0, 0xA4
- lsls r0, 1
- adds r2, r0
- adds r2, r5, r2
- ldr r0, _080EACB8 @ =0x06006800
- bl sub_80EACBC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r2, [r6]
- cmp r4, r2
- bcc _080EAC7C
-_080EACA2:
- ldr r0, _080EACB4 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, 0xBC
- movs r1, 0
- strb r1, [r0]
-_080EACAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EACB4: .4byte gUnknown_083DB694
-_080EACB8: .4byte 0x06006800
- thumb_func_end sub_80EAC5C
-
- thumb_func_start sub_80EACBC
-sub_80EACBC: @ 80EACBC
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- adds r3, r1, 0
- adds r4, r2, 0
- ldrh r2, [r3, 0x2]
- ldrh r0, [r3]
- subs r2, r0
- ldrh r0, [r3, 0x6]
- ldrh r1, [r3, 0x4]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r6, r2, 16
- cmp r6, 0
- ble _080EACFE
- lsls r5, r0, 16
- cmp r5, 0
- ble _080EACFE
- ldrh r1, [r3]
- ldrh r2, [r3, 0x4]
- ldr r3, [r4, 0x8]
- ldrh r0, [r4]
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- str r0, [sp, 0x4]
- lsrs r0, r6, 16
- str r0, [sp, 0x8]
- lsrs r0, r5, 16
- str r0, [sp, 0xC]
- adds r0, r7, 0
- bl sub_809D104
-_080EACFE:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EACBC
-
- thumb_func_start sub_80EAD08
-sub_80EAD08: @ 80EAD08
- push {r4,r5,lr}
- ldr r0, _080EAD58 @ =gUnknown_03004DC0
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, _080EAD5C @ =gUnknown_03004DE0
- adds r4, r0, r1
- adds r4, 0xB0
- ldr r0, _080EAD60 @ =gUnknown_083DB694
- ldr r1, [r0]
- movs r0, 0xDD
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- adds r2, r0, 0
- subs r2, 0x58
- movs r0, 0xFF
- ands r2, r0
- movs r3, 0
- movs r5, 0xFF
-_080EAD32:
- ldrh r0, [r1]
- adds r0, r3
- cmp r0, 0x80
- bne _080EAD42
- negs r0, r3
- adds r2, r0, 0
- subs r2, 0x58
- ands r2, r5
-_080EAD42:
- strh r2, [r4]
- adds r4, 0x2
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3F
- bls _080EAD32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD58: .4byte gUnknown_03004DC0
-_080EAD5C: .4byte gUnknown_03004DE0
-_080EAD60: .4byte gUnknown_083DB694
- thumb_func_end sub_80EAD08
-
- thumb_func_start sub_80EAD64
-sub_80EAD64: @ 80EAD64
- push {lr}
- lsls r1, 24
- ldr r2, _080EAD78 @ =gEasyChatGroupNames
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r1}
- bx r1
- .align 2, 0
-_080EAD78: .4byte gEasyChatGroupNames
- thumb_func_end sub_80EAD64
-
- thumb_func_start sub_80EAD7C
-sub_80EAD7C: @ 80EAD7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x14
- beq _080EADA2
- cmp r0, 0x14
- bgt _080EAD9C
- cmp r0, 0x11
- blt _080EADBA
- ldr r0, _080EAD98 @ =0x00000804
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EAD98: .4byte 0x00000804
-_080EAD9C:
- cmp r1, 0x15
- beq _080EADB0
- b _080EADBA
-_080EADA2:
- ldr r0, _080EADAC @ =0x00000806
- bl FlagGet
- b _080EADB4
- .align 2, 0
-_080EADAC: .4byte 0x00000806
-_080EADB0:
- bl sub_80EB9C8
-_080EADB4:
- lsls r0, 24
- lsrs r0, 24
- b _080EADBC
-_080EADBA:
- movs r0, 0x1
-_080EADBC:
- pop {r1}
- bx r1
- thumb_func_end sub_80EAD7C
-
- thumb_func_start sub_80EADC0
-sub_80EADC0: @ 80EADC0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r2, 0x15
- bhi _080EAE82
- lsls r0, r2, 2
- ldr r1, _080EADD8 @ =_080EADDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EADD8: .4byte _080EADDC
- .align 2, 0
-_080EADDC:
- .4byte _080EAE50
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE82
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE62
- .4byte _080EAE34
- .4byte _080EAE78
-_080EAE34:
- ldr r0, _080EAE4C @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EAE70
- lsls r0, r3, 24
- lsrs r0, 24
- bl sub_80EB868
- b _080EAE7C
- .align 2, 0
-_080EAE4C: .4byte gUnknown_083DB694
-_080EAE50:
- adds r0, r3, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- b _080EAE7C
-_080EAE62:
- ldr r0, _080EAE74 @ =gUnknown_083DB694
- ldr r0, [r0]
- adds r0, r2
- adds r0, 0x67
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EAE82
-_080EAE70:
- movs r0, 0
- b _080EAE84
- .align 2, 0
-_080EAE74: .4byte gUnknown_083DB694
-_080EAE78:
- bl sub_80EB9C8
-_080EAE7C:
- lsls r0, 24
- lsrs r0, 24
- b _080EAE84
-_080EAE82:
- movs r0, 0x1
-_080EAE84:
- pop {r1}
- bx r1
- thumb_func_end sub_80EADC0
-
- thumb_func_start sub_80EAE88
-sub_80EAE88: @ 80EAE88
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080EAEA6
- cmp r4, 0x14
- beq _080EAEB2
- adds r0, r4, 0
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EAEBC
- movs r0, 0
- b _080EAEC2
-_080EAEA6:
- movs r0, 0
- bl sub_8090F68
- lsls r0, 16
- lsrs r0, 16
- b _080EAEC2
-_080EAEB2:
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r0, 24
- b _080EAEC2
-_080EAEBC:
- ldr r0, _080EAEC8 @ =gEasyChatGroupSizes
- adds r0, r4, r0
- ldrb r0, [r0]
-_080EAEC2:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EAEC8: .4byte gEasyChatGroupSizes
- thumb_func_end sub_80EAE88
-
- thumb_func_start sub_80EAECC
-sub_80EAECC: @ 80EAECC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r8, r0
- ldr r1, _080EAF10 @ =gUnknown_083DB694
- ldr r0, [r1]
- ldr r3, _080EAF14 @ =0x00004142
- adds r3, r0, r3
- str r3, [sp, 0x4]
-_080EAEE6:
- ldr r1, _080EAF18 @ =gEasyChatWordsByLetter
- mov r7, r8
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrh r4, [r0]
- mov r3, r8
- adds r3, 0x1
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [sp]
- ldr r0, [sp, 0x4]
- adds r1, r0, r2
- movs r0, 0
- strh r0, [r1]
- mov r9, r0
- adds r6, r4, 0
- mov r10, r2
- str r3, [sp, 0x8]
- b _080EB00C
- .align 2, 0
-_080EAF10: .4byte gUnknown_083DB694
-_080EAF14: .4byte 0x00004142
-_080EAF18: .4byte gEasyChatWordsByLetter
-_080EAF1C:
- ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized
- adds r0, r6, 0
- adds r1, r0, 0x1
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- adds r4, r1, 0
- ldr r0, _080EAFB4 @ =0x0000feff
- cmp r1, r0
- bls _080EAFCC
- movs r0, 0xFF
- ands r1, r0
- movs r7, 0
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r3, _080EAFB8 @ =0x0000ffff
- cmp r5, r3
- beq _080EB00C
- mov r1, r8
- lsls r0, r1, 8
- subs r0, r1
- lsls r3, r0, 1
-_080EAF4E:
- adds r1, r6, 0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 1
- ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized
- adds r1, r0
- ldrh r4, [r1]
- lsrs r0, r4, 9
- ldr r1, _080EAFBC @ =0x000001ff
- adds r2, r1, 0
- adds r1, r4, 0
- ands r1, r2
- str r3, [sp, 0xC]
- bl sub_80EADC0
- lsls r0, 24
- ldr r3, [sp, 0xC]
- cmp r0, 0
- beq _080EAFA2
- cmp r7, 0
- bne _080EAFA2
- ldr r7, _080EAFC0 @ =gUnknown_083DB694
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 1
- adds r1, r3
- ldr r7, _080EAFC4 @ =0x00000b78
- adds r0, r2, r7
- adds r0, r1
- strh r4, [r0]
- ldr r0, _080EAFC8 @ =0x00004142
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- movs r7, 0x1
-_080EAFA2:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080EAFB8 @ =0x0000ffff
- cmp r5, r1
- bne _080EAF4E
- b _080EB00C
- .align 2, 0
-_080EAFB0: .4byte gEasyChatWordsAlphabetized
-_080EAFB4: .4byte 0x0000feff
-_080EAFB8: .4byte 0x0000ffff
-_080EAFBC: .4byte 0x000001ff
-_080EAFC0: .4byte gUnknown_083DB694
-_080EAFC4: .4byte 0x00000b78
-_080EAFC8: .4byte 0x00004142
-_080EAFCC:
- lsrs r0, r4, 9
- ldr r3, _080EB030 @ =0x000001ff
- adds r2, r3, 0
- adds r1, r4, 0
- ands r1, r2
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB00C
- ldr r7, _080EB034 @ =gUnknown_083DB694
- ldr r2, [r7]
- mov r1, r9
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r3, r8
- lsls r0, r3, 8
- subs r0, r3
- adds r0, r1
- lsls r0, 1
- ldr r7, _080EB038 @ =0x00000b78
- adds r1, r2, r7
- adds r1, r0
- strh r4, [r1]
- ldr r0, _080EB03C @ =0x00004142
- adds r2, r0
- add r2, r10
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EB00C:
- ldr r1, [sp]
- cmp r6, r1
- bcc _080EAF1C
- ldr r3, [sp, 0x8]
- lsls r0, r3, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x1A
- bhi _080EB020
- b _080EAEE6
-_080EB020:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB030: .4byte 0x000001ff
-_080EB034: .4byte gUnknown_083DB694
-_080EB038: .4byte 0x00000b78
-_080EB03C: .4byte 0x00004142
- thumb_func_end sub_80EAECC
-
- thumb_func_start sub_80EB040
-sub_80EB040: @ 80EB040
- push {r4-r6,lr}
- movs r3, 0
-_080EB044:
- adds r6, r3, 0x1
- cmp r3, 0
- beq _080EB094
- cmp r3, 0x15
- beq _080EB094
- cmp r3, 0x12
- beq _080EB094
- cmp r3, 0x13
- beq _080EB094
- ldr r0, _080EB0A4 @ =gEasyChatGroupWords
- lsls r1, r3, 2
- adds r1, r0
- ldr r2, [r1]
- movs r4, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _080EB094
- ldr r0, _080EB0A8 @ =gUnknown_083DB694
- ldr r0, [r0]
- ldr r1, _080EB0AC @ =0x000041a4
- adds r5, r0, r1
-_080EB06E:
- lsls r0, r4, 2
- lsls r1, r3, 10
- adds r0, r1
- adds r0, r5, r0
- str r2, [r0]
- ldrb r0, [r2]
- adds r1, r4, 0x1
- cmp r0, 0xFF
- beq _080EB088
-_080EB080:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB080
-_080EB088:
- adds r2, 0x1
- lsls r0, r1, 16
- lsrs r4, r0, 16
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080EB06E
-_080EB094:
- lsls r0, r6, 16
- lsrs r3, r0, 16
- cmp r3, 0x15
- bls _080EB044
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB0A4: .4byte gEasyChatGroupWords
-_080EB0A8: .4byte gUnknown_083DB694
-_080EB0AC: .4byte 0x000041a4
- thumb_func_end sub_80EB040
-
- thumb_func_start sub_80EB0B0
-sub_80EB0B0: @ 80EB0B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r3, _080EB184 @ =gUnknown_083DB694
- ldr r4, [r3]
- adds r0, r4, 0
- adds r0, 0x26
- ldrb r5, [r0]
- cmp r5, 0
- bne _080EB19C
- movs r0, 0xDC
- lsls r0, 1
- adds r2, r4, r0
- ldrb r6, [r2]
- lsls r1, r6, 1
- ldr r7, _080EB188 @ =0x00004178
- adds r0, r4, r7
- adds r0, r1
- strh r5, [r0]
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r1, _080EB18C @ =gEasyChatGroupOrders
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp]
- movs r1, 0
- mov r8, r1
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB0FE
- b _080EB1FA
-_080EB0FE:
- movs r2, 0xDC
- lsls r2, 1
- adds r2, r4, r2
- str r2, [sp, 0x4]
- lsls r5, r6, 24
- mov r10, r5
-_080EB10A:
- mov r1, r8
- lsls r0, r1, 1
- ldr r2, [sp]
- adds r5, r0, r2
- ldrh r1, [r5]
- mov r2, r10
- lsrs r0, r2, 24
- bl sub_80EADC0
- lsls r0, 24
- cmp r0, 0
- beq _080EB16A
- ldr r0, _080EB184 @ =gUnknown_083DB694
- ldr r3, [r0]
- lsls r1, r7, 1
- mov r2, r9
- lsls r0, r2, 2
- adds r1, r0
- ldr r0, _080EB194 @ =0x00009a2a
- adds r4, r3, r0
- adds r4, r1
- movs r0, 0x7F
- ands r0, r6
- lsls r0, 9
- ldrh r1, [r5]
- ldr r5, _080EB198 @ =0x000001ff
- adds r2, r5, 0
- ands r1, r2
- orrs r0, r1
- strh r0, [r4]
- lsls r0, r6, 1
- ldr r1, _080EB188 @ =0x00004178
- adds r3, r1
- adds r3, r0
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x1
- bls _080EB16A
- movs r7, 0
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_080EB16A:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080EB190 @ =gEasyChatGroupSizes
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r8, r0
- bcc _080EB10A
- b _080EB1FA
- .align 2, 0
-_080EB184: .4byte gUnknown_083DB694
-_080EB188: .4byte 0x00004178
-_080EB18C: .4byte gEasyChatGroupOrders
-_080EB190: .4byte gEasyChatGroupSizes
-_080EB194: .4byte 0x00009a2a
-_080EB198: .4byte 0x000001ff
-_080EB19C:
- movs r5, 0xDC
- lsls r5, 1
- adds r0, r4, r5
- ldrb r2, [r0]
- movs r3, 0
- movs r6, 0
- movs r5, 0
- lsls r1, r2, 1
- ldr r7, _080EB20C @ =0x00004142
- adds r0, r4, r7
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r5, r0
- bcs _080EB1FA
- ldr r7, _080EB210 @ =0x00009a2a
- adds r7, r4
- mov r8, r7
- lsls r0, r2, 8
- subs r0, r2
- lsls r7, r0, 1
- ldr r0, _080EB214 @ =0x00000b78
- adds r2, r4, r0
- adds r4, r1, 0
-_080EB1CA:
- lsls r1, r3, 1
- lsls r0, r6, 2
- adds r1, r0
- add r1, r8
- lsls r0, r5, 1
- adds r0, r7
- adds r0, r2, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x1
- bls _080EB1EE
- movs r3, 0
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB1EE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r1, [r4]
- cmp r5, r1
- bcc _080EB1CA
-_080EB1FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB20C: .4byte 0x00004142
-_080EB210: .4byte 0x00009a2a
-_080EB214: .4byte 0x00000b78
- thumb_func_end sub_80EB0B0
-
- thumb_func_start sub_80EB218
-sub_80EB218: @ 80EB218
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB240
- ldr r1, _080EB23C @ =gOtherText_ThreeQuestions
- b _080EB2A2
- .align 2, 0
-_080EB23C: .4byte gOtherText_ThreeQuestions
-_080EB240:
- ldr r0, _080EB250 @ =0x0000ffff
- cmp r4, r0
- bne _080EB254
- adds r1, r5, 0
- movs r0, 0xFF
- strb r0, [r1]
- b _080EB2AA
- .align 2, 0
-_080EB250: .4byte 0x0000ffff
-_080EB254:
- lsrs r2, r6, 25
- ldr r1, _080EB268 @ =0x000001ff
- ands r1, r7
- cmp r2, 0x13
- bgt _080EB26C
- cmp r2, 0x12
- bge _080EB280
- cmp r2, 0
- beq _080EB270
- b _080EB290
- .align 2, 0
-_080EB268: .4byte 0x000001ff
-_080EB26C:
- cmp r2, 0x15
- bne _080EB290
-_080EB270:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB27C @ =gSpeciesNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB27C: .4byte gSpeciesNames
-_080EB280:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB28C @ =gMoveNames
- adds r1, r0
- b _080EB2A2
- .align 2, 0
-_080EB28C: .4byte gMoveNames
-_080EB290:
- ldr r0, _080EB2CC @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB2D0 @ =0x000041a4
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB2A2:
- adds r0, r5, 0
- bl StringCopy
- adds r1, r0, 0
-_080EB2AA:
- movs r0, 0xFC
- strb r0, [r1]
- movs r0, 0x13
- strb r0, [r1, 0x1]
- mov r2, r8
- lsls r0, r2, 3
- strb r0, [r1, 0x2]
- adds r1, 0x3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB2CC: .4byte gUnknown_083DB694
-_080EB2D0: .4byte 0x000041a4
- thumb_func_end sub_80EB218
-
- thumb_func_start sub_80EB2D4
-sub_80EB2D4: @ 80EB2D4
- push {r4-r6,lr}
- lsls r5, r0, 16
- lsrs r4, r5, 16
- adds r6, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB2F8
- ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- b _080EB374
- .align 2, 0
-_080EB2F4: .4byte gOtherText_ThreeQuestions
-_080EB2F8:
- ldr r0, _080EB304 @ =0x0000ffff
- cmp r4, r0
- bne _080EB308
- movs r0, 0
- b _080EB374
- .align 2, 0
-_080EB304: .4byte 0x0000ffff
-_080EB308:
- lsrs r2, r5, 25
- ldr r1, _080EB31C @ =0x000001ff
- ands r1, r6
- cmp r2, 0x13
- bgt _080EB320
- cmp r2, 0x12
- bge _080EB334
- cmp r2, 0
- beq _080EB324
- b _080EB344
- .align 2, 0
-_080EB31C: .4byte 0x000001ff
-_080EB320:
- cmp r2, 0x15
- bne _080EB344
-_080EB324:
- movs r0, 0xB
- muls r1, r0
- ldr r0, _080EB330 @ =gSpeciesNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB330: .4byte gSpeciesNames
-_080EB334:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080EB340 @ =gMoveNames
- adds r1, r0
- b _080EB356
- .align 2, 0
-_080EB340: .4byte gMoveNames
-_080EB344:
- ldr r0, _080EB35C @ =gUnknown_083DB694
- ldr r0, [r0]
- lsls r1, 2
- lsls r2, 10
- adds r1, r2
- ldr r2, _080EB360 @ =0x000041a4
- adds r0, r2
- adds r0, r1
- ldr r1, [r0]
-_080EB356:
- movs r2, 0
- b _080EB36C
- .align 2, 0
-_080EB35C: .4byte gUnknown_083DB694
-_080EB360: .4byte 0x000041a4
-_080EB364:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB36C:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB364
- adds r0, r2, 0
-_080EB374:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB2D4
-
- thumb_func_start sub_80EB37C
-sub_80EB37C: @ 80EB37C
- push {r4,r5,lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB3A0 @ =0x0000ffff
- cmp r3, r0
- beq _080EB3EA
- lsrs r2, r1, 25
- ldr r5, _080EB3A4 @ =0x000001ff
- ands r5, r3
- cmp r2, 0x15
- bhi _080EB3F4
- cmp r2, 0x13
- bgt _080EB3A8
- cmp r2, 0x12
- bge _080EB3AC
- cmp r2, 0
- beq _080EB3AC
- b _080EB3E0
- .align 2, 0
-_080EB3A0: .4byte 0x0000ffff
-_080EB3A4: .4byte 0x000001ff
-_080EB3A8:
- cmp r2, 0x15
- bne _080EB3E0
-_080EB3AC:
- ldr r0, _080EB3D8 @ =gEasyChatGroupWords
- lsls r1, r2, 2
- adds r1, r0
- ldr r4, [r1]
- movs r3, 0
- ldr r0, _080EB3DC @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080EB3F4
- adds r1, r0, 0
-_080EB3C2:
- lsls r0, r3, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r5, r0
- beq _080EB3EA
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _080EB3C2
- b _080EB3F4
- .align 2, 0
-_080EB3D8: .4byte gEasyChatGroupWords
-_080EB3DC: .4byte gEasyChatGroupSizes
-_080EB3E0:
- ldr r0, _080EB3F0 @ =gEasyChatGroupSizes
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080EB3F4
-_080EB3EA:
- movs r0, 0
- b _080EB3F6
- .align 2, 0
-_080EB3F0: .4byte gEasyChatGroupSizes
-_080EB3F4:
- movs r0, 0x1
-_080EB3F6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB37C
-
- thumb_func_start sub_80EB3FC
-sub_80EB3FC: @ 80EB3FC
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r6, r1, 16
- lsrs r4, r6, 16
- adds r7, r4, 0
- adds r0, r4, 0
- bl sub_80EB37C
- lsls r0, 24
- cmp r0, 0
- beq _080EB420
- ldr r1, _080EB41C @ =gOtherText_ThreeQuestions
- adds r0, r5, 0
- bl StringCopy
- b _080EB4A6
- .align 2, 0
-_080EB41C: .4byte gOtherText_ThreeQuestions
-_080EB420:
- ldr r0, _080EB43C @ =0x0000ffff
- cmp r4, r0
- beq _080EB4A0
- lsrs r1, r6, 25
- ldr r2, _080EB440 @ =0x000001ff
- ands r2, r7
- cmp r1, 0x13
- bgt _080EB444
- cmp r1, 0x12
- bge _080EB458
- cmp r1, 0
- beq _080EB448
- b _080EB468
- .align 2, 0
-_080EB43C: .4byte 0x0000ffff
-_080EB440: .4byte 0x000001ff
-_080EB444:
- cmp r1, 0x15
- bne _080EB468
-_080EB448:
- movs r0, 0xB
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB454 @ =gSpeciesNames
- adds r1, r0
- b _080EB498
- .align 2, 0
-_080EB454: .4byte gSpeciesNames
-_080EB458:
- movs r0, 0xD
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB464 @ =gMoveNames
- adds r1, r0
- b _080EB498
- .align 2, 0
-_080EB464: .4byte gMoveNames
-_080EB468:
- ldr r0, _080EB4AC @ =gEasyChatGroupWords
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB4B0 @ =0x0000ffff
- cmp r2, r0
- beq _080EB498
- adds r3, r0, 0
-_080EB47E:
- ldrb r0, [r1]
- adds r1, 0x1
- subs r2, 0x1
- cmp r0, 0xFF
- beq _080EB490
-_080EB488:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFF
- bne _080EB488
-_080EB490:
- lsls r0, r2, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB47E
-_080EB498:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
-_080EB4A0:
- movs r0, 0xFF
- strb r0, [r5]
- adds r0, r5, 0
-_080EB4A6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB4AC: .4byte gEasyChatGroupWords
-_080EB4B0: .4byte 0x0000ffff
- thumb_func_end sub_80EB3FC
-
- thumb_func_start ConvertEasyChatWordsToString
-ConvertEasyChatWordsToString: @ 80EB4B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- ldr r0, _080EB53C @ =0xffff0000
- adds r2, r0
- lsrs r7, r2, 16
- movs r0, 0
- cmp r0, r9
- bcs _080EB524
-_080EB4D6:
- movs r6, 0
- adds r0, 0x1
- mov r8, r0
- cmp r6, r7
- bcs _080EB508
- ldr r2, _080EB540 @ =0x0000ffff
-_080EB4E2:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB4FC
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB4FC:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EB4E2
-_080EB508:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- movs r0, 0xFE
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r8
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, r9
- bcc _080EB4D6
-_080EB524:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB53C: .4byte 0xffff0000
-_080EB540: .4byte 0x0000ffff
- thumb_func_end ConvertEasyChatWordsToString
-
- thumb_func_start sub_80EB544
-sub_80EB544: @ 80EB544
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldr r0, _080EB5B0 @ =0xffff0000
- adds r2, r0
- lsrs r2, 16
- mov r8, r2
- movs r7, 0
- cmp r7, r10
- bcs _080EB5C8
-_080EB56A:
- movs r6, 0
- adds r1, r7, 0x1
- mov r9, r1
- cmp r6, r8
- bcs _080EB59C
- ldr r2, _080EB5B4 @ =0x0000ffff
-_080EB576:
- ldrh r1, [r5]
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80EB3FC
- adds r4, r0, 0
- ldrh r0, [r5]
- ldr r2, [sp]
- cmp r0, r2
- beq _080EB590
- movs r0, 0
- strb r0, [r4]
- adds r4, 0x1
-_080EB590:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r8
- bcc _080EB576
-_080EB59C:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r4, 0
- bl sub_80EB3FC
- adds r4, r0, 0
- cmp r7, 0
- bne _080EB5B8
- movs r0, 0xFE
- b _080EB5BA
- .align 2, 0
-_080EB5B0: .4byte 0xffff0000
-_080EB5B4: .4byte 0x0000ffff
-_080EB5B8:
- movs r0, 0xFA
-_080EB5BA:
- strb r0, [r4]
- adds r4, 0x1
- mov r1, r9
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, r10
- bcc _080EB56A
-_080EB5C8:
- subs r4, 0x1
- movs r0, 0xFF
- strb r0, [r4]
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB544
-
- thumb_func_start unref_sub_80EB5E0
-unref_sub_80EB5E0: @ 80EB5E0
- push {lr}
- lsls r1, r0, 16
- lsrs r3, r1, 16
- ldr r0, _080EB5F0 @ =0x0000ffff
- cmp r3, r0
- bne _080EB5F4
- movs r0, 0
- b _080EB67C
- .align 2, 0
-_080EB5F0: .4byte 0x0000ffff
-_080EB5F4:
- lsrs r1, 25
- ldr r2, _080EB608 @ =0x000001ff
- ands r2, r3
- cmp r1, 0x13
- bgt _080EB60C
- cmp r1, 0x12
- bge _080EB620
- cmp r1, 0
- beq _080EB610
- b _080EB630
- .align 2, 0
-_080EB608: .4byte 0x000001ff
-_080EB60C:
- cmp r1, 0x15
- bne _080EB630
-_080EB610:
- movs r0, 0xB
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB61C @ =gSpeciesNames
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB61C: .4byte gSpeciesNames
-_080EB620:
- movs r0, 0xD
- adds r1, r2, 0
- muls r1, r0
- ldr r0, _080EB62C @ =gMoveNames
- adds r1, r0
- b _080EB660
- .align 2, 0
-_080EB62C: .4byte gMoveNames
-_080EB630:
- ldr r0, _080EB664 @ =gEasyChatGroupWords
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB668 @ =0x0000ffff
- cmp r2, r0
- beq _080EB660
- adds r3, r0, 0
-_080EB646:
- ldrb r0, [r1]
- adds r1, 0x1
- subs r2, 0x1
- cmp r0, 0xFF
- beq _080EB658
-_080EB650:
- ldrb r0, [r1]
- adds r1, 0x1
- cmp r0, 0xFF
- bne _080EB650
-_080EB658:
- lsls r0, r2, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB646
-_080EB660:
- movs r2, 0
- b _080EB674
- .align 2, 0
-_080EB664: .4byte gEasyChatGroupWords
-_080EB668: .4byte 0x0000ffff
-_080EB66C:
- adds r1, 0x1
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080EB674:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080EB66C
- adds r0, r2, 0
-_080EB67C:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80EB5E0
-
- thumb_func_start sub_80EB680
-sub_80EB680: @ 80EB680
- movs r0, 0
- bx lr
- thumb_func_end sub_80EB680
-
- thumb_func_start unref_sub_80EB684
-unref_sub_80EB684: @ 80EB684
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0x7
- beq _080EB6B4
- cmp r0, 0x7
- bgt _080EB69E
- cmp r0, 0x5
- beq _080EB6A4
- b _080EB6EE
-_080EB69E:
- cmp r2, 0x8
- beq _080EB6C4
- b _080EB6EE
-_080EB6A4:
- movs r2, 0x6
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6B0 @ =gSaveBlock1 + 0x273C
- b _080EB6CE
- .align 2, 0
-_080EB6B0: .4byte gSaveBlock1 + 0x273C
-_080EB6B4:
- movs r2, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6C0 @ =gSaveBlock1 + 0x2754
- b _080EB6CE
- .align 2, 0
-_080EB6C0: .4byte gSaveBlock1 + 0x2754
-_080EB6C4:
- movs r2, 0x1
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080EB6F4 @ =gSaveBlock1 + 0x273A
-_080EB6CE:
- adds r1, r0, r1
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080EB6F8 @ =0x0000ffff
- cmp r2, r0
- beq _080EB6EE
- adds r4, r0, 0
- adds r3, r0, 0
-_080EB6E0:
- strh r4, [r1]
- adds r1, 0x2
- subs r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bne _080EB6E0
-_080EB6EE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB6F4: .4byte gSaveBlock1 + 0x273A
-_080EB6F8: .4byte 0x0000ffff
- thumb_func_end unref_sub_80EB684
-
- thumb_func_start sub_80EB6FC
-sub_80EB6FC: @ 80EB6FC
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- ldr r0, _080EB724 @ =0xffff0000
- adds r1, r0
- lsrs r0, r1, 16
- ldr r1, _080EB728 @ =0x0000ffff
- cmp r0, r1
- beq _080EB71E
- adds r3, r1, 0
-_080EB710:
- strh r3, [r2]
- adds r2, 0x2
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bne _080EB710
-_080EB71E:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB724: .4byte 0xffff0000
-_080EB728: .4byte 0x0000ffff
- thumb_func_end sub_80EB6FC
-
- thumb_func_start sub_80EB72C
-sub_80EB72C: @ 80EB72C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080EB778 @ =gEasyChatGroupSizes
- adds r1, r4, r1
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- beq _080EB758
- cmp r4, 0x15
- beq _080EB758
- cmp r4, 0x12
- beq _080EB758
- cmp r4, 0x13
- bne _080EB766
-_080EB758:
- ldr r1, _080EB77C @ =gEasyChatGroupWords
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r2, [r0]
-_080EB766:
- movs r0, 0x7F
- ands r0, r4
- lsls r0, 9
- ldr r1, _080EB780 @ =0x000001ff
- ands r2, r1
- orrs r0, r2
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB778: .4byte gEasyChatGroupSizes
-_080EB77C: .4byte gEasyChatGroupWords
-_080EB780: .4byte 0x000001ff
- thumb_func_end sub_80EB72C
-
- thumb_func_start sub_80EB784
-sub_80EB784: @ 80EB784
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EAD7C
- lsls r0, 24
- cmp r0, 0
- bne _080EB7A0
- ldr r0, _080EB79C @ =0x0000ffff
- b _080EB7BE
- .align 2, 0
-_080EB79C: .4byte 0x0000ffff
-_080EB7A0:
- cmp r4, 0
- beq _080EB7AE
- cmp r4, 0x14
- bne _080EB7B4
- bl sub_80EB960
- b _080EB7BA
-_080EB7AE:
- bl sub_80EB9D8
- b _080EB7BA
-_080EB7B4:
- adds r0, r4, 0
- bl sub_80EB72C
-_080EB7BA:
- lsls r0, 16
- lsrs r0, 16
-_080EB7BE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB784
-
- thumb_func_start sub_80EB7C4
-sub_80EB7C4: @ 80EB7C4
- push {r4,r5,lr}
- ldr r0, _080EB7D8 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080EB7F0
- cmp r0, 0x1
- bgt _080EB7DC
- cmp r0, 0
- beq _080EB7E6
- b _080EB82E
- .align 2, 0
-_080EB7D8: .4byte gUnknown_0202E8CC
-_080EB7DC:
- cmp r0, 0x2
- beq _080EB810
- cmp r0, 0x3
- beq _080EB818
- b _080EB82E
-_080EB7E6:
- ldr r5, _080EB7EC @ =gSaveBlock1 + 0x2B1C
- movs r2, 0x2
- b _080EB81C
- .align 2, 0
-_080EB7EC: .4byte gSaveBlock1 + 0x2B1C
-_080EB7F0:
- ldr r5, _080EB80C @ =gSaveBlock1 + 0x2B28
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x14
- bl sub_80EB680
- lsls r0, 24
- cmp r0, 0
- beq _080EB81A
- movs r2, 0x2
- movs r3, 0x3
- b _080EB81E
- .align 2, 0
-_080EB80C: .4byte gSaveBlock1 + 0x2B28
-_080EB810:
- ldr r5, _080EB814 @ =gSaveBlock1 + 0x2B34
- b _080EB81A
- .align 2, 0
-_080EB814: .4byte gSaveBlock1 + 0x2B34
-_080EB818:
- ldr r5, _080EB834 @ =gSaveBlock1 + 0x2B40
-_080EB81A:
- movs r2, 0x3
-_080EB81C:
- movs r3, 0x2
-_080EB81E:
- ldr r4, _080EB838 @ =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl ConvertEasyChatWordsToString
- adds r0, r4, 0
- bl ShowFieldAutoScrollMessage
-_080EB82E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB834: .4byte gSaveBlock1 + 0x2B40
-_080EB838: .4byte gStringVar4
- thumb_func_end sub_80EB7C4
-
- thumb_func_start sub_80EB83C
-sub_80EB83C: @ 80EB83C
- push {lr}
- bl Random
- movs r1, 0x1
- ands r1, r0
- movs r0, 0xC
- cmp r1, 0
- beq _080EB84E
- movs r0, 0xD
-_080EB84E:
- bl sub_80EB784
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _080EB864 @ =gStringVar2
- bl sub_80EB3FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EB864: .4byte gStringVar2
- thumb_func_end sub_80EB83C
-
- thumb_func_start sub_80EB868
-sub_80EB868: @ 80EB868
- lsls r0, 24
- lsrs r2, r0, 27
- movs r1, 0xE0
- lsls r1, 19
- ands r1, r0
- lsrs r1, 24
- ldr r0, _080EB888 @ =gSaveBlock1
- ldr r3, _080EB88C @ =0x00002d8c
- adds r0, r3
- adds r2, r0
- ldrb r0, [r2]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_080EB888: .4byte gSaveBlock1
-_080EB88C: .4byte 0x00002d8c
- thumb_func_end sub_80EB868
-
- thumb_func_start sub_80EB890
-sub_80EB890: @ 80EB890
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x20
- bhi _080EB8B2
- lsrs r2, r0, 27
- movs r1, 0x7
- ands r1, r3
- ldr r0, _080EB8B8 @ =gSaveBlock1
- ldr r3, _080EB8BC @ =0x00002d8c
- adds r0, r3
- adds r2, r0
- movs r0, 0x1
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
-_080EB8B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EB8B8: .4byte gSaveBlock1
-_080EB8BC: .4byte 0x00002d8c
- thumb_func_end sub_80EB890
-
- thumb_func_start sub_80EB8C0
-sub_80EB8C0: @ 80EB8C0
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_080EB8C6:
- adds r0, r4, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB8D8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080EB8D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x20
- bls _080EB8C6
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80EB8C0
-
- thumb_func_start sub_80EB8EC
-sub_80EB8EC: @ 80EB8EC
- push {r4-r6,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x21
- bne _080EB918
- b _080EB952
-_080EB8FC:
- adds r0, r5, 0
- bl sub_80EB890
- ldr r0, _080EB914 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB954
- .align 2, 0
-_080EB914: .4byte 0x000001ff
-_080EB918:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x21
- subs r1, r4
- bl __modsi3
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
-_080EB92E:
- lsls r0, r4, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- bne _080EB948
- cmp r6, 0
- beq _080EB8FC
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080EB948:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB92E
-_080EB952:
- ldr r0, _080EB95C @ =0x0000ffff
-_080EB954:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB95C: .4byte 0x0000ffff
- thumb_func_end sub_80EB8EC
-
- thumb_func_start sub_80EB960
-sub_80EB960: @ 80EB960
- push {r4,r5,lr}
- bl sub_80EB8C0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080EB984
- b _080EB9BA
-_080EB970:
- ldr r0, _080EB980 @ =0x000001ff
- ands r4, r0
- movs r1, 0xA0
- lsls r1, 6
- adds r0, r1, 0
- orrs r4, r0
- adds r0, r4, 0
- b _080EB9BC
- .align 2, 0
-_080EB980: .4byte 0x000001ff
-_080EB984:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_080EB998:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80EB868
- lsls r0, 24
- cmp r0, 0
- beq _080EB9B0
- cmp r5, 0
- beq _080EB970
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080EB9B0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x20
- bls _080EB998
-_080EB9BA:
- ldr r0, _080EB9C4 @ =0x0000ffff
-_080EB9BC:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080EB9C4: .4byte 0x0000ffff
- thumb_func_end sub_80EB960
-
- thumb_func_start sub_80EB9C8
-sub_80EB9C8: @ 80EB9C8
- push {lr}
- bl sub_806912C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80EB9C8
-
- thumb_func_start sub_80EB9D8
-sub_80EB9D8: @ 80EB9D8
- push {r4-r7,lr}
- movs r0, 0
- bl sub_80EAE88
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080EB9F8
- b _080EBA46
-_080EB9EA:
- ldrh r1, [r5]
- ldr r0, _080EB9F4 @ =0x000001ff
- ands r0, r1
- b _080EBA48
- .align 2, 0
-_080EB9F4: .4byte 0x000001ff
-_080EB9F8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _080EBA50 @ =gEasyChatGroupWords
- ldr r5, [r0]
- movs r6, 0
- ldr r0, _080EBA54 @ =gEasyChatGroupSizes
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080EBA46
- adds r7, r0, 0
-_080EBA1A:
- ldrh r0, [r5]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _080EBA3A
- cmp r4, 0
- beq _080EB9EA
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EBA3A:
- adds r5, 0x2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, r7
- bcc _080EBA1A
-_080EBA46:
- ldr r0, _080EBA58 @ =0x0000ffff
-_080EBA48:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080EBA50: .4byte gEasyChatGroupWords
-_080EBA54: .4byte gEasyChatGroupSizes
-_080EBA58: .4byte 0x0000ffff
- thumb_func_end sub_80EB9D8
-
- thumb_func_start sub_80EBA5C
-sub_80EBA5C: @ 80EBA5C
- push {lr}
- ldr r0, _080EBA74 @ =gMain
- ldr r2, _080EBA78 @ =0x0000043c
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bhi _080EBABC
- lsls r0, 2
- ldr r1, _080EBA7C @ =_080EBA80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBA74: .4byte gMain
-_080EBA78: .4byte 0x0000043c
-_080EBA7C: .4byte _080EBA80
- .align 2, 0
-_080EBA80:
- .4byte _080EBAC0
- .4byte _080EBB08
- .4byte _080EBB10
- .4byte _080EBB16
- .4byte _080EBB1C
- .4byte _080EBB22
- .4byte _080EBB28
- .4byte _080EBB2E
- .4byte _080EBB3E
- .4byte _080EBB4C
- .4byte _080EBB5C
- .4byte _080EBB6C
- .4byte _080EBB7C
- .4byte _080EBB90
- .4byte _080EBBA0
-_080EBABC:
- movs r0, 0
- strb r0, [r1]
-_080EBAC0:
- bl is_c1_link_related_active
- ldr r3, _080EBAF0 @ =0x02000000
- ldr r2, _080EBAF4 @ =0x00006dac
- adds r1, r3, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080EBBC0
- ldr r1, _080EBAF8 @ =0x00006dab
- adds r0, r3, r1
- strb r2, [r0]
- ldr r1, _080EBAFC @ =gMain
- ldr r2, _080EBB00 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBB04 @ =sub_80EBBE8
- bl SetMainCallback2
- b _080EBBC0
- .align 2, 0
-_080EBAF0: .4byte 0x02000000
-_080EBAF4: .4byte 0x00006dac
-_080EBAF8: .4byte 0x00006dab
-_080EBAFC: .4byte gMain
-_080EBB00: .4byte 0x0000043c
-_080EBB04: .4byte sub_80EBBE8
-_080EBB08:
- movs r0, 0
- bl SetVBlankCallback
- b _080EBBC0
-_080EBB10:
- bl ResetPaletteFade
- b _080EBBC0
-_080EBB16:
- bl ResetSpriteData
- b _080EBBC0
-_080EBB1C:
- bl FreeAllSpritePalettes
- b _080EBBC0
-_080EBB22:
- bl ResetTasks
- b _080EBBC0
-_080EBB28:
- bl remove_some_task
- b _080EBBC0
-_080EBB2E:
- bl sub_80F1A90
- ldr r1, _080EBB44 @ =gMain
- ldr r0, _080EBB48 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB3E:
- bl sub_80F1AC4
- b _080EBB80
- .align 2, 0
-_080EBB44: .4byte gMain
-_080EBB48: .4byte 0x0000043c
-_080EBB4C:
- bl sub_80F2688
- ldr r1, _080EBB64 @ =gMain
- ldr r2, _080EBB68 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB5C:
- bl sub_80F26BC
- b _080EBB80
- .align 2, 0
-_080EBB64: .4byte gMain
-_080EBB68: .4byte 0x0000043c
-_080EBB6C:
- bl sub_80F36F0
- ldr r1, _080EBB88 @ =gMain
- ldr r0, _080EBB8C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBB7C:
- bl sub_80F3724
-_080EBB80:
- lsls r0, 24
- cmp r0, 0
- bne _080EBBCC
- b _080EBBC0
- .align 2, 0
-_080EBB88: .4byte gMain
-_080EBB8C: .4byte 0x0000043c
-_080EBB90:
- bl sub_80EBC10
- ldr r0, _080EBB9C @ =sub_80EBDD8
- bl sub_80EBDBC
- b _080EBBC0
- .align 2, 0
-_080EBB9C: .4byte sub_80EBDD8
-_080EBBA0:
- ldr r0, _080EBBD0 @ =0x02000000
- ldr r1, _080EBBD4 @ =0x00006dab
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x6E
- bl PlaySE
- ldr r0, _080EBBD8 @ =sub_80EBD90
- bl SetMainCallback2
- ldr r0, _080EBBDC @ =sub_80EBD18
- bl SetVBlankCallback
- bl sub_80F1A74
-_080EBBC0:
- ldr r1, _080EBBE0 @ =gMain
- ldr r2, _080EBBE4 @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EBBCC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EBBD0: .4byte 0x02000000
-_080EBBD4: .4byte 0x00006dab
-_080EBBD8: .4byte sub_80EBD90
-_080EBBDC: .4byte sub_80EBD18
-_080EBBE0: .4byte gMain
-_080EBBE4: .4byte 0x0000043c
- thumb_func_end sub_80EBA5C
-
- thumb_func_start sub_80EBBE8
-sub_80EBBE8: @ 80EBBE8
- push {r4,lr}
- ldr r0, _080EBC08 @ =0x02000000
- ldr r2, _080EBC0C @ =0x00006dab
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080EBC02
- adds r4, r1, 0
-_080EBBF8:
- bl sub_80EBA5C
- ldrb r0, [r4]
- cmp r0, 0
- beq _080EBBF8
-_080EBC02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC08: .4byte 0x02000000
-_080EBC0C: .4byte 0x00006dab
- thumb_func_end sub_80EBBE8
-
- thumb_func_start sub_80EBC10
-sub_80EBC10: @ 80EBC10
- push {r4-r7,lr}
- ldr r1, _080EBC7C @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r2, _080EBC80 @ =0x02000000
- ldr r1, _080EBC84 @ =0x00008828
- adds r3, r2, r1
- movs r1, 0
- strb r0, [r3]
- ldr r3, _080EBC88 @ =0x00006ddc
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC8C @ =0x00009344
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _080EBC90 @ =0x00008768
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080EBC94 @ =0x0000ced0
- adds r0, r2, r3
- str r1, [r0]
- movs r3, 0
- ldr r0, _080EBC98 @ =0x00008fff
- adds r7, r2, r0
- mov r12, r2
- movs r6, 0
- ldr r5, _080EBC9C @ =0x00009040
- movs r4, 0x9B
-_080EBC4C:
- adds r0, r3, r7
- strb r6, [r0]
- lsls r1, r3, 2
- adds r1, r2
- adds r0, r1, r5
- strh r4, [r0]
- ldr r0, _080EBCA0 @ =0x00009042
- adds r1, r0
- movs r0, 0x5B
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080EBC4C
- ldr r1, _080EBCA4 @ =0x00006e95
- add r1, r12
- movs r0, 0
- strb r0, [r1]
- bl sub_80EBCA8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBC7C: .4byte gKeyRepeatStartDelay
-_080EBC80: .4byte 0x02000000
-_080EBC84: .4byte 0x00008828
-_080EBC88: .4byte 0x00006ddc
-_080EBC8C: .4byte 0x00009344
-_080EBC90: .4byte 0x00008768
-_080EBC94: .4byte 0x0000ced0
-_080EBC98: .4byte 0x00008fff
-_080EBC9C: .4byte 0x00009040
-_080EBCA0: .4byte 0x00009042
-_080EBCA4: .4byte 0x00006e95
- thumb_func_end sub_80EBC10
-
- thumb_func_start sub_80EBCA8
-sub_80EBCA8: @ 80EBCA8
- push {r4,lr}
- ldr r4, _080EBCDC @ =0x02000000
- ldr r0, _080EBCE0 @ =0x00006db2
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EBCE4 @ =0x00006db3
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _080EBCE8 @ =0x00006db4
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _080EBCEC @ =0x0000083b
- bl FlagGet
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EBCF4
- ldr r0, _080EBCF0 @ =0x00006db5
- adds r1, r4, r0
- movs r0, 0x4
- strb r0, [r1]
- b _080EBCFA
- .align 2, 0
-_080EBCDC: .4byte 0x02000000
-_080EBCE0: .4byte 0x00006db2
-_080EBCE4: .4byte 0x00006db3
-_080EBCE8: .4byte 0x00006db4
-_080EBCEC: .4byte 0x0000083b
-_080EBCF0: .4byte 0x00006db5
-_080EBCF4:
- ldr r1, _080EBD0C @ =0x00006db5
- adds r0, r4, r1
- strb r2, [r0]
-_080EBCFA:
- ldr r0, _080EBD10 @ =0x02000000
- ldr r1, _080EBD14 @ =0x00006db6
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EBD0C: .4byte 0x00006db5
-_080EBD10: .4byte 0x02000000
-_080EBD14: .4byte 0x00006db6
- thumb_func_end sub_80EBCA8
-
- thumb_func_start sub_80EBD18
-sub_80EBD18: @ 80EBD18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F1FF0
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD18
-
- thumb_func_start sub_80EBD30
-sub_80EBD30: @ 80EBD30
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80FB260
- bl sub_80EFE7C
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD30
-
- thumb_func_start sub_80EBD4C
-sub_80EBD4C: @ 80EBD4C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F5BF0
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD4C
-
- thumb_func_start sub_80EBD68
-sub_80EBD68: @ 80EBD68
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_80F6F64
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD68
-
- thumb_func_start sub_80EBD80
-sub_80EBD80: @ 80EBD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- pop {r0}
- bx r0
- thumb_func_end sub_80EBD80
-
- thumb_func_start sub_80EBD90
-sub_80EBD90: @ 80EBD90
- push {lr}
- ldr r0, _080EBDB8 @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- bl sub_80F19FC
- pop {r0}
- bx r0
- .align 2, 0
-_080EBDB8: .4byte 0x02000000
- thumb_func_end sub_80EBD90
-
- thumb_func_start sub_80EBDBC
-sub_80EBDBC: @ 80EBDBC
- ldr r2, _080EBDD4 @ =0x02000000
- movs r3, 0xC0
- lsls r3, 2
- adds r1, r2, r3
- str r0, [r1]
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080EBDD4: .4byte 0x02000000
- thumb_func_end sub_80EBDBC
-
- thumb_func_start sub_80EBDD8
-sub_80EBDD8: @ 80EBDD8
- push {lr}
- sub sp, 0x4
- ldr r1, _080EBDF8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x11
- bls _080EBDEE
- b _080EC000
-_080EBDEE:
- lsls r0, 2
- ldr r1, _080EBDFC @ =_080EBE00
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EBDF8: .4byte 0x02000000
-_080EBDFC: .4byte _080EBE00
- .align 2, 0
-_080EBE00:
- .4byte _080EBE48
- .4byte _080EBE80
- .4byte _080EBE92
- .4byte _080EBEAC
- .4byte _080EBEC0
- .4byte _080EBED2
- .4byte _080EBEF0
- .4byte _080EBF04
- .4byte _080EBF18
- .4byte _080EBF2C
- .4byte _080EBF48
- .4byte _080EBF54
- .4byte _080EBF74
- .4byte _080EBF88
- .4byte _080EBFA0
- .4byte _080EBFB4
- .4byte _080EBFD0
- .4byte _080EBFE8
-_080EBE48:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080EBE74 @ =0x02000000
- ldr r3, _080EBE78 @ =0x00006ddc
- adds r0, r1, r3
- ldrb r2, [r0]
- subs r3, 0x2F
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EBE7C @ =0x00006dae
- adds r2, r1, r0
- movs r0, 0x5
- strb r0, [r2]
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBE74: .4byte 0x02000000
-_080EBE78: .4byte 0x00006ddc
-_080EBE7C: .4byte 0x00006dae
-_080EBE80:
- bl sub_80F3FF0
- ldr r1, _080EBEA8 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBE92:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- beq _080EBE9E
- b _080EC000
-_080EBE9E:
- ldr r1, _080EBEA8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEA8: .4byte 0x02000000
-_080EBEAC:
- bl sub_80F2598
- ldr r1, _080EBEBC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBEBC: .4byte 0x02000000
-_080EBEC0:
- bl sub_80EEE20
- ldr r1, _080EBEEC @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBED2:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- beq _080EBEDE
- b _080EC000
-_080EBEDE:
- bl sub_80EEE08
- ldr r1, _080EBEEC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBEEC: .4byte 0x02000000
-_080EBEF0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EBF14 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF04:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EBF12
- b _080EC000
-_080EBF12:
- b _080EBFD4
- .align 2, 0
-_080EBF14: .4byte 0x02000000
-_080EBF18:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EBF44 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBF2C:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBF44 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF44: .4byte 0x02000000
-_080EBF48:
- ldr r0, _080EBF50 @ =sub_80EBD18
- bl SetVBlankCallback
- b _080EBFD4
- .align 2, 0
-_080EBF50: .4byte sub_80EBD18
-_080EBF54:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _080EBF70 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EBFDC
- .align 2, 0
-_080EBF70: .4byte 0x02000000
-_080EBF74:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EBF84 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBF84: .4byte 0x02000000
-_080EBF88:
- ldr r0, _080EBF9C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r2, r3
- b _080EBFDC
- .align 2, 0
-_080EBF9C: .4byte gPaletteFade
-_080EBFA0:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EBFCC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EBFB4:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- ldr r1, _080EBFCC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EBFDC
- .align 2, 0
-_080EBFCC: .4byte 0x02000000
-_080EBFD0:
- bl sub_80F1DF0
-_080EBFD4:
- ldr r1, _080EBFE4 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080EBFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC000
- .align 2, 0
-_080EBFE4: .4byte 0x02000000
-_080EBFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC000
- movs r0, 0
- movs r1, 0
- bl sub_80EF428
- ldr r0, _080EC008 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC000:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EC008: .4byte sub_80EC268
- thumb_func_end sub_80EBDD8
-
- thumb_func_start sub_80EC00C
-sub_80EC00C: @ 80EC00C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC02C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080EC022
- b _080EC1FA
-_080EC022:
- lsls r0, 2
- ldr r1, _080EC030 @ =_080EC034
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC02C: .4byte 0x02000000
-_080EC030: .4byte _080EC034
- .align 2, 0
-_080EC034:
- .4byte _080EC06C
- .4byte _080EC0C0
- .4byte _080EC0D4
- .4byte _080EC0F0
- .4byte _080EC104
- .4byte _080EC120
- .4byte _080EC12A
- .4byte _080EC154
- .4byte _080EC168
- .4byte _080EC180
- .4byte _080EC194
- .4byte _080EC1A8
- .4byte _080EC1C4
- .4byte _080EC1DC
-_080EC06C:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080EC078
- b _080EC1FA
-_080EC078:
- ldr r0, _080EC0AC @ =sub_80EBD80
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080EC0B0 @ =0x02000000
- ldr r1, _080EC0B4 @ =0x00006ddc
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080EC0B8 @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080EC0BC @ =0x00006dae
- adds r1, r4, r0
- movs r0, 0x5
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC1FA
- .align 2, 0
-_080EC0AC: .4byte sub_80EBD80
-_080EC0B0: .4byte 0x02000000
-_080EC0B4: .4byte 0x00006ddc
-_080EC0B8: .4byte 0x00006dad
-_080EC0BC: .4byte 0x00006dae
-_080EC0C0:
- movs r0, 0
- bl sub_80EF248
- ldr r1, _080EC0EC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC0D4:
- movs r0, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080EC0E2
- b _080EC1FA
-_080EC0E2:
- ldr r1, _080EC0EC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC0EC: .4byte 0x02000000
-_080EC0F0:
- movs r0, 0
- bl sub_80F1B8C
- ldr r1, _080EC11C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC104:
- movs r0, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080EC112
- b _080EC1FA
-_080EC112:
- ldr r1, _080EC11C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC11C: .4byte 0x02000000
-_080EC120:
- bl sub_8055870
- cmp r0, 0
- bne _080EC1FA
- b _080EC1C8
-_080EC12A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EC150 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC150: .4byte sub_80EBD18
-_080EC154:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080EC164 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC164: .4byte 0x02000000
-_080EC168:
- ldr r0, _080EC17C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC1FA
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC1D0
- .align 2, 0
-_080EC17C: .4byte gPaletteFade
-_080EC180:
- bl sub_80F2598
- ldr r1, _080EC190 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC190: .4byte 0x02000000
-_080EC194:
- movs r0, 0
- bl sub_80F2C80
- ldr r1, _080EC1C0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC1A8:
- movs r0, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r1, _080EC1C0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EC1D0
- .align 2, 0
-_080EC1C0: .4byte 0x02000000
-_080EC1C4:
- bl sub_80F1DF0
-_080EC1C8:
- ldr r1, _080EC1D8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080EC1D0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC1FA
- .align 2, 0
-_080EC1D8: .4byte 0x02000000
-_080EC1DC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EC1FA
- ldr r0, _080EC204 @ =0x02000000
- ldr r1, _080EC208 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- ldr r0, _080EC20C @ =sub_80EC268
- bl sub_80EBDBC
-_080EC1FA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC204: .4byte 0x02000000
-_080EC208: .4byte 0x00006dad
-_080EC20C: .4byte sub_80EC268
- thumb_func_end sub_80EC00C
-
- thumb_func_start sub_80EC210
-sub_80EC210: @ 80EC210
- push {r4,r5,lr}
- ldr r5, _080EC228 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC22C
- cmp r0, 0x1
- beq _080EC24C
- b _080EC25C
- .align 2, 0
-_080EC228: .4byte 0x02000000
-_080EC22C:
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080EC248 @ =0x00006ddc
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC25C
- .align 2, 0
-_080EC248: .4byte 0x00006ddc
-_080EC24C:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC25C
- ldr r0, _080EC264 @ =sub_80EC268
- bl sub_80EBDBC
-_080EC25C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC264: .4byte sub_80EC268
- thumb_func_end sub_80EC210
-
- thumb_func_start sub_80EC268
-sub_80EC268: @ 80EC268
- push {r4-r6,lr}
- ldr r4, _080EC290 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0x3
- bne _080EC27A
- b _080EC3BE
-_080EC27A:
- cmp r0, 0x3
- bgt _080EC294
- cmp r0, 0x1
- bne _080EC284
- b _080EC3A2
-_080EC284:
- cmp r0, 0x1
- ble _080EC28A
- b _080EC3B4
-_080EC28A:
- cmp r0, 0
- beq _080EC2AE
- b _080EC492
- .align 2, 0
-_080EC290: .4byte 0x02000000
-_080EC294:
- cmp r0, 0x6
- bne _080EC29A
- b _080EC414
-_080EC29A:
- cmp r0, 0x6
- bgt _080EC2A6
- cmp r0, 0x4
- bne _080EC2A4
- b _080EC3DC
-_080EC2A4:
- b _080EC492
-_080EC2A6:
- cmp r0, 0xFF
- bne _080EC2AC
- b _080EC44C
-_080EC2AC:
- b _080EC492
-_080EC2AE:
- bl sub_80EEC10
- lsls r0, 24
- cmp r0, 0
- beq _080EC2D4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC2D0 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC2D0: .4byte 0x00006dad
-_080EC2D4:
- ldr r0, _080EC310 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080EC394
- ldr r2, _080EC314 @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x2F
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- subs r2, 0x2A
- adds r1, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x4
- bls _080EC304
- b _080EC492
-_080EC304:
- lsls r0, 2
- ldr r1, _080EC318 @ =_080EC31C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC310: .4byte gMain
-_080EC314: .4byte 0x00006dad
-_080EC318: .4byte _080EC31C
- .align 2, 0
-_080EC31C:
- .4byte _080EC330
- .4byte _080EC344
- .4byte _080EC380
- .4byte _080EC36C
- .4byte _080EC358
-_080EC330:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC340 @ =sub_80EC4A0
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC340: .4byte sub_80EC4A0
-_080EC344:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC354 @ =sub_80EC81C
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC354: .4byte sub_80EC81C
-_080EC358:
- ldr r0, _080EC368 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC368: .4byte 0x02000000
-_080EC36C:
- ldr r0, _080EC37C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC37C: .4byte 0x02000000
-_080EC380:
- ldr r0, _080EC390 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0]
- b _080EC492
- .align 2, 0
-_080EC390: .4byte 0x02000000
-_080EC394:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080EC39E
- b _080EC492
-_080EC39E:
- strh r2, [r6]
- b _080EC492
-_080EC3A2:
- bl sub_80F208C
- ldr r0, _080EC3B0 @ =sub_80EE96C
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC3B0: .4byte sub_80EE96C
-_080EC3B4:
- bl sub_80F6208
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
-_080EC3BE:
- bl sub_80F6250
- lsls r0, 24
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC3D8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC492
- .align 2, 0
-_080EC3D8: .4byte 0x02000000
-_080EC3DC:
- bl sub_8055870
- cmp r0, 0
- bne _080EC492
- ldr r1, _080EC400 @ =0x00008fe8
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080EC408
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC404 @ =sub_80EDB88
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC400: .4byte 0x00008fe8
-_080EC404: .4byte sub_80EDB88
-_080EC408:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x5
- b _080EC442
-_080EC414:
- bl sub_80F6C20
- ldr r2, _080EC430 @ =0x0000d158
- adds r0, r4, r2
- ldrh r0, [r0]
- cmp r0, 0
- beq _080EC438
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC434 @ =sub_80EE3D8
- bl sub_80EBDBC
- b _080EC492
- .align 2, 0
-_080EC430: .4byte 0x0000d158
-_080EC434: .4byte sub_80EE3D8
-_080EC438:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
- movs r1, 0x6
-_080EC442:
- bl sub_80EF428
- movs r0, 0xFF
- strh r0, [r6]
- b _080EC492
-_080EC44C:
- bl sub_80EEC10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080EC478
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC474 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- movs r0, 0
- strh r0, [r6]
- bl sub_80EED9C
- b _080EC492
- .align 2, 0
-_080EC474: .4byte 0x00006dad
-_080EC478:
- ldr r0, _080EC498 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080EC492
- ldr r2, _080EC49C @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- movs r0, 0
- bl sub_80EF428
- strh r5, [r6]
-_080EC492:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC498: .4byte gMain
-_080EC49C: .4byte 0x00006dad
- thumb_func_end sub_80EC268
-
- thumb_func_start sub_80EC4A0
-sub_80EC4A0: @ 80EC4A0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EC4C0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xE
- bls _080EC4B6
- b _080EC66A
-_080EC4B6:
- lsls r0, 2
- ldr r1, _080EC4C4 @ =_080EC4C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC4C0: .4byte 0x02000000
-_080EC4C4: .4byte _080EC4C8
- .align 2, 0
-_080EC4C8:
- .4byte _080EC504
- .4byte _080EC510
- .4byte _080EC544
- .4byte _080EC578
- .4byte _080EC594
- .4byte _080EC5A8
- .4byte _080EC5AE
- .4byte _080EC5C0
- .4byte _080EC5D0
- .4byte _080EC5E4
- .4byte _080EC5F8
- .4byte _080EC614
- .4byte _080EC61E
- .4byte _080EC63E
- .4byte _080EC658
-_080EC504:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EC644
-_080EC510:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EC51C
- b _080EC66A
-_080EC51C:
- ldr r0, _080EC53C @ =gSaveBlock2
- ldrb r1, [r0, 0x15]
- movs r0, 0x8
- ands r0, r1
- movs r1, 0x8
- cmp r0, 0
- beq _080EC52C
- movs r1, 0x7
-_080EC52C:
- adds r0, r1, 0
- bl sub_80EEFBC
- ldr r1, _080EC540 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC53C: .4byte gSaveBlock2
-_080EC540: .4byte 0x02000000
-_080EC544:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EC552
- b _080EC66A
-_080EC552:
- ldr r4, _080EC574 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
- .align 2, 0
-_080EC574: .4byte 0x02000000
-_080EC578:
- ldr r0, _080EC590 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- b _080EC644
- .align 2, 0
-_080EC590: .4byte gPaletteFade
-_080EC594:
- bl sub_80F2620
- ldr r1, _080EC5A4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC5A4: .4byte 0x02000000
-_080EC5A8:
- bl sub_80EF814
- b _080EC644
-_080EC5AE:
- bl sub_80EF840
- ldr r1, _080EC5CC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5C0:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5CC: .4byte 0x02000000
-_080EC5D0:
- movs r0, 0x4
- bl sub_80F2C80
- ldr r1, _080EC5F4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EC5E4:
- movs r0, 0x4
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EC66A
- b _080EC644
- .align 2, 0
-_080EC5F4: .4byte 0x02000000
-_080EC5F8:
- bl sub_80F2DD8
- ldr r0, _080EC60C @ =sub_80EBD30
- bl SetVBlankCallback
- ldr r1, _080EC610 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EC64C
- .align 2, 0
-_080EC60C: .4byte sub_80EBD30
-_080EC610: .4byte 0x02000000
-_080EC614:
- bl sub_8055870
- cmp r0, 0
- bne _080EC66A
- b _080EC644
-_080EC61E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC64C
-_080EC63E:
- movs r0, 0x1
- bl sub_80EED2C
-_080EC644:
- ldr r1, _080EC654 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EC64C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC66A
- .align 2, 0
-_080EC654: .4byte 0x02000000
-_080EC658:
- ldr r0, _080EC674 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC66A
- ldr r0, _080EC678 @ =sub_80EC67C
- bl sub_80EBDBC
-_080EC66A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC674: .4byte gPaletteFade
-_080EC678: .4byte sub_80EC67C
- thumb_func_end sub_80EC4A0
-
- thumb_func_start sub_80EC67C
-sub_80EC67C: @ 80EC67C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080EC69C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _080EC692
- b _080EC800
-_080EC692:
- lsls r0, 2
- ldr r1, _080EC6A0 @ =_080EC6A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EC69C: .4byte 0x02000000
-_080EC6A0: .4byte _080EC6A4
- .align 2, 0
-_080EC6A4:
- .4byte _080EC6BC
- .4byte _080EC718
- .4byte _080EC746
- .4byte _080EC77C
- .4byte _080EC7A0
- .4byte _080EC7C4
-_080EC6BC:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080EC6E2
- cmp r0, 0x3
- bgt _080EC6D2
- cmp r0, 0x1
- beq _080EC6DC
- b _080EC800
-_080EC6D2:
- cmp r0, 0x4
- beq _080EC6E8
- cmp r0, 0x5
- beq _080EC700
- b _080EC800
-_080EC6DC:
- bl sub_80EED9C
- b _080EC800
-_080EC6E2:
- bl sub_80EF9F8
- b _080EC800
-_080EC6E8:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC6FC @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC6FC: .4byte 0x02000000
-_080EC700:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EC714 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0]
- b _080EC800
- .align 2, 0
-_080EC714: .4byte 0x02000000
-_080EC718:
- ldr r1, _080EC730 @ =0x00006e90
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EC734
- bl sub_80FAEC4
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EC7BC
- .align 2, 0
-_080EC730: .4byte 0x00006e90
-_080EC734:
- movs r0, 0x1
- bl sub_80EFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- bl sub_80FAEC4
- b _080EC7B6
-_080EC746:
- bl sub_80FAFC0
- lsls r0, 24
- cmp r0, 0
- bne _080EC800
- ldr r5, _080EC76C @ =0x02000000
- ldr r1, _080EC770 @ =0x00006e90
- adds r0, r5, r1
- ldrb r4, [r0]
- cmp r4, 0
- bne _080EC774
- bl sub_80EFBB0
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r5, r2
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC76C: .4byte 0x02000000
-_080EC770: .4byte 0x00006e90
-_080EC774:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
- b _080EC7BC
-_080EC77C:
- movs r0, 0
- bl sub_80EFBDC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EC800
- bl sub_80EFBB0
- ldr r0, _080EC79C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- strh r4, [r0]
- b _080EC800
- .align 2, 0
-_080EC79C: .4byte 0x02000000
-_080EC7A0:
- movs r2, 0xC2
- lsls r2, 2
- adds r0, r4, r2
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_080EC7B6:
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EC7BC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EC800
-_080EC7C4:
- ldr r0, _080EC808 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EC800
- bl sub_80F2DF4
- movs r0, 0x4
- bl sub_80F2D04
- ldr r3, _080EC80C @ =gSaveBlock2
- movs r2, 0
- ldr r0, _080EC810 @ =0x02000000
- ldr r1, _080EC814 @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EC7EC
- movs r2, 0x1
-_080EC7EC:
- lsls r2, 3
- ldrb r1, [r3, 0x15]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- ldr r0, _080EC818 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EC800:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC808: .4byte gPaletteFade
-_080EC80C: .4byte gSaveBlock2
-_080EC810: .4byte 0x02000000
-_080EC814: .4byte 0x00006e90
-_080EC818: .4byte sub_80EC00C
- thumb_func_end sub_80EC67C
-
- thumb_func_start sub_80EC81C
-sub_80EC81C: @ 80EC81C
- push {r4,lr}
- ldr r0, _080EC834 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC838
- cmp r0, 0x1
- beq _080EC850
- b _080EC860
- .align 2, 0
-_080EC834: .4byte 0x02000000
-_080EC838:
- movs r0, 0
- bl sub_80F2D04
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC860
-_080EC850:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC860
- ldr r0, _080EC868 @ =sub_80EC86C
- bl sub_80EBDBC
-_080EC860:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC868: .4byte sub_80EC86C
- thumb_func_end sub_80EC81C
-
- thumb_func_start sub_80EC86C
-sub_80EC86C: @ 80EC86C
- push {r4-r6,lr}
- ldr r4, _080EC884 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080EC888
- cmp r0, 0x1
- beq _080EC944
- b _080EC954
- .align 2, 0
-_080EC884: .4byte 0x02000000
-_080EC888:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080EC8B0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC8AC @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- bl sub_80EED9C
- b _080EC954
- .align 2, 0
-_080EC8AC: .4byte 0x00006dad
-_080EC8B0:
- ldr r0, _080EC8E4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EC918
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080EC8E8 @ =0x00006dad
- adds r0, r4, r2
- ldrb r1, [r0]
- adds r2, 0x43
- adds r0, r4, r2
- strb r1, [r0]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080EC900
- cmp r0, 0x1
- bgt _080EC8EC
- cmp r0, 0
- beq _080EC8F2
- b _080EC954
- .align 2, 0
-_080EC8E4: .4byte gMain
-_080EC8E8: .4byte 0x00006dad
-_080EC8EC:
- cmp r0, 0x2
- beq _080EC90C
- b _080EC954
-_080EC8F2:
- ldr r0, _080EC8FC @ =sub_80ED620
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC8FC: .4byte sub_80ED620
-_080EC900:
- ldr r0, _080EC908 @ =sub_80EC960
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC908: .4byte sub_80EC960
-_080EC90C:
- ldr r0, _080EC914 @ =sub_80EC210
- bl sub_80EBDBC
- b _080EC954
- .align 2, 0
-_080EC914: .4byte sub_80EC210
-_080EC918:
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EC954
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EC93C @ =0x00006df0
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _080EC940 @ =0x00006dad
- adds r0, r4, r2
- strb r6, [r0]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EC954
- .align 2, 0
-_080EC93C: .4byte 0x00006df0
-_080EC940: .4byte 0x00006dad
-_080EC944:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080EC954
- ldr r0, _080EC95C @ =sub_80EC210
- bl sub_80EBDBC
-_080EC954:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC95C: .4byte sub_80EC210
- thumb_func_end sub_80EC86C
-
- thumb_func_start sub_80EC960
-sub_80EC960: @ 80EC960
- push {r4,lr}
- ldr r0, _080EC978 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC97C
- cmp r0, 0x1
- beq _080EC98E
- b _080EC99E
- .align 2, 0
-_080EC978: .4byte 0x02000000
-_080EC97C:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x5
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EC99E
-_080EC98E:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080EC99E
- ldr r0, _080EC9A4 @ =sub_80ECC08
- bl sub_80EBDBC
-_080EC99E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EC9A4: .4byte sub_80ECC08
- thumb_func_end sub_80EC960
-
- thumb_func_start sub_80EC9A8
-sub_80EC9A8: @ 80EC9A8
- push {r4,r5,lr}
- ldr r5, _080EC9C0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0
- beq _080EC9C4
- cmp r0, 0x1
- beq _080EC9E4
- b _080ECA00
- .align 2, 0
-_080EC9C0: .4byte 0x02000000
-_080EC9C4:
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080EC9E0 @ =0x00006df0
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xC
- bl sub_80EE9C0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECA00
- .align 2, 0
-_080EC9E0: .4byte 0x00006df0
-_080EC9E4:
- bl sub_80EEA0C
- lsls r0, 24
- cmp r0, 0
- bne _080ECA00
- ldr r0, _080ECA08 @ =sub_80EC86C
- bl sub_80EBDBC
- ldr r1, _080ECA0C @ =0x00006dad
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
-_080ECA00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECA08: .4byte sub_80EC86C
-_080ECA0C: .4byte 0x00006dad
- thumb_func_end sub_80EC9A8
-
- thumb_func_start sub_80ECA10
-sub_80ECA10: @ 80ECA10
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECA30 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xD
- bls _080ECA26
- b _080ECBF2
-_080ECA26:
- lsls r0, 2
- ldr r1, _080ECA34 @ =_080ECA38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECA30: .4byte 0x02000000
-_080ECA34: .4byte _080ECA38
- .align 2, 0
-_080ECA38:
- .4byte _080ECA70
- .4byte _080ECAC4
- .4byte _080ECAD8
- .4byte _080ECAF4
- .4byte _080ECB08
- .4byte _080ECB24
- .4byte _080ECB2E
- .4byte _080ECB58
- .4byte _080ECB6C
- .4byte _080ECB72
- .4byte _080ECB8C
- .4byte _080ECBA0
- .4byte _080ECBBC
- .4byte _080ECBD4
-_080ECA70:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECA7C
- b _080ECBF2
-_080ECA7C:
- ldr r0, _080ECAB0 @ =sub_80EBD80
- bl SetVBlankCallback
- bl sub_80EED1C
- ldr r4, _080ECAB4 @ =0x02000000
- ldr r1, _080ECAB8 @ =0x00006df0
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECABC @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _080ECAC0 @ =0x00006dae
- adds r1, r4, r0
- movs r0, 0x3
- strb r0, [r1]
- bl sub_80EEE08
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080ECBF2
- .align 2, 0
-_080ECAB0: .4byte sub_80EBD80
-_080ECAB4: .4byte 0x02000000
-_080ECAB8: .4byte 0x00006df0
-_080ECABC: .4byte 0x00006dad
-_080ECAC0: .4byte 0x00006dae
-_080ECAC4:
- movs r0, 0x1
- bl sub_80EF248
- ldr r1, _080ECAF0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECAD8:
- movs r0, 0x1
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECAE6
- b _080ECBF2
-_080ECAE6:
- ldr r1, _080ECAF0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECAF0: .4byte 0x02000000
-_080ECAF4:
- movs r0, 0x1
- bl sub_80F1B8C
- ldr r1, _080ECB20 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECB08:
- movs r0, 0x1
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECB20 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB20: .4byte 0x02000000
-_080ECB24:
- bl sub_8055870
- cmp r0, 0
- bne _080ECBF2
- b _080ECBC0
-_080ECB2E:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECB54 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECBC8
- .align 2, 0
-_080ECB54: .4byte sub_80EBD18
-_080ECB58:
- movs r0, 0
- bl sub_80EED2C
- ldr r1, _080ECB68 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECB68: .4byte 0x02000000
-_080ECB6C:
- bl sub_80F2598
- b _080ECBC0
-_080ECB72:
- ldr r0, _080ECB88 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ECBF2
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECBC8
- .align 2, 0
-_080ECB88: .4byte gPaletteFade
-_080ECB8C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECBB8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECBA0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r1, _080ECBB8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECBC8
- .align 2, 0
-_080ECBB8: .4byte 0x02000000
-_080ECBBC:
- bl sub_80F1DF0
-_080ECBC0:
- ldr r1, _080ECBD0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ECBC8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ECBF2
- .align 2, 0
-_080ECBD0: .4byte 0x02000000
-_080ECBD4:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ECBF2
- ldr r0, _080ECBFC @ =0x02000000
- ldr r1, _080ECC00 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl sub_80EF428
- ldr r0, _080ECC04 @ =sub_80EC86C
- bl sub_80EBDBC
-_080ECBF2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECBFC: .4byte 0x02000000
-_080ECC00: .4byte 0x00006dad
-_080ECC04: .4byte sub_80EC86C
- thumb_func_end sub_80ECA10
-
- thumb_func_start sub_80ECC08
-sub_80ECC08: @ 80ECC08
- push {r4,r5,lr}
- ldr r4, _080ECC20 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0
- beq _080ECC24
- cmp r0, 0x1
- bne _080ECC1E
- b _080ECD64
-_080ECC1E:
- b _080ECD74
- .align 2, 0
-_080ECC20: .4byte 0x02000000
-_080ECC24:
- bl sub_80EEC90
- lsls r0, 24
- cmp r0, 0
- beq _080ECC4C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080ECC48 @ =0x00006dad
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- bl sub_80EED9C
- b _080ECD74
- .align 2, 0
-_080ECC48: .4byte 0x00006dad
-_080ECC4C:
- ldr r0, _080ECC78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080ECC5A
- b _080ECD40
-_080ECC5A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECC7C @ =0x00006dad
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _080ECD0C
- lsls r0, 2
- ldr r1, _080ECC80 @ =_080ECC84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECC78: .4byte gMain
-_080ECC7C: .4byte 0x00006dad
-_080ECC80: .4byte _080ECC84
- .align 2, 0
-_080ECC84:
- .4byte _080ECC9C
- .4byte _080ECCB0
- .4byte _080ECCC4
- .4byte _080ECCD8
- .4byte _080ECCEC
- .4byte _080ECD00
-_080ECC9C:
- ldr r0, _080ECCA8 @ =0x02000000
- ldr r3, _080ECCAC @ =0x000087d8
- adds r0, r3
- movs r1, 0x16
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCA8: .4byte 0x02000000
-_080ECCAC: .4byte 0x000087d8
-_080ECCB0:
- ldr r0, _080ECCBC @ =0x02000000
- ldr r1, _080ECCC0 @ =0x000087d8
- adds r0, r1
- movs r1, 0x17
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCBC: .4byte 0x02000000
-_080ECCC0: .4byte 0x000087d8
-_080ECCC4:
- ldr r0, _080ECCD0 @ =0x02000000
- ldr r2, _080ECCD4 @ =0x000087d8
- adds r0, r2
- movs r1, 0x18
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCD0: .4byte 0x02000000
-_080ECCD4: .4byte 0x000087d8
-_080ECCD8:
- ldr r0, _080ECCE4 @ =0x02000000
- ldr r3, _080ECCE8 @ =0x000087d8
- adds r0, r3
- movs r1, 0x21
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCE4: .4byte 0x02000000
-_080ECCE8: .4byte 0x000087d8
-_080ECCEC:
- ldr r0, _080ECCF8 @ =0x02000000
- ldr r1, _080ECCFC @ =0x000087d8
- adds r0, r1
- movs r1, 0x2F
- strb r1, [r0]
- b _080ECD0C
- .align 2, 0
-_080ECCF8: .4byte 0x02000000
-_080ECCFC: .4byte 0x000087d8
-_080ECD00:
- ldr r0, _080ECD08 @ =sub_80EC9A8
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD08: .4byte sub_80EC9A8
-_080ECD0C:
- ldr r1, _080ECD2C @ =0x02000000
- ldr r2, _080ECD30 @ =0x00006dad
- adds r0, r1, r2
- ldrb r2, [r0]
- ldr r3, _080ECD34 @ =0x00006dfc
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080ECD38 @ =0x000076aa
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080ECD3C @ =sub_80ED01C
- bl sub_80EBDBC
- b _080ECD74
- .align 2, 0
-_080ECD2C: .4byte 0x02000000
-_080ECD30: .4byte 0x00006dad
-_080ECD34: .4byte 0x00006dfc
-_080ECD38: .4byte 0x000076aa
-_080ECD3C: .4byte sub_80ED01C
-_080ECD40:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ECD74
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080ECD60 @ =0x00006dad
- adds r1, r4, r2
- movs r0, 0x5
- strb r0, [r1]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080ECD74
- .align 2, 0
-_080ECD60: .4byte 0x00006dad
-_080ECD64:
- bl sub_80F1E6C
- lsls r0, 24
- cmp r0, 0
- bne _080ECD74
- ldr r0, _080ECD7C @ =sub_80EC9A8
- bl sub_80EBDBC
-_080ECD74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080ECD7C: .4byte sub_80EC9A8
- thumb_func_end sub_80ECC08
-
- thumb_func_start sub_80ECD80
-sub_80ECD80: @ 80ECD80
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ECDA0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x14
- bls _080ECD96
- b _080ED006
-_080ECD96:
- lsls r0, 2
- ldr r1, _080ECDA4 @ =_080ECDA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ECDA0: .4byte 0x02000000
-_080ECDA4: .4byte _080ECDA8
- .align 2, 0
-_080ECDA8:
- .4byte _080ECDFC
- .4byte _080ECE1A
- .4byte _080ECE34
- .4byte _080ECE4C
- .4byte _080ECE64
- .4byte _080ECE78
- .4byte _080ECE80
- .4byte _080ECEAC
- .4byte _080ECEC0
- .4byte _080ECED4
- .4byte _080ECEE8
- .4byte _080ECF04
- .4byte _080ECF10
- .4byte _080ECF3C
- .4byte _080ECF44
- .4byte _080ECF58
- .4byte _080ECF70
- .4byte _080ECF84
- .4byte _080ECFB0
- .4byte _080ECFC4
- .4byte _080ECFE8
-_080ECDFC:
- movs r3, 0xC2
- lsls r3, 2
- adds r0, r4, r3
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
-_080ECE1A:
- ldr r0, _080ECE30 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ECE28
- b _080ED006
-_080ECE28:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECE30: .4byte gPaletteFade
-_080ECE34:
- bl sub_80EEF78
- lsls r0, 24
- cmp r0, 0
- beq _080ECE40
- b _080ED006
-_080ECE40:
- ldr r0, _080ECE48 @ =sub_80EBD80
- bl SetVBlankCallback
- b _080ECFD4
- .align 2, 0
-_080ECE48: .4byte sub_80EBD80
-_080ECE4C:
- bl sub_80EED1C
- bl sub_80F3130
- ldr r1, _080ECE60 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECE60: .4byte 0x02000000
-_080ECE64:
- movs r0, 0x1
- bl sub_80F2D6C
- ldr r1, _080ECE74 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECE74: .4byte 0x02000000
-_080ECE78:
- movs r0, 0x5
- bl sub_80F2D6C
- b _080ECFD4
-_080ECE80:
- ldr r1, _080ECEA0 @ =0x00006dfc
- adds r0, r4, r1
- ldrb r1, [r0]
- ldr r2, _080ECEA4 @ =0x00006dad
- adds r0, r4, r2
- strb r1, [r0]
- ldr r3, _080ECEA8 @ =0x00006dae
- adds r1, r4, r3
- movs r0, 0x6
- strb r0, [r1]
- bl sub_80EEE08
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ECFDC
- .align 2, 0
-_080ECEA0: .4byte 0x00006dfc
-_080ECEA4: .4byte 0x00006dad
-_080ECEA8: .4byte 0x00006dae
-_080ECEAC:
- movs r0, 0x2
- bl sub_80EF248
- ldr r1, _080ECED0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEC0:
- movs r0, 0x2
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- beq _080ECECE
- b _080ED006
-_080ECECE:
- b _080ECFD4
- .align 2, 0
-_080ECED0: .4byte 0x02000000
-_080ECED4:
- movs r0, 0x2
- bl sub_80F1B8C
- ldr r1, _080ECF00 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECEE8:
- movs r0, 0x2
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- beq _080ECEF6
- b _080ED006
-_080ECEF6:
- ldr r1, _080ECF00 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ECFDC
- .align 2, 0
-_080ECF00: .4byte 0x02000000
-_080ECF04:
- bl sub_8055870
- cmp r0, 0
- beq _080ECF0E
- b _080ED006
-_080ECF0E:
- b _080ECFD4
-_080ECF10:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ECF38 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF38: .4byte sub_80EBD18
-_080ECF3C:
- movs r0, 0
- bl sub_80EED2C
- b _080ECFD4
-_080ECF44:
- bl sub_80F2598
- ldr r1, _080ECF54 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ECFDC
- .align 2, 0
-_080ECF54: .4byte 0x02000000
-_080ECF58:
- ldr r0, _080ECF6C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED006
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ECFDC
- .align 2, 0
-_080ECF6C: .4byte gPaletteFade
-_080ECF70:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ECFA8 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECF84:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED006
- ldr r0, _080ECFA8 @ =0x02000000
- ldr r3, _080ECFAC @ =0x00000306
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED006
- .align 2, 0
-_080ECFA8: .4byte 0x02000000
-_080ECFAC: .4byte 0x00000306
-_080ECFB0:
- movs r0, 0x5
- bl sub_80F2C80
- ldr r1, _080ECFE4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ECFC4:
- movs r0, 0x5
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- bl sub_80F1DF0
-_080ECFD4:
- ldr r1, _080ECFE4 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
-_080ECFDC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED006
- .align 2, 0
-_080ECFE4: .4byte 0x02000000
-_080ECFE8:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080ED006
- ldr r0, _080ED010 @ =0x02000000
- ldr r1, _080ED014 @ =0x00006dad
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- bl sub_80EF428
- ldr r0, _080ED018 @ =sub_80ECC08
- bl sub_80EBDBC
-_080ED006:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED010: .4byte 0x02000000
-_080ED014: .4byte 0x00006dad
-_080ED018: .4byte sub_80ECC08
- thumb_func_end sub_80ECD80
-
- thumb_func_start sub_80ED01C
-sub_80ED01C: @ 80ED01C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED03C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x13
- bls _080ED032
- b _080ED308
-_080ED032:
- lsls r0, 2
- ldr r1, _080ED040 @ =_080ED044
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED03C: .4byte 0x02000000
-_080ED040: .4byte _080ED044
- .align 2, 0
-_080ED044:
- .4byte _080ED094
- .4byte _080ED0B4
- .4byte _080ED0D4
- .4byte _080ED108
- .4byte _080ED138
- .4byte _080ED14C
- .4byte _080ED15E
- .4byte _080ED18C
- .4byte _080ED1AC
- .4byte _080ED1C4
- .4byte _080ED1D8
- .4byte _080ED1F4
- .4byte _080ED208
- .4byte _080ED220
- .4byte _080ED24C
- .4byte _080ED260
- .4byte _080ED28C
- .4byte _080ED2A0
- .4byte _080ED2CC
- .4byte _080ED2EA
-_080ED094:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- movs r0, 0x5
- bl sub_80F2D04
- ldr r1, _080ED0B0 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED0B0: .4byte 0x02000000
-_080ED0B4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED0C0
- b _080ED308
-_080ED0C0:
- movs r0, 0
- bl sub_80EEFBC
- ldr r1, _080ED0D0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED0D0: .4byte 0x02000000
-_080ED0D4:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED0E2
- b _080ED308
-_080ED0E2:
- ldr r4, _080ED104 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED104: .4byte 0x02000000
-_080ED108:
- ldr r0, _080ED130 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED116
- b _080ED308
-_080ED116:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r1, _080ED134 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED130: .4byte gPaletteFade
-_080ED134: .4byte 0x02000000
-_080ED138:
- bl sub_80F2620
- ldr r1, _080ED148 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED148: .4byte 0x02000000
-_080ED14C:
- bl sub_80F4D44
- ldr r1, _080ED178 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED15E:
- bl sub_80F4D88
- lsls r0, 24
- cmp r0, 0
- bne _080ED17C
- ldr r1, _080ED178 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED178: .4byte 0x02000000
-_080ED17C:
- ldr r1, _080ED188 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED188: .4byte 0x02000000
-_080ED18C:
- bl sub_8055870
- cmp r0, 0
- beq _080ED196
- b _080ED308
-_080ED196:
- ldr r1, _080ED1A8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED1A8: .4byte 0x02000000
-_080ED1AC:
- bl sub_8055870
- cmp r0, 0
- beq _080ED1B6
- b _080ED308
-_080ED1B6:
- ldr r1, _080ED1C0 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED1C0: .4byte 0x02000000
-_080ED1C4:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED1F0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED1D8:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- beq _080ED1E4
- b _080ED308
-_080ED1E4:
- ldr r1, _080ED1F0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED27C
- .align 2, 0
-_080ED1F0: .4byte 0x02000000
-_080ED1F4:
- movs r0, 0
- bl sub_80F3008
- ldr r1, _080ED204 @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED204: .4byte 0x02000000
-_080ED208:
- bl sub_8055870
- cmp r0, 0
- beq _080ED212
- b _080ED308
-_080ED212:
- ldr r1, _080ED21C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED27C
- .align 2, 0
-_080ED21C: .4byte 0x02000000
-_080ED220:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED248 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED27C
- .align 2, 0
-_080ED248: .4byte sub_80EBD18
-_080ED24C:
- movs r0, 0x4
- bl sub_80EED2C
- ldr r1, _080ED25C @ =0x02000000
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r3
- b _080ED27C
- .align 2, 0
-_080ED25C: .4byte 0x02000000
-_080ED260:
- ldr r0, _080ED284 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080ED308
- ldr r2, _080ED288 @ =0x00000306
- adds r0, r4, r2
- strh r1, [r0]
- movs r3, 0xC1
- lsls r3, 2
- adds r1, r4, r3
-_080ED27C:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED308
- .align 2, 0
-_080ED284: .4byte gPaletteFade
-_080ED288: .4byte 0x00000306
-_080ED28C:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED2C4 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED2A0:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080ED308
- ldr r0, _080ED2C4 @ =0x02000000
- ldr r3, _080ED2C8 @ =0x00000306
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED308
- .align 2, 0
-_080ED2C4: .4byte 0x02000000
-_080ED2C8: .4byte 0x00000306
-_080ED2CC:
- ldr r4, _080ED310 @ =0x02000000
- ldr r2, _080ED314 @ =0x00006dfc
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2C80
- movs r3, 0xC1
- lsls r3, 2
- adds r4, r3
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080ED2EA:
- ldr r0, _080ED310 @ =0x02000000
- ldr r1, _080ED314 @ =0x00006dfc
- adds r0, r1
- ldrb r0, [r0]
- adds r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED308
- ldr r0, _080ED318 @ =sub_80ED31C
- bl sub_80EBDBC
-_080ED308:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED310: .4byte 0x02000000
-_080ED314: .4byte 0x00006dfc
-_080ED318: .4byte sub_80ED31C
- thumb_func_end sub_80ED01C
-
- thumb_func_start sub_80ED31C
-sub_80ED31C: @ 80ED31C
- push {r4,lr}
- ldr r0, _080ED338 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080ED3A8
- cmp r0, 0x1
- bgt _080ED33C
- cmp r0, 0
- beq _080ED342
- b _080ED3CA
- .align 2, 0
-_080ED338: .4byte 0x02000000
-_080ED33C:
- cmp r0, 0x2
- beq _080ED3C0
- b _080ED3CA
-_080ED342:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080ED374
- cmp r0, 0x2
- beq _080ED380
- ldr r0, _080ED36C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080ED38C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED370 @ =sub_80ED4D8
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED36C: .4byte gMain
-_080ED370: .4byte sub_80ED4D8
-_080ED374:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080ED3CA
-_080ED380:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED38C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080ED3CA
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080ED3A4 @ =sub_80ECD80
- bl sub_80EBDBC
- b _080ED3CA
- .align 2, 0
-_080ED3A4: .4byte sub_80ECD80
-_080ED3A8:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080ED3CA
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080ED3C8
-_080ED3C0:
- bl sub_8055870
- cmp r0, 0
- bne _080ED3CA
-_080ED3C8:
- strh r0, [r4]
-_080ED3CA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80ED31C
-
- thumb_func_start sub_80ED3D0
-sub_80ED3D0: @ 80ED3D0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080ED3EC @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080ED4C6
- lsls r0, 2
- ldr r1, _080ED3F0 @ =_080ED3F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED3EC: .4byte 0x02000000
-_080ED3F0: .4byte _080ED3F4
- .align 2, 0
-_080ED3F4:
- .4byte _080ED418
- .4byte _080ED420
- .4byte _080ED42A
- .4byte _080ED432
- .4byte _080ED446
- .4byte _080ED458
- .4byte _080ED462
- .4byte _080ED498
- .4byte _080ED4B4
-_080ED418:
- movs r0, 0
- bl SetVBlankCallback
- b _080ED49E
-_080ED420:
- bl sub_80EED0C
- bl sub_80F6134
- b _080ED49E
-_080ED42A:
- movs r0, 0
- bl sub_80EEFBC
- b _080ED49E
-_080ED432:
- movs r0, 0
- bl sub_80F0264
- ldr r1, _080ED454 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED446:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
- .align 2, 0
-_080ED454: .4byte 0x02000000
-_080ED458:
- bl sub_8055870
- cmp r0, 0
- bne _080ED4C6
- b _080ED49E
-_080ED462:
- movs r0, 0
- bl sub_80F3008
- ldr r4, _080ED490 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED494 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080ED4A6
- .align 2, 0
-_080ED490: .4byte 0x02000000
-_080ED494: .4byte sub_80EBD18
-_080ED498:
- movs r0, 0x4
- bl sub_80EED2C
-_080ED49E:
- ldr r1, _080ED4B0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED4A6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED4C6
- .align 2, 0
-_080ED4B0: .4byte 0x02000000
-_080ED4B4:
- ldr r0, _080ED4D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED4C6
- ldr r0, _080ED4D4 @ =sub_80ED31C
- bl sub_80EBDBC
-_080ED4C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED4D0: .4byte gPaletteFade
-_080ED4D4: .4byte sub_80ED31C
- thumb_func_end sub_80ED3D0
-
- thumb_func_start sub_80ED4D8
-sub_80ED4D8: @ 80ED4D8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED4F8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080ED4EE
- b _080ED60E
-_080ED4EE:
- lsls r0, 2
- ldr r1, _080ED4FC @ =_080ED500
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED4F8: .4byte 0x02000000
-_080ED4FC: .4byte _080ED500
- .align 2, 0
-_080ED500:
- .4byte _080ED524
- .4byte _080ED542
- .4byte _080ED564
- .4byte _080ED57C
- .4byte _080ED582
- .4byte _080ED594
- .4byte _080ED5A4
- .4byte _080ED5E0
- .4byte _080ED5FC
-_080ED524:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
-_080ED542:
- ldr r0, _080ED560 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- b _080ED5E6
- .align 2, 0
-_080ED560: .4byte gPaletteFade
-_080ED564:
- bl sub_8055870
- cmp r0, 0
- bne _080ED60E
- ldr r1, _080ED578 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080ED5EE
- .align 2, 0
-_080ED578: .4byte 0x02000000
-_080ED57C:
- bl sub_80F4CF0
- b _080ED5E6
-_080ED582:
- bl sub_80EFF34
- ldr r1, _080ED5A0 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED594:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080ED60E
- b _080ED5E6
- .align 2, 0
-_080ED5A0: .4byte 0x02000000
-_080ED5A4:
- bl sub_80F35B4
- movs r0, 0x2
- bl sub_80EEFBC
- ldr r4, _080ED5D8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED5DC @ =sub_80EBD4C
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED5EE
- .align 2, 0
-_080ED5D8: .4byte 0x02000000
-_080ED5DC: .4byte sub_80EBD4C
-_080ED5E0:
- movs r0, 0x2
- bl sub_80EED2C
-_080ED5E6:
- ldr r1, _080ED5F8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080ED5EE:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED60E
- .align 2, 0
-_080ED5F8: .4byte 0x02000000
-_080ED5FC:
- ldr r0, _080ED618 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED60E
- ldr r0, _080ED61C @ =sub_80ED858
- bl sub_80EBDBC
-_080ED60E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED618: .4byte gPaletteFade
-_080ED61C: .4byte sub_80ED858
- thumb_func_end sub_80ED4D8
-
- thumb_func_start sub_80ED620
-sub_80ED620: @ 80ED620
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080ED640 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _080ED636
- b _080ED846
-_080ED636:
- lsls r0, 2
- ldr r1, _080ED644 @ =_080ED648
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED640: .4byte 0x02000000
-_080ED644: .4byte _080ED648
- .align 2, 0
-_080ED648:
- .4byte _080ED68C
- .4byte _080ED6A4
- .4byte _080ED6B8
- .4byte _080ED6EC
- .4byte _080ED730
- .4byte _080ED736
- .4byte _080ED750
- .4byte _080ED762
- .4byte _080ED76C
- .4byte _080ED784
- .4byte _080ED78A
- .4byte _080ED7C0
- .4byte _080ED7D4
- .4byte _080ED7EC
- .4byte _080ED800
- .4byte _080ED820
- .4byte _080ED834
-_080ED68C:
- bl sub_80F1E84
- movs r0, 0x1
- bl sub_80F2D04
- ldr r1, _080ED6A0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED6A0: .4byte 0x02000000
-_080ED6A4:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080ED6B0
- b _080ED846
-_080ED6B0:
- movs r0, 0x1
- bl sub_80EEFBC
- b _080ED80C
-_080ED6B8:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080ED6C6
- b _080ED846
-_080ED6C6:
- ldr r4, _080ED6E8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED6E8: .4byte 0x02000000
-_080ED6EC:
- ldr r0, _080ED724 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080ED6FE
- b _080ED846
-_080ED6FE:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- ldr r0, _080ED728 @ =0x02000000
- ldr r2, _080ED72C @ =0x000076aa
- adds r1, r0, r2
- strb r4, [r1]
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- b _080ED846
- .align 2, 0
-_080ED724: .4byte gPaletteFade
-_080ED728: .4byte 0x02000000
-_080ED72C: .4byte 0x000076aa
-_080ED730:
- bl sub_80F2620
- b _080ED80C
-_080ED736:
- ldr r0, _080ED74C @ =0x0000d162
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- bl sub_80F4BD0
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED74C: .4byte 0x0000d162
-_080ED750:
- bl sub_80EFF34
- ldr r1, _080ED768 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED762:
- bl sub_80EFF68
- b _080ED806
- .align 2, 0
-_080ED768: .4byte 0x02000000
-_080ED76C:
- bl sub_8055870
- cmp r0, 0
- bne _080ED846
- ldr r1, _080ED780 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED780: .4byte 0x02000000
-_080ED784:
- bl sub_8055870
- b _080ED808
-_080ED78A:
- bl sub_80F33A8
- ldr r4, _080ED7B8 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080ED7BC @ =sub_80EBD4C
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7B8: .4byte 0x02000000
-_080ED7BC: .4byte sub_80EBD4C
-_080ED7C0:
- movs r0, 0x2
- bl sub_80EED2C
- ldr r1, _080ED7D0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080ED814
- .align 2, 0
-_080ED7D0: .4byte 0x02000000
-_080ED7D4:
- ldr r0, _080ED7E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080ED846
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080ED814
- .align 2, 0
-_080ED7E8: .4byte gPaletteFade
-_080ED7EC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r1, _080ED81C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED800:
- movs r0, 0x1
- bl sub_80F2CBC
-_080ED806:
- lsls r0, 24
-_080ED808:
- cmp r0, 0
- bne _080ED846
-_080ED80C:
- ldr r1, _080ED81C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
-_080ED814:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080ED846
- .align 2, 0
-_080ED81C: .4byte 0x02000000
-_080ED820:
- movs r0, 0x6
- bl sub_80F2C80
- ldr r1, _080ED850 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080ED834:
- movs r0, 0x6
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080ED846
- ldr r0, _080ED854 @ =sub_80ED858
- bl sub_80EBDBC
-_080ED846:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080ED850: .4byte 0x02000000
-_080ED854: .4byte sub_80ED858
- thumb_func_end sub_80ED620
-
- thumb_func_start sub_80ED858
-sub_80ED858: @ 80ED858
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080ED878 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xB
- bls _080ED86E
- b _080EDB7A
-_080ED86E:
- lsls r0, 2
- ldr r1, _080ED87C @ =_080ED880
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080ED878: .4byte 0x02000000
-_080ED87C: .4byte _080ED880
- .align 2, 0
-_080ED880:
- .4byte _080ED8B0
- .4byte _080ED8CC
- .4byte _080ED8EC
- .4byte _080ED904
- .4byte _080ED91A
- .4byte _080EDA68
- .4byte _080EDA8C
- .4byte _080EDAA4
- .4byte _080EDAC0
- .4byte _080EDAE8
- .4byte _080EDB7A
- .4byte _080EDB28
-_080ED8B0:
- bl sub_80F4F78
- bl sub_80F5B38
- ldr r0, _080ED8C8 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8C8: .4byte 0x02000000
-_080ED8CC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- beq _080ED8D8
- b _080EDB7A
-_080ED8D8:
- ldr r0, _080ED8E8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED8E8: .4byte 0x02000000
-_080ED8EC:
- movs r0, 0x1
- bl sub_80F0174
- ldr r0, _080ED900 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED900: .4byte 0x02000000
-_080ED904:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- beq _080ED910
- b _080EDB7A
-_080ED910:
- bl sub_80F3C94
- bl sub_80F3D00
- b _080EDAD4
-_080ED91A:
- ldr r2, _080ED960 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080ED970
- ldr r1, _080ED964 @ =0x000087cb
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED970
- ldr r2, _080ED968 @ =0x000076aa
- adds r0, r5, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED948
- ldr r4, _080ED96C @ =0x000087dc
- adds r0, r5, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080ED970
-_080ED948:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- b _080ED9B8
- .align 2, 0
-_080ED960: .4byte gMain
-_080ED964: .4byte 0x000087cb
-_080ED968: .4byte 0x000076aa
-_080ED96C: .4byte 0x000087dc
-_080ED970:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080ED9CC
- ldr r4, _080ED9C0 @ =0x000087cb
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9CC
- ldr r1, _080ED9C4 @ =0x000076aa
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080ED9A2
- ldr r2, _080ED9C8 @ =0x000087dc
- adds r0, r5, r2
- subs r4, 0x57
- adds r1, r5, r4
- movs r4, 0
- ldrsh r2, [r0, r4]
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r2, r0
- bge _080ED9CC
-_080ED9A2:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r5, r0
-_080ED9B8:
- movs r0, 0x5
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080ED9C0: .4byte 0x000087cb
-_080ED9C4: .4byte 0x000076aa
-_080ED9C8: .4byte 0x000087dc
-_080ED9CC:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080ED9F8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4FDC
- bl move_anim_execute
- ldr r0, _080ED9F4 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x9
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080ED9F4: .4byte 0x02000000
-_080ED9F8:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080EDA02
- b _080EDB7A
-_080EDA02:
- adds r4, r5, 0
- ldr r2, _080EDA38 @ =0x000076aa
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDA44
- ldr r1, _080EDA3C @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r2, _080EDA40 @ =0x000087da
- adds r0, r4, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _080EDA26
- b _080EDB7A
-_080EDA26:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- movs r0, 0x9
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA38: .4byte 0x000076aa
-_080EDA3C: .4byte 0x000087dc
-_080EDA40: .4byte 0x000087da
-_080EDA44:
- ldr r1, _080EDA64 @ =0x00006dac
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EDA50
- b _080EDB7A
-_080EDA50:
- movs r0, 0x5
- bl PlaySE
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0x7
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDA64: .4byte 0x00006dac
-_080EDA68:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- beq _080EDA74
- b _080EDB7A
-_080EDA74:
- bl sub_80F3D00
- ldr r0, _080EDA88 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
- movs r1, 0x6
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDA88: .4byte 0x02000000
-_080EDA8C:
- bl sub_8055870
- cmp r0, 0
- bne _080EDB7A
- ldr r0, _080EDAA0 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EDADC
- .align 2, 0
-_080EDAA0: .4byte 0x02000000
-_080EDAA4:
- movs r0, 0x3
- bl sub_80EEFBC
- bl sub_80F3668
- ldr r0, _080EDABC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDABC: .4byte 0x02000000
-_080EDAC0:
- bl sub_80F7500
- lsls r0, 24
- cmp r0, 0
- bne _080EDB7A
- movs r0, 0x2
- bl sub_80EEFBC
- bl sub_80F3698
-_080EDAD4:
- ldr r0, _080EDAE4 @ =0x02000000
- movs r4, 0xC1
- lsls r4, 2
- adds r0, r4
-_080EDADC:
- movs r1, 0x4
- strh r1, [r0]
- b _080EDB7A
- .align 2, 0
-_080EDAE4: .4byte 0x02000000
-_080EDAE8:
- bl sub_80F5038
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EDB7A
- movs r0, 0
- bl sub_80F0174
- bl sub_80F2F48
- ldr r5, _080EDB24 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r5, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r4, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r5, r2
- movs r0, 0xB
- strh r0, [r1]
- b _080EDB7A
- .align 2, 0
-_080EDB24: .4byte 0x02000000
-_080EDB28:
- ldr r0, _080EDB60 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDB7A
- bl sub_80F3CE8
- bl sub_80F5BDC
- ldr r0, _080EDB64 @ =0x02000000
- ldr r4, _080EDB68 @ =0x000076aa
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EDB70
- bl sub_80F357C
- movs r0, 0x1
- bl sub_80F2D6C
- movs r0, 0x6
- bl sub_80F2D6C
- ldr r0, _080EDB6C @ =sub_80ECA10
- bl sub_80EBDBC
- b _080EDB7A
- .align 2, 0
-_080EDB60: .4byte gPaletteFade
-_080EDB64: .4byte 0x02000000
-_080EDB68: .4byte 0x000076aa
-_080EDB6C: .4byte sub_80ECA10
-_080EDB70:
- bl sub_80F3614
- ldr r0, _080EDB84 @ =sub_80ED3D0
- bl sub_80EBDBC
-_080EDB7A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDB84: .4byte sub_80ED3D0
- thumb_func_end sub_80ED858
-
- thumb_func_start sub_80EDB88
-sub_80EDB88: @ 80EDB88
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDBA8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EDB9E
- b _080EDDAA
-_080EDB9E:
- lsls r0, 2
- ldr r1, _080EDBAC @ =_080EDBB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDBA8: .4byte 0x02000000
-_080EDBAC: .4byte _080EDBB0
- .align 2, 0
-_080EDBB0:
- .4byte _080EDBF8
- .4byte _080EDC04
- .4byte _080EDC24
- .4byte _080EDC58
- .4byte _080EDC7C
- .4byte _080EDC90
- .4byte _080EDCA2
- .4byte _080EDCC0
- .4byte _080EDCDC
- .4byte _080EDCE6
- .4byte _080EDCFA
- .4byte _080EDD0C
- .4byte _080EDD20
- .4byte _080EDD34
- .4byte _080EDD48
- .4byte _080EDD52
- .4byte _080EDD7C
- .4byte _080EDD98
-_080EDBF8:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EDD82
-_080EDC04:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EDC10
- b _080EDDAA
-_080EDC10:
- movs r0, 0x4
- bl sub_80EEFBC
- ldr r1, _080EDC20 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC20: .4byte 0x02000000
-_080EDC24:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EDC32
- b _080EDDAA
-_080EDC32:
- ldr r4, _080EDC54 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDC54: .4byte 0x02000000
-_080EDC58:
- ldr r0, _080EDC78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDC66
- b _080EDDAA
-_080EDC66:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- b _080EDD82
- .align 2, 0
-_080EDC78: .4byte gPaletteFade
-_080EDC7C:
- bl sub_80F2620
- ldr r1, _080EDC8C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDC8C: .4byte 0x02000000
-_080EDC90:
- bl sub_80F638C
- ldr r1, _080EDCBC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCA2:
- bl sub_80F63D0
- lsls r0, 24
- cmp r0, 0
- bne _080EDD82
- ldr r1, _080EDCBC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCBC: .4byte 0x02000000
-_080EDCC0:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- ldr r1, _080EDCD8 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDCD8: .4byte 0x02000000
-_080EDCDC:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDCE6:
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EDD08 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDCFA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD08: .4byte 0x02000000
-_080EDD0C:
- movs r0, 0x2
- bl sub_80F2C80
- ldr r1, _080EDD30 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDD20:
- movs r0, 0x2
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
- .align 2, 0
-_080EDD30: .4byte 0x02000000
-_080EDD34:
- movs r0, 0x1
- bl sub_80F3008
- ldr r1, _080EDD44 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EDD8A
- .align 2, 0
-_080EDD44: .4byte 0x02000000
-_080EDD48:
- bl sub_8055870
- cmp r0, 0
- bne _080EDDAA
- b _080EDD82
-_080EDD52:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EDD78 @ =sub_80EBD18
- bl SetVBlankCallback
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EDD8A
- .align 2, 0
-_080EDD78: .4byte sub_80EBD18
-_080EDD7C:
- movs r0, 0x4
- bl sub_80EED2C
-_080EDD82:
- ldr r1, _080EDD94 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EDD8A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EDDAA
- .align 2, 0
-_080EDD94: .4byte 0x02000000
-_080EDD98:
- ldr r0, _080EDDB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDDAA
- ldr r0, _080EDDB8 @ =sub_80EDDBC
- bl sub_80EBDBC
-_080EDDAA:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDDB4: .4byte gPaletteFade
-_080EDDB8: .4byte sub_80EDDBC
- thumb_func_end sub_80EDB88
-
- thumb_func_start sub_80EDDBC
-sub_80EDDBC: @ 80EDDBC
- push {r4,lr}
- ldr r0, _080EDDD8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EDE48
- cmp r0, 0x1
- bgt _080EDDDC
- cmp r0, 0
- beq _080EDDE2
- b _080EDE6A
- .align 2, 0
-_080EDDD8: .4byte 0x02000000
-_080EDDDC:
- cmp r0, 0x2
- beq _080EDE60
- b _080EDE6A
-_080EDDE2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EDE14
- cmp r0, 0x2
- beq _080EDE20
- ldr r0, _080EDE0C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EDE2C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE10 @ =sub_80EDEE4
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE0C: .4byte gMain
-_080EDE10: .4byte sub_80EDEE4
-_080EDE14:
- movs r0, 0x5
- bl PlaySE
- bl ShowMapNamePopUpWindow
- b _080EDE6A
-_080EDE20:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE2C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EDE6A
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EDE44 @ =sub_80EDE70
- bl sub_80EBDBC
- b _080EDE6A
- .align 2, 0
-_080EDE44: .4byte sub_80EDE70
-_080EDE48:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EDE6A
- bl ShowMapNamePopUpWindow
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EDE68
-_080EDE60:
- bl sub_8055870
- cmp r0, 0
- bne _080EDE6A
-_080EDE68:
- strh r0, [r4]
-_080EDE6A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EDDBC
-
- thumb_func_start sub_80EDE70
-sub_80EDE70: @ 80EDE70
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EDE8C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EDEAE
- cmp r2, 0x1
- bgt _080EDE90
- cmp r2, 0
- beq _080EDE96
- b _080EDED6
- .align 2, 0
-_080EDE8C: .4byte 0x02000000
-_080EDE90:
- cmp r2, 0x2
- beq _080EDED0
- b _080EDED6
-_080EDE96:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EDEC4
-_080EDEAE:
- ldr r0, _080EDECC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EDED6
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
-_080EDEC4:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EDED6
- .align 2, 0
-_080EDECC: .4byte gPaletteFade
-_080EDED0:
- ldr r0, _080EDEE0 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EDED6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EDEE0: .4byte sub_80EC00C
- thumb_func_end sub_80EDE70
-
- thumb_func_start sub_80EDEE4
-sub_80EDEE4: @ 80EDEE4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EDF04 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xA
- bls _080EDEFA
- b _080EE060
-_080EDEFA:
- lsls r0, 2
- ldr r1, _080EDF08 @ =_080EDF0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EDF04: .4byte 0x02000000
-_080EDF08: .4byte _080EDF0C
- .align 2, 0
-_080EDF0C:
- .4byte _080EDF38
- .4byte _080EDF50
- .4byte _080EDF80
- .4byte _080EDF98
- .4byte _080EDFB0
- .4byte _080EDFC8
- .4byte _080EDFE0
- .4byte _080EDFF8
- .4byte _080EE01C
- .4byte _080EE030
- .4byte _080EE050
-_080EDF38:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE03C
-_080EDF50:
- ldr r0, _080EDF78 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EDF5E
- b _080EE060
-_080EDF5E:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3130
- ldr r1, _080EDF7C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDF78: .4byte gPaletteFade
-_080EDF7C: .4byte 0x02000000
-_080EDF80:
- bl sub_80F66E0
- bl sub_80EEE08
- ldr r1, _080EDF94 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDF94: .4byte 0x02000000
-_080EDF98:
- bl sub_80F1080
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFAC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFAC: .4byte 0x02000000
-_080EDFB0:
- movs r0, 0x5
- bl sub_80EEFBC
- bl sub_80F38B8
- ldr r1, _080EDFDC @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EDFC8:
- bl sub_80F38EC
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFDC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EDFDC: .4byte 0x02000000
-_080EDFE0:
- bl sub_8055870
- cmp r0, 0
- bne _080EE060
- ldr r1, _080EDFF4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE042
- .align 2, 0
-_080EDFF4: .4byte 0x02000000
-_080EDFF8:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE018 @ =sub_80EBD18
- bl SetVBlankCallback
- b _080EE03C
- .align 2, 0
-_080EE018: .4byte sub_80EBD18
-_080EE01C:
- movs r0, 0x3
- bl sub_80EED2C
- ldr r1, _080EE02C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE042
- .align 2, 0
-_080EE02C: .4byte 0x02000000
-_080EE030:
- ldr r0, _080EE04C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE060
-_080EE03C:
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
-_080EE042:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE060
- .align 2, 0
-_080EE04C: .4byte gPaletteFade
-_080EE050:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _080EE060
- ldr r0, _080EE068 @ =sub_80EE06C
- bl sub_80EBDBC
-_080EE060:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE068: .4byte sub_80EE06C
- thumb_func_end sub_80EDEE4
-
- thumb_func_start sub_80EE06C
-sub_80EE06C: @ 80EE06C
- push {r4,r5,lr}
- ldr r1, _080EE08C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE080
- b _080EE288
-_080EE080:
- lsls r0, 2
- ldr r1, _080EE090 @ =_080EE094
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE08C: .4byte 0x02000000
-_080EE090: .4byte _080EE094
- .align 2, 0
-_080EE094:
- .4byte _080EE0B8
- .4byte _080EE0CC
- .4byte _080EE180
- .4byte _080EE19C
- .4byte _080EE1B8
- .4byte _080EE1D0
- .4byte _080EE1F8
- .4byte _080EE250
- .4byte _080EE26C
-_080EE0B8:
- bl sub_80F15A8
- ldr r1, _080EE0C8 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
- b _080EE1C4
- .align 2, 0
-_080EE0C8: .4byte 0x02000000
-_080EE0CC:
- ldr r2, _080EE0FC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE104
- ldr r1, _080EE100 @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE104
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F6A4C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE1C4
- .align 2, 0
-_080EE0FC: .4byte gMain
-_080EE100: .4byte 0x000087dc
-_080EE104:
- ldrh r1, [r3, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE140
- ldr r1, _080EE138 @ =0x000087dc
- adds r0, r4, r1
- ldr r2, _080EE13C @ =0x00008774
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE140
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F6A4C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE1C4
- .align 2, 0
-_080EE138: .4byte 0x000087dc
-_080EE13C: .4byte 0x00008774
-_080EE140:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080EE164
- movs r0, 0x5
- bl PlaySE
- movs r0, 0xB
- bl sub_80EEFBC
- ldr r0, _080EE160 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- b _080EE262
- .align 2, 0
-_080EE160: .4byte 0x02000000
-_080EE164:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _080EE16E
- b _080EE288
-_080EE16E:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE17C @ =sub_80EE294
- bl sub_80EBDBC
- b _080EE288
- .align 2, 0
-_080EE17C: .4byte sub_80EE294
-_080EE180:
- bl sub_80F6AF0
- lsls r0, 24
- cmp r0, 0
- beq _080EE18C
- b _080EE288
-_080EE18C:
- ldr r1, _080EE198 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE1C4
- .align 2, 0
-_080EE198: .4byte 0x02000000
-_080EE19C:
- bl sub_8055870
- adds r1, r0, 0
- cmp r1, 0
- bne _080EE288
- ldr r0, _080EE1B4 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE1B4: .4byte 0x02000000
-_080EE1B8:
- bl sub_80F3B00
- ldr r1, _080EE1CC @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE1C4:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE288
- .align 2, 0
-_080EE1CC: .4byte 0x02000000
-_080EE1D0:
- bl sub_80F3B58
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- bl sub_80F1494
- ldr r1, _080EE1F4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bl sub_80EED9C
- b _080EE288
- .align 2, 0
-_080EE1F4: .4byte 0x02000000
-_080EE1F8:
- bl sub_80F68E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080EE224
- cmp r0, 0x1
- bne _080EE224
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE220 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- movs r1, 0x7
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE220: .4byte 0x02000000
-_080EE224:
- ldr r0, _080EE248 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE288
- movs r0, 0x5
- bl PlaySE
- bl sub_80F3B94
- ldr r0, _080EE24C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE248: .4byte gMain
-_080EE24C: .4byte 0x02000000
-_080EE250:
- bl sub_80F3BD4
- lsls r0, 24
- cmp r0, 0
- bne _080EE288
- ldr r0, _080EE268 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r2
-_080EE262:
- movs r1, 0x4
- strh r1, [r0]
- b _080EE288
- .align 2, 0
-_080EE268: .4byte 0x02000000
-_080EE26C:
- bl sub_80F3BD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EE288
- movs r0, 0x5
- bl sub_80EEFBC
- ldr r0, _080EE290 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r0, r5
- strh r4, [r0]
-_080EE288:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE290: .4byte 0x02000000
- thumb_func_end sub_80EE06C
-
- thumb_func_start sub_80EE294
-sub_80EE294: @ 80EE294
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080EE2B4 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x8
- bls _080EE2AA
- b _080EE3C6
-_080EE2AA:
- lsls r0, 2
- ldr r1, _080EE2B8 @ =_080EE2BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE2B4: .4byte 0x02000000
-_080EE2B8: .4byte _080EE2BC
- .align 2, 0
-_080EE2BC:
- .4byte _080EE2E0
- .4byte _080EE2FE
- .4byte _080EE324
- .4byte _080EE33C
- .4byte _080EE34C
- .4byte _080EE370
- .4byte _080EE37A
- .4byte _080EE39A
- .4byte _080EE3B4
-_080EE2E0:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE2FE:
- ldr r0, _080EE320 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80F3C2C
- bl sub_80EEE08
- b _080EE3A0
- .align 2, 0
-_080EE320: .4byte gPaletteFade
-_080EE324:
- bl sub_80F6134
- movs r0, 0x1
- bl sub_80F0264
- ldr r1, _080EE348 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE33C:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
- .align 2, 0
-_080EE348: .4byte 0x02000000
-_080EE34C:
- movs r0, 0x4
- bl sub_80EEFBC
- movs r0, 0x1
- bl sub_80F3008
- ldr r0, _080EE368 @ =sub_80EBD18
- bl SetVBlankCallback
- ldr r1, _080EE36C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE3A8
- .align 2, 0
-_080EE368: .4byte sub_80EBD18
-_080EE36C: .4byte 0x02000000
-_080EE370:
- bl sub_8055870
- cmp r0, 0
- bne _080EE3C6
- b _080EE3A0
-_080EE37A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r4, r2
- b _080EE3A8
-_080EE39A:
- movs r0, 0x4
- bl sub_80EED2C
-_080EE3A0:
- ldr r1, _080EE3B0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE3A8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE3C6
- .align 2, 0
-_080EE3B0: .4byte 0x02000000
-_080EE3B4:
- ldr r0, _080EE3D0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE3C6
- ldr r0, _080EE3D4 @ =sub_80EDDBC
- bl sub_80EBDBC
-_080EE3C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE3D0: .4byte gPaletteFade
-_080EE3D4: .4byte sub_80EDDBC
- thumb_func_end sub_80EE294
-
- thumb_func_start sub_80EE3D8
-sub_80EE3D8: @ 80EE3D8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE3F8 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EE3EC
- b _080EE57A
-_080EE3EC:
- lsls r0, 2
- ldr r1, _080EE3FC @ =_080EE400
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE3F8: .4byte 0x02000000
-_080EE3FC: .4byte _080EE400
- .align 2, 0
-_080EE400:
- .4byte _080EE438
- .4byte _080EE444
- .4byte _080EE458
- .4byte _080EE48C
- .4byte _080EE4B0
- .4byte _080EE4B6
- .4byte _080EE4CA
- .4byte _080EE4DC
- .4byte _080EE4F0
- .4byte _080EE504
- .4byte _080EE50C
- .4byte _080EE516
- .4byte _080EE54C
- .4byte _080EE568
-_080EE438:
- bl sub_80F1E84
- movs r0, 0
- bl sub_80F2D04
- b _080EE552
-_080EE444:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EE450
- b _080EE57A
-_080EE450:
- movs r0, 0x9
- bl sub_80EEFBC
- b _080EE552
-_080EE458:
- bl sub_80EEF34
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080EE466
- b _080EE57A
-_080EE466:
- ldr r4, _080EE488 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE488: .4byte 0x02000000
-_080EE48C:
- ldr r0, _080EE4AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- movs r0, 0
- bl SetVBlankCallback
- bl sub_80EED0C
- bl sub_80EF814
- bl sub_80EEE08
- b _080EE552
- .align 2, 0
-_080EE4AC: .4byte gPaletteFade
-_080EE4B0:
- bl sub_80F2620
- b _080EE552
-_080EE4B6:
- movs r0, 0x2
- bl sub_80F0264
- ldr r1, _080EE4D8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4CA:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE4D8: .4byte 0x02000000
-_080EE4DC:
- movs r0, 0x3
- bl sub_80F2C80
- ldr r1, _080EE500 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE4F0:
- movs r0, 0x3
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080EE57A
- b _080EE552
- .align 2, 0
-_080EE500: .4byte 0x02000000
-_080EE504:
- movs r0, 0x2
- bl sub_80F3008
- b _080EE552
-_080EE50C:
- bl sub_8055870
- cmp r0, 0
- bne _080EE57A
- b _080EE552
-_080EE516:
- bl sub_80F6F10
- ldr r4, _080EE544 @ =0x02000000
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080EE548 @ =sub_80EBD68
- bl SetVBlankCallback
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
- b _080EE55A
- .align 2, 0
-_080EE544: .4byte 0x02000000
-_080EE548: .4byte sub_80EBD68
-_080EE54C:
- movs r0, 0x5
- bl sub_80EED2C
-_080EE552:
- ldr r1, _080EE564 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
-_080EE55A:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE57A
- .align 2, 0
-_080EE564: .4byte 0x02000000
-_080EE568:
- ldr r0, _080EE584 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE57A
- ldr r0, _080EE588 @ =sub_80EE58C
- bl sub_80EBDBC
-_080EE57A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE584: .4byte gPaletteFade
-_080EE588: .4byte sub_80EE58C
- thumb_func_end sub_80EE3D8
-
- thumb_func_start sub_80EE58C
-sub_80EE58C: @ 80EE58C
- push {r4,r5,lr}
- ldr r5, _080EE5A8 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080EE624
- cmp r0, 0x1
- bgt _080EE5AC
- cmp r0, 0
- beq _080EE5B2
- b _080EE652
- .align 2, 0
-_080EE5A8: .4byte 0x02000000
-_080EE5AC:
- cmp r0, 0x2
- beq _080EE648
- b _080EE652
-_080EE5B2:
- bl sub_80F5DD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080EE5E4
- cmp r0, 0x2
- beq _080EE5FC
- ldr r0, _080EE5DC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EE608
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE5E0 @ =sub_80EE658
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE5DC: .4byte gMain
-_080EE5E0: .4byte sub_80EE658
-_080EE5E4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080EE5F8 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080EE652
- .align 2, 0
-_080EE5F8: .4byte 0x0000876e
-_080EE5FC:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
-_080EE608:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE652
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080EE620 @ =sub_80EE8F4
- bl sub_80EBDBC
- b _080EE652
- .align 2, 0
-_080EE620: .4byte sub_80EE8F4
-_080EE624:
- bl sub_80F0718
- lsls r0, 24
- cmp r0, 0
- bne _080EE652
- ldr r1, _080EE644 @ =0x0000876e
- adds r0, r5, r1
- ldrb r0, [r0]
- bl sub_80F0FFC
- bl sub_80F3264
- ldrh r0, [r4]
- adds r0, 0x1
- b _080EE650
- .align 2, 0
-_080EE644: .4byte 0x0000876e
-_080EE648:
- bl sub_8055870
- cmp r0, 0
- bne _080EE652
-_080EE650:
- strh r0, [r4]
-_080EE652:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80EE58C
-
- thumb_func_start sub_80EE658
-sub_80EE658: @ 80EE658
- push {r4,r5,lr}
- ldr r1, _080EE678 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x11
- bls _080EE66C
- b _080EE8E8
-_080EE66C:
- lsls r0, 2
- ldr r1, _080EE67C @ =_080EE680
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EE678: .4byte 0x02000000
-_080EE67C: .4byte _080EE680
- .align 2, 0
-_080EE680:
- .4byte _080EE6C8
- .4byte _080EE6DA
- .4byte _080EE6F4
- .4byte _080EE708
- .4byte _080EE71C
- .4byte _080EE730
- .4byte _080EE758
- .4byte _080EE76A
- .4byte _080EE780
- .4byte _080EE820
- .4byte _080EE840
- .4byte _080EE854
- .4byte _080EE868
- .4byte _080EE86E
- .4byte _080EE880
- .4byte _080EE898
- .4byte _080EE8B4
- .4byte _080EE8D4
-_080EE6C8:
- movs r0, 0x1
- bl sub_80F3294
- movs r0, 0xA
- bl sub_80EEFBC
- bl sub_80F0B24
- b _080EE8BE
-_080EE6DA:
- bl sub_80F0B44
- lsls r0, 24
- cmp r0, 0
- beq _080EE6E6
- b _080EE8E8
-_080EE6E6:
- ldr r1, _080EE6F0 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE6F0: .4byte 0x02000000
-_080EE6F4:
- bl sub_80F0F64
- ldr r1, _080EE704 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE704: .4byte 0x02000000
-_080EE708:
- bl sub_80F0FEC
- lsls r0, 24
- cmp r0, 0
- beq _080EE714
- b _080EE8E8
-_080EE714:
- movs r0, 0x1
- bl sub_80F6FB8
- b _080EE8BE
-_080EE71C:
- bl sub_80F6DB8
- ldr r1, _080EE72C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE72C: .4byte 0x02000000
-_080EE730:
- ldr r4, _080EE750 @ =0x02008788
- adds r0, r4, 0
- subs r0, 0x1A
- ldrh r1, [r0]
- adds r0, r4, 0
- bl sub_80F700C
- adds r0, r4, 0
- bl sub_80F42C4
- ldr r1, _080EE754 @ =0xffff7b7c
- adds r4, r1
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE8E8
- .align 2, 0
-_080EE750: .4byte 0x02008788
-_080EE754: .4byte 0xffff7b7c
-_080EE758:
- bl sub_80F0CD8
- ldr r1, _080EE77C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EE76A:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- beq _080EE776
- b _080EE8E8
-_080EE776:
- bl sub_80F0D5C
- b _080EE8B8
- .align 2, 0
-_080EE77C: .4byte 0x02000000
-_080EE780:
- ldr r2, _080EE7B0 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r3, r2, 0
- cmp r0, 0
- beq _080EE7B8
- ldr r1, _080EE7B4 @ =0x000087dc
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _080EE7B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_80F708C
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r4, r5
- b _080EE7E8
- .align 2, 0
-_080EE7B0: .4byte gMain
-_080EE7B4: .4byte 0x000087dc
-_080EE7B8:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EE7F8
- ldr r1, _080EE7F0 @ =0x000087dc
- adds r0, r4, r1
- ldr r2, _080EE7F4 @ =0x00008774
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bge _080EE7F8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F708C
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r4, r0
-_080EE7E8:
- movs r0, 0x10
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE7F0: .4byte 0x000087dc
-_080EE7F4: .4byte 0x00008774
-_080EE7F8:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080EE8E8
- movs r0, 0x5
- bl PlaySE
- bl sub_80F4394
- bl sub_80F0EC0
- ldr r1, _080EE81C @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE81C: .4byte 0x02000000
-_080EE820:
- bl sub_80F6ED4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- bl sub_80F0EF4
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- movs r0, 0
- bl sub_80F6FB8
- bl sub_80F2FB0
- b _080EE8BE
-_080EE840:
- bl sub_80F6134
- ldr r1, _080EE850 @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE850: .4byte 0x02000000
-_080EE854:
- bl sub_80F0FA0
- ldr r1, _080EE864 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE864: .4byte 0x02000000
-_080EE868:
- bl sub_80F0FEC
- b _080EE8B8
-_080EE86E:
- bl sub_80F0C28
- ldr r1, _080EE87C @ =0x02000000
- movs r0, 0xC1
- lsls r0, 2
- adds r1, r0
- b _080EE8C6
- .align 2, 0
-_080EE87C: .4byte 0x02000000
-_080EE880:
- bl sub_80F0C48
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
- ldr r1, _080EE894 @ =0x02000000
- movs r2, 0xC1
- lsls r2, 2
- adds r1, r2
- b _080EE8C6
- .align 2, 0
-_080EE894: .4byte 0x02000000
-_080EE898:
- movs r0, 0x9
- bl sub_80EEFBC
- movs r0, 0
- bl sub_80F3294
- ldr r0, _080EE8B0 @ =sub_80EE58C
- bl sub_80EBDBC
- bl sub_80EED9C
- b _080EE8E8
- .align 2, 0
-_080EE8B0: .4byte sub_80EE58C
-_080EE8B4:
- bl sub_80F70FC
-_080EE8B8:
- lsls r0, 24
- cmp r0, 0
- bne _080EE8E8
-_080EE8BE:
- ldr r1, _080EE8D0 @ =0x02000000
- movs r5, 0xC1
- lsls r5, 2
- adds r1, r5
-_080EE8C6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080EE8E8
- .align 2, 0
-_080EE8D0: .4byte 0x02000000
-_080EE8D4:
- bl sub_8055870
- cmp r0, 0
- bne _080EE8E8
- ldr r0, _080EE8F0 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x8
- strh r1, [r0]
-_080EE8E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE8F0: .4byte 0x02000000
- thumb_func_end sub_80EE658
-
- thumb_func_start sub_80EE8F4
-sub_80EE8F4: @ 80EE8F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080EE910 @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r4, r0, r1
- ldrh r2, [r4]
- cmp r2, 0x1
- beq _080EE932
- cmp r2, 0x1
- bgt _080EE914
- cmp r2, 0
- beq _080EE91A
- b _080EE95E
- .align 2, 0
-_080EE910: .4byte 0x02000000
-_080EE914:
- cmp r2, 0x2
- beq _080EE958
- b _080EE95E
-_080EE91A:
- movs r1, 0xC2
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080EE94C
-_080EE932:
- ldr r0, _080EE954 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE95E
- bl sub_80F3130
- movs r0, 0x2
- bl sub_80F2D6C
- bl sub_80F6FFC
-_080EE94C:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080EE95E
- .align 2, 0
-_080EE954: .4byte gPaletteFade
-_080EE958:
- ldr r0, _080EE968 @ =sub_80EC00C
- bl sub_80EBDBC
-_080EE95E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE968: .4byte sub_80EC00C
- thumb_func_end sub_80EE8F4
-
- thumb_func_start sub_80EE96C
-sub_80EE96C: @ 80EE96C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080EE99C @ =0x02000000
- movs r1, 0xC1
- lsls r1, 2
- adds r5, r0, r1
- ldrh r4, [r5]
- cmp r4, 0
- bne _080EE9A0
- movs r0, 0x6F
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080EE9B4
- .align 2, 0
-_080EE99C: .4byte 0x02000000
-_080EE9A0:
- ldr r0, _080EE9BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080EE9B4
- bl sub_80F5BDC
- bl sub_805469C
-_080EE9B4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9BC: .4byte gPaletteFade
- thumb_func_end sub_80EE96C
-
- thumb_func_start sub_80EE9C0
-sub_80EE9C0: @ 80EE9C0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- bl sub_80F1E84
- ldr r1, _080EE9FC @ =0x02000000
- ldr r2, _080EEA00 @ =0x00006e14
- adds r0, r1, r2
- movs r2, 0
- strb r4, [r0]
- ldr r3, _080EEA04 @ =0x00006e15
- adds r0, r1, r3
- strb r5, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EEA08 @ =0x00006e17
- adds r1, r0
- strb r6, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EE9FC: .4byte 0x02000000
-_080EEA00: .4byte 0x00006e14
-_080EEA04: .4byte 0x00006e15
-_080EEA08: .4byte 0x00006e17
- thumb_func_end sub_80EE9C0
-
- thumb_func_start sub_80EEA0C
-sub_80EEA0C: @ 80EEA0C
- push {r4,lr}
- ldr r1, _080EEA28 @ =0x02000000
- ldr r2, _080EEA2C @ =0x00006e16
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x8
- bls _080EEA1E
- b _080EEBFA
-_080EEA1E:
- lsls r0, 2
- ldr r1, _080EEA30 @ =_080EEA34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEA28: .4byte 0x02000000
-_080EEA2C: .4byte 0x00006e16
-_080EEA30: .4byte _080EEA34
- .align 2, 0
-_080EEA34:
- .4byte _080EEA58
- .4byte _080EEA98
- .4byte _080EEAAE
- .4byte _080EEAD4
- .4byte _080EEB3E
- .4byte _080EEB68
- .4byte _080EEB88
- .4byte _080EEBAC
- .4byte _080EEBE4
-_080EEA58:
- bl sub_80F1F10
- lsls r0, 24
- cmp r0, 0
- beq _080EEA64
- b _080EEC08
-_080EEA64:
- ldr r1, _080EEA7C @ =0x02000000
- ldr r4, _080EEA80 @ =0x00006e17
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _080EEA88
- ldr r0, _080EEA84 @ =0x00006e16
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA7C: .4byte 0x02000000
-_080EEA80: .4byte 0x00006e17
-_080EEA84: .4byte 0x00006e16
-_080EEA88:
- ldr r2, _080EEA94 @ =0x00006e16
- adds r1, r2
- movs r0, 0x3
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEA94: .4byte 0x00006e16
-_080EEA98:
- ldr r4, _080EEAC8 @ =0x02000000
- ldr r1, _080EEACC @ =0x00006e17
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2C80
- ldr r2, _080EEAD0 @ =0x00006e16
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEAAE:
- ldr r4, _080EEAC8 @ =0x02000000
- ldr r1, _080EEACC @ =0x00006e17
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _080EEAC2
- b _080EEC08
-_080EEAC2:
- ldr r2, _080EEAD0 @ =0x00006e16
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEAC8: .4byte 0x02000000
-_080EEACC: .4byte 0x00006e17
-_080EEAD0: .4byte 0x00006e16
-_080EEAD4:
- adds r2, r3, 0
- ldr r4, _080EEAF8 @ =0x00006e15
- adds r0, r2, r4
- ldrb r1, [r0]
- subs r4, 0x68
- adds r0, r2, r4
- strb r1, [r0]
- ldr r1, _080EEAFC @ =0x00006e14
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080EEB14
- cmp r0, 0x1
- bgt _080EEB00
- cmp r0, 0
- beq _080EEB06
- b _080EEB28
- .align 2, 0
-_080EEAF8: .4byte 0x00006e15
-_080EEAFC: .4byte 0x00006e14
-_080EEB00:
- cmp r0, 0x2
- beq _080EEB20
- b _080EEB28
-_080EEB06:
- ldr r4, _080EEB10 @ =0x00006dae
- adds r1, r2, r4
- movs r0, 0x5
- b _080EEB26
- .align 2, 0
-_080EEB10: .4byte 0x00006dae
-_080EEB14:
- ldr r0, _080EEB1C @ =0x00006dae
- adds r1, r2, r0
- movs r0, 0x3
- b _080EEB26
- .align 2, 0
-_080EEB1C: .4byte 0x00006dae
-_080EEB20:
- ldr r2, _080EEB58 @ =0x00006dae
- adds r1, r3, r2
- movs r0, 0x6
-_080EEB26:
- strb r0, [r1]
-_080EEB28:
- ldr r4, _080EEB5C @ =0x02000000
- ldr r1, _080EEB60 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1B8C
- ldr r2, _080EEB64 @ =0x00006e16
- adds r4, r2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080EEB3E:
- ldr r4, _080EEB5C @ =0x02000000
- ldr r1, _080EEB60 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r2, _080EEB64 @ =0x00006e16
- adds r1, r4, r2
- b _080EEB76
- .align 2, 0
-_080EEB58: .4byte 0x00006dae
-_080EEB5C: .4byte 0x02000000
-_080EEB60: .4byte 0x00006e14
-_080EEB64: .4byte 0x00006e16
-_080EEB68:
- bl sub_8055870
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEB80 @ =0x02000000
- ldr r4, _080EEB84 @ =0x00006e16
- adds r1, r4
-_080EEB76:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080EEC08
- .align 2, 0
-_080EEB80: .4byte 0x02000000
-_080EEB84: .4byte 0x00006e16
-_080EEB88:
- bl sub_80F1DF0
- ldr r4, _080EEBA0 @ =0x02000000
- ldr r1, _080EEBA4 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_80EF490
- ldr r2, _080EEBA8 @ =0x00006e16
- adds r4, r2
- b _080EEBCC
- .align 2, 0
-_080EEBA0: .4byte 0x02000000
-_080EEBA4: .4byte 0x00006e14
-_080EEBA8: .4byte 0x00006e16
-_080EEBAC:
- bl sub_80F1E50
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r4, _080EEBD4 @ =0x02000000
- ldr r1, _080EEBD8 @ =0x00006e14
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080EEBDC @ =0x00006dad
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80EF428
- ldr r0, _080EEBE0 @ =0x00006e16
- adds r4, r0
-_080EEBCC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080EEC08
- .align 2, 0
-_080EEBD4: .4byte 0x02000000
-_080EEBD8: .4byte 0x00006e14
-_080EEBDC: .4byte 0x00006dad
-_080EEBE0: .4byte 0x00006e16
-_080EEBE4:
- bl sub_80EF4F8
- lsls r0, 24
- cmp r0, 0
- bne _080EEC08
- ldr r1, _080EEC00 @ =0x02000000
- ldr r2, _080EEC04 @ =0x00006e16
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080EEBFA:
- movs r0, 0
- b _080EEC0A
- .align 2, 0
-_080EEC00: .4byte 0x02000000
-_080EEC04: .4byte 0x00006e16
-_080EEC08:
- movs r0, 0x1
-_080EEC0A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEA0C
-
- thumb_func_start sub_80EEC10
-sub_80EEC10: @ 80EEC10
- push {r4,lr}
- ldr r0, _080EEC48 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080EEC50
- ldr r1, _080EEC4C @ =0x02006dad
- adds r3, r1, 0x1
- adds r2, r1, 0x5
-_080EEC24:
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EEC36
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r1]
-_080EEC36:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC24
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC48: .4byte gMain
-_080EEC4C: .4byte 0x02006dad
-_080EEC50:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EEC88
- ldr r1, _080EEC84 @ =0x02006dad
- movs r4, 0
- movs r2, 0x1
- ldrsb r2, [r1, r2]
- adds r3, r1, 0x5
-_080EEC62:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r2
- blt _080EEC72
- strb r4, [r1]
-_080EEC72:
- movs r0, 0
- ldrsb r0, [r1, r0]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EEC62
- movs r0, 0x1
- b _080EEC8A
- .align 2, 0
-_080EEC84: .4byte 0x02006dad
-_080EEC88:
- movs r0, 0
-_080EEC8A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC10
-
- thumb_func_start sub_80EEC90
-sub_80EEC90: @ 80EEC90
- push {r4,lr}
- ldr r0, _080EECC0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080EECD0
- ldr r2, _080EECC4 @ =0x02000000
- ldr r0, _080EECC8 @ =0x00006dad
- adds r1, r2, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080EECF8
- ldr r3, _080EECCC @ =0x00006dae
- adds r0, r2, r3
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r1]
- b _080EECF8
- .align 2, 0
-_080EECC0: .4byte gMain
-_080EECC4: .4byte 0x02000000
-_080EECC8: .4byte 0x00006dad
-_080EECCC: .4byte 0x00006dae
-_080EECD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080EED04
- ldr r0, _080EECFC @ =0x02000000
- ldr r4, _080EED00 @ =0x00006dad
- adds r2, r0, r4
- ldrb r1, [r2]
- adds r1, 0x1
- strb r1, [r2]
- adds r4, 0x1
- adds r0, r4
- lsls r1, 24
- asrs r1, 24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- blt _080EECF8
- strb r3, [r2]
-_080EECF8:
- movs r0, 0x1
- b _080EED06
- .align 2, 0
-_080EECFC: .4byte 0x02000000
-_080EED00: .4byte 0x00006dad
-_080EED04:
- movs r0, 0
-_080EED06:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EEC90
-
- thumb_func_start sub_80EED0C
-sub_80EED0C: @ 80EED0C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED0C
-
- thumb_func_start sub_80EED1C
-sub_80EED1C: @ 80EED1C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x92
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- thumb_func_end sub_80EED1C
-
- thumb_func_start sub_80EED2C
-sub_80EED2C: @ 80EED2C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080EED98
- lsls r0, 2
- ldr r1, _080EED40 @ =_080EED44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EED40: .4byte _080EED44
- .align 2, 0
-_080EED44:
- .4byte _080EED5C
- .4byte _080EED66
- .4byte _080EED7E
- .4byte _080EED74
- .4byte _080EED74
- .4byte _080EED8C
-_080EED5C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED66:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED70 @ =0x00001741
- b _080EED94
- .align 2, 0
-_080EED70: .4byte 0x00001741
-_080EED74:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- b _080EED94
-_080EED7E:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080EED88 @ =0x00007b40
- b _080EED94
- .align 2, 0
-_080EED88: .4byte 0x00007b40
-_080EED8C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
-_080EED94:
- adds r0, r2, 0
- strh r0, [r1]
-_080EED98:
- pop {r0}
- bx r0
- thumb_func_end sub_80EED2C
-
- thumb_func_start sub_80EED9C
-sub_80EED9C: @ 80EED9C
- push {lr}
- ldr r2, _080EEDB8 @ =gUnknown_03000744
- ldr r0, _080EEDBC @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- ldr r1, _080EEDC0 @ =sub_80EEDC4
- str r1, [r0]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDB8: .4byte gUnknown_03000744
-_080EEDBC: .4byte 0x02000000
-_080EEDC0: .4byte sub_80EEDC4
- thumb_func_end sub_80EED9C
-
- thumb_func_start sub_80EEDC4
-sub_80EEDC4: @ 80EEDC4
- push {lr}
- bl sub_8055870
- cmp r0, 0x1
- beq _080EEDDC
- ldr r0, _080EEDE0 @ =0x02000000
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1
- ldr r1, _080EEDE4 @ =gUnknown_03000744
- ldr r1, [r1]
- str r1, [r0]
-_080EEDDC:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEDE0: .4byte 0x02000000
-_080EEDE4: .4byte gUnknown_03000744
- thumb_func_end sub_80EEDC4
-
- thumb_func_start sub_80EEDE8
-sub_80EEDE8: @ 80EEDE8
- ldr r0, _080EEE04 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080EEE04: .4byte REG_BG0HOFS
- thumb_func_end sub_80EEDE8
-
- thumb_func_start sub_80EEE08
-sub_80EEE08: @ 80EEE08
- ldr r0, _080EEE18 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EEE1C @ =0x0000d160
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080EEE18: .4byte gUnknown_083DFEC4
-_080EEE1C: .4byte 0x0000d160
- thumb_func_end sub_80EEE08
-
- thumb_func_start sub_80EEE20
-sub_80EEE20: @ 80EEE20
- push {lr}
- ldr r0, _080EEE48 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EEE4C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EEE50 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EEE42
-_080EEE38:
- bl sub_80EEE54
- lsls r0, 24
- cmp r0, 0
- bne _080EEE38
-_080EEE42:
- pop {r0}
- bx r0
- .align 2, 0
-_080EEE48: .4byte gUnknown_083DFEC4
-_080EEE4C: .4byte 0x0000d160
-_080EEE50: .4byte 0x00006dac
- thumb_func_end sub_80EEE20
-
- thumb_func_start sub_80EEE54
-sub_80EEE54: @ 80EEE54
- push {lr}
- ldr r1, _080EEE70 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080EEE74 @ =0x0000d160
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _080EEF02
- lsls r0, 2
- ldr r1, _080EEE78 @ =_080EEE7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEE70: .4byte gUnknown_083DFEC4
-_080EEE74: .4byte 0x0000d160
-_080EEE78: .4byte _080EEE7C
- .align 2, 0
-_080EEE7C:
- .4byte _080EEE90
- .4byte _080EEEA4
- .4byte _080EEEB8
- .4byte _080EEEC8
- .4byte _080EEEDC
-_080EEE90:
- ldr r0, _080EEE9C @ =gPokenavHoennMapMisc_Gfx
- ldr r1, _080EEEA0 @ =0x0600c000
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEE9C: .4byte gPokenavHoennMapMisc_Gfx
-_080EEEA0: .4byte 0x0600c000
-_080EEEA4:
- ldr r0, _080EEEB0 @ =gUnknown_08E99FB0
- ldr r1, _080EEEB4 @ =0x0600d800
- bl LZ77UnCompVram
- b _080EEF18
- .align 2, 0
-_080EEEB0: .4byte gUnknown_08E99FB0
-_080EEEB4: .4byte 0x0600d800
-_080EEEB8:
- ldr r0, _080EEEC4 @ =gPokenavHoennMap1_Pal
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- b _080EEF18
- .align 2, 0
-_080EEEC4: .4byte gPokenavHoennMap1_Pal
-_080EEEC8:
- movs r0, 0
- bl sub_80EF58C
- movs r0, 0x1
- bl sub_80EF58C
- movs r0, 0x2
- bl sub_80EF58C
- b _080EEF18
-_080EEEDC:
- ldr r2, [r2]
- movs r3, 0xC3
- lsls r3, 2
- adds r0, r2, r3
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EEF08 @ =REG_BG1HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080EEF0C @ =REG_BG1CNT
- ldr r3, _080EEF10 @ =0x00001b0c
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _080EEF14 @ =0x0000d160
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_080EEF02:
- movs r0, 0
- b _080EEF28
- .align 2, 0
-_080EEF08: .4byte REG_BG1HOFS
-_080EEF0C: .4byte REG_BG1CNT
-_080EEF10: .4byte 0x00001b0c
-_080EEF14: .4byte 0x0000d160
-_080EEF18:
- ldr r0, _080EEF2C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EEF30 @ =0x0000d160
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080EEF28:
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF2C: .4byte gUnknown_083DFEC4
-_080EEF30: .4byte 0x0000d160
- thumb_func_end sub_80EEE54
-
- thumb_func_start sub_80EEF34
-sub_80EEF34: @ 80EEF34
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF50 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0x20
- bne _080EEF54
- movs r0, 0
- b _080EEF6E
- .align 2, 0
-_080EEF50: .4byte gUnknown_083DFEC4
-_080EEF54:
- adds r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- ble _080EEF66
- movs r0, 0x20
- strh r0, [r2]
- movs r3, 0
-_080EEF66:
- ldr r1, _080EEF74 @ =REG_BG1VOFS
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEF6E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEF74: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF34
-
- thumb_func_start sub_80EEF78
-sub_80EEF78: @ 80EEF78
- push {r4,lr}
- movs r3, 0x1
- ldr r0, _080EEF94 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r2, r0, r1
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- bne _080EEF98
- movs r0, 0
- b _080EEFB0
- .align 2, 0
-_080EEF94: .4byte gUnknown_083DFEC4
-_080EEF98:
- subs r0, r1, 0x2
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bgt _080EEFA8
- movs r0, 0
- strh r0, [r2]
- movs r3, 0
-_080EEFA8:
- ldr r1, _080EEFB8 @ =REG_BG1VOFS
- ldrh r0, [r2]
- strh r0, [r1]
- adds r0, r3, 0
-_080EEFB0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EEFB8: .4byte REG_BG1VOFS
- thumb_func_end sub_80EEF78
-
- thumb_func_start sub_80EEFBC
-sub_80EEFBC: @ 80EEFBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EEFF4 @ =0x0600d800
- ldr r3, _080EEFF8 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x11
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0
- movs r2, 0x16
- bl sub_809D104
- cmp r4, 0xB
- bls _080EEFE8
- b _080EF234
-_080EEFE8:
- lsls r0, r4, 2
- ldr r1, _080EEFFC @ =_080EF000
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EEFF4: .4byte 0x0600d800
-_080EEFF8: .4byte gUnknown_08E9A100
-_080EEFFC: .4byte _080EF000
- .align 2, 0
-_080EF000:
- .4byte _080EF030
- .4byte _080EF234
- .4byte _080EF08C
- .4byte _080EF100
- .4byte _080EF13C
- .4byte _080EF1D4
- .4byte _080EF234
- .4byte _080EF178
- .4byte _080EF190
- .4byte _080EF1D4
- .4byte _080EF218
- .4byte _080EF06C
-_080EF030:
- ldr r6, _080EF064 @ =0x0600d800
- ldr r0, _080EF068 @ =gUnknown_08E9A100
- mov r8, r0
- movs r0, 0x11
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r5, 0x2
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r4, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r5, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF064: .4byte 0x0600d800
-_080EF068: .4byte gUnknown_08E9A100
-_080EF06C:
- ldr r0, _080EF084 @ =0x0600d800
- ldr r3, _080EF088 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- b _080EF0EE
- .align 2, 0
-_080EF084: .4byte 0x0600d800
-_080EF088: .4byte gUnknown_08E9A100
-_080EF08C:
- ldr r0, _080EF0C8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF0CC @ =0x00006dac
- adds r0, r1
- ldrb r7, [r0]
- cmp r7, 0
- bne _080EF0D8
- ldr r5, _080EF0D0 @ =0x0600d800
- ldr r6, _080EF0D4 @ =gUnknown_08E9A100
- movs r0, 0xA
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- str r7, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF0C8: .4byte gUnknown_083DFEC4
-_080EF0CC: .4byte 0x00006dac
-_080EF0D0: .4byte 0x0600d800
-_080EF0D4: .4byte gUnknown_08E9A100
-_080EF0D8:
- ldr r0, _080EF0F8 @ =0x0600d800
- ldr r3, _080EF0FC @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0xA
-_080EF0EE:
- movs r2, 0x16
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF0F8: .4byte 0x0600d800
-_080EF0FC: .4byte gUnknown_08E9A100
-_080EF100:
- ldr r6, _080EF134 @ =0x0600d800
- ldr r0, _080EF138 @ =gUnknown_08E9A100
- mov r8, r0
- movs r5, 0
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0xA
- b _080EF204
- .align 2, 0
-_080EF134: .4byte 0x0600d800
-_080EF138: .4byte gUnknown_08E9A100
-_080EF13C:
- ldr r5, _080EF170 @ =0x0600d800
- ldr r6, _080EF174 @ =gUnknown_08E9A100
- movs r0, 0x14
- str r0, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0xA
- b _080EF1C2
- .align 2, 0
-_080EF170: .4byte 0x0600d800
-_080EF174: .4byte gUnknown_08E9A100
-_080EF178:
- ldr r5, _080EF188 @ =0x0600d800
- ldr r6, _080EF18C @ =gUnknown_08E9A100
- movs r1, 0xA
- str r1, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- b _080EF1A0
- .align 2, 0
-_080EF188: .4byte 0x0600d800
-_080EF18C: .4byte gUnknown_08E9A100
-_080EF190:
- ldr r5, _080EF1CC @ =0x0600d800
- ldr r6, _080EF1D0 @ =gUnknown_08E9A100
- movs r0, 0x14
- str r0, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
-_080EF1A0:
- movs r4, 0x2
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0x7
-_080EF1C2:
- movs r2, 0x16
- adds r3, r6, 0
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF1CC: .4byte 0x0600d800
-_080EF1D0: .4byte gUnknown_08E9A100
-_080EF1D4:
- ldr r6, _080EF210 @ =0x0600d800
- ldr r1, _080EF214 @ =gUnknown_08E9A100
- mov r8, r1
- movs r5, 0
- str r5, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r0, 0xA
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- str r5, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0x7
- str r0, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- movs r1, 0x8
-_080EF204:
- movs r2, 0x16
- mov r3, r8
- bl sub_809D104
- b _080EF234
- .align 2, 0
-_080EF210: .4byte 0x0600d800
-_080EF214: .4byte gUnknown_08E9A100
-_080EF218:
- ldr r0, _080EF240 @ =0x0600d800
- ldr r3, _080EF244 @ =gUnknown_08E9A100
- movs r1, 0
- str r1, [sp]
- movs r1, 0x6
- str r1, [sp, 0x4]
- movs r1, 0x7
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x8
- movs r2, 0x16
- bl sub_809D104
-_080EF234:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF240: .4byte 0x0600d800
-_080EF244: .4byte gUnknown_08E9A100
- thumb_func_end sub_80EEFBC
-
- thumb_func_start sub_80EF248
-sub_80EF248: @ 80EF248
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080EF278 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF27C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF280 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF270
-_080EF264:
- adds r0, r4, 0
- bl sub_80EF284
- lsls r0, 24
- cmp r0, 0
- bne _080EF264
-_080EF270:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF278: .4byte gUnknown_083DFEC4
-_080EF27C: .4byte 0x0000d160
-_080EF280: .4byte 0x00006dac
- thumb_func_end sub_80EF248
-
- thumb_func_start sub_80EF284
-sub_80EF284: @ 80EF284
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080EF2A8 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r3, _080EF2AC @ =0x0000d160
- adds r0, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xB
- bls _080EF29C
- b _080EF3F6
-_080EF29C:
- lsls r0, 2
- ldr r1, _080EF2B0 @ =_080EF2B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF2A8: .4byte gUnknown_083DFEC4
-_080EF2AC: .4byte 0x0000d160
-_080EF2B0: .4byte _080EF2B4
- .align 2, 0
-_080EF2B4:
- .4byte _080EF2E4
- .4byte _080EF2EA
- .4byte _080EF2F8
- .4byte _080EF304
- .4byte _080EF310
- .4byte _080EF330
- .4byte _080EF344
- .4byte _080EF368
- .4byte _080EF37C
- .4byte _080EF390
- .4byte _080EF3A4
- .4byte _080EF3CC
-_080EF2E4:
- bl sub_80EEDE8
- b _080EF40C
-_080EF2EA:
- ldr r0, _080EF2F4 @ =gWindowConfig_81E7224
- bl SetUpWindowConfig
- b _080EF40C
- .align 2, 0
-_080EF2F4: .4byte gWindowConfig_81E7224
-_080EF2F8:
- ldr r0, _080EF300 @ =gWindowConfig_81E7224
- bl MultistepInitMenuWindowBegin
- b _080EF40C
- .align 2, 0
-_080EF300: .4byte gWindowConfig_81E7224
-_080EF304:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080EF30E
- b _080EF40C
-_080EF30E:
- b _080EF41A
-_080EF310:
- ldr r1, _080EF320 @ =gUnknown_083DFEEC
- ldr r2, _080EF324 @ =0x06005000
- ldr r0, _080EF328 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF32C @ =0x80000050
- b _080EF350
- .align 2, 0
-_080EF320: .4byte gUnknown_083DFEEC
-_080EF324: .4byte 0x06005000
-_080EF328: .4byte 0x040000d4
-_080EF32C: .4byte 0x80000050
-_080EF330:
- ldr r0, _080EF33C @ =gUnknown_083DFF8C
- ldr r1, _080EF340 @ =0x0600f800
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF33C: .4byte gUnknown_083DFF8C
-_080EF340: .4byte 0x0600f800
-_080EF344:
- ldr r1, _080EF358 @ =gUnknown_083E005C
- ldr r2, _080EF35C @ =0x06008000
- ldr r0, _080EF360 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080EF364 @ =0x80000010
-_080EF350:
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080EF40C
- .align 2, 0
-_080EF358: .4byte gUnknown_083E005C
-_080EF35C: .4byte 0x06008000
-_080EF360: .4byte 0x040000d4
-_080EF364: .4byte 0x80000010
-_080EF368:
- ldr r0, _080EF374 @ =gUnknown_083E007C
- ldr r1, _080EF378 @ =0x0600e000
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF374: .4byte gUnknown_083E007C
-_080EF378: .4byte 0x0600e000
-_080EF37C:
- ldr r0, _080EF388 @ =gPokenavOutlineTilemap
- ldr r1, _080EF38C @ =0x0600e800
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF388: .4byte gPokenavOutlineTilemap
-_080EF38C: .4byte 0x0600e800
-_080EF390:
- ldr r0, _080EF39C @ =gPokenavOutlineTiles
- ldr r1, _080EF3A0 @ =0x06008020
- bl LZ77UnCompVram
- b _080EF40C
- .align 2, 0
-_080EF39C: .4byte gPokenavOutlineTiles
-_080EF3A0: .4byte 0x06008020
-_080EF3A4:
- adds r0, r2, 0
- bl sub_80EF54C
- ldr r0, _080EF3C4 @ =gUnknown_083DFECC
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080EF3C8 @ =gPokenavOutlinePalette
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EF7D4
- b _080EF40C
- .align 2, 0
-_080EF3C4: .4byte gUnknown_083DFECC
-_080EF3C8: .4byte gPokenavOutlinePalette
-_080EF3CC:
- ldr r1, _080EF3FC @ =REG_BG0CNT
- ldr r2, _080EF400 @ =0x00001f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080EF404 @ =0x00001d0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x42
- movs r0, 0
- strh r0, [r1]
- ldr r1, [r3]
- ldr r3, _080EF408 @ =0x0000d160
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF3F6:
- movs r0, 0
- b _080EF41C
- .align 2, 0
-_080EF3FC: .4byte REG_BG0CNT
-_080EF400: .4byte 0x00001f01
-_080EF404: .4byte 0x00001d0a
-_080EF408: .4byte 0x0000d160
-_080EF40C:
- ldr r0, _080EF420 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EF424 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF41A:
- movs r0, 0x1
-_080EF41C:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF420: .4byte gUnknown_083DFEC4
-_080EF424: .4byte 0x0000d160
- thumb_func_end sub_80EF284
-
- thumb_func_start sub_80EF428
-sub_80EF428: @ 80EF428
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r1, 0
- cmp r0, 0x1
- beq _080EF454
- cmp r0, 0x1
- bgt _080EF444
- cmp r0, 0
- beq _080EF44A
- b _080EF464
-_080EF444:
- cmp r3, 0x2
- beq _080EF45C
- b _080EF464
-_080EF44A:
- ldr r1, _080EF450 @ =gUnknown_083E31B0
- b _080EF45E
- .align 2, 0
-_080EF450: .4byte gUnknown_083E31B0
-_080EF454:
- ldr r1, _080EF458 @ =gUnknown_083E31CC
- b _080EF45E
- .align 2, 0
-_080EF458: .4byte gUnknown_083E31CC
-_080EF45C:
- ldr r1, _080EF488 @ =gUnknown_083E31D8
-_080EF45E:
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
-_080EF464:
- ldr r0, _080EF48C @ =gUnknown_083DFEC8
- ldr r4, [r0]
- movs r0, 0x80
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r2, 0xC0
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF488: .4byte gUnknown_083E31D8
-_080EF48C: .4byte gUnknown_083DFEC8
- thumb_func_end sub_80EF428
-
- thumb_func_start sub_80EF490
-sub_80EF490: @ 80EF490
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF49C
- movs r2, 0x1
-_080EF49C:
- ldr r0, _080EF4C4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r2, r1, 1
- ldr r4, _080EF4C8 @ =0x0000ce4e
- adds r0, r3, r4
- strh r2, [r0]
- ldr r2, _080EF4CC @ =0x0000ce4c
- adds r0, r3, r2
- ldrh r2, [r0]
- lsls r1, 17
- lsrs r0, r1, 16
- cmp r2, r0
- bcs _080EF4D0
- adds r4, 0x2
- adds r1, r3, r4
- movs r0, 0x2
- b _080EF4EA
- .align 2, 0
-_080EF4C4: .4byte gUnknown_083DFEC4
-_080EF4C8: .4byte 0x0000ce4e
-_080EF4CC: .4byte 0x0000ce4c
-_080EF4D0:
- cmp r2, r0
- bls _080EF4E4
- ldr r0, _080EF4DC @ =0x0000ce50
- adds r1, r3, r0
- ldr r0, _080EF4E0 @ =0x0000fffe
- b _080EF4EA
- .align 2, 0
-_080EF4DC: .4byte 0x0000ce50
-_080EF4E0: .4byte 0x0000fffe
-_080EF4E4:
- ldr r2, _080EF4F4 @ =0x0000ce50
- adds r1, r3, r2
- movs r0, 0
-_080EF4EA:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF4F4: .4byte 0x0000ce50
- thumb_func_end sub_80EF490
-
- thumb_func_start sub_80EF4F8
-sub_80EF4F8: @ 80EF4F8
- push {r4,lr}
- ldr r0, _080EF530 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EF534 @ =0x0000ce4c
- adds r2, r1, r0
- ldr r3, _080EF538 @ =0x0000ce4e
- adds r0, r1, r3
- ldrh r3, [r2]
- ldrh r0, [r0]
- cmp r3, r0
- beq _080EF544
- ldr r4, _080EF53C @ =0x0000ce50
- adds r0, r1, r4
- ldrh r0, [r0]
- adds r0, r3, r0
- strh r0, [r2]
- ldr r3, _080EF540 @ =0x0000ce52
- adds r0, r1, r3
- ldrh r1, [r2]
- lsls r1, 1
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- movs r0, 0x1
- b _080EF546
- .align 2, 0
-_080EF530: .4byte gUnknown_083DFEC4
-_080EF534: .4byte 0x0000ce4c
-_080EF538: .4byte 0x0000ce4e
-_080EF53C: .4byte 0x0000ce50
-_080EF540: .4byte 0x0000ce52
-_080EF544:
- movs r0, 0
-_080EF546:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80EF4F8
-
- thumb_func_start sub_80EF54C
-sub_80EF54C: @ 80EF54C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _080EF558
- movs r2, 0x1
-_080EF558:
- ldr r0, _080EF580 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 1
- ldr r3, _080EF584 @ =0x0000ce4c
- adds r2, r0, r3
- strh r1, [r2]
- ldrh r1, [r2]
- lsls r1, 1
- ldr r2, _080EF588 @ =0x0000ce52
- adds r1, r2
- adds r0, r1
- movs r1, 0x31
- movs r2, 0x4
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_080EF580: .4byte gUnknown_083DFEC4
-_080EF584: .4byte 0x0000ce4c
-_080EF588: .4byte 0x0000ce52
- thumb_func_end sub_80EF54C
-
- thumb_func_start sub_80EF58C
-sub_80EF58C: @ 80EF58C
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080EF5D0
- cmp r0, 0x1
- bgt _080EF5A4
- cmp r0, 0
- beq _080EF5AA
- b _080EF610
-_080EF5A4:
- cmp r1, 0x2
- beq _080EF5F8
- b _080EF610
-_080EF5AA:
- movs r1, 0
- ldr r0, _080EF5C8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080EF5CC @ =0x0000ce52
- adds r2, r0, r3
- movs r3, 0
-_080EF5B6:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3D
- bls _080EF5B6
- b _080EF610
- .align 2, 0
-_080EF5C8: .4byte gUnknown_083DFEC4
-_080EF5CC: .4byte 0x0000ce52
-_080EF5D0:
- ldr r0, _080EF5EC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF5F0 @ =0x0000ce52
- adds r2, r0, r1
- ldr r1, _080EF5F4 @ =gUnknown_083E003C
- adds r0, r1, 0x2
- adds r1, 0x6
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
- b _080EF610
- .align 2, 0
-_080EF5EC: .4byte gUnknown_083DFEC4
-_080EF5F0: .4byte 0x0000ce52
-_080EF5F4: .4byte gUnknown_083E003C
-_080EF5F8:
- ldr r0, _080EF618 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080EF61C @ =0x0000ce8e
- adds r2, r0, r3
- ldr r1, _080EF620 @ =gUnknown_083E003C
- adds r0, r1, 0x6
- adds r1, 0xE
- str r2, [sp]
- movs r2, 0x10
- movs r3, 0x2
- bl sub_80EF624
-_080EF610:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080EF618: .4byte gUnknown_083DFEC4
-_080EF61C: .4byte 0x0000ce8e
-_080EF620: .4byte gUnknown_083E003C
- thumb_func_end sub_80EF58C
-
- thumb_func_start sub_80EF624
-sub_80EF624: @ 80EF624
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x58]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- movs r0, 0
- str r0, [sp, 0x10]
- lsls r0, r3, 16
- ldr r1, [sp, 0x10]
- cmp r1, r3
- bcs _080EF72E
- subs r2, 0x1
- str r2, [sp, 0x20]
- str r0, [sp, 0x2C]
-_080EF654:
- ldr r2, [sp]
- ldrh r1, [r2]
- movs r0, 0x1F
- ands r0, r1
- lsls r7, r0, 8
- lsls r1, 16
- lsrs r0, r1, 21
- movs r2, 0x1F
- ands r0, r2
- lsls r6, r0, 8
- lsrs r1, 26
- ands r1, r2
- lsls r5, r1, 8
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- movs r0, 0x1F
- ands r0, r1
- lsls r0, 8
- str r0, [sp, 0x14]
- lsls r1, 16
- lsrs r0, r1, 21
- ands r0, r2
- lsls r0, 8
- str r0, [sp, 0x18]
- lsrs r1, 26
- ands r1, r2
- lsls r1, 8
- str r1, [sp, 0x1C]
- ldr r1, [sp, 0x14]
- subs r0, r1, r7
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r10, r0
- ldr r2, [sp, 0x18]
- subs r0, r2, r6
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r9, r0
- ldr r1, [sp, 0x1C]
- subs r0, r1, r5
- ldr r1, [sp, 0x8]
- bl __divsi3
- mov r8, r0
- adds r3, r4, 0
- movs r4, 0
- ldr r2, [sp]
- adds r2, 0x2
- str r2, [sp, 0x30]
- ldr r0, [sp, 0x4]
- adds r0, 0x2
- str r0, [sp, 0x34]
- adds r1, r3, 0x2
- str r1, [sp, 0x24]
- ldr r2, [sp, 0x10]
- adds r2, 0x1
- str r2, [sp, 0x28]
- ldr r0, [sp, 0x20]
- cmp r4, r0
- bge _080EF700
- ldr r1, [sp, 0xC]
- lsls r1, 1
- mov r12, r1
-_080EF6D6:
- lsls r0, r7, 8
- lsrs r2, r0, 16
- lsls r0, r6, 8
- lsrs r1, r0, 16
- lsls r0, r5, 8
- lsrs r0, 16
- lsls r0, 10
- lsls r1, 5
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- add r3, r12
- add r7, r10
- add r6, r9
- add r5, r8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r2, [sp, 0x20]
- cmp r4, r2
- blt _080EF6D6
-_080EF700:
- ldr r4, [sp, 0x14]
- lsrs r2, r4, 8
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 2
- ldr r4, [sp, 0x18]
- lsrs r1, r4, 3
- orrs r0, r1
- orrs r2, r0
- strh r2, [r3]
- ldr r0, [sp, 0x30]
- str r0, [sp]
- ldr r1, [sp, 0x34]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x24]
- ldr r2, [sp, 0x28]
- lsls r0, r2, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x2C]
- lsrs r0, r1, 16
- ldr r2, [sp, 0x10]
- cmp r2, r0
- bcc _080EF654
-_080EF72E:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF624
-
- thumb_func_start sub_80EF740
-sub_80EF740: @ 80EF740
- push {lr}
- ldr r0, _080EF770 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080EF774 @ =0x00006da0
- adds r2, r3, r0
- ldrh r0, [r2]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2]
- cmp r0, 0
- beq _080EF762
- ldr r2, _080EF778 @ =0x00006da2
- adds r1, r3, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF762:
- ldr r0, _080EF77C @ =REG_BG3HOFS
- ldr r2, _080EF778 @ =0x00006da2
- adds r1, r3, r2
- ldrh r1, [r1]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080EF770: .4byte gUnknown_083DFEC4
-_080EF774: .4byte 0x00006da0
-_080EF778: .4byte 0x00006da2
-_080EF77C: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF740
-
- thumb_func_start sub_80EF780
-sub_80EF780: @ 80EF780
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EF7B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080EF7AA
- ldr r0, _080EF7B4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080EF7B8 @ =0x00006da2
- adds r2, r3, r0
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080EF7BC
-_080EF7AA:
- bl sub_80EF740
- b _080EF7C8
- .align 2, 0
-_080EF7B0: .4byte gTasks
-_080EF7B4: .4byte gUnknown_083DFEC4
-_080EF7B8: .4byte 0x00006da2
-_080EF7BC:
- strh r1, [r2]
- ldr r2, _080EF7CC @ =0x00006da0
- adds r0, r3, r2
- strh r1, [r0]
- ldr r0, _080EF7D0 @ =REG_BG3HOFS
- strh r1, [r0]
-_080EF7C8:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF7CC: .4byte 0x00006da0
-_080EF7D0: .4byte REG_BG3HOFS
- thumb_func_end sub_80EF780
-
- thumb_func_start sub_80EF7D4
-sub_80EF7D4: @ 80EF7D4
- push {r4,lr}
- ldr r0, _080EF800 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080EF804 @ =0x00006da2
- adds r0, r4, r1
- movs r1, 0
- strh r1, [r0]
- ldr r2, _080EF808 @ =0x00006da0
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080EF80C @ =sub_80EF780
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EF810 @ =0x00006da4
- adds r4, r1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EF800: .4byte gUnknown_083DFEC4
-_080EF804: .4byte 0x00006da2
-_080EF808: .4byte 0x00006da0
-_080EF80C: .4byte sub_80EF780
-_080EF810: .4byte 0x00006da4
- thumb_func_end sub_80EF7D4
-
- thumb_func_start sub_80EF814
-sub_80EF814: @ 80EF814
- push {lr}
- ldr r0, _080EF834 @ =sub_80EF780
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080EF830
- ldr r0, _080EF838 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF83C @ =0x00006da4
- adds r0, r1
- ldrb r0, [r0]
- bl DestroyTask
-_080EF830:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF834: .4byte sub_80EF780
-_080EF838: .4byte gUnknown_083DFEC4
-_080EF83C: .4byte 0x00006da4
- thumb_func_end sub_80EF814
-
- thumb_func_start sub_80EF840
-sub_80EF840: @ 80EF840
- push {lr}
- ldr r0, _080EF868 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF86C @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EF870 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF862
-_080EF858:
- bl sub_80EF874
- lsls r0, 24
- cmp r0, 0
- bne _080EF858
-_080EF862:
- pop {r0}
- bx r0
- .align 2, 0
-_080EF868: .4byte gUnknown_083DFEC4
-_080EF86C: .4byte 0x0000d160
-_080EF870: .4byte 0x00006dac
- thumb_func_end sub_80EF840
-
- thumb_func_start sub_80EF874
-sub_80EF874: @ 80EF874
- push {lr}
- ldr r0, _080EF890 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EF894 @ =0x0000d160
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xB
- bls _080EF886
- b _080EF9D8
-_080EF886:
- lsls r0, 2
- ldr r1, _080EF898 @ =_080EF89C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EF890: .4byte gUnknown_083DFEC4
-_080EF894: .4byte 0x0000d160
-_080EF898: .4byte _080EF89C
- .align 2, 0
-_080EF89C:
- .4byte _080EF8CC
- .4byte _080EF8D2
- .4byte _080EF8E0
- .4byte _080EF8EC
- .4byte _080EF8F6
- .4byte _080EF8FC
- .4byte _080EF920
- .4byte _080EF92C
- .4byte _080EF940
- .4byte _080EF954
- .4byte _080EF960
- .4byte _080EF972
-_080EF8CC:
- bl sub_80EEDE8
- b _080EF9DC
-_080EF8D2:
- ldr r0, _080EF8DC @ =gWindowConfig_81E7224
- bl SetUpWindowConfig
- b _080EF9DC
- .align 2, 0
-_080EF8DC: .4byte gWindowConfig_81E7224
-_080EF8E0:
- ldr r0, _080EF8E8 @ =gWindowConfig_81E7224
- bl MultistepInitMenuWindowBegin
- b _080EF9DC
- .align 2, 0
-_080EF8E8: .4byte gWindowConfig_81E7224
-_080EF8EC:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _080EF9DC
- b _080EF9EA
-_080EF8F6:
- bl MenuZeroFillScreen
- b _080EF9DC
-_080EF8FC:
- ldr r0, _080EF914 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EF918 @ =0x00006e18
- adds r0, r2
- ldr r1, _080EF91C @ =gSaveBlock2
- ldrb r1, [r1, 0x15]
- lsrs r1, 3
- movs r2, 0x1
- ands r1, r2
- bl sub_80FA904
- b _080EF9DC
- .align 2, 0
-_080EF914: .4byte gUnknown_083DFEC4
-_080EF918: .4byte 0x00006e18
-_080EF91C: .4byte gSaveBlock2
-_080EF920:
- bl sub_80FA940
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF92C:
- ldr r0, _080EF938 @ =gPokenavHoennMapSquares_Gfx
- ldr r1, _080EF93C @ =0x06005000
- bl LZ77UnCompVram
- b _080EF9DC
- .align 2, 0
-_080EF938: .4byte gPokenavHoennMapSquares_Gfx
-_080EF93C: .4byte 0x06005000
-_080EF940:
- ldr r0, _080EF950 @ =gPokenavHoennMapSquares_Pal
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- bl sub_80EFC3C
- b _080EF9DC
- .align 2, 0
-_080EF950: .4byte gPokenavHoennMapSquares_Pal
-_080EF954:
- bl sub_80EFC64
- lsls r0, 24
- cmp r0, 0
- beq _080EF9DC
- b _080EF9EA
-_080EF960:
- movs r0, 0xD
- movs r1, 0x3
- movs r2, 0x1D
- movs r3, 0x11
- bl MenuDrawTextWindow
- bl sub_80EF9F8
- b _080EF9DC
-_080EF972:
- ldr r0, _080EF990 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EF994 @ =0x00006e90
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EF9A0
- ldr r2, _080EF998 @ =0x00007698
- adds r0, r1, r2
- movs r1, 0xA0
- strh r1, [r0]
- ldr r0, _080EF99C @ =REG_BG0VOFS
- strh r1, [r0]
- b _080EF9B0
- .align 2, 0
-_080EF990: .4byte gUnknown_083DFEC4
-_080EF994: .4byte 0x00006e90
-_080EF998: .4byte 0x00007698
-_080EF99C: .4byte REG_BG0VOFS
-_080EF9A0:
- ldr r0, _080EF9C8 @ =0x00007698
- adds r1, r0
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1]
- ldr r0, _080EF9CC @ =REG_BG0VOFS
- strh r2, [r0]
-_080EF9B0:
- ldr r2, _080EF9D0 @ =REG_BG0CNT
- ldrh r0, [r2]
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _080EF9D4 @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- b _080EF9DC
- .align 2, 0
-_080EF9C8: .4byte 0x00007698
-_080EF9CC: .4byte REG_BG0VOFS
-_080EF9D0: .4byte REG_BG0CNT
-_080EF9D4: .4byte REG_BLDCNT
-_080EF9D8:
- movs r0, 0
- b _080EF9EC
-_080EF9DC:
- ldr r0, _080EF9F0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EF9F4 @ =0x0000d160
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080EF9EA:
- movs r0, 0x1
-_080EF9EC:
- pop {r1}
- bx r1
- .align 2, 0
-_080EF9F0: .4byte gUnknown_083DFEC4
-_080EF9F4: .4byte 0x0000d160
- thumb_func_end sub_80EF874
-
- thumb_func_start sub_80EF9F8
-sub_80EF9F8: @ 80EF9F8
- push {r4-r6,lr}
- sub sp, 0x14
- movs r5, 0x4
- ldr r0, _080EFA18 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFA1C @ =0x00006e2e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _080EFA0E
- b _080EFB6A
-_080EFA0E:
- lsls r0, 2
- ldr r1, _080EFA20 @ =_080EFA24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFA18: .4byte gUnknown_083DFEC4
-_080EFA1C: .4byte 0x00006e2e
-_080EFA20: .4byte _080EFA24
- .align 2, 0
-_080EFA24:
- .4byte _080EFB6A
- .4byte _080EFA38
- .4byte _080EFAC0
- .4byte _080EFB4C
- .4byte _080EFA38
-_080EFA38:
- ldr r0, _080EFA64 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFA68 @ =0x00006e18
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080EFA6C @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080EFA70
- bl sub_80F1A80
- b _080EFB82
- .align 2, 0
-_080EFA64: .4byte gUnknown_083DFEC4
-_080EFA68: .4byte 0x00006e18
-_080EFA6C: .4byte gLinkOpen
-_080EFA70:
- movs r4, 0
- b _080EFA92
-_080EFA74:
- lsls r2, r5, 19
- lsrs r2, 16
- movs r0, 0x1
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080EFA92:
- cmp r4, 0x3
- bhi _080EFB6A
- ldr r0, _080EFAB8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFABC @ =0x00006e2c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_811A8CC
- adds r1, r0, 0
- cmp r1, 0
- bne _080EFA74
- b _080EFB6A
- .align 2, 0
-_080EFAB8: .4byte gUnknown_083DFEC4
-_080EFABC: .4byte 0x00006e2c
-_080EFAC0:
- ldr r0, _080EFB38 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080EFB3C @ =0x00006e18
- adds r0, r4, r1
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _080EFB40 @ =0x00006e2c
- adds r0, r4, r2
- ldrh r1, [r0]
- adds r2, 0x3
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 2
- lsls r1, 3
- adds r0, r1
- ldr r1, _080EFB44 @ =0x0000cdcc
- adds r4, r1
- adds r6, r4, r0
- ldr r0, [r6]
- cmp r0, 0
- beq _080EFB6A
- lsls r4, r5, 24
- lsrs r4, 24
- movs r0, 0xE
- adds r1, r4, 0
- movs r2, 0xF
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x1A
- adds r1, r4, 0
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- ldr r0, _080EFB48 @ =0x0600f800
- ldr r3, [r6]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0xA
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x10
- movs r2, 0x6
- bl sub_8095C8C
- adds r0, r5, 0
- adds r0, 0xB
- b _080EFB66
- .align 2, 0
-_080EFB38: .4byte gUnknown_083DFEC4
-_080EFB3C: .4byte 0x00006e18
-_080EFB40: .4byte 0x00006e2c
-_080EFB44: .4byte 0x0000cdcc
-_080EFB48: .4byte 0x0600f800
-_080EFB4C:
- ldr r0, _080EFB98 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFB9C @ =0x00006e18
- adds r0, r2
- lsls r2, r5, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- adds r0, r5, 0x2
-_080EFB66:
- lsls r0, 16
- lsrs r5, r0, 16
-_080EFB6A:
- movs r0, 0
- cmp r0, 0
- bne _080EFB82
- cmp r5, 0xF
- bhi _080EFB82
- lsls r1, r5, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
-_080EFB82:
- ldr r0, _080EFB98 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFBA0 @ =0x00006e2e
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080EFBA4
- bl sub_80EFD74
- b _080EFBA8
- .align 2, 0
-_080EFB98: .4byte gUnknown_083DFEC4
-_080EFB9C: .4byte 0x00006e18
-_080EFBA0: .4byte 0x00006e2e
-_080EFBA4:
- bl sub_80EFDA0
-_080EFBA8:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EF9F8
-
- thumb_func_start sub_80EFBB0
-sub_80EFBB0: @ 80EFBB0
- push {lr}
- ldr r0, _080EFBC8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFBCC @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFBD0
- movs r0, 0x8
- bl sub_80EEFBC
- b _080EFBD6
- .align 2, 0
-_080EFBC8: .4byte gUnknown_083DFEC4
-_080EFBCC: .4byte 0x00006e90
-_080EFBD0:
- movs r0, 0x7
- bl sub_80EEFBC
-_080EFBD6:
- pop {r0}
- bx r0
- thumb_func_end sub_80EFBB0
-
- thumb_func_start sub_80EFBDC
-sub_80EFBDC: @ 80EFBDC
- push {r4,lr}
- lsls r0, 24
- movs r4, 0x1
- ldr r2, _080EFBFC @ =gUnknown_083DFEC4
- ldr r1, [r2]
- ldr r3, _080EFC00 @ =0x00007698
- adds r1, r3
- ldrh r3, [r1]
- cmp r0, 0
- beq _080EFC08
- cmp r3, 0xA8
- bls _080EFC04
- adds r0, r3, 0
- subs r0, 0x8
- b _080EFC10
- .align 2, 0
-_080EFBFC: .4byte gUnknown_083DFEC4
-_080EFC00: .4byte 0x00007698
-_080EFC04:
- movs r3, 0xA0
- b _080EFC1A
-_080EFC08:
- cmp r3, 0xF7
- bhi _080EFC16
- adds r0, r3, 0
- adds r0, 0x8
-_080EFC10:
- lsls r0, 16
- lsrs r3, r0, 16
- b _080EFC1C
-_080EFC16:
- movs r3, 0x80
- lsls r3, 1
-_080EFC1A:
- movs r4, 0
-_080EFC1C:
- ldr r0, [r2]
- ldr r1, _080EFC34 @ =0x00007698
- adds r0, r1
- strh r3, [r0]
- ldr r1, _080EFC38 @ =REG_BG0VOFS
- movs r0, 0xFF
- ands r3, r0
- strh r3, [r1]
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080EFC34: .4byte 0x00007698
-_080EFC38: .4byte REG_BG0VOFS
- thumb_func_end sub_80EFBDC
-
- thumb_func_start sub_80EFC3C
-sub_80EFC3C: @ 80EFC3C
- push {lr}
- ldr r0, _080EFC58 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFC5C @ =0x0000bc9a
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080EFC60 @ =0x0000bc9b
- adds r0, r1
- strb r2, [r0]
- bl sub_80EFD3C
- pop {r0}
- bx r0
- .align 2, 0
-_080EFC58: .4byte gUnknown_083DFEC4
-_080EFC5C: .4byte 0x0000bc9a
-_080EFC60: .4byte 0x0000bc9b
- thumb_func_end sub_80EFC3C
-
- thumb_func_start sub_80EFC64
-sub_80EFC64: @ 80EFC64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _080EFCD0 @ =gUnknown_083DFEC4
- ldr r2, [r4]
- ldr r0, _080EFCD4 @ =0x0000bc9a
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xF
- bhi _080EFD2C
- ldrb r1, [r1]
- mov r8, r1
- ldr r1, _080EFCD8 @ =0x0000bc9b
- adds r0, r2, r1
- ldrb r7, [r0]
- movs r2, 0
- ldr r0, _080EFCDC @ =gPokenavCityMaps
- mov r9, r0
- adds r3, r4, 0
-_080EFC8E:
- lsls r0, r2, 2
- mov r4, r8
- lsls r1, r4, 3
- adds r6, r0, r1
- mov r1, r9
- adds r0, r6, r1
- ldr r1, [r0]
- cmp r1, 0
- beq _080EFCE8
- movs r0, 0xC8
- adds r5, r7, 0
- muls r5, r0
- ldr r4, _080EFCE0 @ =0x0000bc9c
- adds r5, r4
- ldr r4, [r3]
- adds r5, r4, r5
- adds r0, r1, 0
- adds r1, r5, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl LZ77UnCompVram
- ldr r0, _080EFCE4 @ =0x0000cdcc
- adds r4, r0
- adds r4, r6
- str r5, [r4]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- b _080EFCF2
- .align 2, 0
-_080EFCD0: .4byte gUnknown_083DFEC4
-_080EFCD4: .4byte 0x0000bc9a
-_080EFCD8: .4byte 0x0000bc9b
-_080EFCDC: .4byte gPokenavCityMaps
-_080EFCE0: .4byte 0x0000bc9c
-_080EFCE4: .4byte 0x0000cdcc
-_080EFCE8:
- ldr r0, [r3]
- ldr r4, _080EFD1C @ =0x0000cdcc
- adds r0, r4
- adds r0, r6
- str r1, [r0]
-_080EFCF2:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x1
- bls _080EFC8E
- ldr r0, _080EFD20 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFD24 @ =0x0000bc9a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _080EFD2C
- ldr r1, _080EFD28 @ =0x0000bc9b
- adds r0, r2, r1
- strb r7, [r0]
- movs r0, 0x1
- b _080EFD2E
- .align 2, 0
-_080EFD1C: .4byte 0x0000cdcc
-_080EFD20: .4byte gUnknown_083DFEC4
-_080EFD24: .4byte 0x0000bc9a
-_080EFD28: .4byte 0x0000bc9b
-_080EFD2C:
- movs r0, 0
-_080EFD2E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80EFC64
-
- thumb_func_start sub_80EFD3C
-sub_80EFD3C: @ 80EFD3C
- ldr r0, _080EFD60 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFD64 @ =0x0000769e
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r0, _080EFD68 @ =0x0000769c
- adds r3, r1, r0
- movs r0, 0x2F
- strb r0, [r3]
- ldr r3, _080EFD6C @ =0x0000769d
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080EFD70 @ =0x0000769a
- adds r1, r0
- strh r2, [r1]
- bx lr
- .align 2, 0
-_080EFD60: .4byte gUnknown_083DFEC4
-_080EFD64: .4byte 0x0000769e
-_080EFD68: .4byte 0x0000769c
-_080EFD6C: .4byte 0x0000769d
-_080EFD70: .4byte 0x0000769a
- thumb_func_end sub_80EFD3C
-
- thumb_func_start sub_80EFD74
-sub_80EFD74: @ 80EFD74
- push {lr}
- ldr r0, _080EFD94 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFD98 @ =0x0000769e
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080EFD9C @ =0x0000769d
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080EFD90
- movs r0, 0x2
- strb r0, [r2]
-_080EFD90:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFD94: .4byte gUnknown_083DFEC4
-_080EFD98: .4byte 0x0000769e
-_080EFD9C: .4byte 0x0000769d
- thumb_func_end sub_80EFD74
-
- thumb_func_start sub_80EFDA0
-sub_80EFDA0: @ 80EFDA0
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFDD4 @ =0x0600f800
- ldr r3, _080EFDD8 @ =gUnknown_08E9AC2C
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r2, 0xF
- str r2, [sp, 0x8]
- movs r1, 0x1
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- ldr r0, _080EFDDC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFDE0 @ =0x0000769e
- adds r0, r1
- strb r4, [r0]
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFDD4: .4byte 0x0600f800
-_080EFDD8: .4byte gUnknown_08E9AC2C
-_080EFDDC: .4byte gUnknown_083DFEC4
-_080EFDE0: .4byte 0x0000769e
- thumb_func_end sub_80EFDA0
-
- thumb_func_start sub_80EFDE4
-sub_80EFDE4: @ 80EFDE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- ldr r0, _080EFE68 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080EFE6C @ =0x0000769c
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x3C
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _080EFE06
- movs r4, 0xF
-_080EFE06:
- ldr r3, _080EFE70 @ =0x0000769e
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EFE58
- ldr r0, _080EFE74 @ =0x0600f800
- mov r8, r0
- ldr r3, _080EFE78 @ =gUnknown_08E9ABB4
- mov r9, r3
- str r2, [sp]
- movs r5, 0
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r7, 0x1
- str r7, [sp, 0xC]
- movs r6, 0x3C
- str r6, [sp, 0x10]
- movs r1, 0xE
- movs r2, 0x10
- bl sub_8095C8C
- cmp r4, 0xE
- bhi _080EFE58
- adds r1, r4, 0
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0xF
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
- str r6, [sp, 0x10]
- mov r0, r8
- movs r2, 0x10
- mov r3, r9
- bl sub_8095C8C
-_080EFE58:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EFE68: .4byte gUnknown_083DFEC4
-_080EFE6C: .4byte 0x0000769c
-_080EFE70: .4byte 0x0000769e
-_080EFE74: .4byte 0x0600f800
-_080EFE78: .4byte gUnknown_08E9ABB4
- thumb_func_end sub_80EFDE4
-
- thumb_func_start sub_80EFE7C
-sub_80EFE7C: @ 80EFE7C
- push {r4,lr}
- ldr r0, _080EFE98 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080EFE9C @ =0x0000769d
- adds r4, r2, r0
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080EFF08
- cmp r1, 0x1
- bgt _080EFEA0
- cmp r1, 0
- beq _080EFEA6
- b _080EFF2E
- .align 2, 0
-_080EFE98: .4byte gUnknown_083DFEC4
-_080EFE9C: .4byte 0x0000769d
-_080EFEA0:
- cmp r1, 0x2
- beq _080EFF24
- b _080EFF2E
-_080EFEA6:
- ldr r0, _080EFED4 @ =0x0000769c
- adds r4, r2, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3B
- bls _080EFEBA
- strb r1, [r4]
-_080EFEBA:
- ldr r1, _080EFED8 @ =0x0000769e
- adds r0, r2, r1
- ldrb r0, [r0]
- bl sub_80EFDE4
- ldrb r0, [r4]
- cmp r0, 0xF
- beq _080EFEE4
- cmp r0, 0xF
- bgt _080EFEDC
- cmp r0, 0
- beq _080EFEE4
- b _080EFF2E
- .align 2, 0
-_080EFED4: .4byte 0x0000769c
-_080EFED8: .4byte 0x0000769e
-_080EFEDC:
- cmp r0, 0x1E
- beq _080EFEE4
- cmp r0, 0x2D
- bne _080EFF2E
-_080EFEE4:
- ldr r0, _080EFEFC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080EFF00 @ =0x0000769d
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x1
- strb r0, [r2]
- ldr r0, _080EFF04 @ =0x0000769a
- adds r1, r0
- strh r3, [r1]
- b _080EFF2E
- .align 2, 0
-_080EFEFC: .4byte gUnknown_083DFEC4
-_080EFF00: .4byte 0x0000769d
-_080EFF04: .4byte 0x0000769a
-_080EFF08:
- ldr r0, _080EFF20 @ =0x0000769a
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x78
- bls _080EFF2E
- movs r0, 0
- strh r0, [r1]
- b _080EFF2C
- .align 2, 0
-_080EFF20: .4byte 0x0000769a
-_080EFF24:
- movs r0, 0x1
- bl sub_80EFDE4
- movs r0, 0x1
-_080EFF2C:
- strb r0, [r4]
-_080EFF2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80EFE7C
-
- thumb_func_start sub_80EFF34
-sub_80EFF34: @ 80EFF34
- push {lr}
- ldr r0, _080EFF5C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFF60 @ =0x0000d160
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080EFF64 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EFF56
-_080EFF4C:
- bl sub_80EFF68
- lsls r0, 24
- cmp r0, 0
- bne _080EFF4C
-_080EFF56:
- pop {r0}
- bx r0
- .align 2, 0
-_080EFF5C: .4byte gUnknown_083DFEC4
-_080EFF60: .4byte 0x0000d160
-_080EFF64: .4byte 0x00006dac
- thumb_func_end sub_80EFF34
-
- thumb_func_start sub_80EFF68
-sub_80EFF68: @ 80EFF68
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080EFF88 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080EFF8C @ =0x0000d160
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xD
- bls _080EFF7C
- b _080F0150
-_080EFF7C:
- lsls r0, 2
- ldr r1, _080EFF90 @ =_080EFF94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080EFF88: .4byte gUnknown_083DFEC4
-_080EFF8C: .4byte 0x0000d160
-_080EFF90: .4byte _080EFF94
- .align 2, 0
-_080EFF94:
- .4byte _080EFFCC
- .4byte _080EFFE8
- .4byte _080EFFF4
- .4byte _080F0000
- .4byte _080F000C
- .4byte _080F0012
- .4byte _080F0018
- .4byte _080F0028
- .4byte _080F003C
- .4byte _080F005C
- .4byte _080F0098
- .4byte _080F00AC
- .4byte _080F00F8
- .4byte _080F0118
-_080EFFCC:
- bl sub_80EEDE8
- ldr r0, _080EFFE0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080EFFE4 @ =0x0000d162
- adds r0, r2
- movs r1, 0xB
- strb r1, [r0]
- b _080F0154
- .align 2, 0
-_080EFFE0: .4byte gUnknown_083DFEC4
-_080EFFE4: .4byte 0x0000d162
-_080EFFE8:
- ldr r0, _080EFFF0 @ =gWindowConfig_81E7080
- bl SetUpWindowConfig
- b _080F0154
- .align 2, 0
-_080EFFF0: .4byte gWindowConfig_81E7080
-_080EFFF4:
- ldr r0, _080EFFFC @ =gWindowConfig_81E7080
- bl MultistepInitMenuWindowBegin
- b _080F0154
- .align 2, 0
-_080EFFFC: .4byte gWindowConfig_81E7080
-_080F0000:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F000A
- b _080F0154
-_080F000A:
- b _080F0162
-_080F000C:
- bl MenuZeroFillScreen
- b _080F0154
-_080F0012:
- bl sub_80F1614
- b _080F0154
-_080F0018:
- movs r0, 0
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- bne _080F0026
- b _080F0154
-_080F0026:
- b _080F0162
-_080F0028:
- ldr r0, _080F0034 @ =gPokenavConditionView_Gfx
- ldr r1, _080F0038 @ =0x06005000
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F0034: .4byte gPokenavConditionView_Gfx
-_080F0038: .4byte 0x06005000
-_080F003C:
- ldr r0, _080F0050 @ =gUnknown_08E9AC4C
- ldr r1, _080F0054 @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _080F0058 @ =gPokenavConditionMenu2_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _080F0154
- .align 2, 0
-_080F0050: .4byte gUnknown_08E9AC4C
-_080F0054: .4byte 0x0600f000
-_080F0058: .4byte gPokenavConditionMenu2_Pal
-_080F005C:
- ldr r0, _080F0088 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F008C @ =0x000076aa
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0154
- ldr r0, _080F0090 @ =0x0600f000
- ldr r3, _080F0094 @ =gUnknown_083E01AC
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0154
- .align 2, 0
-_080F0088: .4byte gUnknown_083DFEC4
-_080F008C: .4byte 0x000076aa
-_080F0090: .4byte 0x0600f000
-_080F0094: .4byte gUnknown_083E01AC
-_080F0098:
- ldr r0, _080F00A4 @ =gUnknown_08E9FEB4
- ldr r1, _080F00A8 @ =0x0600b800
- bl LZ77UnCompVram
- b _080F0154
- .align 2, 0
-_080F00A4: .4byte gUnknown_08E9FEB4
-_080F00A8: .4byte 0x0600b800
-_080F00AC:
- ldr r0, _080F00EC @ =gUnknown_083E0254
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F00F0 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F00F4 @ =gPokenavConditionMenu2_Pal + 0x2
- adds r0, r4, 0
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0x1C
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- bl sub_80F01A4
- b _080F0154
- .align 2, 0
-_080F00EC: .4byte gUnknown_083E0254
-_080F00F0: .4byte gUnknownPalette_81E6692
-_080F00F4: .4byte gPokenavConditionMenu2_Pal + 0x2
-_080F00F8:
- ldr r0, _080F0110 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0114 @ =0x00008fe9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F0154
- .align 2, 0
-_080F0110: .4byte gUnknown_083DFEC4
-_080F0114: .4byte 0x00008fe9
-_080F0118:
- ldr r1, _080F013C @ =REG_BG3CNT
- ldr r2, _080F0140 @ =0x00001e03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080F0144 @ =0x00001702
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- ldr r2, _080F0148 @ =0x00000844
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F014C @ =0x0000040b
- adds r0, r2, 0
- strh r0, [r1]
- b _080F0154
- .align 2, 0
-_080F013C: .4byte REG_BG3CNT
-_080F0140: .4byte 0x00001e03
-_080F0144: .4byte 0x00001702
-_080F0148: .4byte 0x00000844
-_080F014C: .4byte 0x0000040b
-_080F0150:
- movs r0, 0
- b _080F0164
-_080F0154:
- ldr r0, _080F016C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0170 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0162:
- movs r0, 0x1
-_080F0164:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F016C: .4byte gUnknown_083DFEC4
-_080F0170: .4byte 0x0000d160
- thumb_func_end sub_80EFF68
-
- thumb_func_start sub_80F0174
-sub_80F0174: @ 80F0174
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _080F018E
- movs r0, 0x80
- lsls r0, 19
- ldrh r1, [r0]
- movs r3, 0x80
- lsls r3, 3
- adds r2, r3, 0
- orrs r1, r2
- strh r1, [r0]
- b _080F019A
-_080F018E:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F01A0 @ =0x0000fbff
- ands r0, r1
- strh r0, [r2]
-_080F019A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F01A0: .4byte 0x0000fbff
- thumb_func_end sub_80F0174
-
- thumb_func_start sub_80F01A4
-sub_80F01A4: @ 80F01A4
- ldr r1, _080F01CC @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _080F01D0 @ =REG_WIN0V
- ldr r2, _080F01D4 @ =0x00003879
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _080F01D8 @ =REG_WININ
- ldr r2, _080F01DC @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080F01CC: .4byte REG_WIN0H
-_080F01D0: .4byte REG_WIN0V
-_080F01D4: .4byte 0x00003879
-_080F01D8: .4byte REG_WININ
-_080F01DC: .4byte 0x00003f3f
- thumb_func_end sub_80F01A4
-
- thumb_func_start sub_80F01E0
-sub_80F01E0: @ 80F01E0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _080F0248 @ =gUnknown_083DFEC4
- lsls r0, r4, 6
- ldr r2, _080F024C @ =0x00008829
- adds r0, r2
- ldr r5, [r1]
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x1
- bl MenuPrint
- ldr r1, _080F0250 @ =0x000076aa
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0242
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r2, _080F0254 @ =0x000088e9
- adds r0, r2
- adds r0, r5, r0
- movs r1, 0xD
- movs r2, 0x3
- bl MenuPrint
- ldr r0, _080F0258 @ =0x00008788
- adds r4, r5, r0
- ldr r1, _080F025C @ =0x000087dc
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r0, r5, r0
- ldr r1, _080F0260 @ =0x0000893e
- adds r0, r1
- ldrh r1, [r0]
- lsls r1, 18
- lsrs r1, 23
- adds r0, r4, 0
- bl sub_80F443C
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x6
- bl MenuPrint
-_080F0242:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0248: .4byte gUnknown_083DFEC4
-_080F024C: .4byte 0x00008829
-_080F0250: .4byte 0x000076aa
-_080F0254: .4byte 0x000088e9
-_080F0258: .4byte 0x00008788
-_080F025C: .4byte 0x000087dc
-_080F0260: .4byte 0x0000893e
- thumb_func_end sub_80F01E0
-
- thumb_func_start sub_80F0264
-sub_80F0264: @ 80F0264
- push {lr}
- ldr r1, _080F0290 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r1, _080F0294 @ =0x00000306
- adds r3, r2, r1
- movs r1, 0
- strh r1, [r3]
- ldr r3, _080F0298 @ =0x000087ca
- adds r1, r2, r3
- strb r0, [r1]
- ldr r0, _080F029C @ =0x00006dac
- adds r2, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _080F028C
-_080F0282:
- bl sub_80F02A0
- lsls r0, 24
- cmp r0, 0
- bne _080F0282
-_080F028C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0290: .4byte gUnknown_083DFEC4
-_080F0294: .4byte 0x00000306
-_080F0298: .4byte 0x000087ca
-_080F029C: .4byte 0x00006dac
- thumb_func_end sub_80F0264
-
- thumb_func_start sub_80F02A0
-sub_80F02A0: @ 80F02A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- ldr r1, _080F02C4 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F02C8 @ =0x00000306
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xE
- bls _080F02BA
- b _080F05FA
-_080F02BA:
- lsls r0, 2
- ldr r1, _080F02CC @ =_080F02D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F02C4: .4byte gUnknown_083DFEC4
-_080F02C8: .4byte 0x00000306
-_080F02CC: .4byte _080F02D0
- .align 2, 0
-_080F02D0:
- .4byte _080F030C
- .4byte _080F0344
- .4byte _080F0350
- .4byte _080F035C
- .4byte _080F0368
- .4byte _080F036E
- .4byte _080F0380
- .4byte _080F0394
- .4byte _080F04BC
- .4byte _080F053C
- .4byte _080F0550
- .4byte _080F0574
- .4byte _080F057A
- .4byte _080F0586
- .4byte _080F05BC
-_080F030C:
- bl sub_80EEDE8
- ldr r0, _080F0334 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- movs r2, 0
- ldr r3, _080F0338 @ =0x000087ca
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F0322
- movs r2, 0x1
-_080F0322:
- ldr r3, _080F033C @ =0x000087c8
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080F0340 @ =0x0000d162
- adds r1, r0
- movs r0, 0xB
- strb r0, [r1]
- b _080F0618
- .align 2, 0
-_080F0334: .4byte gUnknown_083DFEC4
-_080F0338: .4byte 0x000087ca
-_080F033C: .4byte 0x000087c8
-_080F0340: .4byte 0x0000d162
-_080F0344:
- ldr r0, _080F034C @ =gWindowConfig_81E70D4
- bl SetUpWindowConfig
- b _080F0618
- .align 2, 0
-_080F034C: .4byte gWindowConfig_81E70D4
-_080F0350:
- ldr r0, _080F0358 @ =gWindowConfig_81E70D4
- bl MultistepInitMenuWindowBegin
- b _080F0618
- .align 2, 0
-_080F0358: .4byte gWindowConfig_81E70D4
-_080F035C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F0366
- b _080F0618
-_080F0366:
- b _080F0626
-_080F0368:
- bl MenuZeroFillScreen
- b _080F0618
-_080F036E:
- ldr r0, _080F0378 @ =gUnknown_08E9FC64
- ldr r1, _080F037C @ =0x0600e800
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0378: .4byte gUnknown_08E9FC64
-_080F037C: .4byte 0x0600e800
-_080F0380:
- ldr r0, _080F038C @ =gPokenavConditionSearch2_Gfx
- ldr r1, _080F0390 @ =0x06008000
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F038C: .4byte gPokenavConditionSearch2_Gfx
-_080F0390: .4byte 0x06008000
-_080F0394:
- ldr r6, _080F03FC @ =gUnknown_083E02B4
- adds r0, r6, 0
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0400 @ =gUnknown_083E0334
- movs r1, 0x40
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F0404 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0408 @ =0x000087ca
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F0418
- ldr r4, _080F040C @ =gPokenavConditionSearch2_Pal
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F0410 @ =gPlttBufferUnfaded
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0414 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F03FC: .4byte gUnknown_083E02B4
-_080F0400: .4byte gUnknown_083E0334
-_080F0404: .4byte gUnknown_083DFEC4
-_080F0408: .4byte 0x000087ca
-_080F040C: .4byte gPokenavConditionSearch2_Pal
-_080F0410: .4byte gPlttBufferUnfaded
-_080F0414: .4byte gUnknownPalette_81E6692
-_080F0418:
- cmp r0, 0x1
- bne _080F0464
- ldr r4, _080F0458 @ =gUnknown_083E0274
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F045C @ =gPlttBufferUnfaded
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F0460 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0xA
- adds r0, r4, 0
- movs r1, 0xBF
- b _080F04A8
- .align 2, 0
-_080F0458: .4byte gUnknown_083E0274
-_080F045C: .4byte gPlttBufferUnfaded
-_080F0460: .4byte gUnknownPalette_81E6692
-_080F0464:
- ldr r4, _080F04B0 @ =gUnknown_08E9F9E8
- adds r0, r4, 0
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080F04B4 @ =gPlttBufferUnfaded
- adds r5, r4, 0
- adds r5, 0xA
- ldrh r0, [r4, 0xA]
- strh r0, [r1]
- ldr r0, _080F04B8 @ =gUnknown_083E0314
- movs r1, 0x50
- movs r2, 0x20
- bl LoadPalette
- adds r0, r6, 0x2
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r6, 0
- adds r0, 0x10
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- adds r0, r5, 0
- movs r1, 0x5F
-_080F04A8:
- movs r2, 0x2
- bl LoadPalette
- b _080F0618
- .align 2, 0
-_080F04B0: .4byte gUnknown_08E9F9E8
-_080F04B4: .4byte gPlttBufferUnfaded
-_080F04B8: .4byte gUnknown_083E0314
-_080F04BC:
- ldr r0, _080F04E8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F04EC @ =0x000087ca
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F04F8
- ldr r0, _080F04F0 @ =0x0600e800
- ldr r3, _080F04F4 @ =gUnknown_08E9FD1C
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x9
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F04E8: .4byte gUnknown_083DFEC4
-_080F04EC: .4byte 0x000087ca
-_080F04F0: .4byte 0x0600e800
-_080F04F4: .4byte gUnknown_08E9FD1C
-_080F04F8:
- ldr r3, _080F0530 @ =0x0600e800
- mov r8, r3
- ldr r3, _080F0534 @ =gUnknown_08E9FE54
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r5, 0xC
- str r5, [sp, 0x8]
- movs r6, 0xA
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x4
- bl sub_8095C8C
- ldr r3, _080F0538 @ =gUnknown_08E9FD64
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- str r5, [sp, 0x10]
- mov r0, r8
- movs r1, 0
- movs r2, 0x8
- bl sub_8095C8C
- b _080F0618
- .align 2, 0
-_080F0530: .4byte 0x0600e800
-_080F0534: .4byte gUnknown_08E9FE54
-_080F0538: .4byte gUnknown_08E9FD64
-_080F053C:
- ldr r0, _080F0548 @ =gUnknown_083E0354
- ldr r1, _080F054C @ =0x06005000
- bl LZ77UnCompVram
- b _080F0618
- .align 2, 0
-_080F0548: .4byte gUnknown_083E0354
-_080F054C: .4byte 0x06005000
-_080F0550:
- ldr r2, _080F0568 @ =0x0600f800
- add r1, sp, 0x14
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F056C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080F0570 @ =0x81000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080F0618
- .align 2, 0
-_080F0568: .4byte 0x0600f800
-_080F056C: .4byte 0x040000d4
-_080F0570: .4byte 0x81000400
-_080F0574:
- bl sub_80F0900
- b _080F0618
-_080F057A:
- bl sub_80F0944
- lsls r0, 24
- cmp r0, 0
- beq _080F0618
- b _080F0626
-_080F0586:
- ldr r0, _080F059C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F05A0 @ =0x000087ca
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080F05A4
- bl ShowMapNamePopUpWindow
- b _080F0618
- .align 2, 0
-_080F059C: .4byte gUnknown_083DFEC4
-_080F05A0: .4byte 0x000087ca
-_080F05A4:
- movs r0, 0
- bl sub_80F081C
- ldr r2, _080F05B8 @ =0x0000876e
- adds r0, r4, r2
- ldrb r0, [r0]
- bl sub_80F0FFC
- b _080F0618
- .align 2, 0
-_080F05B8: .4byte 0x0000876e
-_080F05BC:
- ldr r1, _080F0600 @ =REG_BG2CNT
- ldr r3, _080F0604 @ =0x00001d0a
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r3, 0xF9
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r3, 0xFE
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x16
- movs r0, 0xF8
- strh r0, [r1]
- ldr r1, [r2]
- ldr r0, _080F0608 @ =0x00008776
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xF8
- strh r0, [r2]
- ldr r2, _080F060C @ =0x00008778
- adds r0, r1, r2
- strh r3, [r0]
- ldr r0, _080F0610 @ =REG_BLDCNT
- strh r3, [r0]
- ldr r3, _080F0614 @ =0x0000d160
- adds r1, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F05FA:
- movs r0, 0
- b _080F0628
- .align 2, 0
-_080F0600: .4byte REG_BG2CNT
-_080F0604: .4byte 0x00001d0a
-_080F0608: .4byte 0x00008776
-_080F060C: .4byte 0x00008778
-_080F0610: .4byte REG_BLDCNT
-_080F0614: .4byte 0x0000d160
-_080F0618:
- ldr r0, _080F0634 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0638 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0626:
- movs r0, 0x1
-_080F0628:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0634: .4byte gUnknown_083DFEC4
-_080F0638: .4byte 0x00000306
- thumb_func_end sub_80F02A0
-
- thumb_func_start sub_80F063C
-sub_80F063C: @ 80F063C
- push {r4-r7,lr}
- lsls r0, 16
- ldr r3, _080F0664 @ =gUnknown_083DFEC4
- ldr r2, [r3]
- lsrs r5, r0, 16
- asrs r4, r0, 16
- lsls r1, r4, 4
- ldr r6, _080F0668 @ =0x0000877c
- adds r0, r2, r6
- strh r1, [r0]
- adds r7, r3, 0
- cmp r4, 0x1
- beq _080F065E
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _080F066C
-_080F065E:
- movs r1, 0x4
- b _080F066E
- .align 2, 0
-_080F0664: .4byte gUnknown_083DFEC4
-_080F0668: .4byte 0x0000877c
-_080F066C:
- movs r1, 0x8
-_080F066E:
- ldr r3, _080F06C0 @ =0x0000877a
- adds r0, r2, r3
- strh r1, [r0]
- lsls r0, r5, 16
- asrs r3, r0, 16
- cmp r3, 0
- bge _080F06CC
- ldr r4, [r7]
- ldr r6, _080F06C0 @ =0x0000877a
- adds r1, r4, r6
- movs r2, 0
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1]
- subs r6, 0x2
- adds r1, r4, r6
- lsls r0, r3, 1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080F06C4 @ =0x00008770
- adds r0, r4, r1
- ldrh r0, [r0]
- adds r0, r3, r0
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _080F06B8
- ldr r2, _080F06C8 @ =0x00008774
- adds r1, r4, r2
- adds r0, 0x1
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F06B8:
- negs r0, r3
- lsls r0, 16
- lsrs r5, r0, 16
- b _080F06E6
- .align 2, 0
-_080F06C0: .4byte 0x0000877a
-_080F06C4: .4byte 0x00008770
-_080F06C8: .4byte 0x00008774
-_080F06CC:
- ldr r1, [r7]
- ldr r3, _080F070C @ =0x00008778
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r0, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F0710 @ =0x00008772
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F06E6:
- ldr r0, [r7]
- ldr r1, _080F0714 @ =0x00008774
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- ble _080F06FA
- movs r2, 0
-_080F06FA:
- movs r1, 0x1F
- adds r0, r2, 0
- ands r1, r6
- adds r2, r5, 0
- bl sub_80F0954
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F070C: .4byte 0x00008778
-_080F0710: .4byte 0x00008772
-_080F0714: .4byte 0x00008774
- thumb_func_end sub_80F063C
-
- thumb_func_start sub_80F0718
-sub_80F0718: @ 80F0718
- push {r4,r5,lr}
- bl sub_80F098C
- lsls r0, 24
- cmp r0, 0
- bne _080F0790
- ldr r0, _080F073C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F0740 @ =0x0000877c
- adds r3, r4, r0
- ldrh r2, [r3]
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080F0744
- movs r0, 0
- b _080F0792
- .align 2, 0
-_080F073C: .4byte gUnknown_083DFEC4
-_080F0740: .4byte 0x0000877c
-_080F0744:
- ldr r0, _080F0780 @ =0x0000877a
- adds r1, r4, r0
- ldrh r0, [r1]
- subs r0, r2, r0
- strh r0, [r3]
- ldr r0, _080F0784 @ =0x00008776
- adds r2, r4, r0
- ldrh r0, [r1]
- ldrh r1, [r2]
- adds r0, r1
- movs r5, 0xFF
- ands r0, r5
- strh r0, [r2]
- ldr r1, _080F0788 @ =REG_BG3VOFS
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080F0790
- movs r1, 0
- ldrsh r0, [r2, r1]
- adds r0, 0x8
- ands r0, r5
- asrs r1, r0, 3
- ldr r2, _080F078C @ =0x00008778
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0
- b _080F0792
- .align 2, 0
-_080F0780: .4byte 0x0000877a
-_080F0784: .4byte 0x00008776
-_080F0788: .4byte REG_BG3VOFS
-_080F078C: .4byte 0x00008778
-_080F0790:
- movs r0, 0x1
-_080F0792:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0718
-
- thumb_func_start ShowMapNamePopUpWindow
-ShowMapNamePopUpWindow: @ 80F0798
- push {lr}
- ldr r0, _080F07B0 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F07B4 @ =0x000087ca
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F07B8
- cmp r0, 0x1
- beq _080F07E0
- b _080F080A
- .align 2, 0
-_080F07B0: .4byte gUnknown_083DFEC4
-_080F07B4: .4byte 0x000087ca
-_080F07B8:
- ldr r3, _080F07D8 @ =0x00008788
- adds r0, r2, r3
- subs r3, 0x1A
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r1, r2, r1
- ldr r2, _080F07DC @ =0x0000893e
- adds r1, r2
- ldrh r1, [r1]
- lsls r1, 18
- lsrs r1, 23
- bl sub_80F443C
- b _080F07F4
- .align 2, 0
-_080F07D8: .4byte 0x00008788
-_080F07DC: .4byte 0x0000893e
-_080F07E0:
- ldr r3, _080F0810 @ =0x00008788
- adds r0, r2, r3
- subs r3, 0x1A
- adds r1, r2, r3
- ldrh r1, [r1]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- bl sub_80F445C
-_080F07F4:
- ldr r0, _080F0814 @ =gWindowConfig_81E710C
- bl BasicInitMenuWindow
- ldr r0, _080F0818 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0810 @ =0x00008788
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x6
- bl MenuPrint
-_080F080A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F0810: .4byte 0x00008788
-_080F0814: .4byte gWindowConfig_81E710C
-_080F0818: .4byte gUnknown_083DFEC4
- thumb_func_end ShowMapNamePopUpWindow
-
- thumb_func_start sub_80F081C
-sub_80F081C: @ 80F081C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F0838 @ =gWindowConfig_81E710C
- bl BasicInitMenuWindow
- cmp r5, 0x4
- bhi _080F08C6
- lsls r0, r5, 2
- ldr r1, _080F083C @ =_080F0840
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F0838: .4byte gWindowConfig_81E710C
-_080F083C: .4byte _080F0840
- .align 2, 0
-_080F0840:
- .4byte _080F0854
- .4byte _080F0854
- .4byte _080F0862
- .4byte _080F088C
- .4byte _080F089A
-_080F0854:
- ldr r0, _080F08CC @ =gOtherText_NumberRegistered
- movs r1, 0xA
- movs r2, 0x9
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F0862:
- ldr r0, _080F08D0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F08D4 @ =0x00008788
- adds r4, r0, r1
- ldr r2, _080F08D8 @ =0x00008774
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r1, 0x1
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0xB
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F088C:
- ldr r0, _080F08DC @ =gOtherText_NumberBattles
- movs r1, 0xA
- movs r2, 0xD
- bl sub_8072B4C
- cmp r5, 0
- bne _080F08C6
-_080F089A:
- movs r0, 0x9
- bl sub_8053108
- adds r1, r0, 0
- ldr r0, _080F08E0 @ =0x0001869f
- cmp r1, r0
- bls _080F08AA
- adds r1, r0, 0
-_080F08AA:
- ldr r0, _080F08D0 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F08D4 @ =0x00008788
- adds r4, r0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0xF
- bl sub_8072B4C
-_080F08C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F08CC: .4byte gOtherText_NumberRegistered
-_080F08D0: .4byte gUnknown_083DFEC4
-_080F08D4: .4byte 0x00008788
-_080F08D8: .4byte 0x00008774
-_080F08DC: .4byte gOtherText_NumberBattles
-_080F08E0: .4byte 0x0001869f
- thumb_func_end sub_80F081C
-
- thumb_func_start sub_80F08E4
-sub_80F08E4: @ 80F08E4
- push {lr}
- ldr r0, _080F08FC @ =gWindowConfig_81E710C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x9
- movs r2, 0xB
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080F08FC: .4byte gWindowConfig_81E710C
- thumb_func_end sub_80F08E4
-
- thumb_func_start sub_80F0900
-sub_80F0900: @ 80F0900
- push {r4,r5,lr}
- ldr r0, _080F093C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0940 @ =0x00008772
- adds r1, r0, r2
- subs r2, 0x2
- adds r5, r0, r2
- ldrh r0, [r1]
- ldrh r1, [r5]
- subs r0, r1
- adds r0, 0x1
- lsls r4, r0, 16
- asrs r0, r4, 16
- cmp r0, 0x7
- bgt _080F092A
- movs r0, 0xC
- movs r1, 0x1
- movs r2, 0x1F
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_080F092A:
- ldrh r0, [r5]
- lsrs r2, r4, 16
- movs r1, 0
- bl sub_80F0954
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F093C: .4byte gUnknown_083DFEC4
-_080F0940: .4byte 0x00008772
- thumb_func_end sub_80F0900
-
- thumb_func_start sub_80F0944
-sub_80F0944: @ 80F0944
- push {lr}
- bl sub_80F098C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F0944
-
- thumb_func_start sub_80F0954
-sub_80F0954: @ 80F0954
- push {r4,r5,lr}
- ldr r3, _080F097C @ =gUnknown_083DFEC4
- ldr r3, [r3]
- ldr r5, _080F0980 @ =0x0000877e
- adds r4, r3, r5
- movs r5, 0
- strh r0, [r4]
- ldr r4, _080F0984 @ =0x00008780
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, _080F0988 @ =0x00008784
- adds r0, r3, r1
- strh r2, [r0]
- adds r4, 0x6
- adds r3, r4
- strh r5, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F097C: .4byte gUnknown_083DFEC4
-_080F0980: .4byte 0x0000877e
-_080F0984: .4byte 0x00008780
-_080F0988: .4byte 0x00008784
- thumb_func_end sub_80F0954
-
- thumb_func_start sub_80F098C
-sub_80F098C: @ 80F098C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080F09A4 @ =gUnknown_083DFEC4
- ldr r6, [r0]
- ldr r0, _080F09A8 @ =0x00008784
- adds r7, r6, r0
- ldrh r0, [r7]
- cmp r0, 0
- bne _080F09AC
-_080F09A0:
- movs r0, 0
- b _080F0A02
- .align 2, 0
-_080F09A4: .4byte gUnknown_083DFEC4
-_080F09A8: .4byte 0x00008784
-_080F09AC:
- movs r1, 0
- mov r8, r1
- ldr r1, _080F0A0C @ =gUnknown_083E3270
- ldr r2, _080F0A10 @ =0x000087ca
- adds r0, r6, r2
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r1
- ldr r0, _080F0A14 @ =0x0000877e
- adds r4, r6, r0
- ldrh r0, [r4]
- ldr r1, _080F0A18 @ =0x00008780
- adds r5, r6, r1
- ldrh r1, [r5]
- ldr r2, [r2]
- bl _call_via_r2
- ldrh r0, [r7]
- subs r0, 0x1
- strh r0, [r7]
- ldr r2, _080F0A1C @ =0x0000ffff
- adds r1, r2, 0
- lsls r0, 16
- cmp r0, 0
- beq _080F09A0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ands r0, r1
- ldr r2, _080F0A20 @ =0x00008774
- adds r1, r6, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- ble _080F09F6
- mov r0, r8
- strh r0, [r4]
-_080F09F6:
- ldrh r0, [r5]
- adds r0, 0x2
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r5]
- movs r0, 0x1
-_080F0A02:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0A0C: .4byte gUnknown_083E3270
-_080F0A10: .4byte 0x000087ca
-_080F0A14: .4byte 0x0000877e
-_080F0A18: .4byte 0x00008780
-_080F0A1C: .4byte 0x0000ffff
-_080F0A20: .4byte 0x00008774
- thumb_func_end sub_80F098C
-
- thumb_func_start sub_80F0A24
-sub_80F0A24: @ 80F0A24
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _080F0A64 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F0A68 @ =0x000087c8
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r2, 0x1
- cmp r0, 0
- bne _080F0A40
- movs r2, 0x2
-_080F0A40:
- ldr r0, _080F0A6C @ =0x00008788
- adds r4, r0
- adds r0, r4, 0
- adds r1, r3, 0
- bl sub_80F4428
- ldr r0, _080F0A70 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r4, 0
- movs r1, 0xD
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0A64: .4byte gUnknown_083DFEC4
-_080F0A68: .4byte 0x000087c8
-_080F0A6C: .4byte 0x00008788
-_080F0A70: .4byte gWindowConfig_81E70D4
- thumb_func_end sub_80F0A24
-
- thumb_func_start sub_80F0A74
-sub_80F0A74: @ 80F0A74
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r7, r1, 16
- ldr r0, _080F0ADC @ =gUnknown_083DFEC4
- ldr r5, [r0]
- ldr r0, _080F0AE0 @ =0x00008788
- adds r4, r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80F700C
- movs r0, 0x1F
- ands r7, r0
- ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- lsls r2, r7, 3
- adds r0, r4, 0
- movs r1, 0x61
- movs r3, 0
- bl MenuPrint_PixelCoords
- ldr r1, _080F0AE8 @ =0x0000d158
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r6, r0
- bcs _080F0AF8
- lsls r0, r6, 3
- adds r0, r5, r0
- ldr r1, _080F0AEC @ =0x0000ceed
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F0AF8
- ldr r0, _080F0AF0 @ =0x0600f000
- ldr r3, _080F0AF4 @ =gUnknown_083E039C
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x1D
- adds r2, r7, 0
- bl sub_8095C8C
- b _080F0B14
- .align 2, 0
-_080F0ADC: .4byte gUnknown_083DFEC4
-_080F0AE0: .4byte 0x00008788
-_080F0AE4: .4byte gWindowConfig_81E70D4
-_080F0AE8: .4byte 0x0000d158
-_080F0AEC: .4byte 0x0000ceed
-_080F0AF0: .4byte 0x0600f000
-_080F0AF4: .4byte gUnknown_083E039C
-_080F0AF8:
- ldr r0, _080F0B1C @ =0x0600f000
- ldr r3, _080F0B20 @ =gUnknown_083E03A0
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0x1
- str r2, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0x1D
- adds r2, r7, 0
- bl sub_8095C8C
-_080F0B14:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0B1C: .4byte 0x0600f000
-_080F0B20: .4byte gUnknown_083E03A0
- thumb_func_end sub_80F0A74
-
- thumb_func_start sub_80F0B24
-sub_80F0B24: @ 80F0B24
- ldr r0, _080F0B38 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0B3C @ =0x0000d15c
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _080F0B40 @ =0x00000306
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080F0B38: .4byte gUnknown_083DFEC4
-_080F0B3C: .4byte 0x0000d15c
-_080F0B40: .4byte 0x00000306
- thumb_func_end sub_80F0B24
-
- thumb_func_start sub_80F0B44
-sub_80F0B44: @ 80F0B44
- push {r4-r6,lr}
- ldr r0, _080F0B58 @ =gUnknown_083DFEC4
- ldr r5, [r0]
- ldr r0, _080F0B5C @ =0x0000d15c
- adds r6, r5, r0
- ldrh r0, [r6]
- cmp r0, 0x8
- bls _080F0B60
- movs r0, 0
- b _080F0C22
- .align 2, 0
-_080F0B58: .4byte gUnknown_083DFEC4
-_080F0B5C: .4byte 0x0000d15c
-_080F0B60:
- ldr r0, _080F0BBC @ =0x00000306
- adds r1, r5, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0C20
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r6]
- cmp r0, 0x7
- bhi _080F0BCC
- ldr r0, _080F0BC0 @ =0x00008778
- adds r1, r5, r0
- ldrh r2, [r6]
- lsls r0, r2, 1
- ldrh r1, [r1]
- adds r4, r0, r1
- movs r0, 0x1F
- ands r4, r0
- ldr r1, _080F0BC4 @ =0x0000876c
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- beq _080F0BAA
- ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- adds r1, r4, 0
- adds r3, r1, 0x1
- movs r0, 0xC
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
-_080F0BAA:
- ldrh r0, [r6]
- cmp r0, 0
- bne _080F0BB4
- bl sub_80F08E4
-_080F0BB4:
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- b _080F0C20
- .align 2, 0
-_080F0BBC: .4byte 0x00000306
-_080F0BC0: .4byte 0x00008778
-_080F0BC4: .4byte 0x0000876c
-_080F0BC8: .4byte gWindowConfig_81E70D4
-_080F0BCC:
- ldr r0, _080F0C10 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- ldr r1, _080F0C14 @ =0x00008778
- adds r0, r5, r1
- ldrh r0, [r0]
- adds r4, r0, 0
- adds r4, 0x10
- movs r0, 0x1F
- ands r4, r0
- movs r5, 0
-_080F0BE2:
- adds r3, r4, 0x1
- movs r0, 0xC
- adds r1, r4, 0
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
- adds r4, 0x2
- movs r0, 0x1F
- ands r4, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _080F0BE2
- ldr r0, _080F0C18 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0C1C @ =0x0000d15c
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
- b _080F0C22
- .align 2, 0
-_080F0C10: .4byte gWindowConfig_81E70D4
-_080F0C14: .4byte 0x00008778
-_080F0C18: .4byte gUnknown_083DFEC4
-_080F0C1C: .4byte 0x0000d15c
-_080F0C20:
- movs r0, 0x1
-_080F0C22:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0B44
-
- thumb_func_start sub_80F0C28
-sub_80F0C28: @ 80F0C28
- ldr r0, _080F0C3C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0C40 @ =0x0000d15c
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _080F0C44 @ =0x00000306
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_080F0C3C: .4byte gUnknown_083DFEC4
-_080F0C40: .4byte 0x0000d15c
-_080F0C44: .4byte 0x00000306
- thumb_func_end sub_80F0C28
-
- thumb_func_start sub_80F0C48
-sub_80F0C48: @ 80F0C48
- push {r4-r6,lr}
- ldr r0, _080F0C5C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F0C60 @ =0x0000d15c
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0x7
- bls _080F0C64
- movs r0, 0
- b _080F0CD2
- .align 2, 0
-_080F0C5C: .4byte gUnknown_083DFEC4
-_080F0C60: .4byte 0x0000d15c
-_080F0C64:
- ldr r2, _080F0CBC @ =0x00000306
- adds r1, r4, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r2, _080F0CC0 @ =0x0000ffff
- adds r6, r2, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0CD0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- ldr r0, _080F0CC8 @ =0x00008770
- adds r1, r4, r0
- ldrh r0, [r5]
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080F0CCC @ =0x00008778
- adds r2, r4, r1
- ldrh r1, [r5]
- lsls r1, 1
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- bl sub_80F0A74
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- ands r0, r6
- cmp r0, 0x7
- bls _080F0CD0
- movs r0, 0
- bl sub_80F081C
- movs r0, 0
- b _080F0CD2
- .align 2, 0
-_080F0CBC: .4byte 0x00000306
-_080F0CC0: .4byte 0x0000ffff
-_080F0CC4: .4byte gWindowConfig_81E70D4
-_080F0CC8: .4byte 0x00008770
-_080F0CCC: .4byte 0x00008778
-_080F0CD0:
- movs r0, 0x1
-_080F0CD2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F0C48
-
- thumb_func_start sub_80F0CD8
-sub_80F0CD8: @ 80F0CD8
- push {r4,r5,lr}
- ldr r4, _080F0D40 @ =gUnknown_083DFEC4
- ldr r1, [r4]
- ldr r2, _080F0D44 @ =0x00000306
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- ldr r3, _080F0D48 @ =0x0000d15c
- adds r0, r1, r3
- strh r2, [r0]
- ldr r2, _080F0D4C @ =0x0000876e
- adds r0, r1, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 3
- adds r0, r1, r0
- ldr r2, _080F0D50 @ =0x0000ceec
- adds r0, r2
- ldrb r0, [r0]
- ldr r3, _080F0D54 @ =0x0000d110
- adds r1, r3
- ldr r2, _080F0D58 @ =gTrainerEyeDescriptions
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r1]
- adds r2, r0, 0
- movs r1, 0
- adds r5, r4, 0
- adds r4, r3, 0
-_080F0D14:
- ldrb r0, [r2]
- adds r3, r1, 0x1
- cmp r0, 0xFF
- beq _080F0D24
-_080F0D1C:
- adds r2, 0x1
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _080F0D1C
-_080F0D24:
- ldr r0, [r5]
- lsls r1, r3, 2
- adds r0, r4
- adds r0, r1
- adds r2, 0x1
- str r2, [r0]
- lsls r0, r3, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bls _080F0D14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0D40: .4byte gUnknown_083DFEC4
-_080F0D44: .4byte 0x00000306
-_080F0D48: .4byte 0x0000d15c
-_080F0D4C: .4byte 0x0000876e
-_080F0D50: .4byte 0x0000ceec
-_080F0D54: .4byte 0x0000d110
-_080F0D58: .4byte gTrainerEyeDescriptions
- thumb_func_end sub_80F0CD8
-
- thumb_func_start sub_80F0D5C
-sub_80F0D5C: @ 80F0D5C
- push {r4,r5,lr}
- ldr r0, _080F0D70 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F0D74 @ =0x0000d15c
- adds r5, r4, r0
- ldrh r0, [r5]
- cmp r0, 0x7
- bne _080F0D78
-_080F0D6C:
- movs r0, 0
- b _080F0EB0
- .align 2, 0
-_080F0D70: .4byte gUnknown_083DFEC4
-_080F0D74: .4byte 0x0000d15c
-_080F0D78:
- ldr r0, _080F0DB8 @ =0x00000306
- adds r1, r4, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080F0D8C
- b _080F0EAE
-_080F0D8C:
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080F0DBC @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- ldr r0, _080F0DC0 @ =0x00008778
- adds r1, r4, r0
- ldrh r3, [r5]
- lsls r0, r3, 1
- adds r0, 0x2
- ldrh r1, [r1]
- adds r5, r0, r1
- movs r0, 0x1F
- ands r5, r0
- cmp r3, 0x6
- bhi _080F0D6C
- lsls r0, r3, 2
- ldr r1, _080F0DC4 @ =_080F0DC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F0DB8: .4byte 0x00000306
-_080F0DBC: .4byte gWindowConfig_81E70D4
-_080F0DC0: .4byte 0x00008778
-_080F0DC4: .4byte _080F0DC8
- .align 2, 0
-_080F0DC8:
- .4byte _080F0DE4
- .4byte _080F0DF0
- .4byte _080F0E08
- .4byte _080F0E14
- .4byte _080F0E2C
- .4byte _080F0E38
- .4byte _080F0E6C
-_080F0DE4:
- ldr r0, _080F0DEC @ =gOtherText_Strategy
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0DEC: .4byte gOtherText_Strategy
-_080F0DF0:
- ldr r0, _080F0DFC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0E00 @ =0x00008788
- adds r4, r0, r1
- ldr r1, _080F0E04 @ =0x0000d110
- b _080F0E42
- .align 2, 0
-_080F0DFC: .4byte gUnknown_083DFEC4
-_080F0E00: .4byte 0x00008788
-_080F0E04: .4byte 0x0000d110
-_080F0E08:
- ldr r0, _080F0E10 @ =gOtherText_TrainersPokemon
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0E10: .4byte gOtherText_TrainersPokemon
-_080F0E14:
- ldr r0, _080F0E20 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0E24 @ =0x00008788
- adds r4, r0, r1
- ldr r1, _080F0E28 @ =0x0000d114
- b _080F0E42
- .align 2, 0
-_080F0E20: .4byte gUnknown_083DFEC4
-_080F0E24: .4byte 0x00008788
-_080F0E28: .4byte 0x0000d114
-_080F0E2C:
- ldr r0, _080F0E34 @ =gOtherText_SelfIntroduction
- lsls r2, r5, 3
- b _080F0E54
- .align 2, 0
-_080F0E34: .4byte gOtherText_SelfIntroduction
-_080F0E38:
- ldr r0, _080F0E60 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0E64 @ =0x00008788
- adds r4, r0, r1
- ldr r1, _080F0E68 @ =0x0000d118
-_080F0E42:
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- movs r2, 0x88
- movs r3, 0
- bl sub_8072C74
- lsls r2, r5, 3
- adds r0, r4, 0
-_080F0E54:
- movs r1, 0x61
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _080F0EA0
- .align 2, 0
-_080F0E60: .4byte gUnknown_083DFEC4
-_080F0E64: .4byte 0x00008788
-_080F0E68: .4byte 0x0000d118
-_080F0E6C:
- ldr r0, _080F0E94 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F0E98 @ =0x00008788
- adds r4, r0, r1
- ldr r1, _080F0E9C @ =0x0000d11c
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- movs r2, 0x88
- movs r3, 0
- bl sub_8072C74
- lsls r2, r5, 3
- adds r0, r4, 0
- movs r1, 0x61
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _080F0D6C
- .align 2, 0
-_080F0E94: .4byte gUnknown_083DFEC4
-_080F0E98: .4byte 0x00008788
-_080F0E9C: .4byte 0x0000d11c
-_080F0EA0:
- ldr r0, _080F0EB8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F0EBC @ =0x0000d15c
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F0EAE:
- movs r0, 0x1
-_080F0EB0:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0EB8: .4byte gUnknown_083DFEC4
-_080F0EBC: .4byte 0x0000d15c
- thumb_func_end sub_80F0D5C
-
- thumb_func_start sub_80F0EC0
-sub_80F0EC0: @ 80F0EC0
- push {lr}
- ldr r0, _080F0EE4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F0EE8 @ =0x00000306
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r3, _080F0EEC @ =0x0000d15c
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _080F0EF0 @ =0x00008788
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- pop {r0}
- bx r0
- .align 2, 0
-_080F0EE4: .4byte gUnknown_083DFEC4
-_080F0EE8: .4byte 0x00000306
-_080F0EEC: .4byte 0x0000d15c
-_080F0EF0: .4byte 0x00008788
- thumb_func_end sub_80F0EC0
-
- thumb_func_start sub_80F0EF4
-sub_80F0EF4: @ 80F0EF4
- push {r4,r5,lr}
- ldr r0, _080F0F08 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080F0F0C @ =0x0000d15c
- adds r5, r2, r0
- ldrh r0, [r5]
- cmp r0, 0x6
- bls _080F0F10
- movs r0, 0
- b _080F0F52
- .align 2, 0
-_080F0F08: .4byte gUnknown_083DFEC4
-_080F0F0C: .4byte 0x0000d15c
-_080F0F10:
- ldr r0, _080F0F58 @ =0x00000306
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080F0F50
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080F0F5C @ =0x00008778
- adds r0, r2, r1
- ldrh r4, [r5]
- lsls r4, 1
- adds r4, 0x2
- ldrh r0, [r0]
- adds r4, r0
- movs r0, 0x1F
- ands r4, r0
- ldr r0, _080F0F60 @ =gWindowConfig_81E70D4
- bl BasicInitMenuWindow
- adds r3, r4, 0x1
- movs r0, 0xC
- adds r1, r4, 0
- movs r2, 0x1F
- bl MenuZeroFillWindowRect
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F0F50:
- movs r0, 0x1
-_080F0F52:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F0F58: .4byte 0x00000306
-_080F0F5C: .4byte 0x00008778
-_080F0F60: .4byte gWindowConfig_81E70D4
- thumb_func_end sub_80F0EF4
-
- thumb_func_start sub_80F0F64
-sub_80F0F64: @ 80F0F64
- push {r4,lr}
- ldr r0, _080F0F90 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r1, _080F0F94 @ =0x0000876c
- adds r0, r3, r1
- movs r4, 0
- ldrsh r2, [r0, r4]
- lsls r1, r2, 4
- ldr r4, _080F0F98 @ =0x0000877c
- adds r0, r3, r4
- strh r1, [r0]
- movs r1, 0x8
- cmp r2, 0x1
- bne _080F0F82
- movs r1, 0x4
-_080F0F82:
- ldr r2, _080F0F9C @ =0x0000877a
- adds r0, r3, r2
- strh r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0F90: .4byte gUnknown_083DFEC4
-_080F0F94: .4byte 0x0000876c
-_080F0F98: .4byte 0x0000877c
-_080F0F9C: .4byte 0x0000877a
- thumb_func_end sub_80F0F64
-
- thumb_func_start sub_80F0FA0
-sub_80F0FA0: @ 80F0FA0
- push {r4,lr}
- ldr r0, _080F0FDC @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r1, _080F0FE0 @ =0x0000876c
- adds r0, r3, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- negs r0, r0
- lsls r0, 16
- asrs r0, 16
- lsls r2, r0, 4
- ldr r4, _080F0FE4 @ =0x0000877c
- adds r1, r3, r4
- strh r2, [r1]
- movs r1, 0x1
- negs r1, r1
- movs r4, 0x8
- negs r4, r4
- adds r2, r4, 0
- cmp r0, r1
- bne _080F0FD0
- movs r0, 0x4
- negs r0, r0
- adds r2, r0, 0
-_080F0FD0:
- ldr r1, _080F0FE8 @ =0x0000877a
- adds r0, r3, r1
- strh r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F0FDC: .4byte gUnknown_083DFEC4
-_080F0FE0: .4byte 0x0000876c
-_080F0FE4: .4byte 0x0000877c
-_080F0FE8: .4byte 0x0000877a
- thumb_func_end sub_80F0FA0
-
- thumb_func_start sub_80F0FEC
-sub_80F0FEC: @ 80F0FEC
- push {lr}
- bl sub_80F0718
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F0FEC
-
- thumb_func_start sub_80F0FFC
-sub_80F0FFC: @ 80F0FFC
- push {r4,r5,lr}
- lsls r0, 24
- ldr r1, _080F1048 @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r1, _080F104C @ =0x00008788
- adds r5, r4, r1
- lsrs r0, 21
- adds r0, r4, r0
- ldr r1, _080F1050 @ =0x0000ceea
- adds r0, r1
- ldrh r1, [r0]
- adds r0, r5, 0
- movs r2, 0
- bl sub_80FBFB4
- ldr r0, _080F1054 @ =gWindowConfig_81E710C
- bl BasicInitMenuWindow
- adds r0, r5, 0
- bl sub_80F19DC
- ldr r0, _080F1058 @ =0x0000d138
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x58
- movs r3, 0x2
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x5
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1048: .4byte gUnknown_083DFEC4
-_080F104C: .4byte 0x00008788
-_080F1050: .4byte 0x0000ceea
-_080F1054: .4byte gWindowConfig_81E710C
-_080F1058: .4byte 0x0000d138
- thumb_func_end sub_80F0FFC
-
- thumb_func_start sub_80F105C
-sub_80F105C: @ 80F105C
- push {lr}
- ldr r0, _080F1078 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F107C @ =0x0000876e
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, 0xA
- adds r1, r2
- ldrh r1, [r1]
- bl sub_80F0A74
- pop {r0}
- bx r0
- .align 2, 0
-_080F1078: .4byte gUnknown_083DFEC4
-_080F107C: .4byte 0x0000876e
- thumb_func_end sub_80F105C
-
- thumb_func_start sub_80F1080
-sub_80F1080: @ 80F1080
- push {r4,lr}
- ldr r1, _080F10A0 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F10A4 @ =0x0000d160
- adds r0, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xE
- bls _080F1094
- b _080F1204
-_080F1094:
- lsls r0, 2
- ldr r1, _080F10A8 @ =_080F10AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F10A0: .4byte gUnknown_083DFEC4
-_080F10A4: .4byte 0x0000d160
-_080F10A8: .4byte _080F10AC
- .align 2, 0
-_080F10AC:
- .4byte _080F10E8
- .4byte _080F1104
- .4byte _080F1110
- .4byte _080F111C
- .4byte _080F1128
- .4byte _080F112E
- .4byte _080F1134
- .4byte _080F1142
- .4byte _080F1160
- .4byte _080F1166
- .4byte _080F116C
- .4byte _080F1180
- .4byte _080F1194
- .4byte _080F11DC
- .4byte _080F11E2
-_080F10E8:
- bl sub_80EEDE8
- ldr r0, _080F10FC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080F1100 @ =0x0000d162
- adds r0, r3
- movs r1, 0xB
- strb r1, [r0]
- b _080F1218
- .align 2, 0
-_080F10FC: .4byte gUnknown_083DFEC4
-_080F1100: .4byte 0x0000d162
-_080F1104:
- ldr r0, _080F110C @ =gWindowConfig_81E70B8
- bl SetUpWindowConfig
- b _080F1218
- .align 2, 0
-_080F110C: .4byte gWindowConfig_81E70B8
-_080F1110:
- ldr r0, _080F1118 @ =gWindowConfig_81E70B8
- bl MultistepInitMenuWindowBegin
- b _080F1218
- .align 2, 0
-_080F1118: .4byte gWindowConfig_81E70B8
-_080F111C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F1126
- b _080F1218
-_080F1126:
- b _080F1226
-_080F1128:
- bl MenuZeroFillScreen
- b _080F1218
-_080F112E:
- bl sub_80F1614
- b _080F1218
-_080F1134:
- movs r0, 0x1
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- beq _080F1218
- b _080F1226
-_080F1142:
- ldr r0, _080F1154 @ =gUnknown_08E9FBA0
- ldr r1, _080F1158 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F115C @ =0x0000934c
- adds r1, r2
- bl LZ77UnCompWram
- b _080F1218
- .align 2, 0
-_080F1154: .4byte gUnknown_08E9FBA0
-_080F1158: .4byte gUnknown_083DFEC4
-_080F115C: .4byte 0x0000934c
-_080F1160:
- bl sub_80F1238
- b _080F1218
-_080F1166:
- bl sub_80F13FC
- b _080F1218
-_080F116C:
- ldr r0, _080F1178 @ =gPokenavRibbonView_Gfx
- ldr r1, _080F117C @ =0x06008000
- bl LZ77UnCompVram
- b _080F1218
- .align 2, 0
-_080F1178: .4byte gPokenavRibbonView_Gfx
-_080F117C: .4byte 0x06008000
-_080F1180:
- ldr r0, _080F118C @ =gUnknown_083E040C
- ldr r1, _080F1190 @ =0x06008200
- bl LZ77UnCompVram
- b _080F1218
- .align 2, 0
-_080F118C: .4byte gUnknown_083E040C
-_080F1190: .4byte 0x06008200
-_080F1194:
- ldr r0, _080F11CC @ =gPokenavRibbonView_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F11D0 @ =gUnknown_083E03A8
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F11D4 @ =gUnknown_083E3C60
- movs r1, 0x30
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _080F11D8 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- adds r4, 0x1E
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- b _080F1218
- .align 2, 0
-_080F11CC: .4byte gPokenavRibbonView_Pal
-_080F11D0: .4byte gUnknown_083E03A8
-_080F11D4: .4byte gUnknown_083E3C60
-_080F11D8: .4byte gUnknownPalette_81E6692
-_080F11DC:
- bl sub_80F1438
- b _080F1218
-_080F11E2:
- ldr r1, _080F1208 @ =REG_BG2CNT
- ldr r3, _080F120C @ =0x00001e02
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _080F1210 @ =0x0000170b
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x42
- movs r0, 0
- strh r0, [r1]
- ldr r1, [r2]
- ldr r0, _080F1214 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1204:
- movs r0, 0
- b _080F1228
- .align 2, 0
-_080F1208: .4byte REG_BG2CNT
-_080F120C: .4byte 0x00001e02
-_080F1210: .4byte 0x0000170b
-_080F1214: .4byte 0x0000d160
-_080F1218:
- ldr r0, _080F1230 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F1234 @ =0x0000d160
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1226:
- movs r0, 0x1
-_080F1228:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1230: .4byte gUnknown_083DFEC4
-_080F1234: .4byte 0x0000d160
- thumb_func_end sub_80F1080
-
- thumb_func_start sub_80F1238
-sub_80F1238: @ 80F1238
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r6, 0x8B
- ldr r0, _080F1318 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F131C @ =0x0000bc8e
- adds r0, r2, r1
- ldr r3, _080F1320 @ =0x0000bc8f
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r7, 0
- mov r5, sp
- adds r4, r2, 0
-_080F1264:
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- strh r0, [r5]
- lsls r1, r7, 5
- adds r1, r6, r1
- lsls r1, 1
- ldr r2, _080F1324 @ =0x0000934c
- adds r1, r2
- adds r1, r4, r1
- mov r0, sp
- ldr r2, _080F1328 @ =0x01000012
- bl CpuSet
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x7
- bls _080F1264
- ldr r3, [sp, 0x4]
- lsls r0, r3, 16
- movs r7, 0
- mov r9, r0
- cmp r0, 0
- beq _080F1342
- ldr r0, _080F1318 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- mov r8, r0
- ldr r1, _080F132C @ =gUnknown_083E4698
- mov r10, r1
- ldr r5, _080F1324 @ =0x0000934c
- add r5, r8
-_080F12A4:
- ldr r0, _080F1330 @ =0x0000bc4c
- add r0, r8
- adds r0, r7
- ldrb r1, [r0]
- lsls r1, 2
- mov r0, r10
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r2, [r0]
- adds r2, 0x3
- lsls r2, 24
- add r1, r10
- ldrh r0, [r1]
- lsls r0, 25
- movs r3, 0x80
- lsls r3, 21
- adds r0, r3
- lsrs r4, r0, 24
- lsls r1, r6, 1
- adds r1, r5, r1
- lsrs r2, 12
- adds r0, r2, 0
- orrs r0, r4
- strh r0, [r1]
- adds r1, r6, 0x1
- lsls r1, 1
- adds r1, r5, r1
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- adds r3, r2, 0
- orrs r3, r0
- adds r0, r3, 0
- orrs r0, r4
- strh r0, [r1]
- adds r0, r6, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r5, r0
- adds r1, r4, 0x1
- orrs r2, r1
- strh r2, [r0]
- adds r0, r6, 0
- adds r0, 0x21
- lsls r0, 1
- adds r0, r5, r0
- orrs r3, r1
- strh r3, [r0]
- adds r4, r7, 0x1
- adds r0, r4, 0
- movs r1, 0x9
- bl __modsi3
- cmp r0, 0
- bne _080F1334
- adds r0, r6, 0
- adds r0, 0x30
- b _080F1336
- .align 2, 0
-_080F1318: .4byte gUnknown_083DFEC4
-_080F131C: .4byte 0x0000bc8e
-_080F1320: .4byte 0x0000bc8f
-_080F1324: .4byte 0x0000934c
-_080F1328: .4byte 0x01000012
-_080F132C: .4byte gUnknown_083E4698
-_080F1330: .4byte 0x0000bc4c
-_080F1334:
- adds r0, r6, 0x2
-_080F1336:
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r4, 16
- lsrs r7, r0, 16
- cmp r0, r9
- bcc _080F12A4
-_080F1342:
- ldr r6, _080F13E8 @ =0x0000014b
- movs r7, 0
- ldr r1, _080F13EC @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F13F0 @ =0x0000bc8f
- adds r1, r0, r2
- ldrb r3, [r1]
- cmp r7, r3
- bcs _080F13D8
- subs r2, 0x43
- adds r2, r0
- mov r10, r2
- ldr r3, _080F13F4 @ =gUnknown_083E4698
- mov r8, r3
- ldr r2, _080F13F8 @ =0x0000934c
- adds r5, r0, r2
- mov r9, r1
-_080F1364:
- ldr r3, [sp, 0x4]
- adds r0, r3, r7
- add r0, r10
- ldrb r1, [r0]
- lsls r1, 2
- mov r0, r8
- adds r0, 0x2
- adds r0, r1, r0
- ldrb r2, [r0]
- adds r2, 0x3
- lsls r2, 24
- add r1, r8
- ldrh r0, [r1]
- lsls r0, 25
- movs r1, 0x80
- lsls r1, 21
- adds r0, r1
- lsrs r4, r0, 24
- lsls r1, r6, 1
- adds r1, r5, r1
- lsrs r2, 12
- adds r0, r2, 0
- orrs r0, r4
- strh r0, [r1]
- adds r1, r6, 0x1
- lsls r1, 1
- adds r1, r5, r1
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3, 0
- adds r3, r2, 0
- orrs r3, r0
- adds r0, r3, 0
- orrs r0, r4
- strh r0, [r1]
- adds r0, r6, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r5, r0
- adds r1, r4, 0x1
- orrs r2, r1
- strh r2, [r0]
- adds r0, r6, 0
- adds r0, 0x21
- lsls r0, 1
- adds r0, r5, r0
- orrs r3, r1
- strh r3, [r0]
- adds r0, r6, 0x2
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r9
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080F1364
-_080F13D8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F13E8: .4byte 0x0000014b
-_080F13EC: .4byte gUnknown_083DFEC4
-_080F13F0: .4byte 0x0000bc8f
-_080F13F4: .4byte gUnknown_083E4698
-_080F13F8: .4byte 0x0000934c
- thumb_func_end sub_80F1238
-
- thumb_func_start sub_80F13FC
-sub_80F13FC: @ 80F13FC
- ldr r0, _080F141C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F1420 @ =0x0000934c
- adds r0, r1
- ldr r2, _080F1424 @ =0x0600b800
- ldr r1, _080F1428 @ =0x040000d4
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080F142C @ =0x84000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _080F1430 @ =gPlttBufferUnfaded
- ldr r0, _080F1434 @ =gPokenavRibbonView_Pal + 0x1C
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080F141C: .4byte gUnknown_083DFEC4
-_080F1420: .4byte 0x0000934c
-_080F1424: .4byte 0x0600b800
-_080F1428: .4byte 0x040000d4
-_080F142C: .4byte 0x84000140
-_080F1430: .4byte gPlttBufferUnfaded
-_080F1434: .4byte gPokenavRibbonView_Pal + 0x1C
- thumb_func_end sub_80F13FC
-
- thumb_func_start sub_80F1438
-sub_80F1438: @ 80F1438
- push {r4,r5,lr}
- ldr r0, _080F1470 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F1474 @ =0x00008829
- adds r0, r4, r1
- movs r1, 0xD
- movs r2, 0x1
- bl MenuPrint
- ldr r0, _080F1478 @ =0x00008788
- adds r5, r4, r0
- ldr r1, _080F147C @ =0x0000876e
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80F445C
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1470: .4byte gUnknown_083DFEC4
-_080F1474: .4byte 0x00008829
-_080F1478: .4byte 0x00008788
-_080F147C: .4byte 0x0000876e
- thumb_func_end sub_80F1438
-
- thumb_func_start sub_80F1480
-sub_80F1480: @ 80F1480
- push {lr}
- movs r0, 0xC
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80F1480
-
- thumb_func_start sub_80F1494
-sub_80F1494: @ 80F1494
- push {r4-r7,lr}
- ldr r0, _080F14D4 @ =gUnknown_083DFEC8
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 4
- adds r6, r0, r1
- ldr r2, _080F14D8 @ =0x00000a98
- adds r7, r0, r2
- ldr r0, _080F14DC @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r4, _080F14E0 @ =0x0000bc91
- adds r1, r3, r4
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _080F14F0
- ldr r5, _080F14E4 @ =gUnknown_020388B4
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r4, 0x1
- adds r2, r3, r4
- adds r0, r1
- ldrb r2, [r2]
- adds r0, r2
- strh r0, [r5]
- ldr r1, _080F14E8 @ =0x0000bc4c
- adds r0, r3, r1
- ldrh r2, [r5]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r4, _080F14EC @ =gRibbonDescriptions
- b _080F152E
- .align 2, 0
-_080F14D4: .4byte gUnknown_083DFEC8
-_080F14D8: .4byte 0x00000a98
-_080F14DC: .4byte gUnknown_083DFEC4
-_080F14E0: .4byte 0x0000bc91
-_080F14E4: .4byte gUnknown_020388B4
-_080F14E8: .4byte 0x0000bc4c
-_080F14EC: .4byte gRibbonDescriptions
-_080F14F0:
- ldr r5, _080F1558 @ =gUnknown_020388B4
- ldr r4, _080F155C @ =0x0000bc8e
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r2, _080F1560 @ =0x0000bc8f
- adds r1, r3, r2
- ldrb r1, [r1]
- subs r0, r1
- strh r0, [r5]
- ldrh r1, [r5]
- adds r4, 0x2
- adds r0, r3, r4
- ldrb r0, [r0]
- adds r1, r0
- subs r2, 0x43
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r0, _080F1564 @ =gSaveBlock1
- ldrh r1, [r5]
- adds r0, r1
- ldr r4, _080F1568 @ =0x000030f7
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r5]
- cmp r0, 0
- beq _080F1570
- subs r0, 0x1
- strh r0, [r5]
- ldr r4, _080F156C @ =gGiftRibbonDescriptions
-_080F152E:
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- ldrh r0, [r5]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r7, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- b _080F158A
- .align 2, 0
-_080F1558: .4byte gUnknown_020388B4
-_080F155C: .4byte 0x0000bc8e
-_080F1560: .4byte 0x0000bc8f
-_080F1564: .4byte gSaveBlock1
-_080F1568: .4byte 0x000030f7
-_080F156C: .4byte gGiftRibbonDescriptions
-_080F1570:
- ldr r4, _080F15A4 @ =gEmptyString_81E72B0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x80
- movs r3, 0
- bl sub_8072C74
-_080F158A:
- adds r0, r6, 0
- movs r1, 0xC
- movs r2, 0xD
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0xF
- bl MenuPrint
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F15A4: .4byte gEmptyString_81E72B0
- thumb_func_end sub_80F1494
-
- thumb_func_start sub_80F15A8
-sub_80F15A8: @ 80F15A8
- push {r4,r5,lr}
- movs r0, 0xC
- movs r1, 0xD
- movs r2, 0x1B
- movs r3, 0x10
- bl MenuZeroFillWindowRect
- ldr r0, _080F1600 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F1604 @ =0x00008788
- adds r5, r4, r0
- ldr r1, _080F1608 @ =gOtherText_Ribbons
- adds r0, r5, 0
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
- ldr r1, _080F160C @ =0x000087dc
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 2
- adds r4, r0
- ldr r0, _080F1610 @ =0x0000893c
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r5, 0
- movs r1, 0xC
- movs r2, 0xD
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1600: .4byte gUnknown_083DFEC4
-_080F1604: .4byte 0x00008788
-_080F1608: .4byte gOtherText_Ribbons
-_080F160C: .4byte 0x000087dc
-_080F1610: .4byte 0x0000893c
- thumb_func_end sub_80F15A8
-
- thumb_func_start sub_80F1614
-sub_80F1614: @ 80F1614
- ldr r0, _080F1624 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F1628 @ =0x00008764
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F1624: .4byte gUnknown_083DFEC4
-_080F1628: .4byte 0x00008764
- thumb_func_end sub_80F1614
-
- thumb_func_start sub_80F162C
-sub_80F162C: @ 80F162C
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F164C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F1650 @ =0x00008764
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F165E
- cmp r0, 0x1
- bgt _080F1654
- cmp r0, 0
- beq _080F16F0
- b _080F16D0
- .align 2, 0
-_080F164C: .4byte gUnknown_083DFEC4
-_080F1650: .4byte 0x00008764
-_080F1654:
- cmp r0, 0x2
- beq _080F1670
- cmp r0, 0x3
- beq _080F1694
- b _080F16D0
-_080F165E:
- ldr r0, _080F1668 @ =gUnknown_08E9FF58
- ldr r1, _080F166C @ =0x0600e800
- bl LZ77UnCompVram
- b _080F16F0
- .align 2, 0
-_080F1668: .4byte gUnknown_08E9FF58
-_080F166C: .4byte 0x0600e800
-_080F1670:
- ldr r1, _080F1684 @ =gPokenavRibbonPokeView_Gfx
- ldr r2, _080F1688 @ =0x0600e000
- ldr r0, _080F168C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _080F1690 @ =0x80000070
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _080F16F0
- .align 2, 0
-_080F1684: .4byte gPokenavRibbonPokeView_Gfx
-_080F1688: .4byte 0x0600e000
-_080F168C: .4byte 0x040000d4
-_080F1690: .4byte 0x80000070
-_080F1694:
- cmp r1, 0
- bne _080F16A8
- ldr r0, _080F16A4 @ =gUnknown_083E0124
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- b _080F16B2
- .align 2, 0
-_080F16A4: .4byte gUnknown_083E0124
-_080F16A8:
- ldr r0, _080F16D4 @ =gUnknown_083E0144
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
-_080F16B2:
- ldr r0, _080F16D8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r3, _080F16DC @ =0x00008766
- adds r2, r1, r3
- ldr r0, _080F16E0 @ =0x0000ffb0
- strh r0, [r2]
- ldr r2, _080F16E4 @ =REG_BG0CNT
- ldr r3, _080F16E8 @ =0x00001d0d
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _080F16EC @ =0x00008764
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F16D0:
- movs r0, 0
- b _080F1700
- .align 2, 0
-_080F16D4: .4byte gUnknown_083E0144
-_080F16D8: .4byte gUnknown_083DFEC4
-_080F16DC: .4byte 0x00008766
-_080F16E0: .4byte 0x0000ffb0
-_080F16E4: .4byte REG_BG0CNT
-_080F16E8: .4byte 0x00001d0d
-_080F16EC: .4byte 0x00008764
-_080F16F0:
- ldr r0, _080F1704 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F1708 @ =0x00008764
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1700:
- pop {r1}
- bx r1
- .align 2, 0
-_080F1704: .4byte gUnknown_083DFEC4
-_080F1708: .4byte 0x00008764
- thumb_func_end sub_80F162C
-
- thumb_func_start sub_80F170C
-sub_80F170C: @ 80F170C
- push {lr}
- ldr r0, _080F1734 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F1738 @ =0x00008766
- adds r1, r0, r2
- ldrh r0, [r1]
- adds r0, 0x10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- ble _080F1726
- movs r0, 0
- strh r0, [r1]
-_080F1726:
- movs r0, 0
- ldrsh r1, [r1, r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r1}
- bx r1
- .align 2, 0
-_080F1734: .4byte gUnknown_083DFEC4
-_080F1738: .4byte 0x00008766
- thumb_func_end sub_80F170C
-
- thumb_func_start sub_80F173C
-sub_80F173C: @ 80F173C
- push {lr}
- ldr r0, _080F176C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F1770 @ =0x00008766
- adds r1, r0, r2
- ldrh r0, [r1]
- subs r0, 0x10
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x50
- negs r2, r2
- cmp r0, r2
- bge _080F175C
- ldr r0, _080F1774 @ =0x0000ffb0
- strh r0, [r1]
-_080F175C:
- movs r0, 0
- ldrsh r1, [r1, r0]
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r1}
- bx r1
- .align 2, 0
-_080F176C: .4byte gUnknown_083DFEC4
-_080F1770: .4byte 0x00008766
-_080F1774: .4byte 0x0000ffb0
- thumb_func_end sub_80F173C
-
- thumb_func_start sub_80F1778
-sub_80F1778: @ 80F1778
- push {r4,lr}
- sub sp, 0x14
- ldr r0, _080F1798 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F179C @ =0x0000d160
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _080F178C
- b _080F1910
-_080F178C:
- lsls r0, 2
- ldr r1, _080F17A0 @ =_080F17A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F1798: .4byte gUnknown_083DFEC4
-_080F179C: .4byte 0x0000d160
-_080F17A0: .4byte _080F17A4
- .align 2, 0
-_080F17A4:
- .4byte _080F17CC
- .4byte _080F17E8
- .4byte _080F17EE
- .4byte _080F17FE
- .4byte _080F1810
- .4byte _080F1830
- .4byte _080F1858
- .4byte _080F186C
- .4byte _080F18B8
- .4byte _080F18D8
-_080F17CC:
- bl sub_80EEDE8
- ldr r0, _080F17E0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F17E4 @ =0x0000d162
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- b _080F1914
- .align 2, 0
-_080F17E0: .4byte gUnknown_083DFEC4
-_080F17E4: .4byte 0x0000d162
-_080F17E8:
- bl sub_80F1614
- b _080F1914
-_080F17EE:
- movs r0, 0
- bl sub_80F162C
- lsls r0, 24
- cmp r0, 0
- bne _080F17FC
- b _080F1914
-_080F17FC:
- b _080F1922
-_080F17FE:
- ldr r0, _080F1808 @ =gPokenavConditionView_Gfx
- ldr r1, _080F180C @ =0x06005000
- bl LZ77UnCompVram
- b _080F1914
- .align 2, 0
-_080F1808: .4byte gPokenavConditionView_Gfx
-_080F180C: .4byte 0x06005000
-_080F1810:
- ldr r0, _080F1824 @ =gUnknown_08E9AC4C
- ldr r1, _080F1828 @ =0x0600f000
- bl LZ77UnCompVram
- ldr r0, _080F182C @ =gPokenavConditionMenu2_Pal
- movs r1, 0x20
- movs r2, 0x20
- bl LoadPalette
- b _080F1914
- .align 2, 0
-_080F1824: .4byte gUnknown_08E9AC4C
-_080F1828: .4byte 0x0600f000
-_080F182C: .4byte gPokenavConditionMenu2_Pal
-_080F1830:
- ldr r0, _080F1850 @ =0x0600f000
- ldr r3, _080F1854 @ =gUnknown_083E01F4
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r2, 0xC
- str r2, [sp, 0x8]
- movs r1, 0x4
- str r1, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0xD
- bl sub_8095C8C
- b _080F1914
- .align 2, 0
-_080F1850: .4byte 0x0600f000
-_080F1854: .4byte gUnknown_083E01F4
-_080F1858:
- ldr r0, _080F1864 @ =gUnknown_08E9FEB4
- ldr r1, _080F1868 @ =0x0600b800
- bl LZ77UnCompVram
- b _080F1914
- .align 2, 0
-_080F1864: .4byte gUnknown_08E9FEB4
-_080F1868: .4byte 0x0600b800
-_080F186C:
- ldr r0, _080F18AC @ =gUnknown_083E0254
- movs r1, 0x30
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080F18B0 @ =gUnknownPalette_81E6692
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadPalette
- ldr r4, _080F18B4 @ =gPokenavConditionMenu2_Pal + 0x2
- adds r0, r4, 0
- movs r1, 0xB1
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0xE
- movs r1, 0xB5
- movs r2, 0x2
- bl LoadPalette
- adds r4, 0x1C
- adds r0, r4, 0
- movs r1, 0xBF
- movs r2, 0x2
- bl LoadPalette
- bl sub_80F01A4
- b _080F1914
- .align 2, 0
-_080F18AC: .4byte gUnknown_083E0254
-_080F18B0: .4byte gUnknownPalette_81E6692
-_080F18B4: .4byte gPokenavConditionMenu2_Pal + 0x2
-_080F18B8:
- ldr r0, _080F18D0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F18D4 @ =0x00008fe9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F1914
- .align 2, 0
-_080F18D0: .4byte gUnknown_083DFEC4
-_080F18D4: .4byte 0x00008fe9
-_080F18D8:
- ldr r1, _080F18FC @ =REG_BG3CNT
- ldr r2, _080F1900 @ =0x00001e03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080F1904 @ =0x00001702
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- ldr r2, _080F1908 @ =0x00000844
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F190C @ =0x0000040b
- adds r0, r2, 0
- strh r0, [r1]
- b _080F1914
- .align 2, 0
-_080F18FC: .4byte REG_BG3CNT
-_080F1900: .4byte 0x00001e03
-_080F1904: .4byte 0x00001702
-_080F1908: .4byte 0x00000844
-_080F190C: .4byte 0x0000040b
-_080F1910:
- movs r0, 0
- b _080F1924
-_080F1914:
- ldr r0, _080F192C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F1930 @ =0x0000d160
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F1922:
- movs r0, 0x1
-_080F1924:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F192C: .4byte gUnknown_083DFEC4
-_080F1930: .4byte 0x0000d160
- thumb_func_end sub_80F1778
-
- thumb_func_start sub_80F1934
-sub_80F1934: @ 80F1934
- push {r4,r5,lr}
- ldr r0, _080F1990 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F1994 @ =0x00008788
- adds r5, r1, r0
- ldr r3, _080F1998 @ =0x000087dc
- adds r2, r1, r3
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r1, r0
- ldr r0, _080F199C @ =0x0000893f
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- bge _080F19AC
- ldrb r0, [r2]
- bl sub_8137124
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080F19A0 @ =gPlayerParty
- adds r0, r1
- bl GetNature
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F19A4 @ =gOtherText_Nature2
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- ldr r0, _080F19A8 @ =gNatureNames
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x57
- movs r3, 0
- bl sub_8072C74
- b _080F19B8
- .align 2, 0
-_080F1990: .4byte gUnknown_083DFEC4
-_080F1994: .4byte 0x00008788
-_080F1998: .4byte 0x000087dc
-_080F199C: .4byte 0x0000893f
-_080F19A0: .4byte gPlayerParty
-_080F19A4: .4byte gOtherText_Nature2
-_080F19A8: .4byte gNatureNames
-_080F19AC:
- ldr r1, _080F19D0 @ =gEmptyString_81E72B0
- adds r0, r5, 0
- movs r2, 0x57
- movs r3, 0
- bl sub_8072C74
-_080F19B8:
- ldr r0, _080F19D4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F19D8 @ =0x00008788
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x70
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F19D0: .4byte gEmptyString_81E72B0
-_080F19D4: .4byte gUnknown_083DFEC4
-_080F19D8: .4byte 0x00008788
- thumb_func_end sub_80F1934
-
- thumb_func_start sub_80F19DC
-sub_80F19DC: @ 80F19DC
- push {lr}
- adds r1, r0, 0
- b _080F19E4
-_080F19E2:
- adds r1, 0x1
-_080F19E4:
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F19F8
- cmp r0, 0xFC
- bne _080F19E2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _080F19E2
- movs r0, 0xFF
- strb r0, [r1]
-_080F19F8:
- pop {r0}
- bx r0
- thumb_func_end sub_80F19DC
-
- thumb_func_start sub_80F19FC
-sub_80F19FC: @ 80F19FC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _080F1A68 @ =gUnknown_020388B0
- ldrb r4, [r5]
- cmp r4, 0x1
- bne _080F1A60
- ldr r0, _080F1A6C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F1A70 @ =0x00006e2c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r1, [r1]
- ldrb r2, [r5, 0x1]
- bl sub_811A8CC
- cmp r0, 0
- beq _080F1A46
- ldrb r2, [r5, 0x1]
- lsls r2, 20
- movs r1, 0xC0
- lsls r1, 14
- adds r2, r1
- lsrs r2, 16
- str r4, [sp]
- movs r1, 0x70
- movs r3, 0x78
- bl sub_8072A18
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _080F1A60
-_080F1A46:
- ldrb r1, [r5, 0x1]
- lsls r1, 25
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1C
- movs r3, 0xF
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0
- strb r0, [r5]
-_080F1A60:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1A68: .4byte gUnknown_020388B0
-_080F1A6C: .4byte gUnknown_083DFEC4
-_080F1A70: .4byte 0x00006e2c
- thumb_func_end sub_80F19FC
-
- thumb_func_start sub_80F1A74
-sub_80F1A74: @ 80F1A74
- ldr r1, _080F1A7C @ =gUnknown_020388B0
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080F1A7C: .4byte gUnknown_020388B0
- thumb_func_end sub_80F1A74
-
- thumb_func_start sub_80F1A80
-sub_80F1A80: @ 80F1A80
- ldr r0, _080F1A8C @ =gUnknown_020388B0
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F1A8C: .4byte gUnknown_020388B0
- thumb_func_end sub_80F1A80
-
- thumb_func_start sub_80F1A90
-sub_80F1A90: @ 80F1A90
- push {lr}
- ldr r0, _080F1AB8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F1ABC @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F1AC0 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F1AB2
-_080F1AA8:
- bl sub_80F1AC4
- lsls r0, 24
- cmp r0, 0
- bne _080F1AA8
-_080F1AB2:
- pop {r0}
- bx r0
- .align 2, 0
-_080F1AB8: .4byte gUnknown_083DFEC4
-_080F1ABC: .4byte 0x00000306
-_080F1AC0: .4byte 0x00006dac
- thumb_func_end sub_80F1A90
-
- thumb_func_start sub_80F1AC4
-sub_80F1AC4: @ 80F1AC4
- push {r4,r5,lr}
- ldr r0, _080F1AE0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F1AE4 @ =0x00000306
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F1B34
- cmp r0, 0x1
- bgt _080F1AE8
- cmp r0, 0
- beq _080F1AF2
- b _080F1B6C
- .align 2, 0
-_080F1AE0: .4byte gUnknown_083DFEC4
-_080F1AE4: .4byte 0x00000306
-_080F1AE8:
- cmp r0, 0x2
- beq _080F1B40
- cmp r0, 0x3
- beq _080F1B54
- b _080F1B6C
-_080F1AF2:
- movs r0, 0
- movs r2, 0xC8
- lsls r2, 2
- adds r4, r1, r2
- movs r5, 0
-_080F1AFC:
- movs r2, 0
- adds r1, r0, 0x1
- lsls r3, r0, 4
-_080F1B02:
- lsls r0, r2, 2
- adds r0, r3
- adds r0, r4, r0
- str r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F1B02
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x5
- bls _080F1AFC
- ldr r0, _080F1B2C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F1B30 @ =0x00000311
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _080F1B6C
- .align 2, 0
-_080F1B2C: .4byte gUnknown_083DFEC4
-_080F1B30: .4byte 0x00000311
-_080F1B34:
- ldr r0, _080F1B3C @ =gPokenavMenuOptions_Gfx
- movs r2, 0xE2
- lsls r2, 2
- b _080F1B44
- .align 2, 0
-_080F1B3C: .4byte gPokenavMenuOptions_Gfx
-_080F1B40:
- ldr r0, _080F1B4C @ =gPokenavConditionMenu_Gfx
- ldr r2, _080F1B50 @ =0x00001788
-_080F1B44:
- adds r1, r2
- bl LZ77UnCompWram
- b _080F1B6C
- .align 2, 0
-_080F1B4C: .4byte gPokenavConditionMenu_Gfx
-_080F1B50: .4byte 0x00001788
-_080F1B54:
- ldr r0, _080F1B64 @ =gPokenavConditionSearch_Gfx
- ldr r2, _080F1B68 @ =0x00002388
- adds r1, r2
- bl LZ77UnCompWram
- movs r0, 0
- b _080F1B7C
- .align 2, 0
-_080F1B64: .4byte gPokenavConditionSearch_Gfx
-_080F1B68: .4byte 0x00002388
-_080F1B6C:
- ldr r0, _080F1B84 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F1B88 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1B7C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1B84: .4byte gUnknown_083DFEC4
-_080F1B88: .4byte 0x00000306
- thumb_func_end sub_80F1AC4
-
- thumb_func_start sub_80F1B8C
-sub_80F1B8C: @ 80F1B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F1BBC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F1BC0 @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F1BC4 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F1BB4
-_080F1BA8:
- adds r0, r4, 0
- bl sub_80F1BC8
- lsls r0, 24
- cmp r0, 0
- bne _080F1BA8
-_080F1BB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1BBC: .4byte gUnknown_083DFEC4
-_080F1BC0: .4byte 0x00000306
-_080F1BC4: .4byte 0x00006dac
- thumb_func_end sub_80F1B8C
-
- thumb_func_start sub_80F1BC8
-sub_80F1BC8: @ 80F1BC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080F1BF4 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r3, _080F1BF8 @ =0x00000306
- adds r0, r2, r3
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- beq _080F1C0A
- cmp r0, 0x1
- bgt _080F1BFC
- cmp r0, 0
- beq _080F1C02
- b _080F1DC4
- .align 2, 0
-_080F1BF4: .4byte gUnknown_083DFEC4
-_080F1BF8: .4byte 0x00000306
-_080F1BFC:
- cmp r0, 0x2
- beq _080F1C12
- b _080F1DC4
-_080F1C02:
- mov r0, r9
- bl sub_80F2458
- b _080F1DC8
-_080F1C0A:
- mov r0, r9
- bl sub_80F2514
- b _080F1DC8
-_080F1C12:
- mov r4, r9
- cmp r4, 0x1
- beq _080F1C40
- cmp r4, 0x1
- bgt _080F1C22
- cmp r4, 0
- beq _080F1C2A
- b _080F1DC4
-_080F1C22:
- mov r5, r9
- cmp r5, 0x2
- beq _080F1C54
- b _080F1DC4
-_080F1C2A:
- movs r0, 0x2A
- str r0, [sp, 0x4]
- movs r1, 0x14
- str r1, [sp, 0x8]
- ldr r4, _080F1C3C @ =0x0000030e
- adds r1, r2, r4
- movs r0, 0x5
- b _080F1C62
- .align 2, 0
-_080F1C3C: .4byte 0x0000030e
-_080F1C40:
- movs r5, 0x38
- str r5, [sp, 0x4]
- movs r0, 0x14
- str r0, [sp, 0x8]
- ldr r4, _080F1C50 @ =0x0000030e
- adds r1, r2, r4
- movs r0, 0x3
- b _080F1C62
- .align 2, 0
-_080F1C50: .4byte 0x0000030e
-_080F1C54:
- movs r5, 0x28
- str r5, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- ldr r4, _080F1CDC @ =0x0000030e
- adds r1, r2, r4
- movs r0, 0x6
-_080F1C62:
- strb r0, [r1]
- movs r5, 0
- str r5, [sp]
- mov r8, r5
- adds r1, r3, 0
- ldr r0, [r1]
- ldr r2, _080F1CDC @ =0x0000030e
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- blt _080F1C7E
- b _080F1DC8
-_080F1C7E:
- ldr r4, [sp, 0x8]
- mov r3, r8
- muls r3, r4
- ldr r5, [sp, 0x4]
- adds r0, r5, r3
- subs r0, 0x8
- lsls r0, 16
- lsrs r0, 16
- ldr r4, [r1]
- mov r2, r8
- lsls r1, r2, 1
- movs r5, 0xC5
- lsls r5, 2
- adds r2, r4, r5
- adds r2, r1
- lsls r1, r0, 8
- adds r0, 0x11
- orrs r1, r0
- strh r1, [r2]
- mov r0, r9
- cmp r0, 0
- bne _080F1CF2
- ldr r1, _080F1CE0 @ =0x00006db2
- adds r0, r4, r1
- mov r2, r8
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F1CE8
- movs r5, 0
- ldr r0, _080F1CE4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r2, 4
- movs r3, 0xC8
- lsls r3, 2
- adds r1, r0, r3
- movs r3, 0
-_080F1CC8:
- lsls r0, r5, 2
- adds r0, r2
- adds r0, r1, r0
- str r3, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F1CC8
- b _080F1D92
- .align 2, 0
-_080F1CDC: .4byte 0x0000030e
-_080F1CE0: .4byte 0x00006db2
-_080F1CE4: .4byte gUnknown_083DFEC4
-_080F1CE8:
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 18
- lsrs r0, 16
- str r0, [sp]
-_080F1CF2:
- movs r5, 0
- ldr r4, [sp, 0x4]
- adds r0, r4, r3
- lsls r0, 16
- mov r10, r0
-_080F1CFC:
- lsls r6, r5, 5
- movs r0, 0x80
- lsls r0, 1
- adds r7, r6, r0
- lsls r1, r7, 16
- asrs r1, 16
- ldr r0, _080F1DB4 @ =gSpriteTemplate_83E4454
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F1DC4
- ldr r0, _080F1DB8 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- lsls r1, r5, 2
- mov r4, r8
- lsls r0, r4, 4
- adds r1, r0
- movs r0, 0xC8
- lsls r0, 2
- adds r2, r0
- adds r4, r2, r1
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, _080F1DBC @ =gSprites
- adds r0, r1
- str r0, [r4]
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldr r0, [r4]
- strh r5, [r0, 0x30]
- ldr r1, [r4]
- adds r0, r6, 0
- adds r0, 0x98
- strh r0, [r1, 0x32]
- ldr r0, [r4]
- strh r7, [r0, 0x34]
- ldr r0, [r4]
- ldr r1, [sp]
- adds r2, r1, 0x1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- mov r2, r9
- cmp r2, 0x2
- beq _080F1D6E
- cmp r2, 0
- bne _080F1D88
-_080F1D6E:
- mov r3, r8
- cmp r3, 0x2
- bls _080F1D88
- movs r0, 0x1
- bl IndexOfSpritePaletteTag
- ldr r3, [r4]
- lsls r0, 4
- ldrb r2, [r3, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x5]
-_080F1D88:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F1CFC
-_080F1D92:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, _080F1DB8 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r4, _080F1DC0 @ =0x0000030e
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r8, r0
- bge _080F1DB0
- b _080F1C7E
-_080F1DB0:
- b _080F1DC8
- .align 2, 0
-_080F1DB4: .4byte gSpriteTemplate_83E4454
-_080F1DB8: .4byte gUnknown_083DFEC4
-_080F1DBC: .4byte gSprites
-_080F1DC0: .4byte 0x0000030e
-_080F1DC4:
- movs r0, 0
- b _080F1DD8
-_080F1DC8:
- ldr r0, _080F1DE8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r5, _080F1DEC @ =0x00000306
- adds r1, r5
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F1DD8:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F1DE8: .4byte gUnknown_083DFEC4
-_080F1DEC: .4byte 0x00000306
- thumb_func_end sub_80F1BC8
-
- thumb_func_start sub_80F1DF0
-sub_80F1DF0: @ 80F1DF0
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _080F1E44 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080F1E48 @ =0x0000030e
- adds r1, r3, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bge _080F1E38
- movs r0, 0xC8
- lsls r0, 2
- adds r4, r3, r0
- adds r6, r1, 0
- ldr r5, _080F1E4C @ =sub_80F2218
-_080F1E0E:
- movs r1, 0
- adds r3, r2, 0x1
- lsls r2, 4
-_080F1E14:
- lsls r0, r1, 2
- adds r0, r2
- adds r0, r4, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F1E22
- str r5, [r0, 0x1C]
-_080F1E22:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F1E14
- lsls r0, r3, 16
- lsrs r2, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080F1E0E
-_080F1E38:
- movs r0, 0x6
- bl PlaySE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1E44: .4byte gUnknown_083DFEC4
-_080F1E48: .4byte 0x0000030e
-_080F1E4C: .4byte sub_80F2218
- thumb_func_end sub_80F1DF0
-
- thumb_func_start sub_80F1E50
-sub_80F1E50: @ 80F1E50
- push {lr}
- bl sub_80F22F8
- lsls r0, 24
- cmp r0, 0
- bne _080F1E60
- movs r0, 0x1
- b _080F1E66
-_080F1E60:
- bl sub_80F2108
- movs r0, 0
-_080F1E66:
- pop {r1}
- bx r1
- thumb_func_end sub_80F1E50
-
- thumb_func_start sub_80F1E6C
-sub_80F1E6C: @ 80F1E6C
- push {lr}
- bl sub_80F22F8
- movs r1, 0
- lsls r0, 24
- cmp r0, 0
- bne _080F1E7C
- movs r1, 0x1
-_080F1E7C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80F1E6C
-
- thumb_func_start sub_80F1E84
-sub_80F1E84: @ 80F1E84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _080F1EFC @ =gUnknown_083DFEC4
- ldr r4, [r5]
- ldr r1, _080F1F00 @ =0x0000030f
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- bl sub_80F2148
- movs r2, 0
- ldr r3, _080F1F04 @ =0x0000030e
- adds r1, r4, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r2, r0
- bge _080F1EF2
- ldr r0, _080F1F08 @ =0x00006dad
- adds r7, r4, r0
- adds r6, r1, 0
- mov r8, r5
- ldr r1, _080F1F0C @ =sub_80F2240
- mov r12, r1
-_080F1EB4:
- movs r0, 0
- ldrsb r0, [r7, r0]
- adds r5, r2, 0x1
- cmp r2, r0
- beq _080F1EE6
- movs r1, 0
- mov r3, r8
- ldr r0, [r3]
- lsls r3, r2, 4
- movs r4, 0xC8
- lsls r4, 2
- adds r2, r0, r4
- mov r4, r12
-_080F1ECE:
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F1EDC
- str r4, [r0, 0x1C]
-_080F1EDC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F1ECE
-_080F1EE6:
- lsls r0, r5, 16
- lsrs r2, r0, 16
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r2, r0
- blt _080F1EB4
-_080F1EF2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F1EFC: .4byte gUnknown_083DFEC4
-_080F1F00: .4byte 0x0000030f
-_080F1F04: .4byte 0x0000030e
-_080F1F08: .4byte 0x00006dad
-_080F1F0C: .4byte sub_80F2240
- thumb_func_end sub_80F1E84
-
- thumb_func_start sub_80F1F10
-sub_80F1F10: @ 80F1F10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _080F1F2C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F1F30 @ =0x0000030f
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F1F34
- cmp r0, 0x1
- beq _080F1FC0
- b _080F1FE4
- .align 2, 0
-_080F1F2C: .4byte gUnknown_083DFEC4
-_080F1F30: .4byte 0x0000030f
-_080F1F34:
- bl sub_80F2360
- lsls r0, 24
- cmp r0, 0
- beq _080F1FE4
- movs r6, 0
- adds r7, r4, 0
- movs r0, 0xC8
- lsls r0, 2
- adds r0, r7
- mov r8, r0
-_080F1F4A:
- lsls r5, r6, 2
- ldr r1, _080F1FAC @ =0x00006dad
- adds r0, r7, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- adds r0, r5, r0
- add r0, r8
- ldr r4, [r0]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080F1FB0 @ =gUnknown_083E4450
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- subs r5, 0x6
- strh r5, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x36]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- lsls r0, 3
- strh r0, [r4, 0x38]
- ldr r0, _080F1FB4 @ =sub_80F2240
- str r0, [r4, 0x1C]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _080F1F4A
- bl sub_80F2170
- ldr r0, _080F1FB8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F1FBC @ =0x0000030f
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F1FE4
- .align 2, 0
-_080F1FAC: .4byte 0x00006dad
-_080F1FB0: .4byte gUnknown_083E4450
-_080F1FB4: .4byte sub_80F2240
-_080F1FB8: .4byte gUnknown_083DFEC4
-_080F1FBC: .4byte 0x0000030f
-_080F1FC0:
- bl sub_80F23C8
- lsls r0, 24
- cmp r0, 0
- beq _080F1FE4
- bl sub_80F21F8
- movs r0, 0
- bl FreeSpriteTilesByTag
- movs r0, 0
- bl FreeSpritePaletteByTag
- movs r0, 0x1
- bl FreeSpritePaletteByTag
- movs r0, 0
- b _080F1FE6
-_080F1FE4:
- movs r0, 0x1
-_080F1FE6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F1F10
-
- thumb_func_start sub_80F1FF0
-sub_80F1FF0: @ 80F1FF0
- push {r4,lr}
- ldr r0, _080F203C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F2040 @ =0x00000311
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F2058
- ldr r2, _080F2044 @ =REG_WIN0V
- ldr r3, _080F2048 @ =0x00006dad
- adds r0, r4, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- movs r3, 0xC5
- lsls r3, 2
- adds r0, r4, r3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r3, _080F204C @ =REG_BLDY
- ldr r1, _080F2050 @ =gSineTable
- ldr r0, _080F2054 @ =0x00000312
- adds r2, r4, r0
- ldrh r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r3]
- ldrh r0, [r2]
- adds r0, 0x3
- movs r1, 0x7F
- ands r0, r1
- strh r0, [r2]
- b _080F2078
- .align 2, 0
-_080F203C: .4byte gUnknown_083DFEC4
-_080F2040: .4byte 0x00000311
-_080F2044: .4byte REG_WIN0V
-_080F2048: .4byte 0x00006dad
-_080F204C: .4byte REG_BLDY
-_080F2050: .4byte gSineTable
-_080F2054: .4byte 0x00000312
-_080F2058:
- cmp r0, 0x2
- bne _080F2078
- ldr r2, _080F2080 @ =REG_BLDALPHA
- ldr r1, _080F2084 @ =gUnknown_083E42F8
- ldr r0, _080F2088 @ =0x00000312
- adds r3, r4, r0
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r3]
- cmp r0, 0xE
- bhi _080F2078
- adds r0, 0x1
- strh r0, [r3]
-_080F2078:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2080: .4byte REG_BLDALPHA
-_080F2084: .4byte gUnknown_083E42F8
-_080F2088: .4byte 0x00000312
- thumb_func_end sub_80F1FF0
-
- thumb_func_start sub_80F208C
-sub_80F208C: @ 80F208C
- push {lr}
- bl sub_80F2148
- pop {r0}
- bx r0
- thumb_func_end sub_80F208C
-
- thumb_func_start sub_80F2098
-sub_80F2098: @ 80F2098
- ldr r1, _080F20DC @ =REG_WIN0H
- ldr r2, _080F20E0 @ =0x000077f0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _080F20E4 @ =REG_WIN0V
- ldr r0, _080F20E8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r3, _080F20EC @ =0x00006dad
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- movs r3, 0xC5
- lsls r3, 2
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- ldr r1, _080F20F0 @ =REG_WININ
- movs r0, 0x3F
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1F
- strh r0, [r1]
- subs r2, 0x44
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080F20DC: .4byte REG_WIN0H
-_080F20E0: .4byte 0x000077f0
-_080F20E4: .4byte REG_WIN0V
-_080F20E8: .4byte gUnknown_083DFEC4
-_080F20EC: .4byte 0x00006dad
-_080F20F0: .4byte REG_WININ
- thumb_func_end sub_80F2098
-
- thumb_func_start sub_80F20F4
-sub_80F20F4: @ 80F20F4
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F2104 @ =0x0000dfff
- ands r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080F2104: .4byte 0x0000dfff
- thumb_func_end sub_80F20F4
-
- thumb_func_start sub_80F2108
-sub_80F2108: @ 80F2108
- push {lr}
- ldr r0, _080F2134 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080F2138 @ =0x00000311
- adds r1, r3, r0
- ldrb r2, [r1]
- cmp r2, 0
- bne _080F2130
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080F213C @ =0x00000312
- adds r0, r3, r1
- strh r2, [r0]
- ldr r1, _080F2140 @ =REG_BLDCNT
- movs r0, 0x90
- strh r0, [r1]
- ldr r0, _080F2144 @ =REG_BLDY
- strh r2, [r0]
- bl sub_80F2098
-_080F2130:
- pop {r0}
- bx r0
- .align 2, 0
-_080F2134: .4byte gUnknown_083DFEC4
-_080F2138: .4byte 0x00000311
-_080F213C: .4byte 0x00000312
-_080F2140: .4byte REG_BLDCNT
-_080F2144: .4byte REG_BLDY
- thumb_func_end sub_80F2108
-
- thumb_func_start sub_80F2148
-sub_80F2148: @ 80F2148
- push {lr}
- ldr r0, _080F2164 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2168 @ =0x00000311
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080F216C @ =REG_BLDCNT
- strh r1, [r0]
- bl sub_80F20F4
- pop {r0}
- bx r0
- .align 2, 0
-_080F2164: .4byte gUnknown_083DFEC4
-_080F2168: .4byte 0x00000311
-_080F216C: .4byte REG_BLDCNT
- thumb_func_end sub_80F2148
-
- thumb_func_start sub_80F2170
-sub_80F2170: @ 80F2170
- push {r4-r7,lr}
- ldr r7, _080F21E4 @ =gUnknown_083DFEC4
- ldr r4, [r7]
- ldr r1, _080F21E8 @ =0x00000311
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F21DC
- bl sub_80F20F4
- movs r3, 0
- ldr r2, _080F21EC @ =0x00006dad
- adds r5, r4, r2
- movs r0, 0xC8
- lsls r0, 2
- adds r4, r0
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r6, 0x4
-_080F2198:
- lsls r1, r3, 2
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 4
- adds r1, r0
- adds r1, r4, r1
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- mov r0, r12
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F2198
- ldr r1, [r7]
- ldr r0, _080F21E8 @ =0x00000311
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0x2
- strb r0, [r2]
- ldr r2, _080F21F0 @ =0x00000312
- adds r1, r2
- strh r3, [r1]
- ldr r1, _080F21F4 @ =REG_BLDCNT
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
-_080F21DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F21E4: .4byte gUnknown_083DFEC4
-_080F21E8: .4byte 0x00000311
-_080F21EC: .4byte 0x00006dad
-_080F21F0: .4byte 0x00000312
-_080F21F4: .4byte REG_BLDCNT
- thumb_func_end sub_80F2170
-
- thumb_func_start sub_80F21F8
-sub_80F21F8: @ 80F21F8
- ldr r0, _080F220C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2210 @ =0x00000311
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080F2214 @ =REG_BLDCNT
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F220C: .4byte gUnknown_083DFEC4
-_080F2210: .4byte 0x00000311
-_080F2214: .4byte REG_BLDCNT
- thumb_func_end sub_80F21F8
-
- thumb_func_start sub_80F2218
-sub_80F2218: @ 80F2218
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r0, 0x8
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r2, 0x32]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bgt _080F2236
- strh r3, [r2, 0x20]
- ldr r0, _080F223C @ =sub_80F22B0
- str r0, [r2, 0x1C]
-_080F2236:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F223C: .4byte sub_80F22B0
- thumb_func_end sub_80F2218
-
- thumb_func_start sub_80F2240
-sub_80F2240: @ 80F2240
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _080F2288 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F228C @ =0x00006dad
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080F2290
- ldrh r3, [r2, 0x38]
- movs r4, 0x38
- ldrsh r0, [r2, r4]
- cmp r0, 0
- beq _080F2270
- ldrh r0, [r2, 0x36]
- ldrh r4, [r2, 0x20]
- adds r1, r0, r4
- strh r1, [r2, 0x20]
- subs r0, r3, r0
- strh r0, [r2, 0x38]
-_080F2270:
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F22A8
- adds r0, r2, 0
- bl sub_80F240C
- b _080F22A8
- .align 2, 0
-_080F2288: .4byte gUnknown_083DFEC4
-_080F228C: .4byte 0x00006dad
-_080F2290:
- ldrh r0, [r2, 0x20]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080F22A8
- adds r0, r2, 0
- bl sub_80F240C
-_080F22A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2240
-
- thumb_func_start sub_80F22B0
-sub_80F22B0: @ 80F22B0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F22DC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F22E0 @ =0x00006dad
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _080F22E4
- ldrh r3, [r2, 0x24]
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _080F22F2
- subs r0, r3, 0x4
- b _080F22F0
- .align 2, 0
-_080F22DC: .4byte gUnknown_083DFEC4
-_080F22E0: .4byte 0x00006dad
-_080F22E4:
- ldrh r1, [r2, 0x24]
- movs r3, 0x24
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _080F22F2
- adds r0, r1, 0x4
-_080F22F0:
- strh r0, [r2, 0x24]
-_080F22F2:
- pop {r0}
- bx r0
- thumb_func_end sub_80F22B0
-
- thumb_func_start sub_80F22F8
-sub_80F22F8: @ 80F22F8
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _080F233C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F2340 @ =0x00006dae
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r3, r0
- bge _080F2358
- movs r7, 0xC8
- lsls r7, 2
- adds r4, r1, r7
- movs r5, 0x10
- negs r5, r5
- adds r6, r0, 0
-_080F231A:
- movs r1, 0
- lsls r2, r3, 4
-_080F231E:
- lsls r0, r1, 2
- adds r0, r2
- adds r0, r4, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F2358
- movs r7, 0x24
- ldrsh r0, [r0, r7]
- cmp r0, 0
- beq _080F2344
- cmp r0, r5
- beq _080F2344
- movs r0, 0
- b _080F235A
- .align 2, 0
-_080F233C: .4byte gUnknown_083DFEC4
-_080F2340: .4byte 0x00006dae
-_080F2344:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F231E
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r6
- blt _080F231A
-_080F2358:
- movs r0, 0x1
-_080F235A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F22F8
-
- thumb_func_start sub_80F2360
-sub_80F2360: @ 80F2360
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _080F23A0 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F23A4 @ =0x0000030e
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- cmp r4, r1
- bge _080F23C0
- ldr r3, _080F23A8 @ =0x00006dad
- adds r0, r2, r3
- movs r6, 0
- ldrsb r6, [r0, r6]
- adds r5, r1, 0
-_080F237E:
- cmp r4, r6
- beq _080F23B6
- movs r1, 0
- ldr r0, _080F23A0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r3, r4, 4
- movs r7, 0xC8
- lsls r7, 2
- adds r2, r0, r7
-_080F2390:
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F23AC
- movs r0, 0
- b _080F23C2
- .align 2, 0
-_080F23A0: .4byte gUnknown_083DFEC4
-_080F23A4: .4byte 0x0000030e
-_080F23A8: .4byte 0x00006dad
-_080F23AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3
- bls _080F2390
-_080F23B6:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- blt _080F237E
-_080F23C0:
- movs r0, 0x1
-_080F23C2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F2360
-
- thumb_func_start sub_80F23C8
-sub_80F23C8: @ 80F23C8
- push {lr}
- movs r2, 0
- ldr r0, _080F23F4 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r3, _080F23F8 @ =0x00006dad
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r3, r0, 4
- movs r0, 0xC8
- lsls r0, 2
- adds r1, r0
-_080F23E2:
- lsls r0, r2, 2
- adds r0, r3
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F23FC
- movs r0, 0
- b _080F2408
- .align 2, 0
-_080F23F4: .4byte gUnknown_083DFEC4
-_080F23F8: .4byte 0x00006dad
-_080F23FC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F23E2
- movs r0, 0x1
-_080F2408:
- pop {r1}
- bx r1
- thumb_func_end sub_80F23C8
-
- thumb_func_start sub_80F240C
-sub_80F240C: @ 80F240C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080F2454 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 2
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- lsls r0, 4
- adds r1, r0
- movs r0, 0xC8
- lsls r0, 2
- adds r2, r0
- adds r2, r1
- movs r0, 0
- str r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F2446
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
-_080F2446:
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2454: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F240C
-
- thumb_func_start sub_80F2458
-sub_80F2458: @ 80F2458
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- beq _080F24A0
- cmp r4, 0x1
- bgt _080F246C
- cmp r4, 0
- beq _080F2472
- b _080F2502
-_080F246C:
- cmp r4, 0x2
- beq _080F24D0
- b _080F2502
-_080F2472:
- ldr r2, _080F2498 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- movs r0, 0xE0
- lsls r0, 2
- adds r1, r3, r0
- movs r5, 0xE2
- lsls r5, 2
- adds r0, r3, r5
- str r0, [r1]
- movs r0, 0xE1
- lsls r0, 2
- adds r1, r3, r0
- movs r0, 0xA0
- lsls r0, 5
- strh r0, [r1]
- ldr r1, _080F249C @ =0x00000386
- adds r0, r3, r1
- strh r4, [r0]
- b _080F24F6
- .align 2, 0
-_080F2498: .4byte gUnknown_083DFEC4
-_080F249C: .4byte 0x00000386
-_080F24A0:
- ldr r4, _080F24C4 @ =gUnknown_083DFEC4
- ldr r1, [r4]
- movs r3, 0xE0
- lsls r3, 2
- adds r2, r1, r3
- ldr r5, _080F24C8 @ =0x00001788
- adds r0, r1, r5
- str r0, [r2]
- movs r0, 0xE1
- lsls r0, 2
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xC0
- lsls r0, 4
- strh r0, [r2]
- ldr r5, _080F24CC @ =0x00000386
- adds r1, r5
- b _080F24F2
- .align 2, 0
-_080F24C4: .4byte gUnknown_083DFEC4
-_080F24C8: .4byte 0x00001788
-_080F24CC: .4byte 0x00000386
-_080F24D0:
- ldr r4, _080F2508 @ =gUnknown_083DFEC4
- ldr r1, [r4]
- movs r0, 0xE0
- lsls r0, 2
- adds r2, r1, r0
- ldr r3, _080F250C @ =0x00002388
- adds r0, r1, r3
- str r0, [r2]
- movs r5, 0xE1
- lsls r5, 2
- adds r2, r1, r5
- movs r3, 0
- movs r0, 0xC0
- lsls r0, 5
- strh r0, [r2]
- ldr r0, _080F2510 @ =0x00000386
- adds r1, r0
-_080F24F2:
- strh r3, [r1]
- adds r2, r4, 0
-_080F24F6:
- ldr r0, [r2]
- movs r1, 0xE0
- lsls r1, 2
- adds r0, r1
- bl LoadSpriteSheet
-_080F2502:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2508: .4byte gUnknown_083DFEC4
-_080F250C: .4byte 0x00002388
-_080F2510: .4byte 0x00000386
- thumb_func_end sub_80F2458
-
- thumb_func_start sub_80F2514
-sub_80F2514: @ 80F2514
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _080F2558
- cmp r0, 0x1
- bgt _080F252C
- cmp r0, 0
- beq _080F2532
- b _080F2586
-_080F252C:
- cmp r1, 0x2
- beq _080F2568
- b _080F2586
-_080F2532:
- ldr r0, _080F254C @ =gPokenavMenuOptions1_Pal
- str r0, [sp]
- ldr r1, _080F2550 @ =0xffff0000
- mov r4, sp
- ldr r0, [sp, 0x4]
- ands r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- ldr r0, _080F2554 @ =gPokenavMenuOptions2_Pal
- b _080F257A
- .align 2, 0
-_080F254C: .4byte gPokenavMenuOptions1_Pal
-_080F2550: .4byte 0xffff0000
-_080F2554: .4byte gPokenavMenuOptions2_Pal
-_080F2558:
- ldr r0, _080F2564 @ =gPokenavConditionMenu_Pal
- str r0, [sp]
- mov r1, sp
- movs r0, 0
- strh r0, [r1, 0x4]
- b _080F2580
- .align 2, 0
-_080F2564: .4byte gPokenavConditionMenu_Pal
-_080F2568:
- ldr r0, _080F2590 @ =gPokenavCondition6_Pal
- str r0, [sp]
- mov r4, sp
- movs r0, 0
- strh r0, [r4, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- ldr r0, _080F2594 @ =gPokenavCondition7_Pal
-_080F257A:
- str r0, [sp]
- movs r0, 0x1
- strh r0, [r4, 0x4]
-_080F2580:
- mov r0, sp
- bl LoadSpritePalette
-_080F2586:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2590: .4byte gPokenavCondition6_Pal
-_080F2594: .4byte gPokenavCondition7_Pal
- thumb_func_end sub_80F2514
-
- thumb_func_start sub_80F2598
-sub_80F2598: @ 80F2598
- push {r4,lr}
- ldr r0, _080F25F0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F25F4 @ =0x00006d9c
- adds r4, r0, r1
- movs r0, 0
- str r0, [r4]
- ldr r1, _080F25F8 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082C0C
- cmp r0, 0x1
- bne _080F2618
- ldr r0, _080F25FC @ =gSpriteSheet_PokenavBlueLight
- bl LoadSpriteSheet
- ldr r0, _080F2600 @ =gSpritePalette_PokenavBlueLight
- bl LoadSpritePalette
- ldr r0, _080F2604 @ =gSpriteTemplate_83E4484
- movs r1, 0xC
- movs r2, 0x60
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F260C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F2608 @ =gSprites
- adds r0, r1
- str r0, [r4]
- b _080F2618
- .align 2, 0
-_080F25F0: .4byte gUnknown_083DFEC4
-_080F25F4: .4byte 0x00006d9c
-_080F25F8: .4byte gSaveBlock1
-_080F25FC: .4byte gSpriteSheet_PokenavBlueLight
-_080F2600: .4byte gSpritePalette_PokenavBlueLight
-_080F2604: .4byte gSpriteTemplate_83E4484
-_080F2608: .4byte gSprites
-_080F260C:
- movs r0, 0x19
- bl FreeSpriteTilesByTag
- movs r0, 0x11
- bl FreeSpritePaletteByTag
-_080F2618:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2598
-
- thumb_func_start sub_80F2620
-sub_80F2620: @ 80F2620
- push {r4,lr}
- ldr r0, _080F264C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2650 @ =0x00006d9c
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2644
- bl DestroySprite
- movs r0, 0x19
- bl FreeSpriteTilesByTag
- movs r0, 0x11
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F2644:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F264C: .4byte gUnknown_083DFEC4
-_080F2650: .4byte 0x00006d9c
- thumb_func_end sub_80F2620
-
- thumb_func_start sub_80F2654
-sub_80F2654: @ 80F2654
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080F2682
- movs r0, 0
- strh r0, [r3, 0x2E]
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080F2682:
- pop {r0}
- bx r0
- thumb_func_end sub_80F2654
-
- thumb_func_start sub_80F2688
-sub_80F2688: @ 80F2688
- push {lr}
- ldr r0, _080F26B0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F26B4 @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F26B8 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F26AA
-_080F26A0:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- bne _080F26A0
-_080F26AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F26B0: .4byte gUnknown_083DFEC4
-_080F26B4: .4byte 0x00000306
-_080F26B8: .4byte 0x00006dac
- thumb_func_end sub_80F2688
-
- thumb_func_start sub_80F26BC
-sub_80F26BC: @ 80F26BC
- push {lr}
- ldr r0, _080F26D8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F26DC @ =0x00000306
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _080F26CE
- b _080F27BC
-_080F26CE:
- lsls r0, 2
- ldr r1, _080F26E0 @ =_080F26E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F26D8: .4byte gUnknown_083DFEC4
-_080F26DC: .4byte 0x00000306
-_080F26E0: .4byte _080F26E4
- .align 2, 0
-_080F26E4:
- .4byte _080F2704
- .4byte _080F271C
- .4byte _080F2734
- .4byte _080F274C
- .4byte _080F2764
- .4byte _080F277C
- .4byte _080F2794
- .4byte _080F27B0
-_080F2704:
- ldr r0, _080F2710 @ =gPokenavMainMenu_Gfx
- ldr r1, _080F2714 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2718 @ =0x00003b98
- b _080F279C
- .align 2, 0
-_080F2710: .4byte gPokenavMainMenu_Gfx
-_080F2714: .4byte gUnknown_083DFEC4
-_080F2718: .4byte 0x00003b98
-_080F271C:
- ldr r0, _080F2728 @ =gPokenavConditionMenuHeader_Gfx
- ldr r1, _080F272C @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2730 @ =0x00004198
- b _080F279C
- .align 2, 0
-_080F2728: .4byte gPokenavConditionMenuHeader_Gfx
-_080F272C: .4byte gUnknown_083DFEC4
-_080F2730: .4byte 0x00004198
-_080F2734:
- ldr r0, _080F2740 @ =gPokenavRibbonsHeader_Gfx
- ldr r1, _080F2744 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2748 @ =0x00004d98
- b _080F279C
- .align 2, 0
-_080F2740: .4byte gPokenavRibbonsHeader_Gfx
-_080F2744: .4byte gUnknown_083DFEC4
-_080F2748: .4byte 0x00004d98
-_080F274C:
- ldr r0, _080F2758 @ =gPokenavHoennMapHeader_Gfx
- ldr r1, _080F275C @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2760 @ =0x00005398
- b _080F279C
- .align 2, 0
-_080F2758: .4byte gPokenavHoennMapHeader_Gfx
-_080F275C: .4byte gUnknown_083DFEC4
-_080F2760: .4byte 0x00005398
-_080F2764:
- ldr r0, _080F2770 @ =gPokenavConditionMenuOptions_Gfx
- ldr r1, _080F2774 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2778 @ =0x00005f98
- b _080F279C
- .align 2, 0
-_080F2770: .4byte gPokenavConditionMenuOptions_Gfx
-_080F2774: .4byte gUnknown_083DFEC4
-_080F2778: .4byte 0x00005f98
-_080F277C:
- ldr r0, _080F2788 @ =gPokenavConditionMenuOptions2_Gfx
- ldr r1, _080F278C @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2790 @ =0x00006798
- b _080F279C
- .align 2, 0
-_080F2788: .4byte gPokenavConditionMenuOptions2_Gfx
-_080F278C: .4byte gUnknown_083DFEC4
-_080F2790: .4byte 0x00006798
-_080F2794:
- ldr r0, _080F27A4 @ =gPokenavTrainersEyesHeader_Gfx
- ldr r1, _080F27A8 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F27AC @ =0x00004798
-_080F279C:
- adds r1, r2
- bl LZ77UnCompWram
- b _080F27C0
- .align 2, 0
-_080F27A4: .4byte gPokenavTrainersEyesHeader_Gfx
-_080F27A8: .4byte gUnknown_083DFEC4
-_080F27AC: .4byte 0x00004798
-_080F27B0:
- ldr r0, _080F27B8 @ =gUnknown_083E449C
- bl LoadSpritePalettes
- b _080F27C0
- .align 2, 0
-_080F27B8: .4byte gUnknown_083E449C
-_080F27BC:
- movs r0, 0
- b _080F27D0
-_080F27C0:
- ldr r0, _080F27D4 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F27D8 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F27D0:
- pop {r1}
- bx r1
- .align 2, 0
-_080F27D4: .4byte gUnknown_083DFEC4
-_080F27D8: .4byte 0x00000306
- thumb_func_end sub_80F26BC
-
- thumb_func_start sub_80F27DC
-sub_80F27DC: @ 80F27DC
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _080F27EA
- b _080F29A0
-_080F27EA:
- lsls r0, 2
- ldr r1, _080F27F4 @ =_080F27F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F27F4: .4byte _080F27F8
- .align 2, 0
-_080F27F8:
- .4byte _080F2828
- .4byte _080F2858
- .4byte _080F28B8
- .4byte _080F2888
- .4byte _080F28E8
- .4byte _080F2918
- .4byte _080F2928
- .4byte _080F2978
- .4byte _080F2938
- .4byte _080F2948
- .4byte _080F2968
- .4byte _080F2958
-_080F2828:
- ldr r0, _080F2848 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F284C @ =0x00003b98
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2850 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F2854 @ =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2848: .4byte gUnknown_083DFEC4
-_080F284C: .4byte 0x00003b98
-_080F2850: .4byte 0xffff0000
-_080F2854: .4byte 0x0000ffff
-_080F2858:
- ldr r0, _080F2878 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F287C @ =0x00004198
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2880 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F2884 @ =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2878: .4byte gUnknown_083DFEC4
-_080F287C: .4byte 0x00004198
-_080F2880: .4byte 0xffff0000
-_080F2884: .4byte 0x0000ffff
-_080F2888:
- ldr r0, _080F28A8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F28AC @ =0x00004798
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F28B0 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F28B4 @ =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F28A8: .4byte gUnknown_083DFEC4
-_080F28AC: .4byte 0x00004798
-_080F28B0: .4byte 0xffff0000
-_080F28B4: .4byte 0x0000ffff
-_080F28B8:
- ldr r0, _080F28D8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F28DC @ =0x00004d98
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F28E0 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- ldr r1, _080F28E4 @ =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F28D8: .4byte gUnknown_083DFEC4
-_080F28DC: .4byte 0x00004d98
-_080F28E0: .4byte 0xffff0000
-_080F28E4: .4byte 0x0000ffff
-_080F28E8:
- ldr r0, _080F2908 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F290C @ =0x00005398
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F2910 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- ldr r1, _080F2914 @ =0x0000ffff
- ands r0, r1
- adds r1, 0x1
- b _080F2996
- .align 2, 0
-_080F2908: .4byte gUnknown_083DFEC4
-_080F290C: .4byte 0x00005398
-_080F2910: .4byte 0xffff0000
-_080F2914: .4byte 0x0000ffff
-_080F2918:
- ldr r0, _080F2920 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2924 @ =0x00005f98
- b _080F297E
- .align 2, 0
-_080F2920: .4byte gUnknown_083DFEC4
-_080F2924: .4byte 0x00005f98
-_080F2928:
- ldr r0, _080F2930 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2934 @ =0x00006198
- b _080F297E
- .align 2, 0
-_080F2930: .4byte gUnknown_083DFEC4
-_080F2934: .4byte 0x00006198
-_080F2938:
- ldr r0, _080F2940 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2944 @ =0x00006398
- b _080F297E
- .align 2, 0
-_080F2940: .4byte gUnknown_083DFEC4
-_080F2944: .4byte 0x00006398
-_080F2948:
- ldr r0, _080F2950 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2954 @ =0x00006598
- b _080F297E
- .align 2, 0
-_080F2950: .4byte gUnknown_083DFEC4
-_080F2954: .4byte 0x00006598
-_080F2958:
- ldr r0, _080F2960 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2964 @ =0x00006998
- b _080F297E
- .align 2, 0
-_080F2960: .4byte gUnknown_083DFEC4
-_080F2964: .4byte 0x00006998
-_080F2968:
- ldr r0, _080F2970 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2974 @ =0x00006798
- b _080F297E
- .align 2, 0
-_080F2970: .4byte gUnknown_083DFEC4
-_080F2974: .4byte 0x00006798
-_080F2978:
- ldr r0, _080F29A8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F29AC @ =0x00006b98
-_080F297E:
- adds r0, r1
- str r0, [sp]
- ldr r1, _080F29B0 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- ldr r1, _080F29B4 @ =0x0000ffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 10
-_080F2996:
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
-_080F29A0:
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080F29A8: .4byte gUnknown_083DFEC4
-_080F29AC: .4byte 0x00006b98
-_080F29B0: .4byte 0xffff0000
-_080F29B4: .4byte 0x0000ffff
- thumb_func_end sub_80F27DC
-
- thumb_func_start sub_80F29B8
-sub_80F29B8: @ 80F29B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- cmp r7, 0xB
- bls _080F29D2
- b _080F2BA6
-_080F29D2:
- lsls r0, r7, 2
- ldr r1, _080F29DC @ =_080F29E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F29DC: .4byte _080F29E0
- .align 2, 0
-_080F29E0:
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A10
- .4byte _080F2A58
- .4byte _080F2A94
- .4byte _080F2A94
- .4byte _080F2A98
- .4byte _080F2A94
- .4byte _080F2A94
- .4byte _080F2A98
- .4byte _080F2A98
-_080F2A10:
- ldr r3, _080F2A44 @ =0x0000ffa0
- ldr r0, _080F2A48 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r2, r1
- ldrh r1, [r0]
- movs r0, 0x31
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0x8
- str r4, [sp]
- movs r1, 0x20
- str r1, [sp, 0x4]
- movs r1, 0x40
- ldr r4, _080F2A4C @ =0x00003b88
- adds r4, r2
- mov r9, r4
- ldr r2, _080F2A50 @ =gSpriteTemplate_83E44F8
- mov r8, r2
- cmp r7, 0x3
- beq _080F2AC8
- ldr r4, _080F2A54 @ =gSpriteTemplate_83E44E0
- mov r8, r4
- b _080F2AC8
- .align 2, 0
-_080F2A44: .4byte 0x0000ffa0
-_080F2A48: .4byte gUnknown_083DFEC4
-_080F2A4C: .4byte 0x00003b88
-_080F2A50: .4byte gSpriteTemplate_83E44F8
-_080F2A54: .4byte gSpriteTemplate_83E44E0
-_080F2A58:
- movs r3, 0x88
- lsls r3, 1
- ldr r0, _080F2A84 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r2, r1
- ldrh r1, [r0]
- movs r0, 0x31
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080F2A88 @ =0x0000fff8
- str r4, [sp]
- movs r1, 0x98
- str r1, [sp, 0x4]
- movs r1, 0x40
- ldr r4, _080F2A8C @ =gSpriteTemplate_83E44E0
- mov r8, r4
- ldr r4, _080F2A90 @ =0x00003b88
- b _080F2AC4
- .align 2, 0
-_080F2A84: .4byte gUnknown_083DFEC4
-_080F2A88: .4byte 0x0000fff8
-_080F2A8C: .4byte gSpriteTemplate_83E44E0
-_080F2A90: .4byte 0x00003b88
-_080F2A94:
- ldr r0, _080F2B40 @ =gSpriteTemplate_83E4530
- mov r8, r0
-_080F2A98:
- mov r1, r8
- cmp r1, 0
- bne _080F2AA2
- ldr r2, _080F2B44 @ =gSpriteTemplate_83E4548
- mov r8, r2
-_080F2AA2:
- ldr r3, _080F2B48 @ =0x0000ffa0
- ldr r0, _080F2B4C @ =gUnknown_083DFEC4
- ldr r2, [r0]
- movs r4, 0xC3
- lsls r4, 2
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x44
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x8
- str r1, [sp]
- movs r4, 0x10
- str r4, [sp, 0x4]
- movs r1, 0x20
- ldr r4, _080F2B50 @ =0x00003b90
-_080F2AC4:
- adds r4, r2
- mov r9, r4
-_080F2AC8:
- movs r6, 0
- lsls r1, 16
- str r1, [sp, 0x10]
- lsls r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- str r0, [sp, 0xC]
- ldr r0, _080F2B54 @ =gSprites
- mov r10, r0
-_080F2ADA:
- ldr r1, [sp, 0x10]
- asrs r0, r1, 16
- adds r5, r6, 0
- muls r5, r0
- ldr r2, [sp, 0x8]
- asrs r1, r2, 16
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- mov r0, r8
- ldr r3, [sp, 0xC]
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _080F2B9C
- lsls r0, r4, 4
- adds r1, r0, r4
- lsls r1, 2
- mov r2, r10
- adds r3, r1, r2
- mov r1, sp
- ldrh r1, [r1]
- strh r1, [r3, 0x2E]
- ldr r2, [sp, 0x4]
- adds r1, r2, r5
- strh r1, [r3, 0x30]
- strh r6, [r3, 0x32]
- strh r7, [r3, 0x34]
- adds r5, r0, 0
- cmp r7, 0x4
- bne _080F2B5C
- cmp r6, 0x1
- bne _080F2B5C
- ldr r0, _080F2B4C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2B58 @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- cmp r0, 0
- bne _080F2B36
- movs r1, 0x1
-_080F2B36:
- adds r0, r3, 0
- bl StartSpriteAnim
- b _080F2B6A
- .align 2, 0
-_080F2B40: .4byte gSpriteTemplate_83E4530
-_080F2B44: .4byte gSpriteTemplate_83E4548
-_080F2B48: .4byte 0x0000ffa0
-_080F2B4C: .4byte gUnknown_083DFEC4
-_080F2B50: .4byte 0x00003b90
-_080F2B54: .4byte gSprites
-_080F2B58: .4byte 0x00006e90
-_080F2B5C:
- adds r0, r5, r4
- lsls r0, 2
- add r0, r10
- lsls r1, r6, 24
- lsrs r1, 24
- bl StartSpriteAnim
-_080F2B6A:
- ldr r2, _080F2BB8 @ =gSprites
- mov r12, r2
- cmp r7, 0x3
- bhi _080F2B90
- cmp r6, 0x1
- bne _080F2B90
- adds r2, r5, r4
- lsls r2, 2
- add r2, r10
- ldrb r3, [r2, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r3
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2, 0x3]
-_080F2B90:
- lsls r1, r6, 2
- add r1, r9
- adds r0, r5, r4
- lsls r0, 2
- add r0, r12
- str r0, [r1]
-_080F2B9C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _080F2ADA
-_080F2BA6:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2BB8: .4byte gSprites
- thumb_func_end sub_80F29B8
-
- thumb_func_start sub_80F2BBC
-sub_80F2BBC: @ 80F2BBC
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- ldrh r1, [r2, 0x2E]
- adds r3, r0, r1
- strh r3, [r2, 0x20]
- lsls r0, 16
- asrs r4, r0, 16
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r4, r1
- bgt _080F2BE0
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bge _080F2BE8
- cmp r4, r1
- blt _080F2C08
-_080F2BE0:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- bgt _080F2C08
-_080F2BE8:
- ldrh r0, [r2, 0x30]
- strh r0, [r2, 0x20]
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x4
- bne _080F2C04
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F2C04
- ldr r0, _080F2C00 @ =sub_80F2C58
- b _080F2C06
- .align 2, 0
-_080F2C00: .4byte sub_80F2C58
-_080F2C04:
- ldr r0, _080F2C10 @ =SpriteCallbackDummy
-_080F2C06:
- str r0, [r2, 0x1C]
-_080F2C08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2C10: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F2BBC
-
- thumb_func_start sub_80F2C14
-sub_80F2C14: @ 80F2C14
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- ldrh r1, [r4, 0x2E]
- subs r0, r1
- strh r0, [r4, 0x20]
- adds r0, 0x20
- lsls r0, 16
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bls _080F2C50
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080F2C4A
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _080F2C44
- movs r0, 0x1
- bl FreeSpriteTilesByTag
- b _080F2C4A
-_080F2C44:
- movs r0, 0x2
- bl FreeSpriteTilesByTag
-_080F2C4A:
- adds r0, r4, 0
- bl DestroySprite
-_080F2C50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F2C14
-
- thumb_func_start sub_80F2C58
-sub_80F2C58: @ 80F2C58
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F2C78 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2C7C @ =0x00006e90
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x2
- cmp r0, 0
- bne _080F2C6E
- movs r1, 0x1
-_080F2C6E:
- adds r0, r2, 0
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080F2C78: .4byte gUnknown_083DFEC4
-_080F2C7C: .4byte 0x00006e90
- thumb_func_end sub_80F2C58
-
- thumb_func_start sub_80F2C80
-sub_80F2C80: @ 80F2C80
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F2CB0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2CB4 @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F2CB8 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F2CA8
-_080F2C9C:
- adds r0, r4, 0
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- bne _080F2C9C
-_080F2CA8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2CB0: .4byte gUnknown_083DFEC4
-_080F2CB4: .4byte 0x00000306
-_080F2CB8: .4byte 0x00006dac
- thumb_func_end sub_80F2C80
-
- thumb_func_start sub_80F2CBC
-sub_80F2CBC: @ 80F2CBC
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F2CD8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F2CDC @ =0x00000306
- adds r4, r0, r2
- ldrh r0, [r4]
- cmp r0, 0
- beq _080F2CE0
- cmp r0, 0x1
- beq _080F2CF0
- b _080F2CFC
- .align 2, 0
-_080F2CD8: .4byte gUnknown_083DFEC4
-_080F2CDC: .4byte 0x00000306
-_080F2CE0:
- adds r0, r1, 0
- bl sub_80F27DC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0x1
- b _080F2CFE
-_080F2CF0:
- adds r0, r1, 0
- bl sub_80F29B8
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F2CFC:
- movs r0, 0
-_080F2CFE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F2CBC
-
- thumb_func_start sub_80F2D04
-sub_80F2D04: @ 80F2D04
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F2D3C
- movs r1, 0
- ldr r0, _080F2D30 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080F2D34 @ =0x00003b88
- adds r2, r0, r3
- ldr r3, _080F2D38 @ =sub_80F2C14
-_080F2D1A:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- str r3, [r0, 0x1C]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F2D1A
- b _080F2D5A
- .align 2, 0
-_080F2D30: .4byte gUnknown_083DFEC4
-_080F2D34: .4byte 0x00003b88
-_080F2D38: .4byte sub_80F2C14
-_080F2D3C:
- movs r1, 0
- ldr r0, _080F2D60 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080F2D64 @ =0x00003b90
- adds r2, r0, r3
- ldr r3, _080F2D68 @ =sub_80F2C14
-_080F2D48:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- str r3, [r0, 0x1C]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F2D48
-_080F2D5A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F2D60: .4byte gUnknown_083DFEC4
-_080F2D64: .4byte 0x00003b90
-_080F2D68: .4byte sub_80F2C14
- thumb_func_end sub_80F2D04
-
- thumb_func_start sub_80F2D6C
-sub_80F2D6C: @ 80F2D6C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F2DA4
- movs r0, 0x1
- bl FreeSpriteTilesByTag
- movs r4, 0
- ldr r0, _080F2D9C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2DA0 @ =0x00003b88
- adds r5, r0, r1
-_080F2D86:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F2D86
- b _080F2DC8
- .align 2, 0
-_080F2D9C: .4byte gUnknown_083DFEC4
-_080F2DA0: .4byte 0x00003b88
-_080F2DA4:
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- movs r4, 0
- ldr r0, _080F2DD0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2DD4 @ =0x00003b90
- adds r5, r0, r1
-_080F2DB4:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F2DB4
-_080F2DC8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2DD0: .4byte gUnknown_083DFEC4
-_080F2DD4: .4byte 0x00003b90
- thumb_func_end sub_80F2D6C
-
- thumb_func_start sub_80F2DD8
-sub_80F2DD8: @ 80F2DD8
- push {lr}
- movs r0, 0x7
- movs r1, 0x7
- bl sub_80FBB3C
- movs r0, 0x8
- movs r1, 0x8
- bl sub_80FBCF0
- bl sub_80FBF94
- pop {r0}
- bx r0
- thumb_func_end sub_80F2DD8
-
- thumb_func_start sub_80F2DF4
-sub_80F2DF4: @ 80F2DF4
- push {lr}
- bl sub_80FAB10
- pop {r0}
- bx r0
- thumb_func_end sub_80F2DF4
-
- thumb_func_start sub_80F2E00
-sub_80F2E00: @ 80F2E00
- ldr r1, _080F2E10 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F2E14 @ =0x00008766
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x26
- strh r1, [r0, 0x20]
- bx lr
- .align 2, 0
-_080F2E10: .4byte gUnknown_083DFEC4
-_080F2E14: .4byte 0x00008766
- thumb_func_end sub_80F2E00
-
- thumb_func_start sub_80F2E18
-sub_80F2E18: @ 80F2E18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080F2EA8 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F2EAC @ =0x00008768
- adds r7, r4, r0
- ldr r1, [r7]
- mov r8, r1
- cmp r1, 0
- bne _080F2EFC
- ldr r0, _080F2EB0 @ =gUnknown_083E4568
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r1, sp
- ldr r0, _080F2EB4 @ =gSpriteTemplate_83E4570
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldr r0, _080F2EB8 @ =gUnknown_083E4588
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- lsls r0, r3, 13
- ldr r1, _080F2EBC @ =0x0000d1e4
- adds r0, r1
- adds r0, r4, r0
- str r0, [sp, 0x20]
- lsls r0, r3, 7
- adds r0, r4, r0
- str r0, [sp, 0x18]
- add r0, sp, 0x18
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F2EC0 @ =0x0000d1dc
- adds r5, r4, r2
- strh r0, [r5]
- add r0, sp, 0x20
- bl LoadSpriteSheet
- ldr r1, _080F2EC4 @ =0x0000d1de
- adds r6, r4, r1
- strh r0, [r6]
- mov r0, sp
- movs r1, 0x26
- movs r2, 0x68
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F2EC8
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- mov r2, r8
- str r2, [r7]
- b _080F2F26
- .align 2, 0
-_080F2EA8: .4byte gUnknown_083DFEC4
-_080F2EAC: .4byte 0x00008768
-_080F2EB0: .4byte gUnknown_083E4568
-_080F2EB4: .4byte gSpriteTemplate_83E4570
-_080F2EB8: .4byte gUnknown_083E4588
-_080F2EBC: .4byte 0x0000d1e4
-_080F2EC0: .4byte 0x0000d1dc
-_080F2EC4: .4byte 0x0000d1de
-_080F2EC8:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F2EF0 @ =gSprites
- adds r0, r1
- str r0, [r7]
- ldr r0, _080F2EF4 @ =0x0000d1e0
- adds r1, r4, r0
- ldrh r0, [r6]
- lsls r0, 5
- ldr r2, _080F2EF8 @ =0x06010000
- adds r0, r2
- str r0, [r1]
- ldrh r0, [r5]
- lsls r0, 4
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6
- strh r0, [r5]
- b _080F2F26
- .align 2, 0
-_080F2EF0: .4byte gSprites
-_080F2EF4: .4byte 0x0000d1e0
-_080F2EF8: .4byte 0x06010000
-_080F2EFC:
- lsls r0, r3, 13
- ldr r1, _080F2F34 @ =0x0000d1e4
- adds r0, r1
- adds r0, r4, r0
- ldr r2, _080F2F38 @ =0x0000d1e0
- adds r1, r4, r2
- ldr r2, [r1]
- ldr r1, _080F2F3C @ =0x040000d4
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _080F2F40 @ =0x80000400
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- lsls r0, r3, 7
- adds r0, r4, r0
- ldr r5, _080F2F44 @ =0x0000d1dc
- adds r1, r4, r5
- ldrh r1, [r1]
- movs r2, 0x20
- bl LoadPalette
-_080F2F26:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2F34: .4byte 0x0000d1e4
-_080F2F38: .4byte 0x0000d1e0
-_080F2F3C: .4byte 0x040000d4
-_080F2F40: .4byte 0x80000400
-_080F2F44: .4byte 0x0000d1dc
- thumb_func_end sub_80F2E18
-
- thumb_func_start sub_80F2F48
-sub_80F2F48: @ 80F2F48
- push {r4,lr}
- ldr r0, _080F2F74 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2F78 @ =0x00008768
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2F6C
- bl DestroySprite
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F2F6C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2F74: .4byte gUnknown_083DFEC4
-_080F2F78: .4byte 0x00008768
- thumb_func_end sub_80F2F48
-
- thumb_func_start sub_80F2F7C
-sub_80F2F7C: @ 80F2F7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F2E18
- ldr r0, _080F2FA0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F2FA4 @ =0x0000ced0
- adds r2, r0, r1
- ldr r1, _080F2FA8 @ =0x00008768
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- ldr r0, _080F2FAC @ =sub_80F2FEC
- str r0, [r1, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_080F2FA0: .4byte gUnknown_083DFEC4
-_080F2FA4: .4byte 0x0000ced0
-_080F2FA8: .4byte 0x00008768
-_080F2FAC: .4byte sub_80F2FEC
- thumb_func_end sub_80F2F7C
-
- thumb_func_start sub_80F2FB0
-sub_80F2FB0: @ 80F2FB0
- push {r4,r5,lr}
- ldr r0, _080F2FE0 @ =gUnknown_083DFEC4
- ldr r5, [r0]
- ldr r0, _080F2FE4 @ =0x0000ced0
- adds r4, r5, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F2FDA
- bl DestroySprite
- movs r0, 0x6
- bl FreeSpriteTilesByTag
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- movs r1, 0
- str r1, [r4]
- ldr r2, _080F2FE8 @ =0x00008768
- adds r0, r5, r2
- str r1, [r0]
-_080F2FDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F2FE0: .4byte gUnknown_083DFEC4
-_080F2FE4: .4byte 0x0000ced0
-_080F2FE8: .4byte 0x00008768
- thumb_func_end sub_80F2FB0
-
- thumb_func_start sub_80F2FEC
-sub_80F2FEC: @ 80F2FEC
- ldr r1, _080F3000 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F3004 @ =0x0000d15a
- adds r1, r2
- ldrh r1, [r1]
- adds r1, 0x28
- strh r1, [r0, 0x20]
- movs r1, 0x68
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F3000: .4byte gUnknown_083DFEC4
-_080F3004: .4byte 0x0000d15a
- thumb_func_end sub_80F2FEC
-
- thumb_func_start sub_80F3008
-sub_80F3008: @ 80F3008
- push {r4,r5,lr}
- sub sp, 0x20
- lsls r0, 24
- lsrs r2, r0, 24
- mov r1, sp
- ldr r0, _080F3060 @ =gUnknown_083E4590
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, _080F3064 @ =gUnknown_083E45A8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- cmp r2, 0x2
- bgt _080F3032
- cmp r2, 0x1
- blt _080F3032
- ldr r0, _080F3068 @ =gUnknown_08E9F988
- str r0, [sp, 0x18]
-_080F3032:
- mov r0, sp
- bl LoadSpriteSheets
- add r0, sp, 0x18
- bl LoadSpritePalette
- ldr r0, _080F306C @ =gSpriteTemplate_83E45B8
- movs r1, 0x5F
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F3078
- ldr r0, _080F3070 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3074 @ =0x000087cc
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _080F3120
- .align 2, 0
-_080F3060: .4byte gUnknown_083E4590
-_080F3064: .4byte gUnknown_083E45A8
-_080F3068: .4byte gUnknown_08E9F988
-_080F306C: .4byte gSpriteTemplate_83E45B8
-_080F3070: .4byte gUnknown_083DFEC4
-_080F3074: .4byte 0x000087cc
-_080F3078:
- ldr r0, _080F30F4 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r3, _080F30F8 @ =0x000087cc
- adds r2, r3
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F30FC @ =gSprites
- adds r0, r1
- str r0, [r2]
- movs r4, 0
- movs r5, 0
-_080F3090:
- lsls r2, r4, 7
- adds r2, 0x8
- lsls r2, 16
- asrs r2, 16
- ldr r0, _080F3100 @ =gSpriteTemplate_83E45F0
- movs r1, 0xA8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F3108
- ldr r0, _080F30F4 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- lsls r0, r4, 2
- ldr r3, _080F3104 @ =0x000087d0
- adds r2, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F30FC @ =gSprites
- adds r3, r0, r1
- str r3, [r2]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r3, 0x2E]
- strh r5, [r3, 0x30]
- movs r0, 0x1
- cmp r4, 0
- bne _080F30DE
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
-_080F30DE:
- strh r0, [r3, 0x32]
- strh r4, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r1, r4, 24
- lsrs r1, 24
- adds r0, r3, 0
- bl StartSpriteAnim
- b _080F3116
- .align 2, 0
-_080F30F4: .4byte gUnknown_083DFEC4
-_080F30F8: .4byte 0x000087cc
-_080F30FC: .4byte gSprites
-_080F3100: .4byte gSpriteTemplate_83E45F0
-_080F3104: .4byte 0x000087d0
-_080F3108:
- ldr r0, _080F3128 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _080F312C @ =0x000087d0
- adds r0, r2
- adds r0, r1
- str r5, [r0]
-_080F3116:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F3090
-_080F3120:
- add sp, 0x20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3128: .4byte gUnknown_083DFEC4
-_080F312C: .4byte 0x000087d0
- thumb_func_end sub_80F3008
-
- thumb_func_start sub_80F3130
-sub_80F3130: @ 80F3130
- push {r4-r6,lr}
- ldr r0, _080F3184 @ =gUnknown_083DFEC4
- ldr r6, [r0]
- ldr r0, _080F3188 @ =0x000087cc
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3154
- bl DestroySprite
- movs r0, 0x9
- bl FreeSpriteTilesByTag
- movs r0, 0x9
- bl FreeSpritePaletteByTag
- movs r0, 0
- str r0, [r4]
-_080F3154:
- movs r5, 0
- ldr r0, _080F318C @ =0x000087d0
- adds r6, r0
-_080F315A:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F316C
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F316C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080F315A
- movs r0, 0xA
- bl FreeSpriteTilesByTag
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3184: .4byte gUnknown_083DFEC4
-_080F3188: .4byte 0x000087cc
-_080F318C: .4byte 0x000087d0
- thumb_func_end sub_80F3130
-
- thumb_func_start sub_80F3190
-sub_80F3190: @ 80F3190
- ldr r1, _080F31A4 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _080F31A8 @ =0x0000876c
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 4
- adds r1, 0x10
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F31A4: .4byte gUnknown_083DFEC4
-_080F31A8: .4byte 0x0000876c
- thumb_func_end sub_80F3190
-
- thumb_func_start sub_80F31AC
-sub_80F31AC: @ 80F31AC
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _080F31E8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F31EC @ =0x000087c9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F325C
- movs r4, 0x36
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _080F3226
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r0, 0
- bne _080F31F4
- movs r2, 0
- ldr r4, _080F31F0 @ =0x00008770
- adds r0, r1, r4
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0
- bne _080F31DE
- movs r2, 0x1
-_080F31DE:
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r2, 2
- b _080F3214
- .align 2, 0
-_080F31E8: .4byte gUnknown_083DFEC4
-_080F31EC: .4byte 0x000087c9
-_080F31F0: .4byte 0x00008770
-_080F31F4:
- movs r4, 0
- ldr r2, _080F3250 @ =0x00008772
- adds r0, r1, r2
- ldr r5, _080F3254 @ =0x00008774
- adds r1, r5
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r2, r0
- bne _080F320C
- movs r4, 0x1
-_080F320C:
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r2, r4, 2
-_080F3214:
- ldrb r1, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- strh r0, [r3, 0x36]
-_080F3226:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _080F325C
- strh r1, [r3, 0x2E]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _080F3258
- ldrh r0, [r3, 0x32]
- ldrh r2, [r3, 0x26]
- adds r0, r2
- strh r0, [r3, 0x26]
- b _080F325C
- .align 2, 0
-_080F3250: .4byte 0x00008772
-_080F3254: .4byte 0x00008774
-_080F3258:
- strh r1, [r3, 0x30]
- strh r1, [r3, 0x26]
-_080F325C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F31AC
-
- thumb_func_start sub_80F3264
-sub_80F3264: @ 80F3264
- push {lr}
- movs r1, 0
- ldr r0, _080F328C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080F3290 @ =0x000087d0
- adds r2, r0, r3
- movs r3, 0x1
-_080F3272:
- lsls r0, r1, 2
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F327E
- strh r3, [r0, 0x36]
-_080F327E:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1
- bls _080F3272
- pop {r0}
- bx r0
- .align 2, 0
-_080F328C: .4byte gUnknown_083DFEC4
-_080F3290: .4byte 0x000087d0
- thumb_func_end sub_80F3264
-
- thumb_func_start sub_80F3294
-sub_80F3294: @ 80F3294
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080F32F4 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F32F8 @ =0x000087cc
- adds r0, r4, r1
- ldr r2, [r0]
- adds r2, 0x3E
- movs r0, 0x1
- adds r1, r6, 0
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r5, 0x5
- negs r5, r5
- adds r0, r5, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080F32FC @ =0x000087c9
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F331A
- cmp r6, 0x1
- bne _080F3308
- ldr r1, _080F3300 @ =0x000087d0
- adds r0, r4, r1
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- ldr r2, _080F3304 @ =0x000087d4
- adds r0, r4, r2
- ldr r1, [r0]
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
- b _080F331A
- .align 2, 0
-_080F32F4: .4byte gUnknown_083DFEC4
-_080F32F8: .4byte 0x000087cc
-_080F32FC: .4byte 0x000087c9
-_080F3300: .4byte 0x000087d0
-_080F3304: .4byte 0x000087d4
-_080F3308:
- ldr r1, _080F3320 @ =0x000087d0
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r2, _080F3324 @ =0x000087d4
- adds r0, r4, r2
- ldr r0, [r0]
- strh r1, [r0, 0x36]
-_080F331A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3320: .4byte 0x000087d0
-_080F3324: .4byte 0x000087d4
- thumb_func_end sub_80F3294
-
- thumb_func_start sub_80F3328
-sub_80F3328: @ 80F3328
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F334C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3350 @ =0x000087dc
- adds r0, r1
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _080F3354
- adds r0, r2, 0
- movs r1, 0
- bl StartSpriteAnim
- b _080F335C
- .align 2, 0
-_080F334C: .4byte gUnknown_083DFEC4
-_080F3350: .4byte 0x000087dc
-_080F3354:
- adds r0, r2, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_080F335C:
- pop {r0}
- bx r0
- thumb_func_end sub_80F3328
-
- thumb_func_start sub_80F3360
-sub_80F3360: @ 80F3360
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080F3384 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F3388 @ =0x000087dc
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _080F338C @ =0x000087da
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _080F3390
- movs r0, 0x4
- b _080F3392
- .align 2, 0
-_080F3384: .4byte gUnknown_083DFEC4
-_080F3388: .4byte 0x000087dc
-_080F338C: .4byte 0x000087da
-_080F3390:
- movs r0, 0x5
-_080F3392:
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F3360
-
- thumb_func_start sub_80F33A8
-sub_80F33A8: @ 80F33A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x50
- mov r1, sp
- ldr r0, _080F3440 @ =gUnknown_083E4628
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r3,r4}
- stm r1!, {r3,r4}
- add r4, sp, 0x20
- adds r1, r4, 0
- ldr r0, _080F3444 @ =gUnknown_083E4648
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- add r5, sp, 0x38
- adds r1, r5, 0
- ldr r0, _080F3448 @ =gSpriteTemplate_83E4660
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- bl LoadSpriteSheets
- adds r0, r4, 0
- bl LoadSpritePalettes
- movs r6, 0
- ldr r2, _080F344C @ =gUnknown_083DFEC4
- ldr r1, [r2]
- ldr r3, _080F3450 @ =0x000087da
- adds r0, r1, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- subs r0, 0x1
- adds r7, r5, 0
- cmp r6, r0
- bge _080F347A
- adds r5, r2, 0
- adds r0, r3, 0
- adds r0, r1
- mov r8, r0
-_080F3406:
- lsls r4, r6, 2
- adds r2, r4, r6
- lsls r2, 18
- movs r1, 0x80
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xE2
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F345C
- ldr r0, [r5]
- ldr r2, _080F3454 @ =0x000087e4
- adds r0, r2
- adds r0, r4
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r2, _080F3458 @ =gSprites
- adds r1, r2
- str r1, [r0]
- strh r6, [r1, 0x2E]
- b _080F3468
- .align 2, 0
-_080F3440: .4byte gUnknown_083E4628
-_080F3444: .4byte gUnknown_083E4648
-_080F3448: .4byte gSpriteTemplate_83E4660
-_080F344C: .4byte gUnknown_083DFEC4
-_080F3450: .4byte 0x000087da
-_080F3454: .4byte 0x000087e4
-_080F3458: .4byte gSprites
-_080F345C:
- ldr r0, [r5]
- ldr r3, _080F34C8 @ =0x000087e4
- adds r0, r3
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080F3468:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r4, r8
- movs r1, 0
- ldrsh r0, [r4, r1]
- subs r0, 0x1
- cmp r6, r0
- blt _080F3406
-_080F347A:
- movs r0, 0x4
- strh r0, [r7]
- ldr r0, _080F34CC @ =SpriteCallbackDummy
- str r0, [r7, 0x14]
- cmp r6, 0x5
- bhi _080F34EE
- ldr r5, _080F34D0 @ =gUnknown_083DFEC4
-_080F3488:
- lsls r4, r6, 2
- adds r2, r4, r6
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xE6
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F34D8
- ldr r2, [r5]
- ldr r0, _080F34C8 @ =0x000087e4
- adds r2, r0
- adds r2, r4
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r0, _080F34D4 @ =gSprites
- adds r1, r0
- str r1, [r2]
- ldrb r2, [r1, 0x3]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1, 0x3]
- b _080F34E4
- .align 2, 0
-_080F34C8: .4byte 0x000087e4
-_080F34CC: .4byte SpriteCallbackDummy
-_080F34D0: .4byte gUnknown_083DFEC4
-_080F34D4: .4byte gSprites
-_080F34D8:
- ldr r0, [r5]
- ldr r1, _080F3548 @ =0x000087e4
- adds r0, r1
- adds r0, r4
- movs r1, 0
- str r1, [r0]
-_080F34E4:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080F3488
-_080F34EE:
- movs r0, 0x5
- strh r0, [r7]
- ldr r0, _080F354C @ =sub_80F3360
- str r0, [r7, 0x14]
- lsls r5, r6, 2
- adds r2, r5, r6
- lsls r2, 18
- movs r3, 0x80
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- adds r0, r7, 0
- movs r1, 0xDE
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F3558
- ldr r0, _080F3550 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r6, _080F3548 @ =0x000087e4
- adds r4, r6
- adds r4, r5
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- ldr r0, _080F3554 @ =gSprites
- adds r1, r0
- str r1, [r4]
- ldrb r3, [r1, 0x1]
- movs r2, 0x3F
- adds r0, r2, 0
- ands r0, r3
- movs r3, 0x40
- orrs r0, r3
- strb r0, [r1, 0x1]
- ldr r1, [r4]
- ldrb r0, [r1, 0x3]
- ands r2, r0
- movs r0, 0x80
- orrs r2, r0
- strb r2, [r1, 0x3]
- b _080F3566
- .align 2, 0
-_080F3548: .4byte 0x000087e4
-_080F354C: .4byte sub_80F3360
-_080F3550: .4byte gUnknown_083DFEC4
-_080F3554: .4byte gSprites
-_080F3558:
- ldr r0, _080F3574 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3578 @ =0x000087e4
- adds r0, r1
- adds r0, r5
- movs r1, 0
- str r1, [r0]
-_080F3566:
- add sp, 0x50
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3574: .4byte gUnknown_083DFEC4
-_080F3578: .4byte 0x000087e4
- thumb_func_end sub_80F33A8
-
- thumb_func_start sub_80F357C
-sub_80F357C: @ 80F357C
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _080F35AC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F35B0 @ =0x000087e4
- adds r6, r0, r1
-_080F3588:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F359A
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F359A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x6
- bls _080F3588
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F35AC: .4byte gUnknown_083DFEC4
-_080F35B0: .4byte 0x000087e4
- thumb_func_end sub_80F357C
-
- thumb_func_start sub_80F35B4
-sub_80F35B4: @ 80F35B4
- push {r4,lr}
- ldr r0, _080F35FC @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F3600 @ =0x000076b0
- adds r0, r4, r1
- movs r1, 0x1C
- strh r1, [r0]
- ldr r1, _080F3604 @ =0x000076b2
- adds r2, r4, r1
- movs r1, 0x13
- strh r1, [r2]
- bl sub_80F727C
- bl sub_80F7404
- ldr r2, _080F3608 @ =gUnknown_083E4678
- movs r0, 0x1B
- movs r1, 0x15
- bl sub_80F7920
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xC0
- strh r1, [r0, 0x20]
- movs r1, 0x20
- strh r1, [r0, 0x22]
- ldr r1, _080F360C @ =sub_80F363C
- str r1, [r0, 0x1C]
- ldr r1, _080F3610 @ =0x000076ac
- adds r4, r1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F35FC: .4byte gUnknown_083DFEC4
-_080F3600: .4byte 0x000076b0
-_080F3604: .4byte 0x000076b2
-_080F3608: .4byte gUnknown_083E4678
-_080F360C: .4byte sub_80F363C
-_080F3610: .4byte 0x000076ac
- thumb_func_end sub_80F35B4
-
- thumb_func_start sub_80F3614
-sub_80F3614: @ 80F3614
- push {lr}
- ldr r0, _080F3634 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3638 @ =0x000076ac
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- movs r0, 0x1B
- bl FreeSpriteTilesByTag
- movs r0, 0x15
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_080F3634: .4byte gUnknown_083DFEC4
-_080F3638: .4byte 0x000076ac
- thumb_func_end sub_80F3614
-
- thumb_func_start sub_80F363C
-sub_80F363C: @ 80F363C
- push {lr}
- ldr r1, _080F365C @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r3, _080F3660 @ =0x00008fe9
- adds r2, r1, r3
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- ldr r3, _080F3664 @ =0x00008934
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .align 2, 0
-_080F365C: .4byte gUnknown_083DFEC4
-_080F3660: .4byte 0x00008fe9
-_080F3664: .4byte 0x00008934
- thumb_func_end sub_80F363C
-
- thumb_func_start sub_80F3668
-sub_80F3668: @ 80F3668
- push {lr}
- ldr r0, _080F368C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F3690 @ =0x00008fe9
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r2, _080F3694 @ =0x00008934
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0xB0
- movs r2, 0x20
- bl sub_80F7418
- pop {r0}
- bx r0
- .align 2, 0
-_080F368C: .4byte gUnknown_083DFEC4
-_080F3690: .4byte 0x00008fe9
-_080F3694: .4byte 0x00008934
- thumb_func_end sub_80F3668
-
- thumb_func_start sub_80F3698
-sub_80F3698: @ 80F3698
- push {r4,lr}
- ldr r0, _080F36DC @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r1, _080F36E0 @ =0x000087dc
- adds r0, r3, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r1, 2
- ldr r4, _080F36E4 @ =0x0000893c
- adds r1, r4
- adds r1, r3, r1
- ldr r2, _080F36E8 @ =0x00008fe9
- adds r0, r3, r2
- movs r2, 0
- ldrsb r2, [r0, r2]
- subs r4, 0x8
- adds r0, r3, r4
- adds r0, r2
- ldr r2, _080F36EC @ =0x000076b4
- adds r3, r2
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r1, 0x1]
- ldr r1, [r1]
- lsls r1, 11
- lsrs r1, 27
- ldrb r2, [r3]
- bl sub_80F4548
- bl sub_80F7470
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F36DC: .4byte gUnknown_083DFEC4
-_080F36E0: .4byte 0x000087dc
-_080F36E4: .4byte 0x0000893c
-_080F36E8: .4byte 0x00008fe9
-_080F36EC: .4byte 0x000076b4
- thumb_func_end sub_80F3698
-
- thumb_func_start sub_80F36F0
-sub_80F36F0: @ 80F36F0
- push {lr}
- ldr r0, _080F3718 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F371C @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F3720 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F3712
-_080F3708:
- bl sub_80F3724
- lsls r0, 24
- cmp r0, 0
- bne _080F3708
-_080F3712:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3718: .4byte gUnknown_083DFEC4
-_080F371C: .4byte 0x00000306
-_080F3720: .4byte 0x00006dac
- thumb_func_end sub_80F36F0
-
- thumb_func_start sub_80F3724
-sub_80F3724: @ 80F3724
- push {r4,lr}
- ldr r0, _080F3740 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F3744 @ =0x00000306
- adds r4, r1, r0
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _080F3764
- cmp r0, 0x1
- bgt _080F3748
- cmp r0, 0
- beq _080F374E
- b _080F377A
- .align 2, 0
-_080F3740: .4byte gUnknown_083DFEC4
-_080F3744: .4byte 0x00000306
-_080F3748:
- cmp r0, 0x2
- beq _080F376E
- b _080F377A
-_080F374E:
- ldr r0, _080F375C @ =gUnknown_083E3D00
- ldr r2, _080F3760 @ =0x0000984c
- adds r1, r2
- bl LZ77UnCompWram
- b _080F377E
- .align 2, 0
-_080F375C: .4byte gUnknown_083E3D00
-_080F3760: .4byte 0x0000984c
-_080F3764:
- bl sub_80F379C
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F376E:
- bl sub_80F37D0
- lsls r0, 24
- cmp r0, 0
- beq _080F377E
- b _080F378C
-_080F377A:
- movs r0, 0
- b _080F378E
-_080F377E:
- ldr r0, _080F3794 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F3798 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F378C:
- movs r0, 0x1
-_080F378E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3794: .4byte gUnknown_083DFEC4
-_080F3798: .4byte 0x00000306
- thumb_func_end sub_80F3724
-
- thumb_func_start sub_80F379C
-sub_80F379C: @ 80F379C
- push {lr}
- ldr r0, _080F37C4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F37C8 @ =0x0000bc93
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r1, _080F37CC @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F37BE
-_080F37B4:
- bl sub_80F37D0
- lsls r0, 24
- cmp r0, 0
- bne _080F37B4
-_080F37BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080F37C4: .4byte gUnknown_083DFEC4
-_080F37C8: .4byte 0x0000bc93
-_080F37CC: .4byte 0x00006dac
- thumb_func_end sub_80F379C
-
- thumb_func_start sub_80F37D0
-sub_80F37D0: @ 80F37D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F3898 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F389C @ =0x0000bc93
- adds r1, r2
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0xB
- bhi _080F38A8
- movs r3, 0
- mov r8, r3
- movs r7, 0xF
- mov r9, r7
-_080F37F0:
- ldr r2, [r2]
- ldr r1, _080F389C @ =0x0000bc93
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 8
- ldr r3, _080F38A0 @ =0x0000984c
- adds r0, r3
- adds r4, r2, r0
- lsls r1, 9
- ldr r7, _080F38A4 @ =0x0000a44c
- adds r1, r7
- adds r5, r2, r1
- movs r6, 0
-_080F380A:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x10
- bl CpuFastSet
- adds r5, 0x40
- adds r4, 0x20
- movs r1, 0
- adds r6, 0x1
- mov r12, r6
-_080F381E:
- movs r0, 0
- adds r6, r1, 0x1
-_080F3822:
- adds r4, 0x4
- movs r2, 0
- adds r3, r0, 0x1
-_080F3828:
- subs r4, 0x1
- ldrb r0, [r4]
- lsls r1, r0, 4
- lsrs r0, 4
- mov r7, r9
- ands r0, r7
- orrs r1, r0
- strb r1, [r5]
- adds r5, 0x1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080F3828
- adds r4, 0x4
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0x7
- bls _080F3822
- subs r4, 0x40
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bls _080F381E
- adds r4, 0x60
- mov r1, r12
- lsls r0, r1, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _080F380A
- ldr r2, _080F3898 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- ldr r7, _080F389C @ =0x0000bc93
- adds r1, r3, r7
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bhi _080F38A8
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x1
- bls _080F37F0
- adds r1, r7, 0
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0xB
- bhi _080F38A8
- movs r0, 0x1
- b _080F38AA
- .align 2, 0
-_080F3898: .4byte gUnknown_083DFEC4
-_080F389C: .4byte 0x0000bc93
-_080F38A0: .4byte 0x0000984c
-_080F38A4: .4byte 0x0000a44c
-_080F38A8:
- movs r0, 0
-_080F38AA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F37D0
-
- thumb_func_start sub_80F38B8
-sub_80F38B8: @ 80F38B8
- push {lr}
- ldr r0, _080F38E0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F38E4 @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F38E8 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F38DA
-_080F38D0:
- bl sub_80F38EC
- lsls r0, 24
- cmp r0, 0
- bne _080F38D0
-_080F38DA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F38E0: .4byte gUnknown_083DFEC4
-_080F38E4: .4byte 0x00000306
-_080F38E8: .4byte 0x00006dac
- thumb_func_end sub_80F38B8
-
- thumb_func_start sub_80F38EC
-sub_80F38EC: @ 80F38EC
- push {r4,lr}
- ldr r0, _080F3908 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080F390C @ =0x00000306
- adds r4, r2, r0
- ldrh r1, [r4]
- cmp r1, 0x1
- beq _080F3930
- cmp r1, 0x1
- bgt _080F3910
- cmp r1, 0
- beq _080F391A
- b _080F394E
- .align 2, 0
-_080F3908: .4byte gUnknown_083DFEC4
-_080F390C: .4byte 0x00000306
-_080F3910:
- cmp r1, 0x2
- beq _080F3938
- cmp r1, 0x3
- beq _080F3942
- b _080F394E
-_080F391A:
- ldr r3, _080F3928 @ =0x00009348
- adds r0, r2, r3
- str r1, [r0]
- ldr r3, _080F392C @ =0x0000bc92
- adds r0, r2, r3
- strb r1, [r0]
- b _080F3952
- .align 2, 0
-_080F3928: .4byte 0x00009348
-_080F392C: .4byte 0x0000bc92
-_080F3930:
- movs r0, 0
- bl sub_80F2E18
- b _080F3952
-_080F3938:
- bl sub_80F3970
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_080F3942:
- bl sub_80F39A4
- lsls r0, 24
- cmp r0, 0
- beq _080F3952
- b _080F3960
-_080F394E:
- movs r0, 0
- b _080F3962
-_080F3952:
- ldr r0, _080F3968 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F396C @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F3960:
- movs r0, 0x1
-_080F3962:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3968: .4byte gUnknown_083DFEC4
-_080F396C: .4byte 0x00000306
- thumb_func_end sub_80F38EC
-
- thumb_func_start sub_80F3970
-sub_80F3970: @ 80F3970
- push {lr}
- ldr r0, _080F3998 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F399C @ =0x0000bc93
- adds r2, r0, r1
- movs r1, 0
- strb r1, [r2]
- ldr r1, _080F39A0 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F3992
-_080F3988:
- bl sub_80F39A4
- lsls r0, 24
- cmp r0, 0
- bne _080F3988
-_080F3992:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3998: .4byte gUnknown_083DFEC4
-_080F399C: .4byte 0x0000bc93
-_080F39A0: .4byte 0x00006dac
- thumb_func_end sub_80F3970
-
- thumb_func_start sub_80F39A4
-sub_80F39A4: @ 80F39A4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r0, _080F3A18 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F3A1C @ =0x0000bc93
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xB
- bhi _080F3A30
- ldrb r0, [r4]
- lsls r0, 9
- ldr r2, _080F3A20 @ =0x0000a44c
- adds r0, r2
- adds r0, r1, r0
- str r0, [sp]
- ldr r5, _080F3A24 @ =0xffff0000
- ldr r2, [sp, 0x4]
- ands r2, r5
- movs r0, 0x80
- lsls r0, 2
- orrs r2, r0
- str r2, [sp, 0x4]
- ldrb r1, [r4]
- adds r1, 0xB
- lsls r1, 16
- ldr r0, _080F3A28 @ =0x0000ffff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldrb r0, [r4]
- cmp r0, 0x4
- bhi _080F3A04
- lsls r0, 5
- ldr r1, _080F3A2C @ =gUnknown_083E3C60
- adds r0, r1
- str r0, [sp, 0x8]
- ldrb r2, [r4]
- adds r2, 0xA
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_080F3A04:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bhi _080F3A30
- movs r0, 0x1
- b _080F3A32
- .align 2, 0
-_080F3A18: .4byte gUnknown_083DFEC4
-_080F3A1C: .4byte 0x0000bc93
-_080F3A20: .4byte 0x0000a44c
-_080F3A24: .4byte 0xffff0000
-_080F3A28: .4byte 0x0000ffff
-_080F3A2C: .4byte gUnknown_083E3C60
-_080F3A30:
- movs r0, 0
-_080F3A32:
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F39A4
-
- thumb_func_start sub_80F3A3C
-sub_80F3A3C: @ 80F3A3C
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r4, 0x2
- bhi _080F3A60
- lsls r0, r4, 3
- adds r0, r4
- adds r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _080F3A5C @ =gUnknown_083DFEC4
- b _080F3A78
- .align 2, 0
-_080F3A5C: .4byte gUnknown_083DFEC4
-_080F3A60:
- ldr r2, _080F3AD0 @ =gUnknown_083DFEC4
- ldr r1, [r2]
- ldr r3, _080F3AD4 @ =0x0000bc8e
- adds r0, r1, r3
- ldrb r0, [r0]
- ldr r6, _080F3AD8 @ =0x0000bc8f
- adds r1, r6
- ldrb r1, [r1]
- subs r0, r1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
-_080F3A78:
- ldr r0, [r2]
- ldr r7, _080F3ADC @ =0x0000bc4c
- adds r0, r7
- adds r0, r1
- ldrb r2, [r0]
- mov r1, sp
- ldr r0, _080F3AE0 @ =gSpriteTemplate_83E476C
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- mov r3, sp
- ldr r1, _080F3AE4 @ =gUnknown_083E4698
- lsls r2, 2
- adds r0, r2, r1
- ldrh r0, [r0]
- adds r0, 0xB
- strh r0, [r3]
- adds r1, 0x2
- adds r2, r1
- ldrh r0, [r2]
- adds r0, 0xA
- strh r0, [r3, 0x2]
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, r4, 20
- movs r3, 0xA0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- mov r0, sp
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F3AE8
- movs r0, 0
- b _080F3AF2
- .align 2, 0
-_080F3AD0: .4byte gUnknown_083DFEC4
-_080F3AD4: .4byte 0x0000bc8e
-_080F3AD8: .4byte 0x0000bc8f
-_080F3ADC: .4byte 0x0000bc4c
-_080F3AE0: .4byte gSpriteTemplate_83E476C
-_080F3AE4: .4byte gUnknown_083E4698
-_080F3AE8:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F3AFC @ =gSprites
- adds r0, r1
-_080F3AF2:
- add sp, 0x18
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080F3AFC: .4byte gSprites
- thumb_func_end sub_80F3A3C
-
- thumb_func_start sub_80F3B00
-sub_80F3B00: @ 80F3B00
- push {r4,lr}
- ldr r0, _080F3B34 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F3B38 @ =0x0000bc90
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F3B3C @ =0x0000bc91
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F3A3C
- adds r2, r0, 0
- ldr r1, _080F3B40 @ =0x00009348
- adds r0, r4, r1
- str r2, [r0]
- cmp r2, 0
- beq _080F3B48
- adds r0, r2, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r2, _080F3B44 @ =0x0000bc92
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- b _080F3B4E
- .align 2, 0
-_080F3B34: .4byte gUnknown_083DFEC4
-_080F3B38: .4byte 0x0000bc90
-_080F3B3C: .4byte 0x0000bc91
-_080F3B40: .4byte 0x00009348
-_080F3B44: .4byte 0x0000bc92
-_080F3B48:
- ldr r1, _080F3B54 @ =0x0000bc92
- adds r0, r4, r1
- strb r2, [r0]
-_080F3B4E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3B54: .4byte 0x0000bc92
- thumb_func_end sub_80F3B00
-
- thumb_func_start sub_80F3B58
-sub_80F3B58: @ 80F3B58
- push {lr}
- ldr r0, _080F3B6C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F3B70 @ =0x0000bc92
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- bne _080F3B74
- movs r0, 0
- b _080F3B8A
- .align 2, 0
-_080F3B6C: .4byte gUnknown_083DFEC4
-_080F3B70: .4byte 0x0000bc92
-_080F3B74:
- ldr r3, _080F3B90 @ =0x00009348
- adds r0, r1, r3
- ldr r0, [r0]
- adds r0, 0x3F
- ldrb r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- eors r0, r1
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r2]
-_080F3B8A:
- pop {r1}
- bx r1
- .align 2, 0
-_080F3B90: .4byte 0x00009348
- thumb_func_end sub_80F3B58
-
- thumb_func_start sub_80F3B94
-sub_80F3B94: @ 80F3B94
- push {r4,lr}
- ldr r0, _080F3BB8 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F3BBC @ =0x00009348
- adds r0, r4, r1
- ldr r2, [r0]
- cmp r2, 0
- beq _080F3BC4
- adds r0, r2, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, _080F3BC0 @ =0x0000bc92
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080F3BCA
- .align 2, 0
-_080F3BB8: .4byte gUnknown_083DFEC4
-_080F3BBC: .4byte 0x00009348
-_080F3BC0: .4byte 0x0000bc92
-_080F3BC4:
- ldr r1, _080F3BD0 @ =0x0000bc92
- adds r0, r4, r1
- strb r2, [r0]
-_080F3BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3BD0: .4byte 0x0000bc92
- thumb_func_end sub_80F3B94
-
- thumb_func_start sub_80F3BD4
-sub_80F3BD4: @ 80F3BD4
- push {r4-r6,lr}
- ldr r0, _080F3C18 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F3C1C @ =0x0000bc92
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080F3C24
- ldr r0, _080F3C20 @ =0x00009348
- adds r4, r1, r0
- ldr r0, [r4]
- adds r0, 0x3F
- ldrb r0, [r0]
- lsrs r0, 5
- movs r1, 0x1
- eors r0, r1
- ands r0, r1
- strb r0, [r5]
- adds r6, r0, 0
- cmp r6, 0
- bne _080F3C12
- ldr r0, [r4]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- bl DestroySprite
- str r6, [r4]
-_080F3C12:
- ldrb r0, [r5]
- b _080F3C26
- .align 2, 0
-_080F3C18: .4byte gUnknown_083DFEC4
-_080F3C1C: .4byte 0x0000bc92
-_080F3C20: .4byte 0x00009348
-_080F3C24:
- movs r0, 0
-_080F3C26:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F3BD4
-
- thumb_func_start sub_80F3C2C
-sub_80F3C2C: @ 80F3C2C
- push {r4,lr}
- ldr r0, _080F3C8C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3C90 @ =0x00009348
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3C50
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
-_080F3C50:
- movs r4, 0
-_080F3C52:
- adds r0, r4, 0
- adds r0, 0xB
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xB
- bls _080F3C52
- movs r4, 0
-_080F3C6A:
- adds r0, r4, 0
- adds r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F3C6A
- bl sub_80F2F48
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3C8C: .4byte gUnknown_083DFEC4
-_080F3C90: .4byte 0x00009348
- thumb_func_end sub_80F3C2C
-
- thumb_func_start sub_80F3C94
-sub_80F3C94: @ 80F3C94
- push {lr}
- sub sp, 0x10
- ldr r0, _080F3CDC @ =gUnknown_083E4784
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _080F3CE0 @ =gUnknown_083E478C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- mov r0, sp
- bl LoadSpriteSheet
- add r0, sp, 0x8
- bl LoadSpritePalette
- movs r1, 0
- ldr r0, _080F3CE4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r3, 0x88
- lsls r3, 8
- adds r2, r0, r3
- movs r3, 0
-_080F3CC6:
- lsls r0, r1, 2
- adds r0, r2, r0
- str r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9
- bls _080F3CC6
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080F3CDC: .4byte gUnknown_083E4784
-_080F3CE0: .4byte gUnknown_083E478C
-_080F3CE4: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F3C94
-
- thumb_func_start sub_80F3CE8
-sub_80F3CE8: @ 80F3CE8
- push {lr}
- bl move_anim_execute
- movs r0, 0x17
- bl FreeSpriteTilesByTag
- movs r0, 0xF
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_80F3CE8
-
- thumb_func_start sub_80F3D00
-sub_80F3D00: @ 80F3D00
- push {r4,r5,lr}
- ldr r0, _080F3D34 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F3D38 @ =0x000087dc
- adds r0, r2, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 2
- ldr r1, _080F3D3C @ =0x0000893c
- adds r0, r1
- adds r0, r2, r0
- ldrb r1, [r0, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F3D94
- ldr r3, _080F3D40 @ =0x00008fe9
- adds r0, r2, r3
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldr r3, _080F3D44 @ =0x00008931
- adds r0, r2, r3
- adds r0, r1
- ldrb r5, [r0]
- movs r4, 0
- b _080F3D86
- .align 2, 0
-_080F3D34: .4byte gUnknown_083DFEC4
-_080F3D38: .4byte 0x000087dc
-_080F3D3C: .4byte 0x0000893c
-_080F3D40: .4byte 0x00008fe9
-_080F3D44: .4byte 0x00008931
-_080F3D48:
- ldr r0, _080F3D9C @ =gSpriteTemplate_83E4800
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F3D8C
- ldr r0, _080F3DA0 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- lsls r0, r4, 2
- movs r3, 0x88
- lsls r3, 8
- adds r2, r3
- adds r2, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F3DA4 @ =gSprites
- adds r0, r1
- str r0, [r2]
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080F3D86:
- adds r0, r5, 0x1
- cmp r4, r0
- blt _080F3D48
-_080F3D8C:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80F3F20
-_080F3D94:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3D9C: .4byte gSpriteTemplate_83E4800
-_080F3DA0: .4byte gUnknown_083DFEC4
-_080F3DA4: .4byte gSprites
- thumb_func_end sub_80F3D00
-
- thumb_func_start move_anim_execute
-move_anim_execute: @ 80F3DA8
- push {r4-r6,lr}
- movs r5, 0
- ldr r0, _080F3DD8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r6, r0, r1
-_080F3DB6:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3DD2
- bl DestroySprite
- movs r0, 0
- str r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3DB6
-_080F3DD2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3DD8: .4byte gUnknown_083DFEC4
- thumb_func_end move_anim_execute
-
- thumb_func_start sub_80F3DDC
-sub_80F3DDC: @ 80F3DDC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080F3DFE
- movs r0, 0
- strh r0, [r1, 0x30]
- ldrh r0, [r1, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_80F3F20
-_080F3DFE:
- pop {r0}
- bx r0
- thumb_func_end sub_80F3DDC
-
- thumb_func_start sub_80F3E04
-sub_80F3E04: @ 80F3E04
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F3E1C
- movs r0, 0
- strh r0, [r2, 0x30]
- ldr r0, _080F3E20 @ =sub_80F3DDC
- str r0, [r2, 0x1C]
-_080F3E1C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F3E20: .4byte sub_80F3DDC
- thumb_func_end sub_80F3E04
-
- thumb_func_start sub_80F3E24
-sub_80F3E24: @ 80F3E24
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _080F3E64 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F3E68 @ =0x00008768
- adds r4, r0, r1
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3E70
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r1, r0
- ldr r2, _080F3E6C @ =gUnknown_083E4794
- movs r5, 0x2E
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- adds r0, r1
- strh r0, [r3, 0x20]
- ldr r0, [r4]
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- lsls r0, 2
- adds r2, 0x2
- adds r0, r2
- ldrh r0, [r0]
- adds r0, r1
- b _080F3E8E
- .align 2, 0
-_080F3E64: .4byte gUnknown_083DFEC4
-_080F3E68: .4byte 0x00008768
-_080F3E6C: .4byte gUnknown_083E4794
-_080F3E70:
- ldr r1, _080F3E98 @ =gUnknown_083E4794
- movs r5, 0x2E
- ldrsh r0, [r3, r5]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x28
- strh r0, [r3, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- adds r0, 0x68
-_080F3E8E:
- strh r0, [r3, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3E98: .4byte gUnknown_083E4794
- thumb_func_end sub_80F3E24
-
- thumb_func_start sub_80F3E9C
-sub_80F3E9C: @ 80F3E9C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _080F3ECA
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bne _080F3F14
- adds r0, r4, 0
- movs r1, 0
- bl SeekSpriteAnim
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080F3ECA:
- adds r0, r4, 0
- bl sub_80F3E24
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080F3F14
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080F3F10
- cmp r1, 0x9
- bne _080F3F08
- bl sub_80F3FAC
- ldr r0, _080F3F04 @ =sub_80F3E04
- b _080F3F12
- .align 2, 0
-_080F3F04: .4byte sub_80F3E04
-_080F3F08:
- ldr r0, _080F3F0C @ =sub_80F3DDC
- b _080F3F12
- .align 2, 0
-_080F3F0C: .4byte sub_80F3DDC
-_080F3F10:
- ldr r0, _080F3F1C @ =SpriteCallbackDummy
-_080F3F12:
- str r0, [r4, 0x1C]
-_080F3F14:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3F1C: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F3E9C
-
- thumb_func_start sub_80F3F20
-sub_80F3F20: @ 80F3F20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r5, 0
- ldr r0, _080F3F6C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r7, r0, r1
-_080F3F3C:
- lsls r0, r5, 2
- adds r4, r7, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3F92
- strh r5, [r0, 0x2E]
- ldr r1, [r4]
- lsls r0, r5, 4
- adds r0, 0x1
- strh r0, [r1, 0x30]
- ldr r0, [r4]
- strh r6, [r0, 0x32]
- ldr r0, [r4]
- strh r5, [r0, 0x34]
- mov r3, r8
- cmp r3, 0
- beq _080F3F62
- cmp r6, 0x9
- beq _080F3F74
-_080F3F62:
- ldr r1, [r4]
- ldr r0, _080F3F70 @ =sub_80F3E9C
- str r0, [r1, 0x1C]
- b _080F3F92
- .align 2, 0
-_080F3F6C: .4byte gUnknown_083DFEC4
-_080F3F70: .4byte sub_80F3E9C
-_080F3F74:
- ldr r0, [r4]
- bl sub_80F3E24
- bl sub_80F3FAC
- ldr r2, [r4]
- ldr r0, _080F3FA8 @ =sub_80F3E04
- str r0, [r2, 0x1C]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x5
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- strb r0, [r2]
-_080F3F92:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3F3C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3FA8: .4byte sub_80F3E04
- thumb_func_end sub_80F3F20
-
- thumb_func_start sub_80F3FAC
-sub_80F3FAC: @ 80F3FAC
- push {r4-r7,lr}
- movs r5, 0
- ldr r0, _080F3FEC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 8
- adds r6, r0, r1
- movs r0, 0x5
- negs r0, r0
- adds r7, r0, 0
-_080F3FC0:
- lsls r0, r5, 2
- adds r4, r6, r0
- ldr r0, [r4]
- cmp r0, 0
- beq _080F3FDA
- movs r1, 0
- bl SeekSpriteAnim
- ldr r1, [r4]
- adds r1, 0x3E
- ldrb r0, [r1]
- ands r0, r7
- strb r0, [r1]
-_080F3FDA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F3FC0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F3FEC: .4byte gUnknown_083DFEC4
- thumb_func_end sub_80F3FAC
-
- thumb_func_start sub_80F3FF0
-sub_80F3FF0: @ 80F3FF0
- push {lr}
- ldr r0, _080F4018 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F401C @ =0x00000306
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r1, _080F4020 @ =0x00006dac
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F4012
-_080F4008:
- bl sub_80F4024
- lsls r0, 24
- cmp r0, 0
- bne _080F4008
-_080F4012:
- pop {r0}
- bx r0
- .align 2, 0
-_080F4018: .4byte gUnknown_083DFEC4
-_080F401C: .4byte 0x00000306
-_080F4020: .4byte 0x00006dac
- thumb_func_end sub_80F3FF0
-
- thumb_func_start sub_80F4024
-sub_80F4024: @ 80F4024
- push {r4,lr}
- sub sp, 0x10
- ldr r0, _080F4040 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F4044 @ =0x00000306
- adds r0, r4, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080F4068
- cmp r0, 0x1
- bgt _080F4048
- cmp r0, 0
- beq _080F4052
- b _080F4106
- .align 2, 0
-_080F4040: .4byte gUnknown_083DFEC4
-_080F4044: .4byte 0x00000306
-_080F4048:
- cmp r0, 0x2
- beq _080F4084
- cmp r0, 0x3
- beq _080F40B8
- b _080F4106
-_080F4052:
- ldr r0, _080F4060 @ =gUnknown_083E329C
- ldr r2, _080F4064 @ =0x000131e4
- adds r1, r4, r2
- bl LZ77UnCompWram
- b _080F4118
- .align 2, 0
-_080F4060: .4byte gUnknown_083E329C
-_080F4064: .4byte 0x000131e4
-_080F4068:
- ldr r1, _080F407C @ =0x000131e4
- adds r0, r4, r1
- str r0, [sp]
- ldr r0, _080F4080 @ =0x00181000
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- b _080F4118
- .align 2, 0
-_080F407C: .4byte 0x000131e4
-_080F4080: .4byte 0x00181000
-_080F4084:
- ldr r0, _080F40B4 @ =gUnknown_083E4818
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- add r0, sp, 0x8
- bl LoadSpritePalette
- movs r0, 0x10
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC2
- lsls r1, 2
- adds r2, r4, r1
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- movs r0, 0x3
- negs r0, r0
- bics r0, r1
- str r0, [r2]
- b _080F4118
- .align 2, 0
-_080F40B4: .4byte gUnknown_083E4818
-_080F40B8:
- ldr r0, _080F40E4 @ =gSpriteTemplate_83E4850
- movs r1, 0xDA
- movs r2, 0xE
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080F40F0
- ldr r0, _080F40E8 @ =0x00006d98
- adds r2, r4, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F40EC @ =gSprites
- adds r0, r1
- str r0, [r2]
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _080F40F8
- .align 2, 0
-_080F40E4: .4byte gSpriteTemplate_83E4850
-_080F40E8: .4byte 0x00006d98
-_080F40EC: .4byte gSprites
-_080F40F0:
- ldr r2, _080F410C @ =0x00006d98
- adds r1, r4, r2
- movs r0, 0
- str r0, [r1]
-_080F40F8:
- ldr r0, _080F4110 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F4114 @ =0x00000306
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080F4106:
- movs r0, 0
- b _080F4128
- .align 2, 0
-_080F410C: .4byte 0x00006d98
-_080F4110: .4byte gUnknown_083DFEC4
-_080F4114: .4byte 0x00000306
-_080F4118:
- ldr r0, _080F4130 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F4134 @ =0x00000306
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_080F4128:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4130: .4byte gUnknown_083DFEC4
-_080F4134: .4byte 0x00000306
- thumb_func_end sub_80F4024
-
- thumb_func_start sub_80F4138
-sub_80F4138: @ 80F4138
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F4170 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- movs r1, 0xC3
- lsls r1, 2
- adds r0, r1
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bgt _080F4174
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F418E
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x1
- b _080F418C
- .align 2, 0
-_080F4170: .4byte gUnknown_083DFEC4
-_080F4174:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F418E
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- movs r0, 0
-_080F418C:
- strh r0, [r2, 0x2E]
-_080F418E:
- pop {r0}
- bx r0
- thumb_func_end sub_80F4138
-
- thumb_func_start sub_80F4194
-sub_80F4194: @ 80F4194
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- adds r2, r1, 0
- ldr r0, _080F42A4 @ =gUnknown_083DFEC8
- ldr r6, [r0]
- mov r0, sp
- ldr r1, _080F42A8 @ =0x00001111
- adds r5, r1, 0
- strh r5, [r0]
- ldr r4, _080F42AC @ =0x040000d4
- str r0, [r4]
- str r6, [r4, 0x4]
- ldr r3, _080F42B0 @ =0x81000140
- str r3, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0x80
- lsls r0, 3
- adds r1, r6, r0
- mov r0, sp
- strh r5, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r3, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _080F42B4 @ =gWindowConfig_81E70F0
- adds r1, r6, 0
- bl sub_8004E3C
- movs r3, 0x88
- lsls r3, 2
- adds r1, r6, r3
- mov r0, sp
- movs r3, 0
- strh r3, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r2, _080F42B8 @ =0x81000030
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r0, 0xC4
- lsls r0, 3
- adds r1, r6, r0
- mov r0, sp
- strh r3, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- movs r1, 0x80
- lsls r1, 2
- adds r2, r6, r1
- ldr r0, [r2]
- ldr r1, _080F42BC @ =0x0fffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, [r2, 0x4]
- ands r0, r1
- str r0, [r2, 0x4]
- ldr r0, [r2, 0x8]
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0xC]
- ands r0, r1
- str r0, [r2, 0xC]
- ldr r0, [r2, 0x10]
- ands r0, r1
- str r0, [r2, 0x10]
- ldr r0, [r2, 0x14]
- ands r0, r1
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- ands r0, r1
- str r0, [r2, 0x18]
- ldr r0, [r2, 0x1C]
- ands r0, r1
- str r0, [r2, 0x1C]
- movs r3, 0xC0
- lsls r3, 3
- adds r2, r6, r3
- ldr r0, [r2]
- ands r0, r1
- str r0, [r2]
- ldr r0, [r2, 0x4]
- ands r0, r1
- str r0, [r2, 0x4]
- ldr r0, [r2, 0x8]
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0xC]
- ands r0, r1
- str r0, [r2, 0xC]
- ldr r0, [r2, 0x10]
- ands r0, r1
- str r0, [r2, 0x10]
- ldr r0, [r2, 0x14]
- ands r0, r1
- str r0, [r2, 0x14]
- ldr r0, [r2, 0x18]
- ands r0, r1
- str r0, [r2, 0x18]
- ldr r0, [r2, 0x1C]
- ands r0, r1
- str r0, [r2, 0x1C]
- movs r1, 0
- ldr r2, _080F42C0 @ =0x80000040
-_080F4268:
- lsls r0, r1, 7
- adds r0, r6, r0
- str r0, [r4]
- lsls r0, r1, 8
- adds r0, r7, r0
- str r0, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- lsls r0, r1, 7
- movs r3, 0x80
- lsls r3, 3
- adds r0, r3
- adds r0, r6, r0
- str r0, [r4]
- lsls r0, r1, 3
- adds r0, 0x4
- lsls r0, 5
- adds r0, r7, r0
- str r0, [r4, 0x4]
- str r2, [r4, 0x8]
- ldr r0, [r4, 0x8]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080F4268
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F42A4: .4byte gUnknown_083DFEC8
-_080F42A8: .4byte 0x00001111
-_080F42AC: .4byte 0x040000d4
-_080F42B0: .4byte 0x81000140
-_080F42B4: .4byte gWindowConfig_81E70F0
-_080F42B8: .4byte 0x81000030
-_080F42BC: .4byte 0x0fffffff
-_080F42C0: .4byte 0x80000040
- thumb_func_end sub_80F4194
-
- thumb_func_start sub_80F42C4
-sub_80F42C4: @ 80F42C4
- push {r4-r7,lr}
- sub sp, 0x8
- adds r1, r0, 0
- ldr r0, _080F433C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F4340 @ =0x0000d1e4
- adds r0, r2
- str r0, [sp]
- ldr r2, _080F4344 @ =0x001a0500
- str r2, [sp, 0x4]
- bl sub_80F4194
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _080F4348 @ =gUnknown_083E4868
- bl LoadSpritePalette
- movs r5, 0
- movs r4, 0
- ldr r6, _080F434C @ =gSprites
-_080F42EE:
- lsls r1, r4, 21
- movs r7, 0xE2
- lsls r7, 15
- adds r1, r7
- asrs r1, 16
- ldr r0, _080F4350 @ =gSpriteTemplate_83E4878
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080F4360
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r6
- ldrh r2, [r3, 0x4]
- lsls r0, r2, 22
- lsrs r0, 22
- adds r0, r5, r0
- ldr r7, _080F4354 @ =0x000003ff
- adds r1, r7, 0
- ands r0, r1
- ldr r7, _080F4358 @ =0xfffffc00
- adds r1, r7, 0
- ands r2, r1
- orrs r2, r0
- strh r2, [r3, 0x4]
- ldr r0, _080F433C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _080F435C @ =0x0000ced4
- adds r0, r2
- adds r0, r1
- str r3, [r0]
- b _080F4370
- .align 2, 0
-_080F433C: .4byte gUnknown_083DFEC4
-_080F4340: .4byte 0x0000d1e4
-_080F4344: .4byte 0x001a0500
-_080F4348: .4byte gUnknown_083E4868
-_080F434C: .4byte gSprites
-_080F4350: .4byte gSpriteTemplate_83E4878
-_080F4354: .4byte 0x000003ff
-_080F4358: .4byte 0xfffffc00
-_080F435C: .4byte 0x0000ced4
-_080F4360:
- ldr r0, _080F438C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- lsls r0, r4, 2
- ldr r7, _080F4390 @ =0x0000ced4
- adds r1, r7
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080F4370:
- adds r0, r5, 0
- adds r0, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F42EE
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F438C: .4byte gUnknown_083DFEC4
-_080F4390: .4byte 0x0000ced4
- thumb_func_end sub_80F42C4
-
- thumb_func_start sub_80F4394
-sub_80F4394: @ 80F4394
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _080F43CC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F43D0 @ =0x0000ced4
- adds r5, r0, r1
-_080F43A0:
- lsls r0, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080F43AE
- bl DestroySprite
-_080F43AE:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080F43A0
- movs r0, 0x1A
- bl FreeSpriteTilesByTag
- movs r0, 0x12
- bl FreeSpritePaletteByTag
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F43CC: .4byte gUnknown_083DFEC4
-_080F43D0: .4byte 0x0000ced4
- thumb_func_end sub_80F4394
-
- thumb_func_start sub_80F43D4
-sub_80F43D4: @ 80F43D4
- push {r4,lr}
- adds r1, r0, 0
- ldr r0, _080F4410 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F4414 @ =0x0000d1e4
- adds r4, r0, r2
- adds r0, r4, 0
- bl sub_80F4194
- movs r0, 0x1A
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080F4418 @ =0x0000ffff
- cmp r1, r0
- beq _080F4408
- lsls r0, r1, 5
- ldr r1, _080F441C @ =0x06010000
- adds r0, r1
- ldr r1, _080F4420 @ =0x040000d4
- str r4, [r1]
- str r0, [r1, 0x4]
- ldr r0, _080F4424 @ =0x84000140
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_080F4408:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4410: .4byte gUnknown_083DFEC4
-_080F4414: .4byte 0x0000d1e4
-_080F4418: .4byte 0x0000ffff
-_080F441C: .4byte 0x06010000
-_080F4420: .4byte 0x040000d4
-_080F4424: .4byte 0x84000140
- thumb_func_end sub_80F43D4
-
- thumb_func_start sub_80F4428
-sub_80F4428: @ 80F4428
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- bl sub_80F6514
- pop {r1}
- bx r1
- thumb_func_end sub_80F4428
-
- thumb_func_start sub_80F443C
-sub_80F443C: @ 80F443C
- push {r4,lr}
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r1, _080F4458 @ =gOtherText_Number
- bl StringCopy
- adds r1, r4, 0
- movs r2, 0x38
- movs r3, 0x1
- bl sub_8072C14
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4458: .4byte gOtherText_Number
- thumb_func_end sub_80F443C
-
- thumb_func_start sub_80F445C
-sub_80F445C: @ 80F445C
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x17
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- movs r3, 0xFC
- strb r3, [r4]
- movs r2, 0x11
- strb r2, [r4, 0x1]
- movs r1, 0x1
- strb r1, [r4, 0x2]
- adds r4, 0x3
- movs r0, 0xBA
- strb r0, [r4]
- adds r4, 0x1
- strb r3, [r4]
- strb r2, [r4, 0x1]
- strb r1, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _080F44A8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F44AC @ =0x00008774
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r1, 0x1
- adds r0, r4, 0
- movs r2, 0x32
- movs r3, 0x1
- bl sub_8072C14
- adds r4, r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F44A8: .4byte gUnknown_083DFEC4
-_080F44AC: .4byte 0x00008774
- thumb_func_end sub_80F445C
-
- thumb_func_start sub_80F44B0
-sub_80F44B0: @ 80F44B0
- push {r4,lr}
- adds r4, r2, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r0, 0xE
- bne _080F44F4
- cmp r4, 0x2
- beq _080F44C8
- cmp r4, 0x7
- bne _080F44E0
-_080F44C8:
- movs r0, 0x64
- muls r0, r2
- ldr r1, _080F44DC @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- adds r2, r3, 0
- bl GetMonData
- b _080F453C
- .align 2, 0
-_080F44DC: .4byte gPlayerParty
-_080F44E0:
- movs r0, 0x64
- muls r0, r2
- ldr r1, _080F44F0 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl GetMonData
- b _080F453C
- .align 2, 0
-_080F44F0: .4byte gPlayerParty
-_080F44F4:
- cmp r4, 0x2
- beq _080F44FC
- cmp r4, 0x7
- bne _080F4520
-_080F44FC:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F451C @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- adds r1, r4, 0
- adds r2, r3, 0
- bl GetBoxMonData
- b _080F453C
- .align 2, 0
-_080F451C: .4byte gUnknown_020300A4
-_080F4520:
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F4544 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- adds r1, r4, 0
- bl GetBoxMonData
-_080F453C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F4544: .4byte gUnknown_020300A4
- thumb_func_end sub_80F44B0
-
- thumb_func_start sub_80F4548
-sub_80F4548: @ 80F4548
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- mov r0, sp
- strb r2, [r0]
- cmp r3, 0xE
- bne _080F4574
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F4570 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- b _080F4592
- .align 2, 0
-_080F4570: .4byte gPlayerParty
-_080F4574:
- lsls r1, r3, 2
- adds r1, r3
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 4
- ldr r2, _080F459C @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x8
- mov r2, sp
- bl SetBoxMonData
-_080F4592:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F459C: .4byte gUnknown_020300A4
- thumb_func_end sub_80F4548
-
- thumb_func_start sub_80F45A0
-sub_80F45A0: @ 80F45A0
- push {r4-r7,lr}
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _080F45F0 @ =gUnknown_083DFEC4
- ldr r5, [r1]
- lsls r1, r0, 16
- asrs r0, r1, 14
- adds r4, r5, r0
- ldr r2, _080F45F4 @ =0x0000893f
- adds r0, r4, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r7, r0, 31
- cmp r7, 0
- beq _080F4644
- lsls r0, r6, 6
- ldr r2, _080F45F8 @ =0x00008829
- adds r0, r2
- adds r0, r5, r0
- lsrs r1, 16
- movs r2, 0
- bl sub_80F4428
- ldr r1, _080F45FC @ =0x0000893d
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0xE
- bne _080F4608
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r2, _080F4600 @ =0x000088e9
- adds r0, r2
- adds r0, r5, r0
- ldr r1, _080F4604 @ =gOtherText_InParty
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
- b _080F4624
- .align 2, 0
-_080F45F0: .4byte gUnknown_083DFEC4
-_080F45F4: .4byte 0x0000893f
-_080F45F8: .4byte 0x00008829
-_080F45FC: .4byte 0x0000893d
-_080F4600: .4byte 0x000088e9
-_080F4604: .4byte gOtherText_InParty
-_080F4608:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F4634 @ =0x000088e9
- adds r0, r1
- adds r0, r5, r0
- lsls r1, r2, 3
- adds r1, r2
- ldr r2, _080F4638 @ =gUnknown_020383E4
- adds r1, r2
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
-_080F4624:
- ldr r0, _080F463C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F4640 @ =0x00008937
- adds r0, r2
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
- b _080F4676
- .align 2, 0
-_080F4634: .4byte 0x000088e9
-_080F4638: .4byte gUnknown_020383E4
-_080F463C: .4byte gUnknown_083DFEC4
-_080F4640: .4byte 0x00008937
-_080F4644:
- lsls r0, r6, 6
- ldr r1, _080F467C @ =0x00008829
- adds r0, r1
- adds r0, r5, r0
- ldr r4, _080F4680 @ =gEmptyString_81E72B0
- adds r1, r4, 0
- movs r2, 0x68
- movs r3, 0
- bl sub_8072C74
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- ldr r2, _080F4684 @ =0x000088e9
- adds r0, r2
- adds r0, r5, r0
- adds r1, r4, 0
- movs r2, 0x40
- movs r3, 0
- bl sub_8072C74
- ldr r1, _080F4688 @ =0x00008937
- adds r0, r5, r1
- adds r0, r6
- strb r7, [r0]
-_080F4676:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F467C: .4byte 0x00008829
-_080F4680: .4byte gEmptyString_81E72B0
-_080F4684: .4byte 0x000088e9
-_080F4688: .4byte 0x00008937
- thumb_func_end sub_80F45A0
-
- thumb_func_start sub_80F468C
-sub_80F468C: @ 80F468C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, _080F475C @ =gUnknown_083DFEC4
- ldr r7, [r1]
- lsls r0, 16
- asrs r0, 14
- adds r1, r7, r0
- ldr r2, _080F4760 @ =0x0000893f
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _080F46B2
- b _080F47C4
-_080F46B2:
- ldr r3, _080F4764 @ =0x0000893d
- adds r0, r1, r3
- ldrb r5, [r0]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r6, r0, 27
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x16
- movs r3, 0
- bl sub_80F44B0
- mov r3, r9
- lsls r3, 2
- mov r8, r3
- mov r4, r8
- add r4, r9
- ldr r2, _080F4768 @ =0x00008ff0
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x2F
- movs r3, 0
- bl sub_80F44B0
- ldr r3, _080F476C @ =0x00008ff1
- adds r1, r7, r3
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x21
- movs r3, 0
- bl sub_80F44B0
- ldr r2, _080F4770 @ =0x00008ff2
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x18
- movs r3, 0
- bl sub_80F44B0
- ldr r3, _080F4774 @ =0x00008ff3
- adds r1, r7, r3
- adds r1, r4
- strb r0, [r1]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_80F44B0
- ldr r2, _080F4778 @ =0x00008ff4
- adds r1, r7, r2
- adds r1, r4
- strb r0, [r1]
- ldr r3, _080F477C @ =0x00008931
- adds r0, r7, r3
- mov r7, r9
- adds r4, r0, r7
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x30
- movs r3, 0
- bl sub_80F44B0
- cmp r0, 0xFF
- beq _080F4780
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x30
- movs r3, 0
- bl sub_80F44B0
- movs r1, 0x1D
- bl __udivsi3
- b _080F4782
- .align 2, 0
-_080F475C: .4byte gUnknown_083DFEC4
-_080F4760: .4byte 0x0000893f
-_080F4764: .4byte 0x0000893d
-_080F4768: .4byte 0x00008ff0
-_080F476C: .4byte 0x00008ff1
-_080F4770: .4byte 0x00008ff2
-_080F4774: .4byte 0x00008ff3
-_080F4778: .4byte 0x00008ff4
-_080F477C: .4byte 0x00008931
-_080F4780:
- movs r0, 0x9
-_080F4782:
- strb r0, [r4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_80F44B0
- ldr r1, _080F47B4 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r3, _080F47B8 @ =0x00008934
- adds r2, r1, r3
- add r2, r9
- strb r0, [r2]
- mov r2, r8
- add r2, r9
- ldr r7, _080F47BC @ =0x00008ff0
- adds r0, r2, r7
- adds r0, r1, r0
- lsls r2, 2
- ldr r3, _080F47C0 @ =0x00009004
- adds r2, r3
- adds r1, r2
- bl sub_80F55AC
- b _080F480A
- .align 2, 0
-_080F47B4: .4byte gUnknown_083DFEC4
-_080F47B8: .4byte 0x00008934
-_080F47BC: .4byte 0x00008ff0
-_080F47C0: .4byte 0x00009004
-_080F47C4:
- movs r3, 0
- mov r0, r9
- lsls r0, 2
- mov r8, r0
- adds r4, r7, 0
- mov r2, r8
- add r2, r9
- ldr r1, _080F4818 @ =0x00008ff0
- adds r6, r4, r1
- lsls r5, r2, 2
- mov r9, r3
- ldr r7, _080F481C @ =0x00009004
- mov r8, r7
- movs r0, 0x9B
- mov r12, r0
-_080F47E2:
- adds r0, r3, r2
- adds r0, r6, r0
- mov r1, r9
- strb r1, [r0]
- lsls r0, r3, 2
- adds r0, r5
- adds r0, r4, r0
- mov r7, r8
- adds r1, r0, r7
- mov r7, r12
- strh r7, [r1]
- ldr r1, _080F4820 @ =0x00009006
- adds r0, r1
- movs r1, 0x5B
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _080F47E2
-_080F480A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4818: .4byte 0x00008ff0
-_080F481C: .4byte 0x00009004
-_080F4820: .4byte 0x00009006
- thumb_func_end sub_80F468C
-
- thumb_func_start sub_80F4824
-sub_80F4824: @ 80F4824
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, _080F48E0 @ =gUnknown_083DFEC4
- ldr r7, [r1]
- lsls r0, 16
- asrs r0, 14
- adds r1, r7, r0
- ldr r2, _080F48E4 @ =0x0000893f
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080F48D0
- ldr r6, _080F48E8 @ =0x0000893d
- adds r0, r1, r6
- ldrb r6, [r0]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r4, [r0]
- lsls r4, 27
- lsrs r4, 27
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x41
- movs r3, 0
- bl sub_80F44B0
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_80F44B0
- mov r8, r0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_80F44B0
- adds r4, r0, 0
- lsls r0, r5, 3
- ldr r1, _080F48EC @ =gMonFrontPicTable
- adds r0, r1
- ldr r2, _080F48F0 @ =gMonFrontPicCoords
- lsls r1, r5, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r6, _080F48F4 @ =0x000131e4
- adds r3, r7, r6
- mov r6, r9
- lsls r2, r6, 13
- ldr r6, _080F48F8 @ =0x0000d1e4
- adds r2, r6
- adds r2, r7, r2
- str r2, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0x1
- bl sub_800D334
- adds r0, r5, 0
- mov r1, r8
- adds r2, r4, 0
- bl species_and_otid_get_pal
- mov r2, r9
- lsls r1, r2, 7
- adds r1, r7, r1
- bl LZ77UnCompWram
- mov r6, r9
- lsls r1, r6, 1
- ldr r2, _080F48FC @ =0x0000d1d6
- adds r0, r7, r2
- adds r0, r1
- strh r5, [r0]
-_080F48D0:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F48E0: .4byte gUnknown_083DFEC4
-_080F48E4: .4byte 0x0000893f
-_080F48E8: .4byte 0x0000893d
-_080F48EC: .4byte gMonFrontPicTable
-_080F48F0: .4byte gMonFrontPicCoords
-_080F48F4: .4byte 0x000131e4
-_080F48F8: .4byte 0x0000d1e4
-_080F48FC: .4byte 0x0000d1d6
- thumb_func_end sub_80F4824
-
- thumb_func_start sub_80F4900
-sub_80F4900: @ 80F4900
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F45A0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F468C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F4824
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F4900
-
- thumb_func_start sub_80F492C
-sub_80F492C: @ 80F492C
- ldr r0, _080F493C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F4940 @ =0x00008fe4
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F493C: .4byte gUnknown_083DFEC4
-_080F4940: .4byte 0x00008fe4
- thumb_func_end sub_80F492C
-
- thumb_func_start sub_80F4944
-sub_80F4944: @ 80F4944
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- movs r2, 0
- ldr r1, _080F4978 @ =gUnknown_083DFEC4
- ldr r5, [r1]
- ldr r3, _080F497C @ =0x00008fe4
- adds r0, r5, r3
- ldrh r4, [r0]
- lsrs r3, r4, 1
- mov r8, r1
- cmp r4, r3
- beq _080F499C
- adds r6, r5, 0
- mov r0, r12
- ldrb r5, [r0]
- ldr r7, _080F4980 @ =0x0000893c
-_080F4968:
- lsls r0, r3, 2
- adds r0, r6, r0
- adds r0, r7
- ldrb r0, [r0]
- cmp r5, r0
- bls _080F4984
- adds r4, r3, 0
- b _080F498A
- .align 2, 0
-_080F4978: .4byte gUnknown_083DFEC4
-_080F497C: .4byte 0x00008fe4
-_080F4980: .4byte 0x0000893c
-_080F4984:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_080F498A:
- subs r0, r4, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r4, r3
- bne _080F4968
-_080F499C:
- mov r1, r8
- ldr r2, [r1]
- ldr r1, _080F49EC @ =0x00008fe4
- adds r0, r2, r1
- ldrh r4, [r0]
- lsls r6, r3, 2
- cmp r4, r3
- bls _080F49C6
- ldr r0, _080F49F0 @ =0x0000893c
- adds r5, r2, r0
-_080F49B0:
- lsls r2, r4, 2
- adds r2, r5, r2
- subs r1, r4, 0x1
- lsls r0, r1, 2
- adds r0, r5, r0
- ldr r0, [r0]
- str r0, [r2]
- lsls r1, 16
- lsrs r4, r1, 16
- cmp r4, r3
- bhi _080F49B0
-_080F49C6:
- mov r1, r8
- ldr r2, [r1]
- ldr r3, _080F49F0 @ =0x0000893c
- adds r0, r2, r3
- adds r0, r6
- mov r3, r12
- ldr r1, [r3]
- str r1, [r0]
- ldr r0, _080F49EC @ =0x00008fe4
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F49EC: .4byte 0x00008fe4
-_080F49F0: .4byte 0x0000893c
- thumb_func_end sub_80F4944
-
- thumb_func_start sub_80F49F4
-sub_80F49F4: @ 80F49F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, _080F4A64 @ =gUnknown_083DFEC4
- ldr r4, [r3]
- ldr r7, _080F4A68 @ =0x0000893e
- adds r2, r4, r7
- ldrh r1, [r2]
- ldr r0, _080F4A6C @ =0xffffc01f
- mov r12, r0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strh r0, [r2]
- movs r5, 0x1
- ldr r1, _080F4A70 @ =0x00008fe4
- adds r0, r4, r1
- ldrh r3, [r0]
- cmp r5, r3
- bcs _080F4A9E
- adds r6, r4, 0
- ldr r1, _080F4A74 @ =0x0000893c
- mov r8, r1
- ldr r3, _080F4A78 @ =0x000001ff
- mov r10, r3
- mov r9, r0
-_080F4A2C:
- lsls r0, r5, 2
- adds r3, r6, r0
- mov r0, r8
- adds r2, r3, r0
- subs r0, r5, 0x1
- lsls r0, 2
- adds r4, r6, r0
- mov r0, r8
- adds r1, r4, r0
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080F4A7C
- adds r0, r4, r7
- ldrh r0, [r0]
- lsls r0, 18
- lsrs r0, 23
- adds r3, r7
- ldr r1, _080F4A78 @ =0x000001ff
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3]
- adds r4, r5, 0x1
- b _080F4A92
- .align 2, 0
-_080F4A64: .4byte gUnknown_083DFEC4
-_080F4A68: .4byte 0x0000893e
-_080F4A6C: .4byte 0xffffc01f
-_080F4A70: .4byte 0x00008fe4
-_080F4A74: .4byte 0x0000893c
-_080F4A78: .4byte 0x000001ff
-_080F4A7C:
- adds r4, r5, 0x1
- adds r3, r7
- adds r1, r4, 0
- mov r0, r10
- ands r1, r0
- lsls r1, 5
- ldrh r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3]
-_080F4A92:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- mov r1, r9
- ldrh r1, [r1]
- cmp r5, r1
- bcc _080F4A2C
-_080F4A9E:
- ldr r3, _080F4AC4 @ =gUnknown_083DFEC4
- ldr r2, [r3]
- ldr r1, _080F4AC8 @ =0x0000876c
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- ldr r3, _080F4ACC @ =0x00008770
- adds r0, r2, r3
- strh r1, [r0]
- subs r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r1, _080F4AD0 @ =0x00008fe4
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080F4AD4
- subs r1, r0, 0x1
- b _080F4AD6
- .align 2, 0
-_080F4AC4: .4byte gUnknown_083DFEC4
-_080F4AC8: .4byte 0x0000876c
-_080F4ACC: .4byte 0x00008770
-_080F4AD0: .4byte 0x00008fe4
-_080F4AD4:
- movs r1, 0x7
-_080F4AD6:
- ldr r3, _080F4B10 @ =0x00008772
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _080F4B14 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F4B18 @ =0x00008fe4
- adds r0, r2, r1
- ldrh r0, [r0]
- subs r0, 0x1
- adds r3, 0x2
- adds r1, r2, r3
- strh r0, [r1]
- movs r1, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080F4AFA
- movs r1, 0x1
-_080F4AFA:
- ldr r3, _080F4B1C @ =0x000087c9
- adds r0, r2, r3
- strb r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4B10: .4byte 0x00008772
-_080F4B14: .4byte gUnknown_083DFEC4
-_080F4B18: .4byte 0x00008fe4
-_080F4B1C: .4byte 0x000087c9
- thumb_func_end sub_80F49F4
-
- thumb_func_start sub_80F4B20
-sub_80F4B20: @ 80F4B20
- push {r4-r6,lr}
- ldr r0, _080F4B5C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F4B60 @ =0x000087dc
- adds r5, r4, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0
- bl sub_80F4900
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _080F4B64 @ =0x000087da
- adds r2, r4, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080F4B6C
- ldr r2, _080F4B68 @ =0x00008fe9
- adds r0, r4, r2
- movs r1, 0
- strb r1, [r0]
- adds r2, 0x1
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, 0x1
- adds r0, r4, r2
- strb r1, [r0]
- b _080F4BBE
- .align 2, 0
-_080F4B5C: .4byte gUnknown_083DFEC4
-_080F4B60: .4byte 0x000087dc
-_080F4B64: .4byte 0x000087da
-_080F4B68: .4byte 0x00008fe9
-_080F4B6C:
- ldr r0, _080F4BC4 @ =0x00008fe9
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080F4BC8 @ =0x00008fea
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080F4BCC @ =0x00008feb
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldrh r3, [r5]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- ldrh r6, [r2]
- movs r4, 0
- ldrsh r1, [r2, r4]
- cmp r0, r1
- blt _080F4B9A
- movs r5, 0
-_080F4B9A:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r0, 0
- bge _080F4BAA
- subs r0, r6, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080F4BAA:
- lsls r0, r5, 16
- asrs r0, 16
- movs r1, 0x1
- bl sub_80F4900
- lsls r0, r4, 16
- asrs r0, 16
- movs r1, 0x2
- bl sub_80F4900
-_080F4BBE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4BC4: .4byte 0x00008fe9
-_080F4BC8: .4byte 0x00008fea
-_080F4BCC: .4byte 0x00008feb
- thumb_func_end sub_80F4B20
-
- thumb_func_start sub_80F4BD0
-sub_80F4BD0: @ 80F4BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r7, 0
- ldr r0, _080F4CC4 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r3, _080F4CC8 @ =0x00008828
- adds r1, r2, r3
- mov r9, r0
- ldrb r1, [r1]
- cmp r7, r1
- bcs _080F4C66
- mov r10, r9
- adds r4, r3, 0
- adds r4, r2
- mov r8, r4
-_080F4BF6:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F4CCC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080F4C58
- mov r0, r10
- ldr r3, [r0]
- lsls r0, r7, 2
- adds r3, r0
- ldr r2, _080F4CD0 @ =0x0000893d
- adds r1, r3, r2
- movs r0, 0xE
- strb r0, [r1]
- ldr r4, _080F4CD4 @ =0x0000893e
- adds r5, r3, r4
- movs r0, 0x1F
- adds r2, r6, 0
- ands r2, r0
- ldrb r0, [r5]
- movs r4, 0x20
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5]
- adds r4, r7, 0x1
- ldr r7, _080F4CD8 @ =0x000001ff
- adds r0, r7, 0
- adds r2, r4, 0
- ands r2, r0
- lsls r2, 5
- ldrh r0, [r5]
- ldr r7, _080F4CDC @ =0xffffc01f
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r5]
- ldr r0, _080F4CE0 @ =0x0000893f
- adds r3, r0
- ldrb r0, [r3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3]
- lsls r4, 16
- lsrs r7, r4, 16
-_080F4C58:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r8
- ldrb r1, [r1]
- cmp r6, r1
- bcc _080F4BF6
-_080F4C66:
- mov r2, r9
- ldr r4, [r2]
- lsls r1, r7, 2
- adds r1, r4, r1
- ldr r3, _080F4CD0 @ =0x0000893d
- adds r0, r1, r3
- movs r5, 0
- strb r5, [r0]
- ldr r0, _080F4CD4 @ =0x0000893e
- adds r2, r1, r0
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- strb r0, [r2]
- ldrh r3, [r2]
- ldr r0, _080F4CDC @ =0xffffc01f
- ands r0, r3
- strh r0, [r2]
- ldr r2, _080F4CE0 @ =0x0000893f
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, _080F4CE4 @ =0x000087dc
- adds r0, r4, r3
- strh r5, [r0]
- adds r1, r7, 0x1
- ldr r7, _080F4CE8 @ =0x000087da
- adds r0, r4, r7
- strh r1, [r0]
- bl sub_80F4B20
- ldr r0, _080F4CEC @ =0x000087cb
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4CC4: .4byte gUnknown_083DFEC4
-_080F4CC8: .4byte 0x00008828
-_080F4CCC: .4byte gPlayerParty
-_080F4CD0: .4byte 0x0000893d
-_080F4CD4: .4byte 0x0000893e
-_080F4CD8: .4byte 0x000001ff
-_080F4CDC: .4byte 0xffffc01f
-_080F4CE0: .4byte 0x0000893f
-_080F4CE4: .4byte 0x000087dc
-_080F4CE8: .4byte 0x000087da
-_080F4CEC: .4byte 0x000087cb
- thumb_func_end sub_80F4BD0
-
- thumb_func_start sub_80F4CF0
-sub_80F4CF0: @ 80F4CF0
- push {r4,lr}
- ldr r0, _080F4D1C @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F4D20 @ =0x0000876e
- adds r0, r4, r1
- ldrh r1, [r0]
- ldr r2, _080F4D24 @ =0x000087dc
- adds r0, r4, r2
- strh r1, [r0]
- bl sub_80F4B20
- ldr r1, _080F4D28 @ =0x00008774
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _080F4D30
- ldr r0, _080F4D2C @ =0x000087cb
- adds r1, r4, r0
- movs r0, 0
- b _080F4D36
- .align 2, 0
-_080F4D1C: .4byte gUnknown_083DFEC4
-_080F4D20: .4byte 0x0000876e
-_080F4D24: .4byte 0x000087dc
-_080F4D28: .4byte 0x00008774
-_080F4D2C: .4byte 0x000087cb
-_080F4D30:
- ldr r2, _080F4D40 @ =0x000087cb
- adds r1, r4, r2
- movs r0, 0x1
-_080F4D36:
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4D40: .4byte 0x000087cb
- thumb_func_end sub_80F4CF0
-
- thumb_func_start sub_80F4D44
-sub_80F4D44: @ 80F4D44
- push {r4,lr}
- ldr r0, _080F4D78 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F4D7C @ =0x00008fe6
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080F4D80 @ =0x00008fe7
- adds r0, r4, r2
- strb r1, [r0]
- bl sub_80F492C
- ldr r0, _080F4D84 @ =0x00006dac
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F4D70
-_080F4D66:
- bl sub_80F4D88
- lsls r0, 24
- cmp r0, 0
- bne _080F4D66
-_080F4D70:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F4D78: .4byte gUnknown_083DFEC4
-_080F4D7C: .4byte 0x00008fe6
-_080F4D80: .4byte 0x00008fe7
-_080F4D84: .4byte 0x00006dac
- thumb_func_end sub_80F4D44
-
- thumb_func_start sub_80F4D88
-sub_80F4D88: @ 80F4D88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r6, _080F4E98 @ =gUnknown_083DFEC4
- ldr r4, [r6]
- ldr r1, _080F4E9C @ =0x00008fe6
- adds r0, r4, r1
- ldrb r3, [r0]
- cmp r3, 0xE
- bne _080F4DA4
- b _080F4EB8
-_080F4DA4:
- cmp r3, 0xF
- bne _080F4DAA
- b _080F4F60
-_080F4DAA:
- movs r1, 0x80
- lsls r1, 23
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- movs r7, 0
- mov r10, r6
- ldr r2, _080F4E9C @ =0x00008fe6
- adds r6, r4, r2
- ldr r3, _080F4EA0 @ =0x00008fe7
- adds r5, r4, r3
- ldr r0, _080F4EA4 @ =0x000087d8
- adds r0, r4
- mov r9, r0
- ldr r1, _080F4EA8 @ =gUnknown_020300A4
- mov r8, r1
-_080F4DCA:
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080F4E60
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- bne _080F4E60
- ldrb r1, [r6]
- lsls r1, 8
- ldr r2, _080F4EAC @ =0xffff00ff
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldrb r2, [r5]
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 16
- ldr r1, _080F4EB0 @ =0xffe0ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp]
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r5]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- mov r2, r9
- ldrb r1, [r2]
- bl GetBoxMonData
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F4EB4 @ =0xffffff00
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl sub_80F4944
-_080F4E60:
- mov r3, r10
- ldr r1, [r3]
- ldr r0, _080F4EA0 @ =0x00008fe7
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r2]
- movs r3, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bne _080F4E8C
- strb r4, [r2]
- ldr r2, _080F4E9C @ =0x00008fe6
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ands r0, r3
- cmp r0, 0xE
- beq _080F4F64
-_080F4E8C:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0xE
- bls _080F4DCA
- b _080F4F64
- .align 2, 0
-_080F4E98: .4byte gUnknown_083DFEC4
-_080F4E9C: .4byte 0x00008fe6
-_080F4EA0: .4byte 0x00008fe7
-_080F4EA4: .4byte 0x000087d8
-_080F4EA8: .4byte gUnknown_020300A4
-_080F4EAC: .4byte 0xffff00ff
-_080F4EB0: .4byte 0xffe0ffff
-_080F4EB4: .4byte 0xffffff00
-_080F4EB8:
- mov r2, sp
- ldrb r0, [r2, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x3]
- strb r3, [r2, 0x1]
- movs r7, 0
- ldr r3, _080F4F44 @ =0x00008828
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r7, r0
- bcs _080F4F24
- mov r5, sp
- mov r8, r6
- adds r6, r4, r3
-_080F4ED6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080F4F48 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080F4F18
- movs r0, 0x1F
- adds r2, r7, 0
- ands r2, r0
- ldrb r0, [r5, 0x2]
- movs r3, 0x20
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x2]
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _080F4F4C @ =0x000087d8
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- mov r0, sp
- bl sub_80F4944
-_080F4F18:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldrb r3, [r6]
- cmp r7, r3
- bcc _080F4ED6
-_080F4F24:
- bl sub_80F49F4
- ldr r0, _080F4F50 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F4F54 @ =0x00008fe4
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r3, _080F4F58 @ =0x000087da
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, _080F4F5C @ =0x00008fe6
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F4F64
- .align 2, 0
-_080F4F44: .4byte 0x00008828
-_080F4F48: .4byte gPlayerParty
-_080F4F4C: .4byte 0x000087d8
-_080F4F50: .4byte gUnknown_083DFEC4
-_080F4F54: .4byte 0x00008fe4
-_080F4F58: .4byte 0x000087da
-_080F4F5C: .4byte 0x00008fe6
-_080F4F60:
- movs r0, 0
- b _080F4F66
-_080F4F64:
- movs r0, 0x1
-_080F4F66:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F4D88
-
- thumb_func_start sub_80F4F78
-sub_80F4F78: @ 80F4F78
- push {lr}
- ldr r0, _080F4FA4 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F4FA8 @ =0x00009040
- adds r0, r1, r2
- ldr r3, _080F4FAC @ =0x00008fe9
- adds r2, r1, r3
- movs r3, 0
- ldrsb r3, [r2, r3]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 2
- ldr r3, _080F4FB0 @ =0x00009004
- adds r2, r3
- adds r1, r2
- bl sub_80F53EC
- bl sub_80F5504
- pop {r0}
- bx r0
- .align 2, 0
-_080F4FA4: .4byte gUnknown_083DFEC4
-_080F4FA8: .4byte 0x00009040
-_080F4FAC: .4byte 0x00008fe9
-_080F4FB0: .4byte 0x00009004
- thumb_func_end sub_80F4F78
-
- thumb_func_start sub_80F4FB4
-sub_80F4FB4: @ 80F4FB4
- push {r4,lr}
- bl sub_80F5504
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F170C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0
- bne _080F4FD2
- cmp r0, 0
- beq _080F4FD4
-_080F4FD2:
- movs r1, 0x1
-_080F4FD4:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F4FB4
-
- thumb_func_start sub_80F4FDC
-sub_80F4FDC: @ 80F4FDC
- push {lr}
- ldr r0, _080F5020 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F5024 @ =0x000076aa
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F4FFE
- ldr r3, _080F5028 @ =0x000087dc
- adds r0, r2, r3
- movs r3, 0
- ldrsh r1, [r0, r3]
- ldr r3, _080F502C @ =0x00008828
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- beq _080F501A
-_080F4FFE:
- ldr r1, _080F5030 @ =0x00008fe9
- adds r0, r2, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r3, _080F5034 @ =0x00009004
- adds r0, r3
- adds r0, r2, r0
- adds r3, 0x3C
- adds r1, r2, r3
- bl sub_80F53EC
-_080F501A:
- pop {r0}
- bx r0
- .align 2, 0
-_080F5020: .4byte gUnknown_083DFEC4
-_080F5024: .4byte 0x000076aa
-_080F5028: .4byte 0x000087dc
-_080F502C: .4byte 0x00008828
-_080F5030: .4byte 0x00008fe9
-_080F5034: .4byte 0x00009004
- thumb_func_end sub_80F4FDC
-
- thumb_func_start sub_80F5038
-sub_80F5038: @ 80F5038
- push {r4,lr}
- bl sub_80F5504
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F173C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0
- bne _080F5056
- cmp r0, 0
- beq _080F5058
-_080F5056:
- movs r1, 0x1
-_080F5058:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5038
-
- thumb_func_start sub_80F5060
-sub_80F5060: @ 80F5060
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- beq _080F507C
- ldr r0, _080F5074 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5078 @ =0x00008feb
- adds r0, r1
- b _080F5084
- .align 2, 0
-_080F5074: .4byte gUnknown_083DFEC4
-_080F5078: .4byte 0x00008feb
-_080F507C:
- ldr r0, _080F50FC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F5100 @ =0x00008fea
- adds r0, r2
-_080F5084:
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F50FC @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r3, _080F5104 @ =0x00008fe9
- adds r5, r4, r3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r2, _080F5108 @ =0x00009004
- adds r0, r2
- adds r0, r4, r0
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r1, r2
- adds r1, r4, r1
- bl sub_80F53EC
- ldr r0, _080F510C @ =0x000087dc
- adds r3, r4, r0
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 2
- adds r0, r4, r0
- ldr r2, _080F5110 @ =0x0000893f
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 31
- mov r12, r0
- cmp r7, 0
- beq _080F5158
- ldr r7, _080F5100 @ =0x00008fea
- adds r1, r4, r7
- ldrb r0, [r1]
- adds r7, 0x1
- adds r2, r4, r7
- strb r0, [r2]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r6, [r5]
- ldrb r1, [r2]
- ldr r2, _080F5114 @ =0x00008fec
- adds r0, r4, r2
- strb r1, [r0]
- adds r5, r4, 0
- ldrh r1, [r3]
- movs r7, 0
- ldrsh r0, [r3, r7]
- cmp r0, 0
- beq _080F5118
- subs r2, r1, 0x1
- b _080F5120
- .align 2, 0
-_080F50FC: .4byte gUnknown_083DFEC4
-_080F5100: .4byte 0x00008fea
-_080F5104: .4byte 0x00008fe9
-_080F5108: .4byte 0x00009004
-_080F510C: .4byte 0x000087dc
-_080F5110: .4byte 0x0000893f
-_080F5114: .4byte 0x00008fec
-_080F5118:
- ldr r1, _080F513C @ =0x000087da
- adds r0, r4, r1
- ldrh r0, [r0]
- subs r2, r0, 0x1
-_080F5120:
- ldr r1, _080F5140 @ =0x000087dc
- adds r0, r5, r1
- strh r2, [r0]
- ldr r2, _080F5144 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- adds r1, r3, r1
- ldrh r4, [r1]
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _080F5148
- subs r1, r4, 0x1
- b _080F51CE
- .align 2, 0
-_080F513C: .4byte 0x000087da
-_080F5140: .4byte 0x000087dc
-_080F5144: .4byte gUnknown_083DFEC4
-_080F5148:
- ldr r7, _080F5154 @ =0x000087da
- adds r0, r3, r7
- ldrh r0, [r0]
- subs r1, r0, 0x1
- b _080F51CE
- .align 2, 0
-_080F5154: .4byte 0x000087da
-_080F5158:
- ldr r7, _080F518C @ =0x00008feb
- adds r1, r4, r7
- ldrb r0, [r1]
- subs r7, 0x1
- adds r2, r4, r7
- strb r0, [r2]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r6, [r5]
- ldrb r1, [r2]
- ldr r2, _080F5190 @ =0x00008fec
- adds r0, r4, r2
- strb r1, [r0]
- adds r2, r4, 0
- movs r4, 0
- ldrsh r1, [r3, r4]
- ldr r5, _080F5194 @ =0x000087da
- adds r0, r2, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- subs r0, 0x1
- cmp r1, r0
- bge _080F5198
- ldrh r0, [r3]
- adds r3, r0, 0x1
- b _080F519A
- .align 2, 0
-_080F518C: .4byte 0x00008feb
-_080F5190: .4byte 0x00008fec
-_080F5194: .4byte 0x000087da
-_080F5198:
- movs r3, 0
-_080F519A:
- ldr r1, _080F51C0 @ =0x000087dc
- adds r0, r2, r1
- strh r3, [r0]
- ldr r2, _080F51C4 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- adds r4, r3, r1
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r5, _080F51C8 @ =0x000087da
- adds r0, r3, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- subs r0, 0x1
- cmp r1, r0
- bge _080F51CC
- ldrh r0, [r4]
- adds r1, r0, 0x1
- b _080F51CE
- .align 2, 0
-_080F51C0: .4byte 0x000087dc
-_080F51C4: .4byte gUnknown_083DFEC4
-_080F51C8: .4byte 0x000087da
-_080F51CC:
- movs r1, 0
-_080F51CE:
- ldr r4, _080F51FC @ =0x00008fee
- adds r0, r3, r4
- strh r1, [r0]
- ldr r1, [r2]
- ldr r5, _080F5200 @ =0x000087dc
- adds r0, r1, r5
- movs r7, 0
- ldrsh r0, [r0, r7]
- lsls r0, 2
- adds r0, r1, r0
- ldr r3, _080F5204 @ =0x0000893f
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 31
- mov r4, r12
- cmp r4, 0
- bne _080F520C
- adds r5, 0x4
- adds r1, r5
- ldr r0, _080F5208 @ =sub_80F5264
- b _080F5226
- .align 2, 0
-_080F51FC: .4byte 0x00008fee
-_080F5200: .4byte 0x000087dc
-_080F5204: .4byte 0x0000893f
-_080F5208: .4byte sub_80F5264
-_080F520C:
- cmp r0, 0
- bne _080F5220
- ldr r7, _080F5218 @ =0x000087e0
- adds r1, r7
- ldr r0, _080F521C @ =sub_80F52F8
- b _080F5226
- .align 2, 0
-_080F5218: .4byte 0x000087e0
-_080F521C: .4byte sub_80F52F8
-_080F5220:
- ldr r0, _080F5238 @ =0x000087e0
- adds r1, r0
- ldr r0, _080F523C @ =sub_80F5364
-_080F5226:
- str r0, [r1]
- ldr r0, [r2]
- ldr r1, _080F5240 @ =0x000087de
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5238: .4byte 0x000087e0
-_080F523C: .4byte sub_80F5364
-_080F5240: .4byte 0x000087de
- thumb_func_end sub_80F5060
-
- thumb_func_start gpu_sync_bg_show
-gpu_sync_bg_show: @ 80F5244
- push {lr}
- ldr r0, _080F525C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5260 @ =0x000087e0
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080F525C: .4byte gUnknown_083DFEC4
-_080F5260: .4byte 0x000087e0
- thumb_func_end gpu_sync_bg_show
-
- thumb_func_start sub_80F5264
-sub_80F5264: @ 80F5264
- push {r4,r5,lr}
- ldr r0, _080F5280 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5284 @ =0x000087de
- adds r5, r0, r1
- ldrb r1, [r5]
- cmp r1, 0x1
- beq _080F52AA
- cmp r1, 0x1
- bgt _080F5288
- cmp r1, 0
- beq _080F528E
- b _080F52F0
- .align 2, 0
-_080F5280: .4byte gUnknown_083DFEC4
-_080F5284: .4byte 0x000087de
-_080F5288:
- cmp r1, 0x2
- beq _080F52EC
- b _080F52F0
-_080F528E:
- ldr r2, _080F52D8 @ =0x00008fe9
- adds r4, r0, r2
- ldrb r0, [r4]
- bl sub_80F2E18
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_080F52AA:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- bne _080F52F0
- ldr r0, _080F52DC @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F52E0 @ =0x00008fee
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- ldr r2, _080F52E4 @ =0x00008fec
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- ldr r0, _080F52E8 @ =0x000087de
- adds r4, r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F52F0
- .align 2, 0
-_080F52D8: .4byte 0x00008fe9
-_080F52DC: .4byte gUnknown_083DFEC4
-_080F52E0: .4byte 0x00008fee
-_080F52E4: .4byte 0x00008fec
-_080F52E8: .4byte 0x000087de
-_080F52EC:
- movs r0, 0
- b _080F52F2
-_080F52F0:
- movs r0, 0x1
-_080F52F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5264
-
- thumb_func_start sub_80F52F8
-sub_80F52F8: @ 80F52F8
- push {r4,r5,lr}
- ldr r0, _080F5310 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F5314 @ =0x000087de
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0
- beq _080F5318
- cmp r0, 0x1
- beq _080F5358
- b _080F535C
- .align 2, 0
-_080F5310: .4byte gUnknown_083DFEC4
-_080F5314: .4byte 0x000087de
-_080F5318:
- bl sub_80F5038
- lsls r0, 24
- cmp r0, 0
- bne _080F535C
- ldr r1, _080F5350 @ =0x00008fe9
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- ldr r2, _080F5354 @ =0x00008fee
- adds r0, r4, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r2, 0x2
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _080F535C
- .align 2, 0
-_080F5350: .4byte 0x00008fe9
-_080F5354: .4byte 0x00008fee
-_080F5358:
- movs r0, 0
- b _080F535E
-_080F535C:
- movs r0, 0x1
-_080F535E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F52F8
-
- thumb_func_start sub_80F5364
-sub_80F5364: @ 80F5364
- push {r4,r5,lr}
- ldr r0, _080F5380 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F5384 @ =0x000087de
- adds r5, r4, r0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _080F53B8
- cmp r0, 0x1
- bgt _080F5388
- cmp r0, 0
- beq _080F538E
- b _080F53E4
- .align 2, 0
-_080F5380: .4byte gUnknown_083DFEC4
-_080F5384: .4byte 0x000087de
-_080F5388:
- cmp r0, 0x2
- beq _080F53CA
- b _080F53E4
-_080F538E:
- bl sub_80F5504
- bl sub_80F173C
- lsls r0, 24
- cmp r0, 0
- bne _080F53E4
- ldr r1, _080F53B4 @ =0x00008fe9
- adds r4, r1
- ldrb r0, [r4]
- bl sub_80F2E18
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- bl sub_80F01E0
- b _080F53C2
- .align 2, 0
-_080F53B4: .4byte 0x00008fe9
-_080F53B8:
- bl sub_80F4FB4
- lsls r0, 24
- cmp r0, 0
- bne _080F53E4
-_080F53C2:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _080F53E4
-_080F53CA:
- ldr r2, _080F53E0 @ =0x00008fee
- adds r0, r4, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- subs r2, 0x2
- adds r1, r4, r2
- ldrb r1, [r1]
- bl sub_80F4900
- movs r0, 0
- b _080F53E6
- .align 2, 0
-_080F53E0: .4byte 0x00008fee
-_080F53E4:
- movs r0, 0x1
-_080F53E6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F5364
-
- thumb_func_start sub_80F53EC
-sub_80F53EC: @ 80F53EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- mov r9, r1
- movs r7, 0
- ldr r0, _080F54F4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- str r0, [sp, 0x4]
-_080F5404:
- lsls r4, r7, 2
- ldr r1, [sp]
- adds r0, r4, r1
- ldrh r1, [r0]
- lsls r5, r1, 8
- mov r2, r9
- adds r0, r4, r2
- ldrh r0, [r0]
- subs r0, r1
- lsls r0, 8
- movs r1, 0xA
- bl __divsi3
- adds r6, r0, 0
- movs r3, 0
- adds r7, 0x1
- mov r10, r7
- mov r8, r4
-_080F5428:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- add r0, r8
- ldr r7, [sp, 0x4]
- adds r0, r7, r0
- asrs r2, r5, 8
- asrs r1, r5, 7
- movs r7, 0x1
- ands r1, r7
- adds r2, r1
- ldr r1, _080F54F8 @ =0x00009054
- adds r0, r1
- strh r2, [r0]
- adds r5, r6
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x8
- bls _080F5428
- ldr r2, _080F54F4 @ =gUnknown_083DFEC4
- ldr r1, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4, r0
- adds r1, r0
- mov r3, r9
- adds r2, r4, r3
- ldrh r0, [r2]
- ldr r7, _080F54F8 @ =0x00009054
- adds r1, r7
- strh r0, [r1]
- ldr r1, [sp]
- adds r0, r4, r1
- ldrh r1, [r0, 0x2]
- lsls r5, r1, 8
- ldrh r0, [r2, 0x2]
- subs r0, r1
- lsls r0, 8
- movs r1, 0xA
- bl __divsi3
- adds r6, r0, 0
- movs r3, 0
- ldr r0, _080F54F4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- mov r12, r0
- str r4, [sp, 0x8]
- movs r2, 0x1
- mov r8, r2
-_080F548E:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- ldr r7, [sp, 0x8]
- adds r0, r7, r0
- add r0, r12
- asrs r2, r5, 8
- asrs r1, r5, 7
- mov r7, r8
- ands r1, r7
- adds r2, r1
- ldr r1, _080F54FC @ =0x00009056
- adds r0, r1
- strh r2, [r0]
- adds r5, r6
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x8
- bls _080F548E
- ldr r7, _080F54F4 @ =gUnknown_083DFEC4
- ldr r2, [r7]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4, r0
- adds r0, r2, r0
- mov r3, r9
- adds r1, r4, r3
- ldrh r1, [r1, 0x2]
- ldr r7, _080F54FC @ =0x00009056
- adds r0, r7
- strh r1, [r0]
- mov r1, r10
- lsls r0, r1, 16
- lsrs r7, r0, 16
- cmp r7, 0x4
- bls _080F5404
- ldr r3, _080F5500 @ =0x00009342
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F54F4: .4byte gUnknown_083DFEC4
-_080F54F8: .4byte 0x00009054
-_080F54FC: .4byte 0x00009056
-_080F5500: .4byte 0x00009342
- thumb_func_end sub_80F53EC
-
- thumb_func_start sub_80F5504
-sub_80F5504: @ 80F5504
- push {r4,lr}
- ldr r0, _080F551C @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080F5520 @ =0x00009342
- adds r4, r2, r0
- ldrh r0, [r4]
- adds r1, r0, 0
- cmp r1, 0x9
- bls _080F5524
- movs r0, 0
- b _080F5544
- .align 2, 0
-_080F551C: .4byte gUnknown_083DFEC4
-_080F5520: .4byte 0x00009342
-_080F5524:
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F554C @ =0x00009054
- adds r0, r1
- adds r0, r2, r0
- bl sub_80F556C
- ldrh r1, [r4]
- movs r0, 0xA
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_080F5544:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F554C: .4byte 0x00009054
- thumb_func_end sub_80F5504
-
- thumb_func_start sub_80F5550
-sub_80F5550: @ 80F5550
- push {lr}
- bl sub_80F53EC
- pop {r0}
- bx r0
- thumb_func_end sub_80F5550
-
- thumb_func_start sub_80F555C
-sub_80F555C: @ 80F555C
- push {lr}
- bl sub_80F5504
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F555C
-
- thumb_func_start sub_80F556C
-sub_80F556C: @ 80F556C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _080F55A0 @ =gUnknown_083DFEC4
- ldr r0, [r5]
- ldr r1, _080F55A4 @ =0x0000911c
- adds r3, r0, r1
-_080F557A:
- lsls r0, r2, 2
- adds r1, r3, r0
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _080F557A
- ldr r0, [r5]
- ldr r1, _080F55A8 @ =0x00009344
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F55A0: .4byte gUnknown_083DFEC4
-_080F55A4: .4byte 0x0000911c
-_080F55A8: .4byte 0x00009344
- thumb_func_end sub_80F556C
-
- thumb_func_start sub_80F55AC
-sub_80F55AC: @ 80F55AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- mov r8, r1
- ldr r1, _080F5674 @ =gUnknown_083E4890
- ldrb r0, [r6]
- adds r0, r1
- ldrb r2, [r0]
- adds r6, 0x1
- movs r0, 0x9B
- mov r3, r8
- strh r0, [r3]
- movs r0, 0x5B
- subs r0, r2
- strh r0, [r3, 0x2]
- movs r7, 0x40
- movs r0, 0
- mov r12, r0
- movs r2, 0x1
- mov r9, r2
- ldr r3, _080F5678 @ =gSineTable
- mov r10, r3
-_080F55DE:
- adds r0, r7, 0
- adds r0, 0x33
- lsls r0, 24
- lsrs r7, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r0, r2
- lsrs r3, r0, 24
- mov r12, r3
- cmp r0, 0
- bge _080F55FC
- movs r0, 0x4
- mov r12, r0
-_080F55FC:
- mov r1, r12
- lsls r0, r1, 24
- asrs r4, r0, 24
- cmp r4, 0x2
- bne _080F560C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080F560C:
- ldrb r0, [r6]
- ldr r2, _080F5674 @ =gUnknown_083E4890
- adds r0, r2
- ldrb r2, [r0]
- adds r6, 0x1
- lsls r0, r4, 2
- mov r1, r8
- adds r3, r0, r1
- adds r0, r7, 0
- adds r0, 0x40
- lsls r0, 1
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r2
- asrs r5, r0, 8
- adds r0, r5, 0
- adds r0, 0x9B
- strh r0, [r3]
- lsls r0, r7, 1
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r1, r2, 0
- muls r1, r0
- asrs r1, 8
- movs r0, 0x5B
- subs r0, r1
- strh r0, [r3, 0x2]
- cmp r4, 0x2
- bgt _080F5658
- cmp r2, 0x20
- bne _080F5652
- cmp r4, 0x2
- beq _080F5658
-_080F5652:
- adds r0, r5, 0
- adds r0, 0x9C
- strh r0, [r3]
-_080F5658:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0x4
- bls _080F55DE
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5674: .4byte gUnknown_083E4890
-_080F5678: .4byte gSineTable
- thumb_func_end sub_80F55AC
-
- thumb_func_start sub_80F567C
-sub_80F567C: @ 80F567C
- push {lr}
- bl sub_80F55AC
- pop {r0}
- bx r0
- thumb_func_end sub_80F567C
-
- thumb_func_start sub_80F5688
-sub_80F5688: @ 80F5688
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- str r2, [sp]
- ldr r7, [sp, 0x34]
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- movs r0, 0
- str r0, [sp, 0x8]
- ldrh r0, [r5, 0x2]
- ldrh r1, [r2, 0x2]
- cmp r0, r1
- bcs _080F56D0
- adds r2, r0, 0
- str r2, [sp, 0x4]
- ldr r3, [sp]
- ldrh r0, [r3, 0x2]
- ldrh r1, [r5]
- lsls r4, r1, 10
- ldrh r2, [r3]
- mov r10, r2
- ldr r3, [sp, 0x4]
- subs r0, r3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _080F56FC
- subs r0, r2, r1
- b _080F56F2
-_080F56D0:
- ldrh r0, [r5, 0x2]
- ldr r1, [sp]
- ldrh r1, [r1, 0x2]
- str r1, [sp, 0x4]
- ldr r2, [sp]
- ldrh r1, [r2]
- lsls r4, r1, 10
- ldrh r3, [r5]
- mov r10, r3
- ldr r2, [sp, 0x4]
- subs r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0
- beq _080F56FC
- subs r0, r3, r1
-_080F56F2:
- lsls r0, 10
- mov r1, r8
- bl __divsi3
- str r0, [sp, 0x8]
-_080F56FC:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r7, 0
- bne _080F5746
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- movs r5, 0
- mov r3, r9
- lsls r3, 1
- mov r12, r3
- mov r0, r10
- add r0, r9
- str r0, [sp, 0xC]
- cmp r7, r8
- bcs _080F57D4
- movs r7, 0x1
-_080F5726:
- adds r2, r3, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r7
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r1, [sp, 0x8]
- adds r4, r1
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F5726
- b _080F57D4
-_080F5746:
- ldr r2, [sp, 0x8]
- cmp r2, 0
- ble _080F57E4
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r7, r0
- movs r5, 0
- mov r3, r9
- lsls r3, 1
- mov r12, r3
- mov r0, r10
- add r0, r9
- str r0, [sp, 0xC]
- cmp r5, r8
- bcs _080F5798
- ldr r0, _080F57D8 @ =0x00026bff
- cmp r4, r0
- bgt _080F5798
- mov r1, r12
- str r1, [sp, 0x10]
- mov r10, r0
-_080F5772:
- ldr r3, [sp, 0x10]
- adds r2, r3, r7
- asrs r1, r4, 10
- asrs r0, r4, 9
- movs r3, 0x1
- ands r0, r3
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r7, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcs _080F5798
- cmp r4, r10
- ble _080F5772
-_080F5798:
- ldr r1, _080F57DC @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, [sp, 0x4]
- adds r1, r2, r5
- ldr r3, _080F57E0 @ =0x00009340
- adds r0, r3
- strh r1, [r0]
- ldrh r0, [r0]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- cmp r5, r8
- bcs _080F57D4
- mov r3, r12
- movs r7, 0x1
-_080F57B6:
- adds r2, r3, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r7
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F57B6
-_080F57D4:
- subs r0, r6, 0x4
- b _080F58C4
- .align 2, 0
-_080F57D8: .4byte 0x00026bff
-_080F57DC: .4byte gUnknown_083DFEC4
-_080F57E0: .4byte 0x00009340
-_080F57E4:
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bge _080F5890
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- movs r5, 0
- mov r2, r9
- lsls r2, 1
- mov r12, r2
- mov r3, r10
- add r3, r9
- str r3, [sp, 0xC]
- cmp r5, r8
- bcs _080F5842
- adds r3, r2, r6
- asrs r1, r4, 10
- asrs r0, r4, 9
- movs r2, 0x1
- ands r0, r2
- adds r1, r0
- add r1, r9
- strh r1, [r3]
- b _080F5838
-_080F5816:
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r6, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcs _080F5842
- mov r1, r12
- adds r3, r1, r6
- asrs r2, r4, 10
- asrs r0, r4, 9
- movs r1, 0x1
- ands r0, r1
- adds r2, r0
- add r2, r9
- strh r2, [r3]
-_080F5838:
- ldr r0, _080F5884 @ =0x00026bff
- cmp r4, r0
- bgt _080F5816
- movs r0, 0x9B
- strh r0, [r3]
-_080F5842:
- ldr r2, _080F5888 @ =gUnknown_083DFEC4
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- adds r1, r3, r5
- ldr r2, _080F588C @ =0x00009340
- adds r0, r2
- strh r1, [r0]
- ldrh r0, [r0]
- subs r0, 0x38
- lsls r0, 2
- adds r7, r0
- cmp r5, r8
- bcs _080F587E
- mov r3, r12
- movs r6, 0x1
-_080F5860:
- adds r2, r3, r7
- asrs r1, r4, 10
- asrs r0, r4, 9
- ands r0, r6
- adds r1, r0
- add r1, r9
- strh r1, [r2]
- ldr r0, [sp, 0x8]
- adds r4, r0
- adds r7, 0x4
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _080F5860
-_080F587E:
- subs r0, r7, 0x4
- b _080F58C4
- .align 2, 0
-_080F5884: .4byte 0x00026bff
-_080F5888: .4byte gUnknown_083DFEC4
-_080F588C: .4byte 0x00009340
-_080F5890:
- ldr r0, _080F58BC @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F58C0 @ =0x00009340
- adds r0, r1
- mov r2, sp
- ldrh r2, [r2, 0x4]
- strh r2, [r0]
- ldr r0, [sp, 0x4]
- subs r0, 0x38
- lsls r0, 2
- adds r6, r0
- adds r7, r0
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- ldr r3, [sp]
- ldrh r0, [r3]
- strh r0, [r7]
- movs r0, 0x9B
- strh r0, [r7, 0x2]
- b _080F58CC
- .align 2, 0
-_080F58BC: .4byte gUnknown_083DFEC4
-_080F58C0: .4byte 0x00009340
-_080F58C4:
- add r0, r12
- mov r1, sp
- ldrh r1, [r1, 0xC]
- strh r1, [r0]
-_080F58CC:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F5688
-
- thumb_func_start sub_80F58DC
-sub_80F58DC: @ 80F58DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2]
- ldrh r1, [r5, 0x6]
- cmp r0, r1
- bcs _080F5914
- adds r4, r0, 0
- mov r8, r4
- ldr r0, _080F590C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5910 @ =0x00009130
- adds r0, r1
- adds r4, r5, 0x4
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_80F5688
- b _080F5930
- .align 2, 0
-_080F590C: .4byte gUnknown_083DFEC4
-_080F5910: .4byte 0x00009130
-_080F5914:
- ldrh r4, [r5, 0x6]
- mov r8, r4
- ldr r0, _080F5A08 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5A0C @ =0x00009130
- adds r0, r1
- adds r4, r5, 0x4
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_80F5688
-_080F5930:
- adds r1, r4, 0
- ldr r0, _080F5A08 @ =gUnknown_083DFEC4
- ldr r6, [r0]
- ldr r0, _080F5A0C @ =0x00009130
- adds r4, r6, r0
- adds r7, r5, 0
- adds r7, 0x8
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r7, 0
- movs r3, 0x1
- bl sub_80F5688
- movs r3, 0
- ldrh r0, [r5, 0xA]
- ldrh r1, [r5, 0xE]
- cmp r0, r1
- bhi _080F5958
- movs r3, 0x1
-_080F5958:
- adds r2, r5, 0
- adds r2, 0xC
- ldr r1, _080F5A10 @ =0x00009238
- adds r0, r6, r1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80F5688
- movs r2, 0x38
- cmp r2, r8
- bcs _080F5990
- adds r7, r4, 0
- movs r3, 0
- ldr r0, _080F5A14 @ =0x00009132
- adds r4, r6, r0
-_080F5978:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r7, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r8
- bcc _080F5978
-_080F5990:
- ldrh r2, [r5, 0x2]
- ldr r0, _080F5A08 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r4, _080F5A18 @ =0x00009340
- adds r1, r3, r4
- adds r6, r0, 0
- ldrh r0, [r1]
- cmp r2, r0
- bhi _080F59BE
- ldr r4, _080F5A0C @ =0x00009130
- adds r3, r4
- movs r4, 0x9B
-_080F59A8:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1]
- cmp r2, r0
- bls _080F59A8
-_080F59BE:
- ldr r4, [r6]
- ldr r1, _080F5A18 @ =0x00009340
- adds r0, r4, r1
- ldrh r0, [r0]
- ldrh r1, [r5, 0xA]
- cmp r0, r1
- bcs _080F59CE
- adds r0, r1, 0
-_080F59CE:
- adds r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bhi _080F59FA
- ldr r0, _080F5A0C @ =0x00009130
- adds r5, r4, r0
- movs r3, 0
- ldr r1, _080F5A14 @ =0x00009132
- adds r4, r1
-_080F59E2:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r5, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bls _080F59E2
-_080F59FA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5A08: .4byte gUnknown_083DFEC4
-_080F5A0C: .4byte 0x00009130
-_080F5A10: .4byte 0x00009238
-_080F5A14: .4byte 0x00009132
-_080F5A18: .4byte 0x00009340
- thumb_func_end sub_80F58DC
-
- thumb_func_start sub_80F5A1C
-sub_80F5A1C: @ 80F5A1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2]
- ldrh r1, [r5, 0x12]
- cmp r0, r1
- bcs _080F5A54
- adds r7, r0, 0
- ldr r0, _080F5A4C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F5A50 @ =0x00009238
- adds r0, r2
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_80F5688
- b _080F5A70
- .align 2, 0
-_080F5A4C: .4byte gUnknown_083DFEC4
-_080F5A50: .4byte 0x00009238
-_080F5A54:
- ldrh r7, [r5, 0x12]
- ldr r0, _080F5B28 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r4, _080F5B2C @ =0x00009238
- adds r0, r4
- adds r4, r5, 0
- adds r4, 0x10
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80F5688
-_080F5A70:
- adds r1, r4, 0
- ldr r0, _080F5B28 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- mov r8, r0
- ldr r4, _080F5B2C @ =0x00009238
- add r4, r8
- adds r2, r5, 0
- adds r2, 0xC
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0
- bl sub_80F5688
- movs r2, 0x38
- cmp r2, r7
- bcs _080F5AB2
- adds r6, r4, 0
- movs r3, 0
- ldr r4, _080F5B30 @ =0x0000923a
- add r4, r8
-_080F5A9A:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r6, r0
- strh r3, [r1]
- adds r0, r4, r0
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080F5A9A
-_080F5AB2:
- ldrh r2, [r5, 0x2]
- ldr r0, _080F5B28 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r4, _080F5B34 @ =0x00009340
- adds r1, r3, r4
- adds r6, r0, 0
- ldrh r0, [r1]
- cmp r2, r0
- bhi _080F5AE0
- ldr r4, _080F5B30 @ =0x0000923a
- adds r3, r4
- movs r4, 0x9B
-_080F5ACA:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1]
- cmp r2, r0
- bls _080F5ACA
-_080F5AE0:
- ldrh r0, [r5, 0xE]
- adds r1, r0, 0x1
- ldr r3, [r6]
- ldr r2, _080F5B34 @ =0x00009340
- adds r0, r3, r2
- ldrh r0, [r0]
- cmp r0, r1
- bge _080F5AF2
- adds r0, r1, 0
-_080F5AF2:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bhi _080F5B1C
- ldr r4, _080F5B2C @ =0x00009238
- adds r5, r3, r4
- movs r4, 0
- ldr r0, _080F5B30 @ =0x0000923a
- adds r3, r0
-_080F5B04:
- adds r0, r2, 0
- subs r0, 0x38
- lsls r0, 2
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r3, r0
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x79
- bls _080F5B04
-_080F5B1C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5B28: .4byte gUnknown_083DFEC4
-_080F5B2C: .4byte 0x00009238
-_080F5B30: .4byte 0x0000923a
-_080F5B34: .4byte 0x00009340
- thumb_func_end sub_80F5A1C
-
- thumb_func_start sub_80F5B38
-sub_80F5B38: @ 80F5B38
- ldr r0, _080F5B48 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5B4C @ =0x00009345
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F5B48: .4byte gUnknown_083DFEC4
-_080F5B4C: .4byte 0x00009345
- thumb_func_end sub_80F5B38
-
- thumb_func_start sub_80F5B50
-sub_80F5B50: @ 80F5B50
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _080F5B68 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F5B6C @ =0x00009345
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _080F5B70
- cmp r0, 0x1
- beq _080F5BB4
- b _080F5BCC
- .align 2, 0
-_080F5B68: .4byte gUnknown_083DFEC4
-_080F5B6C: .4byte 0x00009345
-_080F5B70:
- bl dp12_8087EA4
- ldr r0, _080F5BA8 @ =gUnknown_03004DE0
- movs r2, 0xEF
- movs r3, 0xF4
- lsls r3, 3
- adds r1, r0, r3
- adds r0, 0x20
- movs r3, 0xF
-_080F5B82:
- strh r2, [r0]
- strh r2, [r0, 0x2]
- strh r2, [r1]
- strh r2, [r1, 0x2]
- adds r1, 0x4
- adds r0, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _080F5B82
- ldr r0, _080F5BAC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r5, _080F5BB0 @ =0x00009345
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- b _080F5BCE
- .align 2, 0
-_080F5BA8: .4byte gUnknown_03004DE0
-_080F5BAC: .4byte gUnknown_083DFEC4
-_080F5BB0: .4byte 0x00009345
-_080F5BB4:
- mov r0, sp
- ldr r1, _080F5BD8 @ =gUnknown_083E4990
- ldm r1!, {r2,r3,r5}
- stm r0!, {r2,r3,r5}
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080F5BCC:
- movs r0, 0
-_080F5BCE:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5BD8: .4byte gUnknown_083E4990
- thumb_func_end sub_80F5B50
-
- thumb_func_start sub_80F5BDC
-sub_80F5BDC: @ 80F5BDC
- push {lr}
- ldr r1, _080F5BEC @ =gUnknown_03004DC0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_080F5BEC: .4byte gUnknown_03004DC0
- thumb_func_end sub_80F5BDC
-
- thumb_func_start sub_80F5BF0
-sub_80F5BF0: @ 80F5BF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, _080F5CB8 @ =gUnknown_083DFEC4
- ldr r5, [r0]
- ldr r1, _080F5CBC @ =0x00009344
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5CA6
- ldr r0, _080F5CC0 @ =0x0000911c
- adds r4, r5, r0
- adds r0, r4, 0
- bl sub_80F58DC
- adds r0, r4, 0
- bl sub_80F5A1C
- movs r6, 0
- ldr r1, _080F5CC4 @ =gUnknown_03004DE0
- mov r12, r1
- movs r0, 0xF0
- lsls r0, 3
- add r0, r12
- mov r9, r0
- adds r7, r5, 0
- ldr r1, _080F5CC8 @ =0x0000ffff
- mov r8, r1
- ldr r5, _080F5CCC @ =0x00009130
- adds r5, r7, r5
- str r5, [sp]
- ldr r0, _080F5CD0 @ =0x00009132
- adds r0, r7, r0
- str r0, [sp, 0x4]
- ldr r1, _080F5CD4 @ =0x00009238
- adds r1, r7
- mov r10, r1
-_080F5C40:
- adds r2, r6, 0
- adds r2, 0x37
- lsls r3, r2, 2
- mov r5, r9
- adds r5, r3, r5
- str r5, [sp, 0x8]
- add r3, r12
- lsls r4, r6, 2
- ldr r1, [sp]
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 8
- ldr r5, [sp, 0x4]
- adds r1, r5, r4
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r3]
- mov r1, r8
- ands r0, r1
- ldr r5, [sp, 0x8]
- strh r0, [r5]
- lsls r2, 1
- adds r2, 0x1
- lsls r2, 1
- mov r0, r9
- adds r3, r2, r0
- add r2, r12
- mov r1, r10
- adds r0, r1, r4
- ldrh r1, [r0]
- lsls r1, 8
- ldr r5, _080F5CD8 @ =0x0000923a
- adds r0, r7, r5
- adds r0, r4
- ldrh r0, [r0]
- orrs r1, r0
- strh r1, [r2]
- mov r0, r8
- ands r1, r0
- strh r1, [r3]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _080F5CB8 @ =gUnknown_083DFEC4
- cmp r6, 0x41
- bls _080F5C40
- ldr r0, [r0]
- ldr r1, _080F5CBC @ =0x00009344
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080F5CA6:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5CB8: .4byte gUnknown_083DFEC4
-_080F5CBC: .4byte 0x00009344
-_080F5CC0: .4byte 0x0000911c
-_080F5CC4: .4byte gUnknown_03004DE0
-_080F5CC8: .4byte 0x0000ffff
-_080F5CCC: .4byte 0x00009130
-_080F5CD0: .4byte 0x00009132
-_080F5CD4: .4byte 0x00009238
-_080F5CD8: .4byte 0x0000923a
- thumb_func_end sub_80F5BF0
-
- thumb_func_start sub_80F5CDC
-sub_80F5CDC: @ 80F5CDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080F5DB0 @ =gUnknown_083DFEC4
- ldr r6, [r0]
- ldr r1, _080F5DB4 @ =0x00009344
- adds r0, r6, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5DA0
- ldr r0, _080F5DB8 @ =0x0000911c
- adds r4, r6, r0
- adds r0, r4, 0
- bl sub_80F58DC
- adds r0, r4, 0
- bl sub_80F5A1C
- movs r0, 0x37
- subs r0, r5
- lsls r0, 17
- lsrs r5, r0, 16
- movs r7, 0
- ldr r1, _080F5DBC @ =gUnknown_03004DE0
- mov r12, r1
- movs r4, 0xF0
- lsls r4, 3
- add r4, r12
- mov r9, r4
- ldr r0, _080F5DC0 @ =0x0000ffff
- mov r8, r0
- ldr r1, _080F5DC4 @ =0x00009130
- adds r1, r6, r1
- str r1, [sp]
- ldr r4, _080F5DC8 @ =0x00009132
- adds r4, r6, r4
- str r4, [sp, 0x4]
- ldr r0, _080F5DCC @ =0x00009238
- adds r0, r6
- mov r10, r0
-_080F5D36:
- lsls r2, r5, 1
- mov r1, r9
- adds r1, r2, r1
- str r1, [sp, 0x8]
- add r2, r12
- lsls r3, r7, 2
- ldr r4, [sp]
- adds r0, r4, r3
- ldrh r0, [r0]
- lsls r0, 8
- ldr r4, [sp, 0x4]
- adds r1, r4, r3
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2]
- mov r1, r8
- ands r0, r1
- ldr r4, [sp, 0x8]
- strh r0, [r4]
- adds r2, r5, 0x1
- lsls r2, 1
- mov r0, r9
- adds r0, r2, r0
- str r0, [sp, 0x8]
- add r2, r12
- mov r1, r10
- adds r0, r1, r3
- ldrh r1, [r0]
- lsls r1, 8
- ldr r4, _080F5DD0 @ =0x0000923a
- adds r0, r6, r4
- adds r0, r3
- ldrh r0, [r0]
- orrs r1, r0
- strh r1, [r2]
- mov r0, r8
- ands r1, r0
- ldr r4, [sp, 0x8]
- strh r1, [r4]
- adds r0, r5, 0x2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, _080F5DB0 @ =gUnknown_083DFEC4
- cmp r7, 0x41
- bls _080F5D36
- ldr r0, [r0]
- ldr r1, _080F5DB4 @ =0x00009344
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_080F5DA0:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F5DB0: .4byte gUnknown_083DFEC4
-_080F5DB4: .4byte 0x00009344
-_080F5DB8: .4byte 0x0000911c
-_080F5DBC: .4byte gUnknown_03004DE0
-_080F5DC0: .4byte 0x0000ffff
-_080F5DC4: .4byte 0x00009130
-_080F5DC8: .4byte 0x00009132
-_080F5DCC: .4byte 0x00009238
-_080F5DD0: .4byte 0x0000923a
- thumb_func_end sub_80F5CDC
-
- thumb_func_start sub_80F5DD4
-sub_80F5DD4: @ 80F5DD4
- push {lr}
- ldr r0, _080F5DE8 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F5DEC
- bl sub_80F5E20
- b _080F5E18
- .align 2, 0
-_080F5DE8: .4byte gMain
-_080F5DEC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F5DFA
- bl sub_80F5EE4
- b _080F5E18
-_080F5DFA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080F5E08
- bl sub_80F5FB4
- b _080F5E18
-_080F5E08:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080F5E14
- movs r0, 0
- b _080F5E1C
-_080F5E14:
- bl sub_80F6010
-_080F5E18:
- lsls r0, 24
- lsrs r0, 24
-_080F5E1C:
- pop {r1}
- bx r1
- thumb_func_end sub_80F5DD4
-
- thumb_func_start sub_80F5E20
-sub_80F5E20: @ 80F5E20
- push {r4,r5,lr}
- ldr r0, _080F5E38 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r3, _080F5E3C @ =0x0000876e
- adds r1, r2, r3
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r4, r0, 0
- cmp r1, 0
- bne _080F5E40
- movs r0, 0
- b _080F5EC8
- .align 2, 0
-_080F5E38: .4byte gUnknown_083DFEC4
-_080F5E3C: .4byte 0x0000876e
-_080F5E40:
- ldr r1, _080F5E6C @ =0x000087c9
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5E74
- ldr r3, _080F5E70 @ =0x0000876c
- adds r0, r2, r3
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0
- bne _080F5E74
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
- b _080F5EC8
- .align 2, 0
-_080F5E6C: .4byte 0x000087c9
-_080F5E70: .4byte 0x0000876c
-_080F5E74:
- ldr r1, [r4]
- ldr r0, _080F5ED0 @ =0x0000876c
- adds r2, r1, r0
- ldrh r0, [r2]
- subs r3, r0, 0x1
- strh r3, [r2]
- ldr r5, _080F5ED4 @ =0x000087c9
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F5E98
- lsls r0, r3, 16
- cmp r0, 0
- bge _080F5E98
- ldr r3, _080F5ED8 @ =0x00008772
- adds r0, r1, r3
- ldrh r0, [r0]
- strh r0, [r2]
-_080F5E98:
- ldr r0, [r4]
- ldr r5, _080F5EDC @ =0x00008770
- adds r2, r0, r5
- ldr r3, _080F5ED0 @ =0x0000876c
- adds r1, r0, r3
- ldrh r1, [r1]
- ldrh r2, [r2]
- adds r2, r1, r2
- subs r5, 0x2
- adds r4, r0, r5
- strh r2, [r4]
- ldr r1, _080F5EE0 @ =0x00008774
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r3, [r0]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F5EC6
- subs r0, r2, 0x1
- subs r0, r3
- strh r0, [r4]
-_080F5EC6:
- movs r0, 0x1
-_080F5EC8:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5ED0: .4byte 0x0000876c
-_080F5ED4: .4byte 0x000087c9
-_080F5ED8: .4byte 0x00008772
-_080F5EDC: .4byte 0x00008770
-_080F5EE0: .4byte 0x00008774
- thumb_func_end sub_80F5E20
-
- thumb_func_start sub_80F5EE4
-sub_80F5EE4: @ 80F5EE4
- push {r4-r6,lr}
- ldr r3, _080F5F04 @ =gUnknown_083DFEC4
- ldr r4, [r3]
- ldr r1, _080F5F08 @ =0x0000876e
- adds r0, r4, r1
- ldr r2, _080F5F0C @ =0x00008774
- adds r1, r4, r2
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r6, 0
- ldrsh r0, [r1, r6]
- adds r5, r3, 0
- cmp r2, r0
- bne _080F5F10
- movs r0, 0
- b _080F5F98
- .align 2, 0
-_080F5F04: .4byte gUnknown_083DFEC4
-_080F5F08: .4byte 0x0000876e
-_080F5F0C: .4byte 0x00008774
-_080F5F10:
- ldr r1, _080F5F38 @ =0x000087c9
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F5F40
- ldr r2, _080F5F3C @ =0x0000876c
- adds r0, r4, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x7
- bne _080F5F40
- movs r0, 0x1
- bl sub_80F063C
- movs r0, 0x1
- bl sub_80F6074
- movs r0, 0x2
- b _080F5F98
- .align 2, 0
-_080F5F38: .4byte 0x000087c9
-_080F5F3C: .4byte 0x0000876c
-_080F5F40:
- ldr r2, [r5]
- ldr r6, _080F5FA0 @ =0x0000876c
- adds r4, r2, r6
- ldrh r0, [r4]
- adds r1, r0, 0x1
- strh r1, [r4]
- ldr r3, _080F5FA4 @ =0x000087c9
- adds r0, r2, r3
- ldrb r3, [r0]
- cmp r3, 0
- bne _080F5F68
- adds r6, 0x6
- adds r0, r2, r6
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _080F5F68
- strh r3, [r4]
-_080F5F68:
- ldr r0, [r5]
- ldr r3, _080F5FA8 @ =0x00008770
- adds r2, r0, r3
- ldr r5, _080F5FA0 @ =0x0000876c
- adds r1, r0, r5
- ldrh r1, [r1]
- ldrh r2, [r2]
- adds r2, r1, r2
- ldr r6, _080F5FAC @ =0x0000876e
- adds r4, r0, r6
- strh r2, [r4]
- ldr r1, _080F5FB0 @ =0x00008774
- adds r0, r1
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r3, [r0]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F5F96
- subs r0, r2, 0x1
- subs r0, r3
- strh r0, [r4]
-_080F5F96:
- movs r0, 0x1
-_080F5F98:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F5FA0: .4byte 0x0000876c
-_080F5FA4: .4byte 0x000087c9
-_080F5FA8: .4byte 0x00008770
-_080F5FAC: .4byte 0x0000876e
-_080F5FB0: .4byte 0x00008774
- thumb_func_end sub_80F5EE4
-
- thumb_func_start sub_80F5FB4
-sub_80F5FB4: @ 80F5FB4
- push {r4,lr}
- ldr r0, _080F5FD8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F5FDC @ =0x00008770
- adds r0, r1, r2
- ldrh r3, [r0]
- movs r4, 0
- ldrsh r2, [r0, r4]
- cmp r2, 0
- beq _080F5FD2
- ldr r4, _080F5FE0 @ =0x000087c9
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F5FE4
-_080F5FD2:
- movs r0, 0
- b _080F6004
- .align 2, 0
-_080F5FD8: .4byte gUnknown_083DFEC4
-_080F5FDC: .4byte 0x00008770
-_080F5FE0: .4byte 0x000087c9
-_080F5FE4:
- cmp r2, 0x7
- bgt _080F5FF0
- negs r0, r3
- lsls r0, 16
- lsrs r0, 16
- b _080F5FF2
-_080F5FF0:
- ldr r0, _080F600C @ =0x0000fff8
-_080F5FF2:
- lsls r4, r0, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
-_080F6004:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080F600C: .4byte 0x0000fff8
- thumb_func_end sub_80F5FB4
-
- thumb_func_start sub_80F6010
-sub_80F6010: @ 80F6010
- push {r4-r6,lr}
- ldr r0, _080F603C @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r1, _080F6040 @ =0x00008772
- adds r0, r3, r1
- ldr r2, _080F6044 @ =0x00008774
- adds r1, r3, r2
- ldrh r5, [r0]
- movs r4, 0
- ldrsh r2, [r0, r4]
- ldrh r4, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r2, r0
- beq _080F6038
- ldr r1, _080F6048 @ =0x000087c9
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F604C
-_080F6038:
- movs r0, 0
- b _080F606C
- .align 2, 0
-_080F603C: .4byte gUnknown_083DFEC4
-_080F6040: .4byte 0x00008772
-_080F6044: .4byte 0x00008774
-_080F6048: .4byte 0x000087c9
-_080F604C:
- subs r0, r4, r5
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _080F605A
- movs r4, 0x8
-_080F605A:
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_80F063C
- adds r0, r4, 0
- bl sub_80F6074
- movs r0, 0x2
-_080F606C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6010
-
- thumb_func_start sub_80F6074
-sub_80F6074: @ 80F6074
- push {r4-r7,lr}
- ldr r1, _080F6120 @ =gUnknown_083DFEC4
- ldr r6, [r1]
- ldr r1, _080F6124 @ =0x00008770
- adds r3, r6, r1
- ldrh r1, [r3]
- lsls r0, 16
- asrs r7, r0, 16
- adds r2, r7, r1
- strh r2, [r3]
- ldr r5, _080F6128 @ =0x00008774
- adds r4, r6, r5
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4]
- mov r12, r1
- movs r5, 0
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080F60A4
- subs r0, r2, 0x1
- mov r1, r12
- subs r0, r1
- strh r0, [r3]
-_080F60A4:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F60B6
- adds r0, r1, 0x1
- ldrh r5, [r4]
- adds r0, r5
- strh r0, [r3]
-_080F60B6:
- ldr r0, _080F612C @ =0x00008772
- adds r3, r6, r0
- ldrh r0, [r3]
- adds r2, r7, r0
- strh r2, [r3]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r1, [r4]
- mov r12, r1
- movs r5, 0
- ldrsh r1, [r4, r5]
- cmp r0, r1
- ble _080F60D8
- subs r0, r2, 0x1
- mov r1, r12
- subs r0, r1
- strh r0, [r3]
-_080F60D8:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F60EA
- adds r0, r1, 0x1
- ldrh r5, [r4]
- adds r0, r5
- strh r0, [r3]
-_080F60EA:
- ldr r0, _080F6130 @ =0x0000876e
- adds r3, r6, r0
- ldrh r0, [r3]
- adds r2, r7, r0
- strh r2, [r3]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r4]
- movs r6, 0
- ldrsh r1, [r4, r6]
- cmp r0, r1
- ble _080F6108
- subs r0, r2, 0x1
- subs r0, r5
- strh r0, [r3]
-_080F6108:
- ldrh r1, [r3]
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080F611A
- adds r0, r1, 0x1
- ldrh r4, [r4]
- adds r0, r4
- strh r0, [r3]
-_080F611A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6120: .4byte gUnknown_083DFEC4
-_080F6124: .4byte 0x00008770
-_080F6128: .4byte 0x00008774
-_080F612C: .4byte 0x00008772
-_080F6130: .4byte 0x0000876e
- thumb_func_end sub_80F6074
-
- thumb_func_start sub_80F6134
-sub_80F6134: @ 80F6134
- push {r4-r6,lr}
- ldr r0, _080F6194 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r1, _080F6198 @ =0x000087c9
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F61E0
- ldr r2, _080F619C @ =0x000087dc
- adds r5, r3, r2
- movs r4, 0
- ldrsh r1, [r5, r4]
- ldr r6, _080F61A0 @ =0x00008774
- adds r4, r3, r6
- movs r2, 0
- ldrsh r0, [r4, r2]
- subs r0, 0x7
- cmp r1, r0
- bge _080F61AC
- subs r6, 0x8
- adds r1, r3, r6
- movs r0, 0
- strh r0, [r1]
- ldrh r0, [r5]
- ldr r1, _080F61A4 @ =0x00008770
- adds r2, r3, r1
- strh r0, [r2]
- ldrh r1, [r5]
- ldr r5, _080F61A8 @ =0x0000876e
- adds r0, r3, r5
- strh r1, [r0]
- ldrh r5, [r2]
- adds r0, r5, 0x7
- adds r6, 0x6
- adds r2, r3, r6
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- ldrh r3, [r4]
- movs r6, 0
- ldrsh r1, [r4, r6]
- cmp r0, r1
- ble _080F61F4
- adds r0, r5, 0x6
- subs r0, r3
- strh r0, [r2]
- b _080F61F4
- .align 2, 0
-_080F6194: .4byte gUnknown_083DFEC4
-_080F6198: .4byte 0x000087c9
-_080F619C: .4byte 0x000087dc
-_080F61A0: .4byte 0x00008774
-_080F61A4: .4byte 0x00008770
-_080F61A8: .4byte 0x0000876e
-_080F61AC:
- ldrh r0, [r4]
- subs r0, 0x7
- ldr r2, _080F61D4 @ =0x00008770
- adds r1, r3, r2
- strh r0, [r1]
- ldrh r1, [r4]
- ldr r6, _080F61D8 @ =0x00008772
- adds r0, r3, r6
- strh r1, [r0]
- ldrh r1, [r5]
- subs r2, 0x2
- adds r0, r3, r2
- strh r1, [r0]
- ldrh r0, [r4]
- subs r0, r1
- movs r1, 0x7
- subs r1, r0
- ldr r4, _080F61DC @ =0x0000876c
- adds r0, r3, r4
- b _080F61F2
- .align 2, 0
-_080F61D4: .4byte 0x00008770
-_080F61D8: .4byte 0x00008772
-_080F61DC: .4byte 0x0000876c
-_080F61E0:
- ldr r5, _080F61FC @ =0x000087dc
- adds r2, r3, r5
- ldrh r1, [r2]
- ldr r6, _080F6200 @ =0x0000876c
- adds r0, r3, r6
- strh r1, [r0]
- ldrh r1, [r2]
- ldr r2, _080F6204 @ =0x0000876e
- adds r0, r3, r2
-_080F61F2:
- strh r1, [r0]
-_080F61F4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F61FC: .4byte 0x000087dc
-_080F6200: .4byte 0x0000876c
-_080F6204: .4byte 0x0000876e
- thumb_func_end sub_80F6134
-
- thumb_func_start sub_80F6208
-sub_80F6208: @ 80F6208
- push {lr}
- ldr r0, _080F623C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F6240 @ =0x00008fe6
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _080F6244 @ =0x00008fe7
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _080F6248 @ =0x00008fe8
- adds r2, r1, r0
- movs r0, 0xFF
- strb r0, [r2]
- ldr r2, _080F624C @ =0x00006dac
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F6238
-_080F622E:
- bl sub_80F6250
- lsls r0, 24
- cmp r0, 0
- bne _080F622E
-_080F6238:
- pop {r0}
- bx r0
- .align 2, 0
-_080F623C: .4byte gUnknown_083DFEC4
-_080F6240: .4byte 0x00008fe6
-_080F6244: .4byte 0x00008fe7
-_080F6248: .4byte 0x00008fe8
-_080F624C: .4byte 0x00006dac
- thumb_func_end sub_80F6208
-
- thumb_func_start sub_80F6250
-sub_80F6250: @ 80F6250
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F6270 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080F6274 @ =0x00008fe8
- adds r3, r2, r0
- movs r1, 0
- ldrsb r1, [r3, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080F6278
-_080F626C:
- movs r0, 0
- b _080F637E
- .align 2, 0
-_080F6270: .4byte gUnknown_083DFEC4
-_080F6274: .4byte 0x00008fe8
-_080F6278:
- ldr r1, _080F630C @ =0x00008fe6
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080F631C
- cmp r0, 0x8
- beq _080F626C
- movs r6, 0
- adds r7, r2, 0
- adds r5, r7, r1
- ldr r0, _080F6310 @ =0x00008fe7
- adds r4, r7, r0
- ldr r1, _080F6314 @ =gUnknown_020300A4
- mov r8, r1
- ldr r0, _080F6318 @ =0x000041a0
- add r0, r8
- mov r9, r0
-_080F629A:
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r8
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- cmp r0, 0
- bne _080F636C
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- add r1, r9
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- adds r1, r0, 0
- cmp r1, 0
- bne _080F636C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r2, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1D
- bls _080F62FE
- strb r1, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ands r0, r2
- cmp r0, 0x6
- bhi _080F637C
-_080F62FE:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _080F629A
- b _080F637C
- .align 2, 0
-_080F630C: .4byte 0x00008fe6
-_080F6310: .4byte 0x00008fe7
-_080F6314: .4byte gUnknown_020300A4
-_080F6318: .4byte 0x000041a0
-_080F631C:
- movs r0, 0
- strb r0, [r3]
- movs r6, 0
- b _080F632A
-_080F6324:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080F632A:
- cmp r6, 0x5
- bhi _080F634C
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F635C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x51
- bl GetMonData
- cmp r0, 0
- beq _080F6324
- ldr r0, _080F6360 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F6364 @ =0x00008fe8
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080F634C:
- ldr r0, _080F6360 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F6368 @ =0x00008fe6
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _080F6372
- .align 2, 0
-_080F635C: .4byte gPlayerParty
-_080F6360: .4byte gUnknown_083DFEC4
-_080F6364: .4byte 0x00008fe8
-_080F6368: .4byte 0x00008fe6
-_080F636C:
- ldr r0, _080F6378 @ =0x00008fe8
- adds r1, r7, r0
- movs r0, 0x1
-_080F6372:
- strb r0, [r1]
- b _080F626C
- .align 2, 0
-_080F6378: .4byte 0x00008fe8
-_080F637C:
- movs r0, 0x1
-_080F637E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6250
-
- thumb_func_start sub_80F638C
-sub_80F638C: @ 80F638C
- push {r4,lr}
- ldr r0, _080F63C0 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r1, _080F63C4 @ =0x00008fe6
- adds r0, r4, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080F63C8 @ =0x00008fe7
- adds r0, r4, r2
- strb r1, [r0]
- bl sub_80F492C
- ldr r0, _080F63CC @ =0x00006dac
- adds r4, r0
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F63B8
-_080F63AE:
- bl sub_80F63D0
- lsls r0, 24
- cmp r0, 0
- bne _080F63AE
-_080F63B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F63C0: .4byte gUnknown_083DFEC4
-_080F63C4: .4byte 0x00008fe6
-_080F63C8: .4byte 0x00008fe7
-_080F63CC: .4byte 0x00006dac
- thumb_func_end sub_80F638C
-
- thumb_func_start sub_80F63D0
-sub_80F63D0: @ 80F63D0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080F647C @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r1, _080F6480 @ =0x00008fe6
- adds r0, r2, r1
- ldrb r3, [r0]
- cmp r3, 0xE
- beq _080F6498
- cmp r3, 0xF
- bne _080F63E8
- b _080F64F6
-_080F63E8:
- movs r1, 0x80
- lsls r1, 23
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- movs r6, 0
- ldr r0, _080F6480 @ =0x00008fe6
- adds r5, r2, r0
- ldr r1, _080F6484 @ =0x00008fe7
- adds r4, r2, r1
-_080F63FC:
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldrb r2, [r4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- ldr r2, _080F6488 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- movs r1, 0x51
- bl GetBoxMonData
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080F644E
- ldrb r1, [r5]
- lsls r1, 8
- ldr r2, _080F648C @ =0xffff00ff
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- ldrb r2, [r4]
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 16
- ldr r1, _080F6490 @ =0xffe0ffff
- ands r0, r1
- orrs r0, r2
- ldr r1, _080F6494 @ =0xffffff00
- ands r0, r1
- orrs r0, r3
- str r0, [sp]
- mov r0, sp
- bl sub_80F4944
-_080F644E:
- ldrb r0, [r4]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r4]
- movs r1, 0xFF
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1E
- bne _080F646E
- strb r2, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ands r0, r1
- cmp r0, 0xE
- beq _080F6508
-_080F646E:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0xE
- bls _080F63FC
- b _080F6508
- .align 2, 0
-_080F647C: .4byte gUnknown_083DFEC4
-_080F6480: .4byte 0x00008fe6
-_080F6484: .4byte 0x00008fe7
-_080F6488: .4byte gUnknown_020300A4
-_080F648C: .4byte 0xffff00ff
-_080F6490: .4byte 0xffe0ffff
-_080F6494: .4byte 0xffffff00
-_080F6498:
- mov r0, sp
- ldrb r1, [r0, 0x3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x3]
- strb r3, [r0, 0x1]
- movs r6, 0
- mov r4, sp
-_080F64A8:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _080F64FC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x51
- bl GetMonData
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080F64DA
- movs r0, 0x1F
- adds r2, r6, 0
- ands r2, r0
- ldrb r0, [r4, 0x2]
- movs r5, 0x20
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x2]
- strb r3, [r4]
- mov r0, sp
- bl sub_80F4944
-_080F64DA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _080F64A8
- bl sub_80F49F4
- ldr r0, _080F6500 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F6504 @ =0x00008fe6
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F64F6:
- movs r0, 0
- b _080F650A
- .align 2, 0
-_080F64FC: .4byte gPlayerParty
-_080F6500: .4byte gUnknown_083DFEC4
-_080F6504: .4byte 0x00008fe6
-_080F6508:
- movs r0, 0x1
-_080F650A:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F63D0
-
- thumb_func_start sub_80F6514
-sub_80F6514: @ 80F6514
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- mov r5, r10
- ldr r0, _080F65A4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- lsls r1, 2
- adds r0, r1
- ldr r2, _080F65A8 @ =0x0000893d
- adds r1, r0, r2
- ldrb r6, [r1]
- mov r8, r6
- ldr r1, _080F65AC @ =0x0000893e
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r4, r0, 27
- adds r7, r4, 0
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x2D
- movs r3, 0
- bl sub_80F44B0
- cmp r0, 0
- beq _080F655E
- b _080F66CA
-_080F655E:
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x2
- adds r3, r5, 0
- bl sub_80F44B0
- adds r0, r5, 0
- bl StringGetEnd10
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_80F44B0
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r6, 0xE
- bne _080F65B4
- movs r0, 0x64
- muls r4, r0
- ldr r0, _080F65B0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r4, 0
- bl GetMonGender
- b _080F65EA
- .align 2, 0
-_080F65A4: .4byte gUnknown_083DFEC4
-_080F65A8: .4byte 0x0000893d
-_080F65AC: .4byte 0x0000893e
-_080F65B0: .4byte gPlayerParty
-_080F65B4:
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 4
- ldr r2, _080F6620 @ =gUnknown_020300A4
- adds r1, r2
- adds r0, r1
- bl GetLevelFromBoxMonExp
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0
- bl sub_80F44B0
- adds r1, r0, 0
- mov r0, r9
- bl GetGenderFromSpeciesAndPersonality
-_080F65EA:
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r9
- mov r1, r10
- bl sub_8040D8C
- cmp r0, 0
- beq _080F65FC
- movs r4, 0xFF
-_080F65FC:
- adds r0, r5, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
- movs r1, 0xFC
- strb r1, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r0, 0x3F
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _080F6624
- cmp r4, 0xFE
- beq _080F663C
- b _080F6656
- .align 2, 0
-_080F6620: .4byte gUnknown_020300A4
-_080F6624:
- strb r1, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0xC
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0xD
- strb r0, [r5, 0x5]
- movs r0, 0xB5
- b _080F6652
-_080F663C:
- strb r1, [r5]
- movs r0, 0x1
- strb r0, [r5, 0x1]
- movs r0, 0xA
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0xB
- strb r0, [r5, 0x5]
- movs r0, 0xB6
-_080F6652:
- strb r0, [r5, 0x6]
- adds r5, 0x7
-_080F6656:
- movs r4, 0xFC
- strb r4, [r5]
- movs r1, 0x1
- strb r1, [r5, 0x1]
- strb r1, [r5, 0x2]
- strb r4, [r5, 0x3]
- movs r0, 0x3
- strb r0, [r5, 0x4]
- movs r0, 0x5
- strb r0, [r5, 0x5]
- adds r5, 0x6
- strb r4, [r5]
- movs r6, 0x13
- strb r6, [r5, 0x1]
- movs r0, 0x46
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xBA
- strb r0, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0x11
- strb r0, [r5, 0x2]
- strb r1, [r5, 0x3]
- movs r0, 0x34
- strb r0, [r5, 0x4]
- adds r5, 0x5
- adds r0, r5, 0
- ldr r1, [sp, 0x8]
- bl ConvertIntToDecimalString
- adds r5, r0, 0
- ldr r0, [sp, 0x4]
- cmp r0, 0x1
- bne _080F66C0
- ldr r0, _080F66B8 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, [sp]
- lsls r1, r2, 2
- adds r0, r1
- ldr r1, _080F66BC @ =0x0000893c
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- movs r2, 0x80
- movs r3, 0x1
- bl sub_8072C14
- adds r5, r0, 0
- b _080F66CE
- .align 2, 0
-_080F66B8: .4byte gUnknown_083DFEC4
-_080F66BC: .4byte 0x0000893c
-_080F66C0:
- strb r4, [r5]
- strb r6, [r5, 0x1]
- movs r0, 0x67
- strb r0, [r5, 0x2]
- adds r5, 0x3
-_080F66CA:
- movs r0, 0xFF
- strb r0, [r5]
-_080F66CE:
- adds r0, r5, 0
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6514
-
- thumb_func_start sub_80F66E0
-sub_80F66E0: @ 80F66E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080F676C @ =gUnknown_083DFEC4
- mov r8, r0
- ldr r4, [r0]
- ldr r1, _080F6770 @ =0x00008829
- adds r0, r4, r1
- ldr r2, _080F6774 @ =0x0000876e
- adds r5, r4, r2
- ldrh r1, [r5]
- movs r2, 0
- bl sub_80F6514
- movs r3, 0
- ldrsh r0, [r5, r3]
- movs r1, 0
- bl sub_80F4824
- ldrh r1, [r5]
- ldr r6, _080F6778 @ =0x000087dc
- adds r0, r4, r6
- movs r6, 0
- strh r1, [r0]
- ldr r1, _080F677C @ =0x0000bc8e
- adds r0, r4, r1
- strb r6, [r0]
- movs r2, 0
- mov r9, r2
- movs r3, 0
- ldrsh r1, [r5, r3]
- lsls r1, 2
- adds r1, r4, r1
- ldr r5, _080F6780 @ =0x0000893d
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _080F6784 @ =0x0000893e
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x52
- movs r3, 0
- bl sub_80F44B0
- adds r7, r0, 0
- ldr r3, _080F6788 @ =0x0000bc8f
- adds r4, r3
- strb r6, [r4]
- movs r5, 0
- mov r12, r5
- mov r10, r8
-_080F674E:
- ldr r1, _080F678C @ =gUnknown_083E499C
- mov r6, r12
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x36
- bgt _080F6790
- cmp r0, 0x32
- blt _080F6790
- movs r0, 0x7
- adds r2, r7, 0
- ands r2, r0
- lsrs r7, 3
- movs r0, 0x4
- b _080F679A
- .align 2, 0
-_080F676C: .4byte gUnknown_083DFEC4
-_080F6770: .4byte 0x00008829
-_080F6774: .4byte 0x0000876e
-_080F6778: .4byte 0x000087dc
-_080F677C: .4byte 0x0000bc8e
-_080F6780: .4byte 0x0000893d
-_080F6784: .4byte 0x0000893e
-_080F6788: .4byte 0x0000bc8f
-_080F678C: .4byte gUnknown_083E499C
-_080F6790:
- movs r0, 0x1
- adds r2, r7, 0
- ands r2, r0
- lsrs r7, 1
- movs r0, 0x1
-_080F679A:
- movs r4, 0
- adds r1, r2, 0
- add r0, r9
- mov r8, r0
- cmp r4, r1
- bcs _080F67D4
- mov r3, r10
- ldr r0, [r3]
- ldr r5, _080F6828 @ =0x0000bc8e
- adds r3, r0, r5
- ldr r6, _080F682C @ =0x0000bc4c
- adds r6, r0, r6
- str r6, [sp]
- adds r5, r1, 0
-_080F67B6:
- ldrb r0, [r3]
- adds r1, r0, 0x1
- strb r1, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- adds r0, r1, r0
- mov r6, r9
- adds r1, r6, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcc _080F67B6
-_080F67D4:
- cmp r2, 0
- beq _080F67EC
- mov r0, r9
- cmp r0, 0x18
- bls _080F67EC
- mov r2, r10
- ldr r1, [r2]
- ldr r3, _080F6830 @ =0x0000bc8f
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F67EC:
- mov r5, r8
- lsls r0, r5, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x10
- bls _080F674E
- ldr r6, _080F6834 @ =gUnknown_083DFEC4
- ldr r2, [r6]
- ldr r1, _080F6828 @ =0x0000bc8e
- adds r0, r2, r1
- ldr r3, _080F6830 @ =0x0000bc8f
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080F6840
- ldr r5, _080F6838 @ =0x0000bc90
- adds r0, r2, r5
- movs r1, 0
- strb r1, [r0]
- ldr r6, _080F683C @ =0x0000bc91
- adds r0, r2, r6
- strb r1, [r0]
- b _080F6850
- .align 2, 0
-_080F6828: .4byte 0x0000bc8e
-_080F682C: .4byte 0x0000bc4c
-_080F6830: .4byte 0x0000bc8f
-_080F6834: .4byte gUnknown_083DFEC4
-_080F6838: .4byte 0x0000bc90
-_080F683C: .4byte 0x0000bc91
-_080F6840:
- ldr r0, _080F6888 @ =0x0000bc90
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- ldr r3, _080F688C @ =0x0000bc91
- adds r1, r2, r3
- movs r0, 0x3
- strb r0, [r1]
-_080F6850:
- ldr r5, _080F6890 @ =gUnknown_083DFEC4
- ldr r1, [r5]
- ldr r6, _080F6894 @ =0x0000bc8e
- adds r0, r1, r6
- ldr r2, _080F6898 @ =0x0000bc8f
- adds r1, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0
- mov r12, r3
- adds r3, r5, 0
- ldr r1, _080F689C @ =0x0000bc96
- movs r4, 0x9
-_080F6870:
- cmp r2, 0x8
- bls _080F68A0
- ldr r0, [r3]
- adds r0, r1
- add r0, r12
- strb r4, [r0]
- adds r0, r2, 0
- subs r0, 0x9
- lsls r0, 24
- lsrs r2, r0, 24
- b _080F68AA
- .align 2, 0
-_080F6888: .4byte 0x0000bc90
-_080F688C: .4byte 0x0000bc91
-_080F6890: .4byte gUnknown_083DFEC4
-_080F6894: .4byte 0x0000bc8e
-_080F6898: .4byte 0x0000bc8f
-_080F689C: .4byte 0x0000bc96
-_080F68A0:
- ldr r0, [r3]
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- movs r2, 0
-_080F68AA:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- cmp r0, 0x2
- bls _080F6870
- ldr r5, _080F68DC @ =gUnknown_083DFEC4
- ldr r0, [r5]
- ldr r6, _080F68E0 @ =0x0000bc96
- adds r1, r0, r6
- add r1, r12
- ldr r2, _080F68E4 @ =0x0000bc8f
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F68DC: .4byte gUnknown_083DFEC4
-_080F68E0: .4byte 0x0000bc96
-_080F68E4: .4byte 0x0000bc8f
- thumb_func_end sub_80F66E0
-
- thumb_func_start sub_80F68E8
-sub_80F68E8: @ 80F68E8
- push {r4-r7,lr}
- ldr r3, _080F6918 @ =gUnknown_083DFEC4
- ldr r0, [r3]
- ldr r2, _080F691C @ =0x0000bc90
- adds r1, r0, r2
- ldrb r5, [r1]
- ldr r6, _080F6920 @ =0x0000bc91
- adds r0, r6
- ldrb r4, [r0]
- movs r0, 0x1
- mov r12, r0
- ldr r2, _080F6924 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- adds r6, r3, 0
- adds r7, r2, 0
- cmp r0, 0
- beq _080F692E
- lsls r0, r4, 24
- cmp r0, 0
- ble _080F692E
- b _080F69BC
- .align 2, 0
-_080F6918: .4byte gUnknown_083DFEC4
-_080F691C: .4byte 0x0000bc90
-_080F6920: .4byte 0x0000bc91
-_080F6924: .4byte gMain
-_080F6928:
- ldr r1, _080F69B0 @ =0x0000bc91
- adds r0, r2, r1
- ldrb r4, [r0]
-_080F692E:
- ldrh r1, [r7, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F6978
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x2
- bgt _080F6978
- ldr r3, _080F69B4 @ =gUnknown_083DFEC4
- ldr r2, _080F69B8 @ =0x0000bc96
-_080F6944:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x2
- bgt _080F6960
- adds r0, 0x1
- lsls r0, 24
- ldr r1, [r3]
- lsrs r4, r0, 24
- asrs r0, 24
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F6944
-_080F6960:
- ldr r2, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F69B8 @ =0x0000bc96
- adds r1, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F69EC
- ldr r1, _080F69B0 @ =0x0000bc91
- adds r0, r2, r1
- ldrb r4, [r0]
-_080F6978:
- ldrh r2, [r7, 0x30]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080F698A
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- bgt _080F6A3C
-_080F698A:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _080F69AA
- lsls r0, r5, 24
- asrs r2, r0, 24
- ldr r1, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F69B8 @ =0x0000bc96
- adds r1, r3
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r2, r0
- blt _080F6A38
-_080F69AA:
- movs r0, 0
- mov r12, r0
- b _080F69FC
- .align 2, 0
-_080F69B0: .4byte 0x0000bc91
-_080F69B4: .4byte gUnknown_083DFEC4
-_080F69B8: .4byte 0x0000bc96
-_080F69BC:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0
- ble _080F69DA
- subs r0, 0x1
- lsls r0, 24
- ldr r1, [r6]
- lsrs r4, r0, 24
- asrs r0, 24
- ldr r2, _080F6A2C @ =0x0000bc96
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F69BC
-_080F69DA:
- ldr r2, [r6]
- lsls r0, r4, 24
- asrs r0, 24
- ldr r3, _080F6A2C @ =0x0000bc96
- adds r1, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080F6928
-_080F69EC:
- lsls r0, r5, 24
- asrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- blt _080F69FC
- subs r0, r1, 0x1
-_080F69F8:
- lsls r0, 24
- lsrs r5, r0, 24
-_080F69FC:
- mov r0, r12
- cmp r0, 0
- beq _080F6A44
- lsls r0, r5, 24
- asrs r0, 24
- ldr r3, [r6]
- ldr r1, _080F6A30 @ =0x0000bc90
- adds r2, r3, r1
- ldrb r6, [r2]
- cmp r0, r6
- bne _080F6A20
- lsls r0, r4, 24
- asrs r0, 24
- ldr r6, _080F6A34 @ =0x0000bc91
- adds r1, r3, r6
- ldrb r1, [r1]
- cmp r0, r1
- beq _080F6A40
-_080F6A20:
- strb r5, [r2]
- ldr r1, _080F6A34 @ =0x0000bc91
- adds r0, r3, r1
- strb r4, [r0]
- b _080F6A44
- .align 2, 0
-_080F6A2C: .4byte 0x0000bc96
-_080F6A30: .4byte 0x0000bc90
-_080F6A34: .4byte 0x0000bc91
-_080F6A38:
- adds r0, r2, 0x1
- b _080F69F8
-_080F6A3C:
- subs r0, 0x1
- b _080F69F8
-_080F6A40:
- movs r2, 0
- mov r12, r2
-_080F6A44:
- mov r0, r12
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F68E8
-
- thumb_func_start sub_80F6A4C
-sub_80F6A4C: @ 80F6A4C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080F6AC4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080F6AC8 @ =0x0000876e
- adds r2, r3, r0
- lsls r0, r4, 24
- asrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bge _080F6A74
- ldr r5, _080F6ACC @ =0x00008774
- adds r0, r3, r5
- ldrh r0, [r0]
- strh r0, [r2]
-_080F6A74:
- ldr r1, _080F6ACC @ =0x00008774
- adds r0, r3, r1
- movs r5, 0
- ldrsh r1, [r2, r5]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F6A88
- movs r0, 0
- strh r0, [r2]
-_080F6A88:
- ldr r1, _080F6AD0 @ =0x0000bc94
- adds r0, r3, r1
- strb r4, [r0]
- ldrh r1, [r2]
- ldr r2, _080F6AD4 @ =0x000087dc
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F6AD8 @ =REG_WININ
- ldr r5, _080F6ADC @ =0x00003f37
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F6AE0 @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- ldr r5, _080F6AE4 @ =0x000058f0
- adds r0, r5, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6AE8 @ =0x00002060
- adds r0, r2, 0
- strh r0, [r1]
- ldr r5, _080F6AEC @ =0x000087de
- adds r1, r3, r5
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6AC4: .4byte gUnknown_083DFEC4
-_080F6AC8: .4byte 0x0000876e
-_080F6ACC: .4byte 0x00008774
-_080F6AD0: .4byte 0x0000bc94
-_080F6AD4: .4byte 0x000087dc
-_080F6AD8: .4byte REG_WININ
-_080F6ADC: .4byte 0x00003f37
-_080F6AE0: .4byte 0x00003f3f
-_080F6AE4: .4byte 0x000058f0
-_080F6AE8: .4byte 0x00002060
-_080F6AEC: .4byte 0x000087de
- thumb_func_end sub_80F6A4C
-
- thumb_func_start sub_80F6AF0
-sub_80F6AF0: @ 80F6AF0
- push {r4,lr}
- ldr r1, _080F6B10 @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F6B14 @ =0x000087de
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _080F6B04
- b _080F6C08
-_080F6B04:
- lsls r0, 2
- ldr r1, _080F6B18 @ =_080F6B1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F6B10: .4byte gUnknown_083DFEC4
-_080F6B14: .4byte 0x000087de
-_080F6B18: .4byte _080F6B1C
- .align 2, 0
-_080F6B1C:
- .4byte _080F6B38
- .4byte _080F6B54
- .4byte _080F6B6E
- .4byte _080F6B84
- .4byte _080F6B9C
- .4byte _080F6BC0
- .4byte _080F6BE0
-_080F6B38:
- bl sub_80F173C
- lsls r0, 24
- cmp r0, 0
- bne _080F6C18
- ldr r0, _080F6B4C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r3, _080F6B50 @ =0x000087de
- adds r1, r3
- b _080F6BCE
- .align 2, 0
-_080F6B4C: .4byte gUnknown_083DFEC4
-_080F6B50: .4byte 0x000087de
-_080F6B54:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bl sub_80F1480
- bl sub_80F66E0
- b _080F6BC6
-_080F6B6E:
- bl sub_80F1238
- ldr r0, _080F6B7C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F6B80 @ =0x000087de
- adds r1, r2
- b _080F6BCE
- .align 2, 0
-_080F6B7C: .4byte gUnknown_083DFEC4
-_080F6B80: .4byte 0x000087de
-_080F6B84:
- bl sub_80F13FC
- ldr r0, _080F6B94 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r3, _080F6B98 @ =0x000087de
- adds r1, r3
- b _080F6BCE
- .align 2, 0
-_080F6B94: .4byte gUnknown_083DFEC4
-_080F6B98: .4byte 0x000087de
-_080F6B9C:
- ldr r4, [r4]
- ldr r1, _080F6BB8 @ =0x0000876e
- adds r0, r4, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0
- bl sub_80F4824
- ldr r3, _080F6BBC @ =0x000087de
- adds r4, r3
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F6C18
- .align 2, 0
-_080F6BB8: .4byte 0x0000876e
-_080F6BBC: .4byte 0x000087de
-_080F6BC0:
- movs r0, 0
- bl sub_80F2E18
-_080F6BC6:
- ldr r0, _080F6BD8 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F6BDC @ =0x000087de
- adds r1, r0
-_080F6BCE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F6C18
- .align 2, 0
-_080F6BD8: .4byte gUnknown_083DFEC4
-_080F6BDC: .4byte 0x000087de
-_080F6BE0:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _080F6C18
- bl sub_80F1438
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _080F6C0C @ =0x0000dfff
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080F6C10 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F6C14 @ =0x000087de
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F6C08:
- movs r0, 0
- b _080F6C1A
- .align 2, 0
-_080F6C0C: .4byte 0x0000dfff
-_080F6C10: .4byte gUnknown_083DFEC4
-_080F6C14: .4byte 0x000087de
-_080F6C18:
- movs r0, 0x1
-_080F6C1A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F6AF0
-
- thumb_func_start sub_80F6C20
-sub_80F6C20: @ 80F6C20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080F6D44 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _080F6D48 @ =0x0000d158
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- mov r8, r1
- ldr r2, _080F6D4C @ =gSaveBlock1 + 0x97A
- mov r9, r2
-_080F6C3A:
- ldr r1, _080F6D50 @ =gTrainerEyeTrainers
- mov r4, r8
- lsls r0, r4, 4
- adds r6, r0, r1
- ldrh r7, [r6]
- adds r0, r7, 0
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _080F6CA0
- ldr r0, _080F6D44 @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r0, _080F6D48 @ =0x0000d158
- adds r5, r4, r0
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- ldr r1, _080F6D54 @ =0x0000cee8
- adds r0, r1
- strh r7, [r0]
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- ldr r2, _080F6D58 @ =0x0000ceec
- adds r0, r2
- mov r1, r8
- strb r1, [r0]
- ldrh r0, [r5]
- lsls r0, 3
- adds r0, r4, r0
- mov r1, r8
- add r1, r9
- ldrb r1, [r1]
- adds r2, 0x1
- adds r0, r2
- strb r1, [r0]
- ldrh r0, [r6, 0xA]
- ldrh r1, [r6, 0xC]
- bl get_mapheader_by_bank_and_number
- ldrh r1, [r5]
- lsls r1, 3
- adds r4, r1
- ldrb r0, [r0, 0x14]
- ldr r1, _080F6D5C @ =0x0000ceea
- adds r4, r1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F6CA0:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x37
- bls _080F6C3A
- movs r2, 0
- mov r8, r2
- movs r6, 0
-_080F6CB4:
- ldr r1, _080F6D60 @ =gUnknown_083E49C0
- mov r4, r8
- lsls r0, r4, 2
- adds r5, r0, r1
- ldrh r4, [r5]
- adds r0, r4, 0
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _080F6D0E
- ldr r0, _080F6D44 @ =gUnknown_083DFEC4
- ldr r2, [r0]
- ldr r0, _080F6D48 @ =0x0000d158
- adds r3, r2, r0
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldr r1, _080F6D54 @ =0x0000cee8
- adds r0, r1
- strh r4, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldrh r1, [r5, 0x2]
- ldr r4, _080F6D5C @ =0x0000ceea
- adds r0, r4
- strh r1, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r0, r2, r0
- ldr r1, _080F6D64 @ =0x0000ceed
- adds r0, r1
- strb r6, [r0]
- ldrh r0, [r3]
- lsls r0, 3
- adds r2, r0
- mov r0, r8
- adds r0, 0x38
- adds r4, 0x2
- adds r2, r4
- strb r0, [r2]
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
-_080F6D0E:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0xC
- bls _080F6CB4
- ldr r3, _080F6D44 @ =gUnknown_083DFEC4
- ldr r2, [r3]
- ldr r1, _080F6D68 @ =0x0000876c
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- ldr r4, _080F6D6C @ =0x00008770
- adds r0, r2, r4
- strh r1, [r0]
- subs r4, 0x2
- adds r0, r2, r4
- strh r1, [r0]
- ldr r1, _080F6D48 @ =0x0000d158
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _080F6D70
- subs r4, r0, 0x1
- b _080F6D72
- .align 2, 0
-_080F6D44: .4byte gUnknown_083DFEC4
-_080F6D48: .4byte 0x0000d158
-_080F6D4C: .4byte gSaveBlock1 + 0x97A
-_080F6D50: .4byte gTrainerEyeTrainers
-_080F6D54: .4byte 0x0000cee8
-_080F6D58: .4byte 0x0000ceec
-_080F6D5C: .4byte 0x0000ceea
-_080F6D60: .4byte gUnknown_083E49C0
-_080F6D64: .4byte 0x0000ceed
-_080F6D68: .4byte 0x0000876c
-_080F6D6C: .4byte 0x00008770
-_080F6D70:
- movs r4, 0x7
-_080F6D72:
- ldr r1, _080F6DA8 @ =0x00008772
- adds r0, r2, r1
- strh r4, [r0]
- ldr r3, [r3]
- ldr r2, _080F6DAC @ =0x0000d158
- adds r0, r3, r2
- ldrh r0, [r0]
- subs r0, 0x1
- ldr r4, _080F6DB0 @ =0x00008774
- adds r1, r3, r4
- strh r0, [r1]
- movs r1, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080F6D94
- movs r1, 0x1
-_080F6D94:
- ldr r2, _080F6DB4 @ =0x000087c9
- adds r0, r3, r2
- strb r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6DA8: .4byte 0x00008772
-_080F6DAC: .4byte 0x0000d158
-_080F6DB0: .4byte 0x00008774
-_080F6DB4: .4byte 0x000087c9
- thumb_func_end sub_80F6C20
-
- thumb_func_start sub_80F6DB8
-sub_80F6DB8: @ 80F6DB8
- push {r4,lr}
- movs r1, 0
- ldr r0, _080F6DEC @ =gUnknown_083DFEC4
- ldr r4, [r0]
- ldr r2, _080F6DF0 @ =0x00008fe9
- adds r0, r4, r2
- strb r1, [r0]
- movs r0, 0
- bl sub_80F6E04
- ldr r0, _080F6DF4 @ =0x0000d15a
- adds r1, r4, r0
- ldr r0, _080F6DF8 @ =0x0000ffb8
- strh r0, [r1]
- movs r0, 0
- bl sub_80F2F7C
- ldr r1, _080F6DFC @ =0x0000876e
- adds r0, r4, r1
- ldrh r0, [r0]
- ldr r2, _080F6E00 @ =0x000087dc
- adds r4, r2
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6DEC: .4byte gUnknown_083DFEC4
-_080F6DF0: .4byte 0x00008fe9
-_080F6DF4: .4byte 0x0000d15a
-_080F6DF8: .4byte 0x0000ffb8
-_080F6DFC: .4byte 0x0000876e
-_080F6E00: .4byte 0x000087dc
- thumb_func_end sub_80F6DB8
-
- thumb_func_start sub_80F6E04
-sub_80F6E04: @ 80F6E04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F6E78 @ =gUnknown_083DFEC4
- ldr r5, [r0]
- ldr r1, _080F6E7C @ =0x0000876e
- adds r0, r5, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r0, r5, r0
- ldr r7, _080F6E80 @ =0x0000cee8
- adds r0, r7
- ldrh r1, [r0]
- ldr r2, _080F6E84 @ =gTrainers
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r6, [r0, 0x3]
- lsls r0, r6, 3
- mov r8, r0
- ldr r0, _080F6E88 @ =gTrainerFrontPicTable
- add r0, r8
- ldr r2, _080F6E8C @ =gTrainerFrontPicCoords
- lsls r1, r6, 2
- adds r1, r2
- ldrb r1, [r1]
- ldr r2, _080F6E90 @ =0x000131e4
- adds r3, r5, r2
- lsls r2, r4, 13
- ldr r7, _080F6E94 @ =0x0000d1e4
- adds r2, r7
- adds r2, r5, r2
- str r2, [sp]
- str r6, [sp, 0x4]
- movs r2, 0x1
- bl DecompressPicFromTable_2
- ldr r0, _080F6E98 @ =gTrainerFrontPicPaletteTable
- add r8, r0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 7
- adds r5, r4
- adds r1, r5, 0
- bl LZ77UnCompWram
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E78: .4byte gUnknown_083DFEC4
-_080F6E7C: .4byte 0x0000876e
-_080F6E80: .4byte 0x0000cee8
-_080F6E84: .4byte gTrainers
-_080F6E88: .4byte gTrainerFrontPicTable
-_080F6E8C: .4byte gTrainerFrontPicCoords
-_080F6E90: .4byte 0x000131e4
-_080F6E94: .4byte 0x0000d1e4
-_080F6E98: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_80F6E04
-
- thumb_func_start sub_80F6E9C
-sub_80F6E9C: @ 80F6E9C
- push {lr}
- ldr r0, _080F6EB4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F6EB8 @ =0x0000d15a
- adds r1, r0, r2
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080F6EBC
- movs r0, 0
- b _080F6ED0
- .align 2, 0
-_080F6EB4: .4byte gUnknown_083DFEC4
-_080F6EB8: .4byte 0x0000d15a
-_080F6EBC:
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bge _080F6ECC
- movs r0, 0x1
- b _080F6ED0
-_080F6ECC:
- movs r0, 0
- strh r0, [r1]
-_080F6ED0:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6E9C
-
- thumb_func_start sub_80F6ED4
-sub_80F6ED4: @ 80F6ED4
- push {lr}
- ldr r0, _080F6F00 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F6F04 @ =0x0000d15a
- adds r1, r0, r2
- ldrh r3, [r1]
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x48
- negs r2, r2
- cmp r0, r2
- beq _080F6F0A
- adds r0, r3, 0
- subs r0, 0x8
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r2
- ble _080F6F08
- movs r0, 0x1
- b _080F6F0C
- .align 2, 0
-_080F6F00: .4byte gUnknown_083DFEC4
-_080F6F04: .4byte 0x0000d15a
-_080F6F08:
- strh r2, [r1]
-_080F6F0A:
- movs r0, 0
-_080F6F0C:
- pop {r1}
- bx r1
- thumb_func_end sub_80F6ED4
-
- thumb_func_start sub_80F6F10
-sub_80F6F10: @ 80F6F10
- push {lr}
- ldr r0, _080F6F48 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _080F6F4C @ =0x0000d15e
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r1, _080F6F50 @ =0x0000d15f
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080F6F54 @ =REG_BLDCNT
- movs r0, 0xC8
- strh r0, [r1]
- ldr r0, _080F6F58 @ =REG_BLDY
- strh r2, [r0]
- subs r1, 0x8
- ldr r2, _080F6F5C @ =0x00003f3f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F6F60 @ =0x00001f1f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bl sub_80F6FB8
- pop {r0}
- bx r0
- .align 2, 0
-_080F6F48: .4byte gUnknown_083DFEC4
-_080F6F4C: .4byte 0x0000d15e
-_080F6F50: .4byte 0x0000d15f
-_080F6F54: .4byte REG_BLDCNT
-_080F6F58: .4byte REG_BLDY
-_080F6F5C: .4byte 0x00003f3f
-_080F6F60: .4byte 0x00001f1f
- thumb_func_end sub_80F6F10
-
- thumb_func_start sub_80F6F64
-sub_80F6F64: @ 80F6F64
- push {lr}
- ldr r0, _080F6F9C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F6FA0 @ =0x0000d15e
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _080F6FB0
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080F6FA4 @ =0x0000d15f
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080F6FAC
- ldr r1, _080F6FA8 @ =REG_BLDY
- movs r0, 0x6
- strh r0, [r1]
- b _080F6FB0
- .align 2, 0
-_080F6F9C: .4byte gUnknown_083DFEC4
-_080F6FA0: .4byte 0x0000d15e
-_080F6FA4: .4byte 0x0000d15f
-_080F6FA8: .4byte REG_BLDY
-_080F6FAC:
- ldr r0, _080F6FB4 @ =REG_BLDY
- strh r1, [r0]
-_080F6FB0:
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FB4: .4byte REG_BLDY
- thumb_func_end sub_80F6F64
-
- thumb_func_start sub_80F6FB8
-sub_80F6FB8: @ 80F6FB8
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _080F6FDC
- ldr r1, _080F6FD0 @ =REG_WIN0H
- ldr r2, _080F6FD4 @ =0x0000e8f0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FD8 @ =0x00000888
- b _080F6FE8
- .align 2, 0
-_080F6FD0: .4byte REG_WIN0H
-_080F6FD4: .4byte 0x0000e8f0
-_080F6FD8: .4byte 0x00000888
-_080F6FDC:
- ldr r1, _080F6FF0 @ =REG_WIN0H
- ldr r2, _080F6FF4 @ =0x0000e8f0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080F6FF8 @ =0x00000818
-_080F6FE8:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F6FF0: .4byte REG_WIN0H
-_080F6FF4: .4byte 0x0000e8f0
-_080F6FF8: .4byte 0x00000818
- thumb_func_end sub_80F6FB8
-
- thumb_func_start sub_80F6FFC
-sub_80F6FFC: @ 80F6FFC
- ldr r0, _080F7008 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7008: .4byte REG_BLDCNT
- thumb_func_end sub_80F6FFC
-
- thumb_func_start sub_80F700C
-sub_80F700C: @ 80F700C
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080F7078 @ =gUnknown_083DFEC4
- ldr r4, [r2]
- lsls r2, r1, 3
- adds r2, r4, r2
- ldr r3, _080F707C @ =0x0000cee8
- adds r2, r3
- ldrh r3, [r2]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 3
- ldr r3, _080F7080 @ =gTrainers
- adds r5, r2, r3
- adds r3, r0, 0
- ldr r0, _080F7084 @ =0x0000d158
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcs _080F7060
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080F7088 @ =gTrainerClassNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x4B
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r1, r5, 0x4
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
-_080F7060:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x80
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7078: .4byte gUnknown_083DFEC4
-_080F707C: .4byte 0x0000cee8
-_080F7080: .4byte gTrainers
-_080F7084: .4byte 0x0000d158
-_080F7088: .4byte gTrainerClassNames
- thumb_func_end sub_80F700C
-
- thumb_func_start sub_80F708C
-sub_80F708C: @ 80F708C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _080F70E4 @ =gUnknown_083DFEC4
- ldr r3, [r0]
- ldr r0, _080F70E8 @ =0x0000876e
- adds r2, r3, r0
- lsls r0, r4, 24
- asrs r0, 24
- ldrh r1, [r2]
- adds r0, r1
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bge _080F70B4
- ldr r5, _080F70EC @ =0x00008774
- adds r0, r3, r5
- ldrh r0, [r0]
- strh r0, [r2]
-_080F70B4:
- ldr r1, _080F70EC @ =0x00008774
- adds r0, r3, r1
- movs r5, 0
- ldrsh r1, [r2, r5]
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r1, r0
- ble _080F70C8
- movs r0, 0
- strh r0, [r2]
-_080F70C8:
- ldr r1, _080F70F0 @ =0x0000bc94
- adds r0, r3, r1
- strb r4, [r0]
- ldrh r1, [r2]
- ldr r2, _080F70F4 @ =0x000087dc
- adds r0, r3, r2
- strh r1, [r0]
- ldr r5, _080F70F8 @ =0x000087de
- adds r1, r3, r5
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F70E4: .4byte gUnknown_083DFEC4
-_080F70E8: .4byte 0x0000876e
-_080F70EC: .4byte 0x00008774
-_080F70F0: .4byte 0x0000bc94
-_080F70F4: .4byte 0x000087dc
-_080F70F8: .4byte 0x000087de
- thumb_func_end sub_80F708C
-
- thumb_func_start sub_80F70FC
-sub_80F70FC: @ 80F70FC
- push {r4-r6,lr}
- ldr r1, _080F711C @ =gUnknown_083DFEC4
- ldr r0, [r1]
- ldr r2, _080F7120 @ =0x000087de
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _080F7110
- b _080F7218
-_080F7110:
- lsls r0, 2
- ldr r1, _080F7124 @ =_080F7128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F711C: .4byte gUnknown_083DFEC4
-_080F7120: .4byte 0x000087de
-_080F7124: .4byte _080F7128
- .align 2, 0
-_080F7128:
- .4byte _080F7144
- .4byte _080F714A
- .4byte _080F7164
- .4byte _080F716C
- .4byte _080F71A0
- .4byte _080F71BA
- .4byte _080F71EA
-_080F7144:
- bl sub_80F6ED4
- b _080F71F8
-_080F714A:
- movs r0, 0
- bl sub_80F6E04
- ldr r0, _080F715C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _080F7160 @ =0x000087de
- adds r1, r2
- b _080F7206
- .align 2, 0
-_080F715C: .4byte gUnknown_083DFEC4
-_080F7160: .4byte 0x000087de
-_080F7164:
- movs r0, 0
- bl sub_80F2F7C
- b _080F71FE
-_080F716C:
- ldr r4, [r4]
- ldr r2, _080F7194 @ =0x00008788
- adds r5, r4, r2
- ldr r0, _080F7198 @ =0x0000876e
- adds r6, r4, r0
- ldrh r1, [r6]
- adds r0, r5, 0
- bl sub_80F700C
- adds r0, r5, 0
- bl sub_80F43D4
- bl sub_80F105C
- ldrb r0, [r6]
- bl sub_80F0FFC
- ldr r2, _080F719C @ =0x000087de
- adds r4, r2
- b _080F71CC
- .align 2, 0
-_080F7194: .4byte 0x00008788
-_080F7198: .4byte 0x0000876e
-_080F719C: .4byte 0x000087de
-_080F71A0:
- bl sub_80F0CD8
- ldr r0, _080F71D4 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F71D8 @ =0x0000bc95
- adds r2, r1, r0
- movs r0, 0
- strb r0, [r2]
- ldr r2, _080F71DC @ =0x000087de
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71BA:
- ldr r0, _080F71D4 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F71D8 @ =0x0000bc95
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0x1
- bhi _080F71E0
- bl sub_80F0D5C
-_080F71CC:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080F721C
- .align 2, 0
-_080F71D4: .4byte gUnknown_083DFEC4
-_080F71D8: .4byte 0x0000bc95
-_080F71DC: .4byte 0x000087de
-_080F71E0:
- ldr r2, _080F7210 @ =0x000087de
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F71EA:
- bl sub_80F6E9C
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
- bl sub_80F0D5C
-_080F71F8:
- lsls r0, 24
- cmp r0, 0
- bne _080F721C
-_080F71FE:
- ldr r0, _080F7214 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r0, _080F7210 @ =0x000087de
- adds r1, r0
-_080F7206:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F721C
- .align 2, 0
-_080F7210: .4byte 0x000087de
-_080F7214: .4byte gUnknown_083DFEC4
-_080F7218:
- movs r0, 0
- b _080F721E
-_080F721C:
- movs r0, 0x1
-_080F721E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80F70FC
-
- thumb_func_start sub_80F7224
-sub_80F7224: @ 80F7224
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080F7260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080F7264 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r3, _080F7268 @ =0x00008fe9
- adds r1, r0, r3
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- ldr r3, _080F726C @ =0x00008931
- adds r0, r3
- adds r4, r0, r1
- cmp r2, 0xFF
- beq _080F7270
- adds r0, r2, 0
- movs r1, 0x1D
- bl __udivsi3
- b _080F7272
- .align 2, 0
-_080F7260: .4byte gPlayerParty
-_080F7264: .4byte gUnknown_083DFEC4
-_080F7268: .4byte 0x00008fe9
-_080F726C: .4byte 0x00008931
-_080F7270:
- movs r0, 0x9
-_080F7272:
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7224
-
- thumb_func_start sub_80F727C
-sub_80F727C: @ 80F727C
- ldr r1, _080F7288 @ =gUnknown_020388B8
- str r0, [r1]
- movs r1, 0
- strb r1, [r0, 0xB]
- bx lr
- .align 2, 0
-_080F7288: .4byte gUnknown_020388B8
- thumb_func_end sub_80F727C
-
- thumb_func_start sub_80F728C
-sub_80F728C: @ 80F728C
- push {lr}
- sub sp, 0x4
- ldr r0, _080F72C4 @ =gSaveBlock2
- ldrb r0, [r0, 0x14]
- lsrs r0, 3
- bl GetTextWindowFrameGraphics
- ldr r3, _080F72C8 @ =gUnknown_020388B8
- ldr r2, [r3]
- ldr r1, [r0]
- str r1, [r2, 0x28]
- ldr r0, [r0, 0x4]
- str r0, [r2, 0x2C]
- ldr r0, _080F72CC @ =0x000010b0
- adds r2, r0
- movs r1, 0
- strb r1, [r2]
- mov r0, sp
- strh r1, [r0]
- ldr r1, [r3]
- adds r1, 0x30
- ldr r2, _080F72D0 @ =0x01000800
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F72C4: .4byte gSaveBlock2
-_080F72C8: .4byte gUnknown_020388B8
-_080F72CC: .4byte 0x000010b0
-_080F72D0: .4byte 0x01000800
- thumb_func_end sub_80F728C
-
- thumb_func_start sub_80F72D4
-sub_80F72D4: @ 80F72D4
- push {r4-r7,lr}
- ldr r0, _080F72F4 @ =gUnknown_020388B8
- ldr r1, [r0]
- ldr r2, _080F72F8 @ =0x000010b0
- adds r0, r1, r2
- ldrb r2, [r0]
- lsls r0, r2, 8
- adds r0, 0x30
- adds r5, r1, r0
- cmp r2, 0xD
- beq _080F73A4
- cmp r2, 0xD
- bgt _080F72FC
- cmp r2, 0
- beq _080F7302
- b _080F734C
- .align 2, 0
-_080F72F4: .4byte gUnknown_020388B8
-_080F72F8: .4byte 0x000010b0
-_080F72FC:
- cmp r2, 0xE
- beq _080F73F0
- b _080F734C
-_080F7302:
- ldr r0, [r1, 0x28]
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F7312:
- ldr r6, _080F7344 @ =gUnknown_020388B8
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x20
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F7312
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x40
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r0, _080F7348 @ =0x000010b0
- adds r1, r0
- b _080F7392
- .align 2, 0
-_080F7344: .4byte gUnknown_020388B8
-_080F7348: .4byte 0x000010b0
-_080F734C:
- ldr r0, _080F739C @ =gUnknown_020388B8
- ldr r0, [r0]
- ldr r0, [r0, 0x28]
- adds r0, 0x60
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F7362:
- ldr r6, _080F739C @ =gUnknown_020388B8
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0x80
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F7362
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0xA0
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r2, _080F73A0 @ =0x000010b0
- adds r1, r2
-_080F7392:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080F73FC
- .align 2, 0
-_080F739C: .4byte gUnknown_020388B8
-_080F73A0: .4byte 0x000010b0
-_080F73A4:
- ldr r0, [r1, 0x28]
- adds r0, 0xC0
- adds r1, r5, 0
- movs r2, 0x8
- bl CpuFastSet
- movs r4, 0
- adds r7, r5, 0
- adds r7, 0xE0
-_080F73B6:
- ldr r6, _080F73F4 @ =gUnknown_020388B8
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- adds r0, 0xE0
- adds r4, 0x1
- lsls r1, r4, 5
- adds r1, r5, r1
- movs r2, 0x8
- bl CpuFastSet
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x5
- bls _080F73B6
- ldr r0, [r6]
- ldr r0, [r0, 0x28]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- ldr r1, [r6]
- ldr r2, _080F73F8 @ =0x000010b0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F73F0:
- movs r0, 0
- b _080F73FE
- .align 2, 0
-_080F73F4: .4byte gUnknown_020388B8
-_080F73F8: .4byte 0x000010b0
-_080F73FC:
- movs r0, 0x1
-_080F73FE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F72D4
-
- thumb_func_start sub_80F7404
-sub_80F7404: @ 80F7404
- push {lr}
- bl sub_80F728C
-_080F740A:
- bl sub_80F72D4
- lsls r0, 24
- cmp r0, 0
- bne _080F740A
- pop {r0}
- bx r0
- thumb_func_end sub_80F7404
-
- thumb_func_start sub_80F7418
-sub_80F7418: @ 80F7418
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r2, _080F746C @ =gUnknown_020388B8
- ldr r3, [r2]
- movs r1, 0
- strb r1, [r3, 0x5]
- ldr r1, [r2]
- strb r0, [r1, 0x4]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0x1
-_080F7434:
- ldr r0, [r4]
- adds r1, r0, 0x6
- adds r1, r3
- ldrb r0, [r0, 0x4]
- asrs r0, r3
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F7434
- bl sub_814A7FC
- lsls r0, r5, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- ldr r2, _080F746C @ =gUnknown_020388B8
- ldr r3, [r2]
- ldrh r2, [r3]
- ldrh r3, [r3, 0x2]
- bl sub_80F761C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F746C: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7418
-
- thumb_func_start sub_80F7470
-sub_80F7470: @ 80F7470
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080F74FC @ =gUnknown_020388B8
-_080F7476:
- ldr r0, [r5]
- ldrh r0, [r0]
- adds r0, r4, r0
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpriteTilesByTag
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _080F7476
- ldr r4, _080F74FC @ =gUnknown_020388B8
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- bl FreeSpritePaletteByTag
- ldr r0, [r4]
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- movs r4, 0
-_080F74A8:
- ldr r0, _080F74FC @ =gUnknown_020388B8
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080F74A8
- movs r4, 0
-_080F74C8:
- ldr r5, _080F74FC @ =gUnknown_020388B8
- ldr r0, [r5]
- lsls r1, r4, 2
- adds r0, 0x14
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _080F74C8
- bl sub_814A7FC
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- cmp r0, 0
- beq _080F74F6
- bl DestroySprite
-_080F74F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F74FC: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7470
-
- thumb_func_start sub_80F7500
-sub_80F7500: @ 80F7500
- push {r4,r5,lr}
- sub sp, 0x30
- ldr r4, _080F7580 @ =gUnknown_020388B8
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x30
- str r0, [sp, 0x18]
- add r1, sp, 0x1C
- movs r5, 0
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r1]
- ldrh r1, [r2]
- mov r0, sp
- adds r0, 0x1E
- strh r1, [r0]
- add r1, sp, 0x20
- ldr r0, _080F7584 @ =gPokenavConditionMenuMisc_Gfx
- str r0, [sp, 0x20]
- movs r0, 0xA4
- lsls r0, 3
- strh r0, [r1, 0x4]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r1, 0x6]
- add r0, sp, 0x28
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r0, [r4]
- ldrb r0, [r0, 0xB]
- cmp r0, 0
- beq _080F7558
- mov r0, sp
- bl LoadTilesForSpriteSheets
- ldr r0, [r4]
- strb r5, [r0, 0xB]
-_080F7558:
- ldr r0, _080F7588 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080F758C
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x5]
- subs r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- cmp r0, 0
- bge _080F75FE
- ldr r1, [r4]
- movs r0, 0x5
- strb r0, [r1, 0x5]
- b _080F75FE
- .align 2, 0
-_080F7580: .4byte gUnknown_020388B8
-_080F7584: .4byte gPokenavConditionMenuMisc_Gfx
-_080F7588: .4byte gMain
-_080F758C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080F75B0
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- ble _080F75FE
- ldr r0, [r4]
- strb r5, [r0, 0x5]
- b _080F75FE
-_080F75B0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F7602
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r4]
- movs r1, 0x5
- ldrsb r1, [r0, r1]
- cmp r1, 0x4
- beq _080F75DC
- cmp r1, 0x5
- beq _080F7610
- adds r0, 0x6
- adds r1, r0, r1
- movs r2, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080F75FC
- movs r2, 0x1
- b _080F75FC
-_080F75DC:
- strb r5, [r0, 0x4]
- movs r3, 0
-_080F75E0:
- ldr r2, [r4]
- adds r0, r2, 0x6
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, r3
- ldrb r1, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x3
- bls _080F75E0
- b _080F7610
-_080F75FC:
- strb r2, [r1]
-_080F75FE:
- movs r0, 0x1
- b _080F7612
-_080F7602:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080F75FE
- movs r0, 0x5
- bl PlaySE
-_080F7610:
- movs r0, 0
-_080F7612:
- add sp, 0x30
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F7500
-
- thumb_func_start sub_80F761C
-sub_80F761C: @ 80F761C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x5C
- adds r5, r2, 0
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4C]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x50]
- lsls r5, 16
- lsrs r5, 16
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x54]
- ldr r0, _080F7820 @ =gUnknown_020388B8
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0x30
- str r0, [sp, 0x1C]
- add r1, sp, 0x20
- movs r2, 0
- mov r9, r2
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r1]
- mov r0, sp
- adds r0, 0x22
- strh r5, [r0]
- add r1, sp, 0x24
- ldr r0, _080F7824 @ =gPokenavConditionMenuMisc_Gfx
- str r0, [sp, 0x24]
- movs r0, 0xA4
- lsls r0, 3
- strh r0, [r1, 0x4]
- adds r0, r5, 0x1
- strh r0, [r1, 0x6]
- add r0, sp, 0x2C
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r6, sp, 0x1C
- add r0, sp, 0x4
- adds r1, r6, 0
- movs r2, 0x18
- bl memcpy
- mov r3, r8
- ldr r0, [r3]
- ldr r0, [r0, 0x2C]
- str r0, [sp, 0x34]
- add r0, sp, 0x38
- add r1, sp, 0x54
- ldrh r1, [r1]
- strh r1, [r0]
- add r1, sp, 0x3C
- ldr r0, _080F7828 @ =gUnknown_08E966B8
- str r0, [sp, 0x3C]
- ldr r0, [sp, 0x54]
- adds r0, 0x1
- strh r0, [r1, 0x4]
- add r0, sp, 0x44
- movs r1, 0
- movs r2, 0x8
- bl memset
- add r4, sp, 0x34
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x18
- bl memcpy
- strh r5, [r4]
- add r2, sp, 0x54
- ldrh r2, [r2]
- strh r2, [r4, 0x2]
- ldr r0, _080F782C @ =gUnknown_083E5214
- str r0, [r4, 0x4]
- ldr r0, _080F7830 @ =gSpriteAnimTable_83E52AC
- str r0, [r4, 0x8]
- mov r3, r9
- str r3, [r4, 0xC]
- ldr r0, _080F7834 @ =gDummySpriteAffineAnimTable
- str r0, [r4, 0x10]
- ldr r0, _080F7838 @ =nullsub_65
- str r0, [r4, 0x14]
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0xB]
- add r0, sp, 0x4
- bl AllocTilesForSpriteSheets
- adds r0, r6, 0
- bl LoadSpritePalettes
- movs r5, 0
- ldr r1, [sp, 0x4C]
- lsls r0, r1, 16
- movs r2, 0x80
- lsls r2, 14
- adds r2, r0
- mov r8, r2
- str r0, [sp, 0x58]
- ldr r3, [sp, 0x50]
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 14
- adds r7, r0, r1
- mov r9, r0
-_080F7700:
- adds r0, r4, 0
- mov r2, r8
- asrs r1, r2, 16
- asrs r2, r7, 16
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- bne _080F7718
- b _080F7850
-_080F7718:
- ldr r6, _080F7820 @ =gUnknown_020388B8
- ldr r2, [r6]
- lsls r0, r5, 2
- adds r2, 0xC
- adds r2, r0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, _080F783C @ =gSprites
- adds r0, r1
- str r0, [r2]
- lsls r1, r5, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1
- bls _080F7700
- ldr r0, [r6]
- ldr r1, [r0, 0x10]
- mov r3, r9
- asrs r0, r3, 16
- adds r0, 0x60
- strh r0, [r1, 0x22]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- ldr r0, _080F7840 @ =gSpriteAnimTable_83E5274
- str r0, [r4, 0x8]
- ldr r0, _080F7844 @ =sub_80F78CC
- str r0, [r4, 0x14]
- ldr r0, _080F7848 @ =gUnknown_083E521C
- str r0, [r4, 0x4]
- movs r5, 0
- ldr r0, [sp, 0x58]
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- mov r10, r0
-_080F7770:
- lsls r2, r5, 4
- adds r2, 0x10
- mov r3, r9
- asrs r3, 16
- mov r8, r3
- add r2, r8
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- mov r3, r10
- asrs r1, r3, 16
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F7860
- ldr r6, _080F7820 @ =gUnknown_020388B8
- ldr r1, [r6]
- lsls r0, r5, 2
- adds r1, 0x14
- adds r1, r0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r7, _080F783C @ =gSprites
- adds r0, r7
- str r0, [r1]
- strh r5, [r0, 0x2E]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _080F7770
- ldr r0, _080F784C @ =SpriteCallbackDummy
- str r0, [r4, 0x14]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _080F7874
- ldr r1, [r6]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r7
- str r0, [r1, 0x24]
- ldrb r2, [r0, 0x1]
- movs r1, 0x3F
- ands r1, r2
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldr r0, [r6]
- ldr r2, [r0, 0x24]
- ldrb r0, [r2, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r6]
- ldr r0, [r0, 0x24]
- movs r1, 0x9
- bl StartSpriteAnim
- ldr r1, [r6]
- ldr r2, [r1, 0x24]
- ldr r3, [sp, 0x58]
- asrs r0, r3, 16
- adds r0, 0x20
- strh r0, [r2, 0x20]
- ldr r2, [r1, 0x24]
- mov r0, r8
- adds r0, 0x50
- strh r0, [r2, 0x22]
- ldr r0, [r1, 0x24]
- movs r1, 0x1
- movs r2, 0x2
- movs r3, 0
- bl CalcCenterToCornerVec
- b _080F787A
- .align 2, 0
-_080F7820: .4byte gUnknown_020388B8
-_080F7824: .4byte gPokenavConditionMenuMisc_Gfx
-_080F7828: .4byte gUnknown_08E966B8
-_080F782C: .4byte gUnknown_083E5214
-_080F7830: .4byte gSpriteAnimTable_83E52AC
-_080F7834: .4byte gDummySpriteAffineAnimTable
-_080F7838: .4byte nullsub_65
-_080F783C: .4byte gSprites
-_080F7840: .4byte gSpriteAnimTable_83E5274
-_080F7844: .4byte sub_80F78CC
-_080F7848: .4byte gUnknown_083E521C
-_080F784C: .4byte SpriteCallbackDummy
-_080F7850:
- ldr r0, _080F785C @ =gUnknown_020388B8
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0xC
- b _080F7868
- .align 2, 0
-_080F785C: .4byte gUnknown_020388B8
-_080F7860:
- ldr r0, _080F7870 @ =gUnknown_020388B8
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r0, 0x14
-_080F7868:
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- b _080F78B0
- .align 2, 0
-_080F7870: .4byte gUnknown_020388B8
-_080F7874:
- ldr r1, [r6]
- movs r0, 0
- str r0, [r1, 0x24]
-_080F787A:
- ldr r4, _080F78C0 @ =gUnknown_020388B8
- ldr r1, [r4]
- ldr r0, [sp, 0x50]
- adds r0, 0x8
- strb r0, [r1, 0xA]
- ldr r1, [sp, 0x54]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0
- movs r2, 0xF
- movs r3, 0
- bl sub_814A5C0
- ldr r0, [sp, 0x4C]
- adds r0, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- ldrb r1, [r1, 0xA]
- bl sub_814A880
- ldr r0, _080F78C4 @ =sub_80F7908
- bl sub_814AABC
-_080F78B0:
- add sp, 0x5C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F78C0: .4byte gUnknown_020388B8
-_080F78C4: .4byte sub_80F7908
- thumb_func_end sub_80F761C
-
- thumb_func_start nullsub_65
-nullsub_65: @ 80F78C8
- bx lr
- thumb_func_end nullsub_65
-
- thumb_func_start sub_80F78CC
-sub_80F78CC: @ 80F78CC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080F78F4 @ =gUnknown_020388B8
- ldr r0, [r0]
- movs r3, 0x2E
- ldrsh r1, [r2, r3]
- adds r0, 0x6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F78F8
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- b _080F7902
- .align 2, 0
-_080F78F4: .4byte gUnknown_020388B8
-_080F78F8:
- lsls r1, 25
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_080F7902:
- pop {r0}
- bx r0
- thumb_func_end sub_80F78CC
-
- thumb_func_start sub_80F7908
-sub_80F7908: @ 80F7908
- ldr r1, _080F791C @ =gUnknown_020388B8
- ldr r2, [r1]
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- lsls r1, 4
- ldrb r2, [r2, 0xA]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_080F791C: .4byte gUnknown_020388B8
- thumb_func_end sub_80F7908
-
- thumb_func_start sub_80F7920
-sub_80F7920: @ 80F7920
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- bne _080F7930
- ldr r2, _080F793C @ =gUnknown_083E49F4
-_080F7930:
- movs r3, 0x10
- bl sub_80F7960
- pop {r1}
- bx r1
- .align 2, 0
-_080F793C: .4byte gUnknown_083E49F4
- thumb_func_end sub_80F7920
-
- thumb_func_start sub_80F7940
-sub_80F7940: @ 80F7940
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- bne _080F7950
- ldr r2, _080F795C @ =gUnknown_083E49F4
-_080F7950:
- movs r3, 0x1
- bl sub_80F7960
- pop {r1}
- bx r1
- .align 2, 0
-_080F795C: .4byte gUnknown_083E49F4
- thumb_func_end sub_80F7940
-
- thumb_func_start sub_80F7960
-sub_80F7960: @ 80F7960
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _080F79DC @ =gUnknown_083E4A14
- str r4, [sp, 0x18]
- movs r4, 0x80
- add r5, sp, 0x18
- lsrs r6, r0, 16
- orrs r0, r4
- str r0, [r5, 0x4]
- str r2, [sp, 0x20]
- ldr r0, _080F79E0 @ =0xffff0000
- mov r8, r0
- add r4, sp, 0x20
- ldr r0, [r4, 0x4]
- mov r2, r8
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- movs r2, 0
- strh r6, [r0]
- strh r1, [r0, 0x2]
- ldr r0, _080F79E4 @ =gUnknown_083E52B4
- str r0, [sp, 0x4]
- ldr r0, _080F79E8 @ =gSpriteAnimTable_83E533C
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _080F79EC @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _080F79F0 @ =nullsub_65
- str r0, [sp, 0x14]
- lsls r3, 23
- lsrs r3, 16
- ldr r0, [r5, 0x4]
- mov r1, r8
- ands r0, r1
- orrs r0, r3
- str r0, [r5, 0x4]
- adds r0, r5, 0
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- bne _080F79F4
- movs r0, 0
- b _080F79FE
- .align 2, 0
-_080F79DC: .4byte gUnknown_083E4A14
-_080F79E0: .4byte 0xffff0000
-_080F79E4: .4byte gUnknown_083E52B4
-_080F79E8: .4byte gSpriteAnimTable_83E533C
-_080F79EC: .4byte gDummySpriteAffineAnimTable
-_080F79F0: .4byte nullsub_65
-_080F79F4:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F7A0C @ =gSprites
- adds r0, r1
-_080F79FE:
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080F7A0C: .4byte gSprites
- thumb_func_end sub_80F7960
-
- thumb_func_start sub_80F7A10
-sub_80F7A10: @ 80F7A10
- lsls r0, 24
- lsrs r0, 17
- ldr r2, _080F7A28 @ =gUnknown_083E4A14
- adds r0, r2
- ldr r2, _080F7A2C @ =0x040000d4
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _080F7A30 @ =0x80000040
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_080F7A28: .4byte gUnknown_083E4A14
-_080F7A2C: .4byte 0x040000d4
-_080F7A30: .4byte 0x80000040
- thumb_func_end sub_80F7A10
-
- thumb_func_start sub_80F7A34
-sub_80F7A34: @ 80F7A34
- push {r4,lr}
- ldr r0, _080F7A64 @ =gSaveBlock1 + 0x2D94
- movs r1, 0
- strb r1, [r0]
- adds r2, r0, 0
- adds r2, 0x29
- strb r1, [r2]
- movs r2, 0
- adds r4, r0, 0x2
- ldr r3, _080F7A68 @ =gUnknown_083E537C
-_080F7A48:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7A48
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7A64: .4byte gSaveBlock1 + 0x2D94
-_080F7A68: .4byte gUnknown_083E537C
- thumb_func_end sub_80F7A34
-
- thumb_func_start sub_80F7A6C
-sub_80F7A6C: @ 80F7A6C
- ldr r0, _080F7A78 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A78: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A6C
-
- thumb_func_start sub_80F7A7C
-sub_80F7A7C: @ 80F7A7C
- push {lr}
- bl sub_80F83F8
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A7C
-
- thumb_func_start sub_80F7A88
-sub_80F7A88: @ 80F7A88
- ldr r0, _080F7A94 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x4
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F7A94: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7A88
-
- thumb_func_start sub_80F7A98
-sub_80F7A98: @ 80F7A98
- push {lr}
- bl sub_81099CC
- pop {r0}
- bx r0
- thumb_func_end sub_80F7A98
-
- thumb_func_start sub_80F7AA4
-sub_80F7AA4: @ 80F7AA4
- push {lr}
- ldr r0, _080F7AC8 @ =gSaveBlock2
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 17
- cmp r0, 0x4
- bhi _080F7B00
- lsls r0, 2
- ldr r1, _080F7ACC @ =_080F7AD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7AC8: .4byte gSaveBlock2
-_080F7ACC: .4byte _080F7AD0
- .align 2, 0
-_080F7AD0:
- .4byte _080F7AE4
- .4byte _080F7AEA
- .4byte _080F7AF0
- .4byte _080F7AF6
- .4byte _080F7AFC
-_080F7AE4:
- bl sub_80F7A34
- b _080F7B00
-_080F7AEA:
- bl sub_80F7A6C
- b _080F7B00
-_080F7AF0:
- bl sub_80F7A98
- b _080F7B00
-_080F7AF6:
- bl sub_80F7A7C
- b _080F7B00
-_080F7AFC:
- bl sub_80F7A88
-_080F7B00:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7AA4
-
- thumb_func_start GetCurrentMauvilleOldMan
-GetCurrentMauvilleOldMan: @ 80F7B08
- ldr r0, _080F7B10 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080F7B10: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end GetCurrentMauvilleOldMan
-
- thumb_func_start sub_80F7B14
-sub_80F7B14: @ 80F7B14
- push {r4,lr}
- ldr r4, _080F7B28 @ =gScriptResult
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B28: .4byte gScriptResult
- thumb_func_end sub_80F7B14
-
- thumb_func_start sub_80F7B2C
-sub_80F7B2C: @ 80F7B2C
- ldr r0, _080F7B38 @ =gScriptResult
- ldr r1, _080F7B3C @ =gSaveBlock1 + 0x2D94
- adds r1, 0x29
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7B38: .4byte gScriptResult
-_080F7B3C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7B2C
-
- thumb_func_start sub_80F7B40
-sub_80F7B40: @ 80F7B40
- push {r4,r5,lr}
- ldr r5, _080F7B98 @ =gSaveBlock1 + 0x2D94
- adds r0, r5, 0
- adds r0, 0x1A
- ldr r4, _080F7B9C @ =gSaveBlock2
- adds r1, r4, 0
- bl StringCopy
- movs r2, 0
- adds r3, r5, 0
- adds r3, 0x25
- adds r4, 0xA
-_080F7B58:
- adds r1, r3, r2
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x3
- bls _080F7B58
- movs r2, 0
- movs r0, 0x29
- adds r0, r5
- mov r12, r0
- adds r4, r5, 0x2
- adds r3, r5, 0
- adds r3, 0xE
-_080F7B78:
- lsls r0, r2, 1
- adds r1, r4, r0
- adds r0, r3, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x5
- bls _080F7B78
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7B98: .4byte gSaveBlock1 + 0x2D94
-_080F7B9C: .4byte gSaveBlock2
- thumb_func_end sub_80F7B40
-
- thumb_func_start sub_80F7BA0
-sub_80F7BA0: @ 80F7BA0
- push {r4-r7,lr}
- ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F7C4C @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- adds r5, r1, 0
- adds r5, 0xE
- cmp r0, 0
- bne _080F7BB2
- adds r5, r1, 0x2
-_080F7BB2:
- ldr r2, _080F7C50 @ =gStringVar4
- adds r4, r2, 0
- movs r6, 0
-_080F7BB8:
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- adds r7, r6, 0x1
- cmp r2, r4
- beq _080F7BDA
- movs r1, 0x37
-_080F7BCC:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BD4
- strb r1, [r4]
-_080F7BD4:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BCC
-_080F7BDA:
- adds r4, 0x1
- movs r0, 0
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C02
- movs r1, 0x37
-_080F7BF4:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7BFC
- strb r1, [r4]
-_080F7BFC:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7BF4
-_080F7C02:
- adds r4, 0x1
- movs r0, 0xFE
- strb r0, [r2]
- adds r2, 0x1
- ldrh r1, [r5]
- adds r5, 0x2
- adds r0, r2, 0
- bl sub_80EB3FC
- adds r2, r0, 0
- cmp r2, r4
- beq _080F7C2A
- movs r1, 0x37
-_080F7C1C:
- ldrb r0, [r4]
- cmp r0, 0
- bne _080F7C24
- strb r1, [r4]
-_080F7C24:
- adds r4, 0x1
- cmp r2, r4
- bne _080F7C1C
-_080F7C2A:
- cmp r6, 0
- bne _080F7C3A
- movs r0, 0xFC
- strb r0, [r2]
- adds r2, 0x1
- movs r0, 0xF
- strb r0, [r2]
- adds r2, 0x1
-_080F7C3A:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0x1
- bls _080F7BB8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C48: .4byte gSaveBlock1 + 0x2D94
-_080F7C4C: .4byte gUnknown_0202E8CC
-_080F7C50: .4byte gStringVar4
- thumb_func_end sub_80F7BA0
-
- thumb_func_start sub_80F7C54
-sub_80F7C54: @ 80F7C54
- push {lr}
- ldr r0, _080F7C6C @ =gUnknown_0202E8CC
- ldrb r0, [r0]
- bl sub_80F7F80
- bl MenuDisplayMessageBox
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080F7C6C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F7C54
-
- thumb_func_start sub_80F7C70
-sub_80F7C70: @ 80F7C70
- ldr r0, _080F7C7C @ =gScriptResult
- ldr r1, _080F7C80 @ =gSaveBlock1 + 0x2D94
- ldrb r1, [r1, 0x1]
- strh r1, [r0]
- bx lr
- .align 2, 0
-_080F7C7C: .4byte gScriptResult
-_080F7C80: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C70
-
- thumb_func_start sub_80F7C84
-sub_80F7C84: @ 80F7C84
- ldr r1, _080F7C8C @ =gSaveBlock1 + 0x2D94
- movs r0, 0x1
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7C8C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7C84
-
- thumb_func_start sub_80F7C90
-sub_80F7C90: @ 80F7C90
- push {lr}
- bl sub_80EB8EC
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080F7CA8 @ =0x0000ffff
- cmp r1, r0
- bne _080F7CB0
- ldr r1, _080F7CAC @ =gScriptResult
- movs r0, 0
- b _080F7CBA
- .align 2, 0
-_080F7CA8: .4byte 0x0000ffff
-_080F7CAC: .4byte gScriptResult
-_080F7CB0:
- ldr r0, _080F7CC0 @ =gStringVar1
- bl sub_80EB3FC
- ldr r1, _080F7CC4 @ =gScriptResult
- movs r0, 0x1
-_080F7CBA:
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CC0: .4byte gStringVar1
-_080F7CC4: .4byte gScriptResult
- thumb_func_end sub_80F7C90
-
- thumb_func_start sub_80F7CC8
-sub_80F7CC8: @ 80F7CC8
- push {lr}
- ldr r2, _080F7CDC @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r2, 0x1]
- cmp r0, 0xA
- bne _080F7CE4
- ldr r1, _080F7CE0 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- strb r0, [r2, 0x1]
- b _080F7CEA
- .align 2, 0
-_080F7CDC: .4byte gSaveBlock1 + 0x2D94
-_080F7CE0: .4byte gScriptResult
-_080F7CE4:
- ldr r1, _080F7CF0 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_080F7CEA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F7CF0: .4byte gScriptResult
- thumb_func_end sub_80F7CC8
-
- thumb_func_start sub_80F7CF4
-sub_80F7CF4: @ 80F7CF4
- push {r4-r6,lr}
- ldr r5, _080F7D50 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- bne _080F7D02
- bl sub_80F7DC0
-_080F7D02:
- ldrb r0, [r5, 0x1]
- lsls r0, 1
- adds r6, r5, 0x4
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _080F7D54 @ =0x0000ffff
- cmp r1, r0
- beq _080F7D68
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x7
- ands r4, r0
- ldr r0, _080F7D58 @ =gStringVar4
- ldrb r1, [r5, 0x1]
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- bl sub_80EB3FC
- adds r2, r0, 0
- ldr r1, _080F7D5C @ =gOtherText_Is
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080F7D60 @ =gUnknown_083E5388
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _080F7D64 @ =gOtherText_DontYouAgree
- bl StringCopy
- b _080F7D88
- .align 2, 0
-_080F7D50: .4byte gSaveBlock1 + 0x2D94
-_080F7D54: .4byte 0x0000ffff
-_080F7D58: .4byte gStringVar4
-_080F7D5C: .4byte gOtherText_Is
-_080F7D60: .4byte gUnknown_083E5388
-_080F7D64: .4byte gOtherText_DontYouAgree
-_080F7D68:
- ldr r0, _080F7DA0 @ =gStringVar4
- ldr r3, _080F7DA4 @ =gUnknown_083E53A8
- ldrb r1, [r5, 0x2]
- adds r2, r1, 0x1
- strb r2, [r5, 0x2]
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0
- adds r2, 0x18
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
-_080F7D88:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080F7DA8
- movs r0, 0xA
- b _080F7DAC
- .align 2, 0
-_080F7DA0: .4byte gStringVar4
-_080F7DA4: .4byte gUnknown_083E53A8
-_080F7DA8:
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
-_080F7DAC:
- strb r0, [r5, 0x1]
- ldr r1, _080F7DBC @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7DBC: .4byte gScriptResult
- thumb_func_end sub_80F7CF4
-
- thumb_func_start sub_80F7DC0
-sub_80F7DC0: @ 80F7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r1, _080F7E84 @ =gUnknown_083E53C8
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r5, 0
- movs r0, 0x2
- add r0, sp
- mov r8, r0
- ldr r1, _080F7E88 @ =gSaveBlock1 + 0x2D94
- adds r1, 0x18
- adds r3, r1, 0
-_080F7DE4:
- adds r0, r3, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _080F7DE4
- movs r5, 0
- ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
- adds r2, 0x4
- mov r9, r2
- adds r6, r1, 0
-_080F7DFC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r4, r5, 0x1
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r6, r5
- ldrb r7, [r2]
- adds r1, r6, r1
- ldrb r0, [r1]
- strb r0, [r2]
- strb r7, [r1]
- lsls r4, 16
- lsrs r5, r4, 16
- cmp r5, 0x7
- bls _080F7DFC
- movs r3, 0
- mov r10, r3
- movs r5, 0
-_080F7E2A:
- lsls r4, r5, 2
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl sub_80EAE88
- add r4, r8
- strh r0, [r4]
- add r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _080F7E2A
- movs r0, 0
- ldr r2, _080F7E88 @ =gSaveBlock1 + 0x2D94
- strb r0, [r2, 0x2]
- movs r7, 0
- movs r5, 0
-_080F7E56:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bhi _080F7E90
- cmp r7, 0x7
- bhi _080F7E90
- lsls r0, r5, 1
- add r0, r9
- ldr r1, _080F7E8C @ =0x0000ffff
- strh r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, r5, 0x1
- b _080F7EE2
- .align 2, 0
-_080F7E84: .4byte gUnknown_083E53C8
-_080F7E88: .4byte gSaveBlock1 + 0x2D94
-_080F7E8C: .4byte 0x0000ffff
-_080F7E90:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- adds r4, r5, 0x1
- lsls r6, r5, 1
- cmp r5, 0x5
- bhi _080F7ECC
- mov r3, r8
- ldrh r0, [r3]
- b _080F7EC2
-_080F7EB2:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r5, 0x5
- bhi _080F7ECC
- lsls r0, r1, 2
- adds r0, r3, r0
- ldrh r0, [r0]
-_080F7EC2:
- subs r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bgt _080F7EB2
-_080F7ECC:
- cmp r1, 0x6
- bne _080F7ED2
- movs r1, 0
-_080F7ED2:
- lsls r0, r1, 2
- add r0, sp
- ldrh r0, [r0]
- bl sub_80EB784
- mov r2, r9
- adds r1, r2, r6
- strh r0, [r1]
-_080F7EE2:
- lsls r0, r4, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080F7E56
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F7DC0
-
- thumb_func_start sub_80F7EFC
-sub_80F7EFC: @ 80F7EFC
- ldr r0, _080F7F08 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x29
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080F7F08: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7EFC
-
- thumb_func_start sub_80F7F0C
-sub_80F7F0C: @ 80F7F0C
- ldr r1, _080F7F14 @ =gSaveBlock1 + 0x2D94
- movs r0, 0
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_080F7F14: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F7F0C
-
- thumb_func_start sub_80F7F18
-sub_80F7F18: @ 80F7F18
- push {lr}
- bl sub_8109A20
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F18
-
- thumb_func_start sub_80F7F24
-sub_80F7F24: @ 80F7F24
- push {lr}
- bl sub_80F8428
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F24
-
- thumb_func_start sub_80F7F30
-sub_80F7F30: @ 80F7F30
- push {lr}
- bl GetCurrentMauvilleOldMan
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F7F76
- lsls r0, 2
- ldr r1, _080F7F48 @ =_080F7F4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7F48: .4byte _080F7F4C
- .align 2, 0
-_080F7F4C:
- .4byte _080F7F60
- .4byte _080F7F66
- .4byte _080F7F72
- .4byte _080F7F6C
- .4byte _080F7F76
-_080F7F60:
- bl sub_80F7EFC
- b _080F7F76
-_080F7F66:
- bl sub_80F7F0C
- b _080F7F76
-_080F7F6C:
- bl sub_80F7F24
- b _080F7F76
-_080F7F72:
- bl sub_80F7F18
-_080F7F76:
- bl sub_80F83D0
- pop {r0}
- bx r0
- thumb_func_end sub_80F7F30
-
- thumb_func_start sub_80F7F80
-sub_80F7F80: @ 80F7F80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080F7FA8 @ =sub_80F8184
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F7FAC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7FA8: .4byte sub_80F8184
-_080F7FAC: .4byte gTasks
- thumb_func_end sub_80F7F80
-
- thumb_func_start sub_80F7FB0
-sub_80F7FB0: @ 80F7FB0
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x5
- bls _080F7FBE
- b _080F817A
-_080F7FBE:
- lsls r0, 2
- ldr r1, _080F7FC8 @ =_080F7FCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F7FC8: .4byte _080F7FCC
- .align 2, 0
-_080F7FCC:
- .4byte _080F7FE4
- .4byte _080F817A
- .4byte _080F8040
- .4byte _080F8074
- .4byte _080F8074
- .4byte _080F817A
-_080F7FE4:
- ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F8038 @ =gUnknown_0202E8CC
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0xE
- cmp r0, 0
- bne _080F7FF4
- adds r1, r2, 0x2
-_080F7FF4:
- adds r2, r1, 0
- adds r1, r6, 0
- adds r1, 0xC
- movs r3, 0x5
-_080F7FFC:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _080F7FFC
- ldr r2, _080F803C @ =0x0000ffff
- adds r4, r2, 0
- movs r2, 0
- adds r1, r6, 0
- adds r1, 0x18
- movs r3, 0x5
-_080F8016:
- ldrh r0, [r1]
- orrs r0, r4
- strh r0, [r1]
- strh r2, [r1, 0x2]
- strh r2, [r1, 0x4]
- strh r2, [r1, 0x6]
- adds r1, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _080F8016
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- strh r0, [r6, 0x4]
- b _080F817A
- .align 2, 0
-_080F8034: .4byte gSaveBlock1 + 0x2D94
-_080F8038: .4byte gUnknown_0202E8CC
-_080F803C: .4byte 0x0000ffff
-_080F8040:
- ldrb r1, [r6]
- lsls r1, 1
- adds r0, r6, 0
- adds r0, 0xC
- adds r0, r1
- ldrh r4, [r0]
- lsrs r0, r4, 9
- ldr r1, _080F8070 @ =0x000001ff
- ands r1, r4
- bl sub_814A2D0
- adds r1, r0, 0
- movs r0, 0
- strh r0, [r6, 0x4]
- movs r2, 0x3
- ands r2, r4
- lsrs r4, 3
- movs r0, 0x1
- ands r4, r0
- adds r2, r4
- adds r0, r6, 0
- bl sub_814A2EC
- b _080F817A
- .align 2, 0
-_080F8070: .4byte 0x000001ff
-_080F8074:
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 3
- adds r0, 0x18
- adds r7, r6, r0
- ldrb r0, [r6, 0x3]
- cmp r0, 0x1
- beq _080F8124
- cmp r0, 0x1
- bgt _080F808C
- cmp r0, 0
- beq _080F8092
- b _080F817A
-_080F808C:
- cmp r0, 0xFE
- beq _080F8170
- b _080F817A
-_080F8092:
- ldrb r0, [r6, 0x2]
- cmp r0, 0
- bne _080F80D0
- cmp r1, 0x6
- beq _080F80A2
- ldrh r0, [r7]
- cmp r0, 0xFF
- bne _080F80A6
-_080F80A2:
- movs r0, 0xFE
- b _080F8178
-_080F80A6:
- ldrh r0, [r7, 0x2]
- strb r0, [r6, 0x2]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F80CA
- movs r1, 0x3
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0xF9
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStart
-_080F80CA:
- movs r0, 0x1
- strb r0, [r6, 0x3]
- b _080F8114
-_080F80D0:
- ldrh r1, [r6, 0xA]
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- cmp r0, 0xA
- ble _080F80E0
- ldrh r0, [r6, 0x6]
- subs r0, 0x2
- strh r0, [r6, 0x6]
-_080F80E0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080F80EE
- ldrh r0, [r6, 0x8]
- adds r0, 0x40
- b _080F80F2
-_080F80EE:
- ldrh r0, [r6, 0x8]
- subs r0, 0x40
-_080F80F2:
- strh r0, [r6, 0x8]
- ldr r4, _080F811C @ =gMPlay_SE2
- ldr r5, _080F8120 @ =0x0000ffff
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
-_080F8114:
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
- b _080F817A
- .align 2, 0
-_080F811C: .4byte gMPlay_SE2
-_080F8120: .4byte 0x0000ffff
-_080F8124:
- adds r0, r1, 0x1
- movs r1, 0
- strb r0, [r6, 0x1]
- strb r1, [r6, 0x3]
- ldrh r0, [r7]
- cmp r0, 0x32
- bhi _080F817A
- ldrh r0, [r7, 0x6]
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x6]
- ldr r4, _080F8168 @ =gMPlay_SE2
- ldr r5, _080F816C @ =0x0000ffff
- ldrh r2, [r6, 0x6]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayVolumeControl
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r7, [r7, 0x4]
- adds r0, r7
- strh r0, [r6, 0x8]
- movs r0, 0x8
- ldrsh r2, [r6, r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl m4aMPlayPitchControl
- b _080F817A
- .align 2, 0
-_080F8168: .4byte gMPlay_SE2
-_080F816C: .4byte 0x0000ffff
-_080F8170:
- ldr r0, _080F8180 @ =gMPlay_SE2
- bl m4aMPlayStop
- movs r0, 0xFF
-_080F8178:
- strb r0, [r6, 0x3]
-_080F817A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8180: .4byte gMPlay_SE2
- thumb_func_end sub_80F7FB0
-
- thumb_func_start sub_80F8184
-sub_80F8184: @ 80F8184
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F81B4 @ =gTasks
- adds r5, r0, r1
- ldr r1, _080F81B8 @ =gUnknown_03005DA0
- adds r0, r5, 0
- bl sub_80F7FB0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- bls _080F81A8
- b _080F83C8
-_080F81A8:
- lsls r0, 2
- ldr r1, _080F81BC @ =_080F81C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F81B4: .4byte gTasks
-_080F81B8: .4byte gUnknown_03005DA0
-_080F81BC: .4byte _080F81C0
- .align 2, 0
-_080F81C0:
- .4byte _080F81D8
- .4byte _080F8218
- .4byte _080F8228
- .4byte _080F82D8
- .4byte _080F83B8
- .4byte _080F82C6
-_080F81D8:
- bl sub_80F7BA0
- ldr r4, _080F820C @ =gMenuWindowPtr
- ldr r0, [r4]
- ldr r1, _080F8210 @ =gWindowConfig_81E6CE4
- bl InitWindowFromConfig
- ldr r0, [r4]
- ldr r1, _080F8214 @ =gStringVar4
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x2
- movs r3, 0x4
- bl sub_8002EB0
- movs r0, 0
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strh r0, [r5, 0x10]
- movs r0, 0x4
- bl FadeOutBGMTemporarily
- movs r0, 0x1
- b _080F83C6
- .align 2, 0
-_080F820C: .4byte gMenuWindowPtr
-_080F8210: .4byte gWindowConfig_81E6CE4
-_080F8214: .4byte gStringVar4
-_080F8218:
- bl IsBGMPausedOrStopped
- lsls r0, 24
- cmp r0, 0
- bne _080F8224
- b _080F83C8
-_080F8224:
- movs r0, 0x2
- b _080F83C6
-_080F8228:
- ldr r4, _080F8240 @ =gSaveBlock1 + 0x2D94
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- ldr r0, _080F8244 @ =gStringVar4
- adds r1, r0
- movs r3, 0
- ldrb r0, [r1]
- ldr r7, _080F8248 @ =gUnknown_03005DA0
- ldrh r2, [r5, 0x12]
- ldr r6, _080F824C @ =gUnknown_020388BC
- b _080F825A
- .align 2, 0
-_080F8240: .4byte gSaveBlock1 + 0x2D94
-_080F8244: .4byte gStringVar4
-_080F8248: .4byte gUnknown_03005DA0
-_080F824C: .4byte gUnknown_020388BC
-_080F8250:
- adds r1, 0x1
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrb r0, [r1]
-_080F825A:
- cmp r0, 0
- beq _080F826A
- cmp r0, 0xFE
- beq _080F826A
- cmp r0, 0xFC
- beq _080F826A
- cmp r0, 0xFF
- bne _080F8250
-_080F826A:
- cmp r2, 0
- bne _080F8278
- movs r0, 0x10
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0x2
- b _080F8282
-_080F8278:
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0xE
-_080F8282:
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- lsrs r0, 3
- movs r2, 0x1
- ands r0, r2
- adds r1, r0
- strh r1, [r6]
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- adds r1, r3, 0
- bl __divsi3
- movs r1, 0
- strh r0, [r7, 0x4]
- lsls r0, 16
- cmp r0, 0
- bgt _080F82AC
- movs r0, 0x1
- strh r0, [r7, 0x4]
-_080F82AC:
- ldrh r0, [r5, 0x10]
- adds r0, 0x1
- strh r0, [r5, 0x10]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82BE
- movs r0, 0x3
- b _080F82C0
-_080F82BE:
- movs r0, 0x5
-_080F82C0:
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xA]
- b _080F83C8
-_080F82C6:
- ldrh r1, [r5, 0xC]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _080F82D2
- b _080F83C4
-_080F82D2:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F82D8:
- ldr r1, _080F8304 @ =gStringVar4
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- adds r0, r1
- ldrb r4, [r0]
- cmp r4, 0xFF
- bne _080F830C
- movs r0, 0xC8
- lsls r0, 1
- movs r1, 0x6
- bl FadeInNewBGM
- ldr r0, _080F8308 @ =gMPlay_SE2
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
- b _080F83C8
- .align 2, 0
-_080F8304: .4byte gStringVar4
-_080F8308: .4byte gMPlay_SE2
-_080F830C:
- cmp r4, 0
- bne _080F832C
- ldr r0, _080F8328 @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8328: .4byte gMenuWindowPtr
-_080F832C:
- cmp r4, 0xFE
- bne _080F8340
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- strh r1, [r5, 0xC]
- b _080F83C8
-_080F8340:
- cmp r4, 0xFC
- bne _080F8354
- ldrh r0, [r5, 0xE]
- adds r0, 0x2
- strh r0, [r5, 0xE]
- movs r0, 0x2
- strh r0, [r5, 0x8]
- movs r0, 0x8
- strh r0, [r5, 0xC]
- b _080F83C8
-_080F8354:
- cmp r4, 0x37
- bne _080F8374
- movs r4, 0
- strb r4, [r0]
- ldr r0, _080F8370 @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- strh r4, [r5, 0xC]
- b _080F83C8
- .align 2, 0
-_080F8370: .4byte gMenuWindowPtr
-_080F8374:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080F8394
- cmp r0, 0x1
- bgt _080F8386
- cmp r0, 0
- beq _080F838C
- b _080F83C8
-_080F8386:
- cmp r0, 0x2
- beq _080F83A0
- b _080F83C8
-_080F838C:
- ldr r0, _080F839C @ =gMenuWindowPtr
- ldr r0, [r0]
- bl sub_8003418
-_080F8394:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _080F83C8
- .align 2, 0
-_080F839C: .4byte gMenuWindowPtr
-_080F83A0:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0xE]
- strh r1, [r5, 0xA]
- ldr r0, _080F83B4 @ =gUnknown_03005DA0
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0xC]
- movs r0, 0x4
- b _080F83C6
- .align 2, 0
-_080F83B4: .4byte gUnknown_03005DA0
-_080F83B8:
- ldrh r0, [r5, 0xC]
- subs r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080F83C8
-_080F83C4:
- movs r0, 0x3
-_080F83C6:
- strh r0, [r5, 0x8]
-_080F83C8:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F8184
-
- thumb_func_start sub_80F83D0
-sub_80F83D0: @ 80F83D0
- push {r4,lr}
- ldr r4, _080F83F4 @ =0x00004010
- bl GetCurrentMauvilleOldMan
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x8A
- lsls r0, 15
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F83F4: .4byte 0x00004010
- thumb_func_end sub_80F83D0
-
- thumb_func_start sub_80F83F8
-sub_80F83F8: @ 80F83F8
- push {r4,lr}
- ldr r0, _080F8424 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- movs r4, 0
- movs r3, 0xFF
- adds r1, r0, 0x4
- movs r2, 0x3
-_080F840C:
- strb r4, [r1]
- ldrb r0, [r1, 0x4]
- orrs r0, r3
- strb r0, [r1, 0x4]
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080F840C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8424: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F83F8
-
- thumb_func_start sub_80F8428
-sub_80F8428: @ 80F8428
- ldr r0, _080F8434 @ =gSaveBlock1 + 0x2D94
- movs r2, 0
- movs r1, 0x3
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bx lr
- .align 2, 0
-_080F8434: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F8428
-
- thumb_func_start sub_80F8438
-sub_80F8438: @ 80F8438
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x32
- bne _080F8444
- movs r0, 0
-_080F8444:
- bl sub_8053108
- pop {r1}
- bx r1
- thumb_func_end sub_80F8438
-
- thumb_func_start sub_80F844C
-sub_80F844C: @ 80F844C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080F8460 @ =gUnknown_083E53E0
-_080F8454:
- ldrb r0, [r1]
- cmp r0, r3
- bne _080F8464
- adds r0, r1, 0
- b _080F846E
- .align 2, 0
-_080F8460: .4byte gUnknown_083E53E0
-_080F8464:
- adds r1, 0x10
- adds r2, 0x1
- cmp r2, 0x23
- ble _080F8454
- ldr r0, _080F8474 @ =gUnknown_083E5610
-_080F846E:
- pop {r1}
- bx r1
- .align 2, 0
-_080F8474: .4byte gUnknown_083E5610
- thumb_func_end sub_80F844C
-
- thumb_func_start sub_80F8478
-sub_80F8478: @ 80F8478
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x4]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8478
-
- thumb_func_start sub_80F8484
-sub_80F8484: @ 80F8484
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0xC]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8484
-
- thumb_func_start sub_80F8490
-sub_80F8490: @ 80F8490
- push {lr}
- bl sub_80F844C
- ldr r0, [r0, 0x8]
- pop {r1}
- bx r1
- thumb_func_end sub_80F8490
-
- thumb_func_start sub_80F849C
-sub_80F849C: @ 80F849C
- push {lr}
- movs r1, 0
- ldr r2, _080F84C4 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r2, 0x4]
- cmp r0, 0
- beq _080F84BC
- adds r2, 0x4
-_080F84AA:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080F84BC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F84AA
-_080F84BC:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080F84C4: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_80F849C
-
- thumb_func_start sub_80F84C8
-sub_80F84C8: @ 80F84C8
- lsls r0, 2
- ldr r1, _080F84E8 @ =gSaveBlock1 + 0x2DB8
- adds r0, r1
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- lsls r1, 8
- orrs r2, r1
- ldrb r1, [r0, 0x2]
- lsls r1, 16
- orrs r2, r1
- ldrb r0, [r0, 0x3]
- lsls r0, 24
- orrs r2, r0
- adds r0, r2, 0
- bx lr
- .align 2, 0
-_080F84E8: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84C8
-
- thumb_func_start sub_80F84EC
-sub_80F84EC: @ 80F84EC
- lsls r0, 2
- ldr r2, _080F8504 @ =gSaveBlock1 + 0x2DB8
- adds r0, r2
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- .align 2, 0
-_080F8504: .4byte gSaveBlock1 + 0x2DB8
- thumb_func_end sub_80F84EC
-
- thumb_func_start sub_80F8508
-sub_80F8508: @ 80F8508
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080F8528 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r0, [r0]
- bl sub_80F8438
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_80F84C8
- cmp r4, r0
- bhi _080F852C
- movs r0, 0
- b _080F852E
- .align 2, 0
-_080F8528: .4byte gSaveBlock1 + 0x2D94
-_080F852C:
- movs r0, 0x1
-_080F852E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8508
-
- thumb_func_start sub_80F8534
-sub_80F8534: @ 80F8534
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r4, r0, 3
- subs r4, r0
- ldr r0, _080F855C @ =gSaveBlock1 + 0x2D9C
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl memcpy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F855C: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8534
-
- thumb_func_start sub_80F8560
-sub_80F8560: @ 80F8560
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r5, r0, 3
- subs r5, r0
- ldr r0, _080F8594 @ =gSaveBlock1 + 0x2D9C
- adds r5, r0
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xFF
- movs r2, 0x7
- bl memset
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl StringCopyN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8594: .4byte gSaveBlock1 + 0x2D9C
- thumb_func_end sub_80F8560
-
- thumb_func_start sub_80F8598
-sub_80F8598: @ 80F8598
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r0, _080F85EC @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- strb r6, [r0]
- ldr r1, _080F85F0 @ =gSaveBlock2
- adds r0, r5, 0
- bl sub_80F8560
- lsls r4, r6, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_80F84EC
- ldr r5, _080F85F4 @ =gStringVar1
- adds r0, r4, 0
- bl sub_80F8438
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F85F8 @ =gStringVar2
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F85EC: .4byte gSaveBlock1 + 0x2D94
-_080F85F0: .4byte gSaveBlock2
-_080F85F4: .4byte gStringVar1
-_080F85F8: .4byte gStringVar2
- thumb_func_end sub_80F8598
-
- thumb_func_start sub_80F85FC
-sub_80F85FC: @ 80F85FC
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0
- cmp r5, r6
- bge _080F8612
-_080F8608:
- adds r0, r7, r5
- strb r5, [r0]
- adds r5, 0x1
- cmp r5, r6
- blt _080F8608
-_080F8612:
- cmp r6, 0
- ble _080F8648
- adds r5, r6, 0
-_080F8618:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r4, r7, r4
- ldrb r2, [r4]
- adds r0, r7, r0
- ldrb r1, [r0]
- strb r1, [r4]
- strb r2, [r0]
- subs r5, 0x1
- cmp r5, 0
- bne _080F8618
-_080F8648:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80F85FC
-
- thumb_func_start sub_80F8650
-sub_80F8650: @ 80F8650
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r7, sp
- mov r10, sp
- ldr r0, _080F86D4 @ =gUnknown_083E5620
- ldr r0, [r0]
- lsls r0, 3
- lsrs r0, 3
- adds r0, 0x3
- lsrs r0, 2
- lsls r0, 2
- mov r1, sp
- subs r1, r0
- mov sp, r1
- mov r8, sp
- mov r0, sp
- movs r1, 0x24
- bl sub_80F85FC
- movs r5, 0
- ldr r0, _080F86D8 @ =gUnknown_083E53E0
- mov r9, r0
- ldr r3, _080F86DC @ =gSaveBlock1 + 0x2D94
-_080F8686:
- mov r1, r8
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 4
- add r0, r9
- ldrb r4, [r0]
- ldrb r6, [r0, 0x1]
- movs r1, 0
- ldrb r0, [r3, 0x4]
- cmp r0, r4
- beq _080F86AC
- ldr r2, _080F86E0 @ =gSaveBlock1 + 0x2D98
-_080F869E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _080F86AC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r4
- bne _080F869E
-_080F86AC:
- cmp r1, 0x4
- bne _080F86E4
- adds r0, r4, 0
- str r3, [r7]
- bl sub_80F8438
- ldr r3, [r7]
- cmp r0, r6
- bcc _080F86E4
- movs r0, 0x1
- strb r0, [r3, 0x1]
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
- b _080F86EC
- .align 2, 0
-_080F86D4: .4byte gUnknown_083E5620
-_080F86D8: .4byte gUnknown_083E53E0
-_080F86DC: .4byte gSaveBlock1 + 0x2D94
-_080F86E0: .4byte gSaveBlock1 + 0x2D98
-_080F86E4:
- adds r5, 0x1
- cmp r5, 0x23
- ble _080F8686
- movs r0, 0
-_080F86EC:
- mov sp, r10
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8650
-
- thumb_func_start sub_80F8700
-sub_80F8700: @ 80F8700
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _080F8748 @ =gSaveBlock1 + 0x2D94
- adds r0, 0x4
- adds r0, r5, r0
- ldrb r6, [r0]
- ldr r4, _080F874C @ =gStringVar1
- adds r0, r5, 0
- bl sub_80F84C8
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, _080F8750 @ =gStringVar2
- adds r0, r6, 0
- bl sub_80F8490
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _080F8754 @ =gStringVar3
- adds r0, r5, 0
- bl sub_80F8534
- adds r0, r6, 0
- bl sub_80F8484
- bl ShowFieldMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8748: .4byte gSaveBlock1 + 0x2D94
-_080F874C: .4byte gStringVar1
-_080F8750: .4byte gStringVar2
-_080F8754: .4byte gStringVar3
- thumb_func_end sub_80F8700
-
- thumb_func_start sub_80F8758
-sub_80F8758: @ 80F8758
- push {r4-r6,lr}
- bl sub_80F849C
- adds r3, r0, 0
- lsls r3, 25
- movs r0, 0x80
- lsls r0, 19
- adds r3, r0
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- bl MenuDrawTextWindow
- movs r4, 0
- ldr r1, _080F87BC @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _080F87A4
- adds r6, r1, 0x4
- movs r5, 0x80
- lsls r5, 18
-_080F8784:
- bl sub_80F8478
- lsrs r2, r5, 24
- movs r1, 0x1
- bl MenuPrint
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- adds r4, 0x1
- cmp r4, 0x3
- bgt _080F87A4
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8784
-_080F87A4:
- ldr r0, _080F87C0 @ =gPCText_Cancel
- lsls r2, r4, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F87BC: .4byte gSaveBlock1 + 0x2D94
-_080F87C0: .4byte gPCText_Cancel
- thumb_func_end sub_80F8758
-
- thumb_func_start sub_80F87C4
-sub_80F87C4: @ 80F87C4
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _080F87E4 @ =gTasks
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _080F87E8
- cmp r5, 0x1
- beq _080F8810
- b _080F8862
- .align 2, 0
-_080F87E4: .4byte gTasks
-_080F87E8:
- bl sub_80F8758
- bl sub_80F849C
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r5, [sp]
- movs r0, 0x18
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080F8862
-_080F8810:
- bl ProcessMenuInput
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _080F8862
- adds r0, 0x1
- cmp r4, r0
- beq _080F8832
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080F8840
-_080F8832:
- ldr r1, _080F883C @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- b _080F8848
- .align 2, 0
-_080F883C: .4byte gScriptResult
-_080F8840:
- ldr r0, _080F886C @ =gScriptResult
- strh r5, [r0]
- ldr r0, _080F8870 @ =gUnknown_03000748
- strb r4, [r0]
-_080F8848:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x19
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080F8862:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F886C: .4byte gScriptResult
-_080F8870: .4byte gUnknown_03000748
- thumb_func_end sub_80F87C4
-
- thumb_func_start sub_80F8874
-sub_80F8874: @ 80F8874
- push {lr}
- ldr r0, _080F8884 @ =sub_80F87C4
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080F8884: .4byte sub_80F87C4
- thumb_func_end sub_80F8874
-
- thumb_func_start sub_80F8888
-sub_80F8888: @ 80F8888
- push {lr}
- ldr r0, _080F8898 @ =gUnknown_03000748
- ldrb r0, [r0]
- bl sub_80F8700
- pop {r0}
- bx r0
- .align 2, 0
-_080F8898: .4byte gUnknown_03000748
- thumb_func_end sub_80F8888
-
- thumb_func_start sub_80F889C
-sub_80F889C: @ 80F889C
- push {lr}
- bl sub_80F849C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F889C
-
- thumb_func_start sub_80F88AC
-sub_80F88AC: @ 80F88AC
- push {r4,r5,lr}
- ldr r1, _080F88C8 @ =gSaveBlock1 + 0x2D94
- ldr r5, _080F88CC @ =gUnknown_03000748
- ldrb r0, [r5]
- adds r1, 0x4
- adds r1, r0, r1
- ldrb r4, [r1]
- bl sub_80F8508
- cmp r0, 0x1
- beq _080F88D0
- movs r0, 0
- b _080F88DA
- .align 2, 0
-_080F88C8: .4byte gSaveBlock1 + 0x2D94
-_080F88CC: .4byte gUnknown_03000748
-_080F88D0:
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_80F8598
- movs r0, 0x1
-_080F88DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F88AC
-
- thumb_func_start sub_80F88E0
-sub_80F88E0: @ 80F88E0
- push {lr}
- ldr r0, _080F88F0 @ =gSaveBlock1 + 0x2D94
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080F88F4
- movs r0, 0x1
- b _080F88F6
- .align 2, 0
-_080F88F0: .4byte gSaveBlock1 + 0x2D94
-_080F88F4:
- movs r0, 0
-_080F88F6:
- pop {r1}
- bx r1
- thumb_func_end sub_80F88E0
-
- thumb_func_start sub_80F88FC
-sub_80F88FC: @ 80F88FC
- push {lr}
- bl sub_80F8650
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80F88FC
-
- thumb_func_start sub_80F890C
-sub_80F890C: @ 80F890C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r2, _080F8958 @ =0x02000000
- adds r1, r2, 0
- adds r1, 0xFF
- movs r0, 0x2
- strb r0, [r1]
- adds r0, 0xFE
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x82
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F895C @ =sub_80EB3FC
- str r0, [r1]
- movs r0, 0x84
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, _080F8960 @ =ConvertEasyChatWordsToString
- str r0, [r1]
- ldrh r1, [r4, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _080F8964
- subs r1, 0x79
- adds r0, r2, 0
- adds r0, 0xFA
- strb r1, [r0]
- b _080F896E
- .align 2, 0
-_080F8958: .4byte 0x02000000
-_080F895C: .4byte sub_80EB3FC
-_080F8960: .4byte ConvertEasyChatWordsToString
-_080F8964:
- adds r1, r2, 0
- adds r1, 0xFA
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
-_080F896E:
- ldr r1, _080F8994 @ =0x02000000
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8980
- cmp r0, 0x1
- beq _080F899C
-_080F8980:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F8998 @ =gUnknown_083E5730
- b _080F89AC
- .align 2, 0
-_080F8994: .4byte 0x02000000
-_080F8998: .4byte gUnknown_083E5730
-_080F899C:
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- adds r0, r1, 0
- adds r0, 0xFA
- ldrb r0, [r0]
- lsls r0, 3
- ldr r1, _080F89DC @ =gUnknown_083E57A4
-_080F89AC:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r4, 0x1E]
- mov r1, sp
- bl sub_80A2D64
- lsls r0, 16
- ldr r1, _080F89E0 @ =0xffff0000
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _080F89F8
- ldr r0, _080F89E4 @ =0x02000000
- adds r1, r0, 0
- adds r1, 0xFA
- ldrb r2, [r1]
- adds r1, r0, 0
- cmp r2, 0x6
- beq _080F89E8
- cmp r2, 0x9
- beq _080F89F0
- b _080F89FA
- .align 2, 0
-_080F89DC: .4byte gUnknown_083E57A4
-_080F89E0: .4byte 0xffff0000
-_080F89E4: .4byte 0x02000000
-_080F89E8:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x1
- b _080F8A00
-_080F89F0:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0x2
- b _080F8A00
-_080F89F8:
- ldr r1, _080F8A20 @ =0x02000000
-_080F89FA:
- adds r2, r1, 0
- adds r2, 0xFB
- movs r0, 0
-_080F8A00:
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xF4
- str r4, [r0]
- subs r0, 0x8
- str r6, [r0]
- adds r0, 0xC
- strb r5, [r0]
- ldr r0, _080F8A24 @ =sub_80F8D50
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8A20: .4byte 0x02000000
-_080F8A24: .4byte sub_80F8D50
- thumb_func_end sub_80F890C
-
- thumb_func_start sub_80F8A28
-sub_80F8A28: @ 80F8A28
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _080F8A44 @ =gMain
- ldr r1, _080F8A48 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _080F8A3A
- b _080F8D3C
-_080F8A3A:
- lsls r0, 2
- ldr r1, _080F8A4C @ =_080F8A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F8A44: .4byte gMain
-_080F8A48: .4byte 0x0000043c
-_080F8A4C: .4byte _080F8A50
- .align 2, 0
-_080F8A50:
- .4byte _080F8A9C
- .4byte _080F8AB0
- .4byte _080F8AC8
- .4byte _080F8ACE
- .4byte _080F8AD4
- .4byte _080F8ADA
- .4byte _080F8B10
- .4byte _080F8B1C
- .4byte _080F8B28
- .4byte _080F8B34
- .4byte _080F8B3A
- .4byte _080F8B54
- .4byte _080F8B78
- .4byte _080F8BA0
- .4byte _080F8C14
- .4byte _080F8C2C
- .4byte _080F8C58
- .4byte _080F8CBC
- .4byte _080F8CC6
-_080F8A9C:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- b _080F8D30
-_080F8AB0:
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080F8AC4 @ =0x01000200
- add r0, sp, 0x4
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8AC4: .4byte 0x01000200
-_080F8AC8:
- bl ResetPaletteFade
- b _080F8D30
-_080F8ACE:
- bl ResetTasks
- b _080F8D30
-_080F8AD4:
- bl ResetSpriteData
- b _080F8D30
-_080F8ADA:
- bl FreeAllSpritePalettes
- ldr r0, _080F8B0C @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x32
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _080F8D30
- .align 2, 0
-_080F8B0C: .4byte REG_BG0HOFS
-_080F8B10:
- ldr r0, _080F8B18 @ =gWindowConfig_81E6DFC
- bl SetUpWindowConfig
- b _080F8D30
- .align 2, 0
-_080F8B18: .4byte gWindowConfig_81E6DFC
-_080F8B1C:
- ldr r0, _080F8B24 @ =gWindowConfig_81E6DFC
- bl MultistepInitMenuWindowBegin
- b _080F8D30
- .align 2, 0
-_080F8B24: .4byte gWindowConfig_81E6DFC
-_080F8B28:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- beq _080F8B32
- b _080F8D30
-_080F8B32:
- b _080F8D3C
-_080F8B34:
- bl MenuZeroFillScreen
- b _080F8D30
-_080F8B3A:
- mov r0, sp
- adds r0, 0x6
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _080F8B4C @ =0x06004800
- ldr r2, _080F8B50 @ =0x01000400
- bl CpuSet
- b _080F8D30
- .align 2, 0
-_080F8B4C: .4byte 0x06004800
-_080F8B50: .4byte 0x01000400
-_080F8B54:
- ldr r2, _080F8B70 @ =gMailGraphicsTable
- ldr r0, _080F8B74 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _080F8D30
- .align 2, 0
-_080F8B70: .4byte gMailGraphicsTable
-_080F8B74: .4byte 0x02000000
-_080F8B78:
- ldr r2, _080F8B94 @ =gMailGraphicsTable
- ldr r0, _080F8B98 @ =0x02000000
- adds r0, 0xFA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _080F8B9C @ =0x06004000
- bl LZ77UnCompVram
- b _080F8D30
- .align 2, 0
-_080F8B94: .4byte gMailGraphicsTable
-_080F8B98: .4byte 0x02000000
-_080F8B9C: .4byte 0x06004000
-_080F8BA0:
- ldr r5, _080F8C00 @ =gMailGraphicsTable
- ldr r4, _080F8C04 @ =0x02000000
- adds r4, 0xFA
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0x4
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r3, _080F8C08 @ =gPlttBufferUnfaded
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x10]
- movs r2, 0xF1
- lsls r2, 1
- adds r1, r3, r2
- strh r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x12]
- adds r2, 0xE
- adds r0, r3, r2
- strh r1, [r0]
- ldr r1, _080F8C0C @ =gUnknown_083E562C
- ldr r2, _080F8C10 @ =gSaveBlock2
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x16]
- b _080F8D30
- .align 2, 0
-_080F8C00: .4byte gMailGraphicsTable
-_080F8C04: .4byte 0x02000000
-_080F8C08: .4byte gPlttBufferUnfaded
-_080F8C0C: .4byte gUnknown_083E562C
-_080F8C10: .4byte gSaveBlock2
-_080F8C14:
- ldr r0, _080F8C28 @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8C20
- b _080F8D30
-_080F8C20:
- bl sub_80F8DA0
- b _080F8D30
- .align 2, 0
-_080F8C28: .4byte 0x02000000
-_080F8C2C:
- ldr r0, _080F8C4C @ =0x02000000
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8C3A
- bl sub_80F8E80
-_080F8C3A:
- ldr r0, _080F8C50 @ =sub_80F8F18
- bl SetVBlankCallback
- ldr r2, _080F8C54 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _080F8D30
- .align 2, 0
-_080F8C4C: .4byte 0x02000000
-_080F8C50: .4byte sub_80F8F18
-_080F8C54: .4byte gPaletteFade
-_080F8C58:
- ldr r5, _080F8C7C @ =0x02000000
- adds r0, r5, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080F8C80
- cmp r0, 0x2
- beq _080F8C98
- b _080F8D30
- .align 2, 0
-_080F8C7C: .4byte 0x02000000
-_080F8C80:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8C94 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x60
- b _080F8CA8
- .align 2, 0
-_080F8C94: .4byte SpriteCallbackDummy
-_080F8C98:
- adds r0, r4, 0
- bl sub_809D580
- ldr r1, _080F8CB8 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x28
-_080F8CA8:
- movs r3, 0x80
- bl sub_809D3A4
- adds r1, r5, 0
- adds r1, 0xFC
- strb r0, [r1]
- b _080F8D30
- .align 2, 0
-_080F8CB8: .4byte SpriteCallbackDummy
-_080F8CBC:
- bl sub_8055870
- cmp r0, 0x1
- bne _080F8D30
- b _080F8D3C
-_080F8CC6:
- ldr r1, _080F8D14 @ =REG_BG0CNT
- ldr r2, _080F8D18 @ =0x00009f08
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D1C @ =0x00000801
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080F8D20 @ =0x00000902
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x50
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080F8D24 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080F8D28 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8D2C @ =sub_80F8F58
- str r1, [r0]
- movs r0, 0x1
- b _080F8D3E
- .align 2, 0
-_080F8D14: .4byte REG_BG0CNT
-_080F8D18: .4byte 0x00009f08
-_080F8D1C: .4byte 0x00000801
-_080F8D20: .4byte 0x00000902
-_080F8D24: .4byte gPaletteFade
-_080F8D28: .4byte 0x02000000
-_080F8D2C: .4byte sub_80F8F58
-_080F8D30:
- ldr r1, _080F8D48 @ =gMain
- ldr r0, _080F8D4C @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080F8D3C:
- movs r0, 0
-_080F8D3E:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080F8D48: .4byte gMain
-_080F8D4C: .4byte 0x0000043c
- thumb_func_end sub_80F8A28
-
- thumb_func_start sub_80F8D50
-sub_80F8D50: @ 80F8D50
- push {lr}
-_080F8D52:
- bl sub_80F8A28
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D6C
- ldr r0, _080F8D68 @ =sub_80F8F2C
- bl SetMainCallback2
- b _080F8D78
- .align 2, 0
-_080F8D68: .4byte sub_80F8F2C
-_080F8D6C:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F8D52
-_080F8D78:
- pop {r0}
- bx r0
- thumb_func_end sub_80F8D50
-
- thumb_func_start sub_80F8D7C
-sub_80F8D7C: @ 80F8D7C
- push {r4,lr}
- adds r4, r0, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F8D7C
-
- thumb_func_start sub_80F8DA0
-sub_80F8DA0: @ 80F8DA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r2, _080F8E3C @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080F8E04
- mov r8, r2
- adds r7, r1, 0
-_080F8DBE:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- subs r0, r5
- add r0, r8
- mov r1, r8
- adds r1, 0xF4
- lsls r2, r6, 1
- ldr r1, [r1]
- adds r1, r2
- ldr r2, [r7]
- ldr r2, [r2, 0x4]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 28
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- ldr r1, [r7]
- ldr r0, [r1, 0x4]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 28
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _080F8DBE
-_080F8E04:
- ldr r2, _080F8E40 @ =0x020000d8
- adds r4, r2, 0
- subs r4, 0xD8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- bne _080F8E48
- ldr r1, [r2, 0x1C]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- adds r2, r0, 0
- ldr r1, _080F8E44 @ =gOtherText_From
- bl StringCopy
- ldr r0, _080F8E40 @ =0x020000d8
- bl StringLength
- movs r2, 0x86
- lsls r2, 1
- adds r1, r4, r2
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- subs r1, r0
- b _080F8E6A
- .align 2, 0
-_080F8E3C: .4byte 0x02000000
-_080F8E40: .4byte 0x020000d8
-_080F8E44: .4byte gOtherText_From
-_080F8E48:
- ldr r1, _080F8E7C @ =gOtherText_From
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r1, [r0]
- adds r1, 0x12
- adds r0, r2, 0
- bl sub_80F8D7C
- movs r1, 0x86
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
-_080F8E6A:
- adds r0, r4, 0
- adds r0, 0xF9
- strb r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8E7C: .4byte gOtherText_From
- thumb_func_end sub_80F8DA0
-
- thumb_func_start sub_80F8E80
-sub_80F8E80: @ 80F8E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r4, 0
- ldr r1, _080F8F10 @ =0x02000000
- movs r0, 0x86
- lsls r0, 1
- adds r2, r1, r0
- ldr r0, [r2]
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080F8EF6
- mov r8, r1
- adds r7, r2, 0
-_080F8E9E:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r0, r4
- mov r1, r8
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F8EE8
- cmp r0, 0
- beq _080F8EE8
- ldr r2, [r7]
- ldr r1, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r3, r0, 24
- lsrs r3, 28
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0x3]
- lsrs r1, r2, 4
- adds r1, r3
- lsls r2, 28
- lsrs r2, 28
- adds r2, r6, r2
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r6, r0, 24
-_080F8EE8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r7]
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F8E9E
-_080F8EF6:
- ldr r0, _080F8F14 @ =0x020000d8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- ldr r2, [r0, 0x34]
- ldrb r2, [r2, 0x1]
- bl MenuPrint
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F10: .4byte 0x02000000
-_080F8F14: .4byte 0x020000d8
- thumb_func_end sub_80F8E80
-
- thumb_func_start sub_80F8F18
-sub_80F8F18: @ 80F8F18
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80F8F18
-
- thumb_func_start sub_80F8F2C
-sub_80F8F2C: @ 80F8F2C
- push {r4,lr}
- ldr r4, _080F8F54 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0
- beq _080F8F42
- bl AnimateSprites
- bl BuildOamBuffer
-_080F8F42:
- adds r0, r4, 0
- adds r0, 0xF0
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F54: .4byte 0x02000000
- thumb_func_end sub_80F8F2C
-
- thumb_func_start sub_80F8F58
-sub_80F8F58: @ 80F8F58
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F8F6C
- ldr r0, _080F8F70 @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8F74 @ =sub_80F8F78
- str r1, [r0]
-_080F8F6C:
- pop {r0}
- bx r0
- .align 2, 0
-_080F8F70: .4byte 0x02000000
-_080F8F74: .4byte sub_80F8F78
- thumb_func_end sub_80F8F58
-
- thumb_func_start sub_80F8F78
-sub_80F8F78: @ 80F8F78
- push {lr}
- sub sp, 0x4
- ldr r0, _080F8FA8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080F8FA0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080F8FAC @ =0x02000000
- adds r0, 0xF0
- ldr r1, _080F8FB0 @ =sub_80F8FB4
- str r1, [r0]
-_080F8FA0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F8FA8: .4byte gMain
-_080F8FAC: .4byte 0x02000000
-_080F8FB0: .4byte sub_80F8FB4
- thumb_func_end sub_80F8F78
-
- thumb_func_start sub_80F8FB4
-sub_80F8FB4: @ 80F8FB4
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080F9012
- ldr r4, _080F9018 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0xEC
- ldr r0, [r0]
- bl SetMainCallback2
- adds r0, r4, 0
- adds r0, 0xFB
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _080F9002
- cmp r0, 0x1
- blt _080F9002
- adds r0, r4, 0
- adds r0, 0xF4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_809D4A8
- lsls r0, 16
- lsrs r0, 16
- bl sub_809D608
- adds r0, r4, 0
- adds r0, 0xFC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F901C @ =gSprites
- adds r0, r1
- bl sub_809D510
-_080F9002:
- ldr r0, _080F9018 @ =0x02000000
- movs r2, 0x88
- lsls r2, 1
- movs r1, 0
- bl memset
- bl ResetPaletteFade
-_080F9012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9018: .4byte 0x02000000
-_080F901C: .4byte gSprites
- thumb_func_end sub_80F8FB4
-
- thumb_func_start sub_80F9020
-sub_80F9020: @ 80F9020
- push {r4,r5,lr}
- ldr r4, _080F9054 @ =gBG1TilemapBuffer
- movs r5, 0x80
- lsls r5, 4
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- adds r0, r4, r5
- movs r1, 0
- adds r2, r5, 0
- bl memset
- movs r0, 0x80
- lsls r0, 5
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9054: .4byte gBG1TilemapBuffer
- thumb_func_end sub_80F9020
-
- thumb_func_start sav2_get_text_speed
-sav2_get_text_speed: @ 80F9058
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- bl MenuDisplayMessageBox
- cmp r4, 0
- beq _080F907C
- ldr r0, _080F908C @ =gBG1TilemapBuffer
- movs r1, 0x4
- str r1, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x1A
- bl sub_80A3FA0
-_080F907C:
- adds r0, r5, 0
- bl sub_8072044
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F908C: .4byte gBG1TilemapBuffer
- thumb_func_end sav2_get_text_speed
-
- thumb_func_start sub_80F9090
-sub_80F9090: @ 80F9090
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F90AC
- ldr r0, _080F90B4 @ =gUnknown_0300074C
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080F90AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F90B4: .4byte gUnknown_0300074C
- thumb_func_end sub_80F9090
-
- thumb_func_start DisplayItemMessageOnField
-DisplayItemMessageOnField: @ 80F90B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- adds r1, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- bl sav2_get_text_speed
- ldr r0, _080F90E8 @ =gUnknown_0300074C
- str r5, [r0]
- ldr r1, _080F90EC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080F90F0 @ =sub_80F9090
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F90E8: .4byte gUnknown_0300074C
-_080F90EC: .4byte gTasks
-_080F90F0: .4byte sub_80F9090
- thumb_func_end DisplayItemMessageOnField
-
- thumb_func_start Task_CallYesOrNoCallback
-Task_CallYesOrNoCallback: @ 80F90F4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080F911A
- cmp r1, 0
- bgt _080F9114
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080F9130
- b _080F9140
-_080F9114:
- cmp r1, 0x1
- beq _080F9130
- b _080F9140
-_080F911A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080F912C @ =gUnknown_020388C4
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080F9140
- .align 2, 0
-_080F912C: .4byte gUnknown_020388C4
-_080F9130:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080F9148 @ =gUnknown_020388C4
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080F9140:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9148: .4byte gUnknown_020388C4
- thumb_func_end Task_CallYesOrNoCallback
-
- thumb_func_start sub_80F914C
-sub_80F914C: @ 80F914C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F916C @ =gUnknown_020388C4
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r3]
- str r2, [r3, 0x4]
- ldr r2, _080F9170 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080F9174 @ =Task_CallYesOrNoCallback
- str r0, [r1]
- bx lr
- .align 2, 0
-_080F916C: .4byte gUnknown_020388C4
-_080F9170: .4byte gTasks
-_080F9174: .4byte Task_CallYesOrNoCallback
- thumb_func_end sub_80F914C
-
- thumb_func_start brm_trade_1
-brm_trade_1: @ 80F9178
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- ldr r1, _080F91C0 @ =gUnknown_083E5A18
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- cmp r4, 0xFF
- beq _080F91CC
- mov r0, sp
- strb r4, [r0, 0x2]
- ldr r4, _080F91C4 @ =gStringVar4
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringAppend
- mov r1, sp
- ldr r0, _080F91C8 @ =gMenuWindowPtr
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x2]
- adds r0, r4, 0
- bl StringAppend
- b _080F91D4
- .align 2, 0
-_080F91C0: .4byte gUnknown_083E5A18
-_080F91C4: .4byte gStringVar4
-_080F91C8: .4byte gMenuWindowPtr
-_080F91CC:
- ldr r0, _080F91E8 @ =gStringVar4
- adds r1, r5, 0
- bl StringCopy
-_080F91D4:
- ldr r0, _080F91E8 @ =gStringVar4
- adds r1, r7, 0
- adds r2, r6, 0
- bl MenuPrint
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F91E8: .4byte gStringVar4
- thumb_func_end brm_trade_1
-
- thumb_func_start unref_sub_80F91EC
-unref_sub_80F91EC: @ 80F91EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- adds r4, r2, 0
- adds r2, r3, 0
- ldr r0, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r6, _080F9234 @ =gStringVar1
- adds r0, r6, 0
- mov r1, r12
- adds r3, r4, 0
- bl ConvertIntToDecimalStringN
- mov r0, r8
- cmp r0, 0xFF
- beq _080F9238
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- adds r3, r5, 0
- bl brm_trade_1
- b _080F9242
- .align 2, 0
-_080F9234: .4byte gStringVar1
-_080F9238:
- adds r0, r6, 0
- adds r1, r7, 0
- adds r2, r5, 0
- bl MenuPrint
-_080F9242:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_80F91EC
-
- thumb_func_start unref_sub_80F924C
-unref_sub_80F924C: @ 80F924C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080F9280 @ =gUnknown_083E5A1C
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl brm_trade_1
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9280: .4byte gUnknown_083E5A1C
- thumb_func_end unref_sub_80F924C
-
- thumb_func_start sub_80F9284
-sub_80F9284: @ 80F9284
- push {lr}
- ldr r0, _080F92A0 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080F92B6
- ldr r0, _080F92A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080F92A8
- movs r0, 0x1
- b _080F92B8
- .align 2, 0
-_080F92A0: .4byte gSaveBlock2
-_080F92A4: .4byte gMain
-_080F92A8:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080F92B6
- movs r0, 0x2
- b _080F92B8
-_080F92B6:
- movs r0, 0
-_080F92B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9284
-
- thumb_func_start sub_80F92BC
-sub_80F92BC: @ 80F92BC
- push {lr}
- ldr r0, _080F92D8 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _080F92EE
- ldr r0, _080F92DC @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080F92E0
- movs r0, 0x1
- b _080F92F0
- .align 2, 0
-_080F92D8: .4byte gSaveBlock2
-_080F92DC: .4byte gMain
-_080F92E0:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080F92EE
- movs r0, 0x2
- b _080F92F0
-_080F92EE:
- movs r0, 0
-_080F92F0:
- pop {r1}
- bx r1
- thumb_func_end sub_80F92BC
-
- thumb_func_start sub_80F92F4
-sub_80F92F4: @ 80F92F4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080F9314
- ldr r0, _080F930C @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- ldr r0, _080F9310 @ =0x00001919
- cmp r1, r0
- bne _080F9314
- movs r0, 0
- b _080F9316
- .align 2, 0
-_080F930C: .4byte gSaveBlock1
-_080F9310: .4byte 0x00001919
-_080F9314:
- movs r0, 0x1
-_080F9316:
- pop {r1}
- bx r1
- thumb_func_end sub_80F92F4
-
- thumb_func_start sub_80F931C
-sub_80F931C: @ 80F931C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _080F933C
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F933C
- movs r0, 0
- b _080F933E
-_080F933C:
- movs r0, 0x1
-_080F933E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80F931C
-
- thumb_func_start sub_80F9344
-sub_80F9344: @ 80F9344
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0x1
- beq _080F9356
- ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080F9360
-_080F9356:
- movs r0, 0x1
- b _080F9362
- .align 2, 0
-_080F935C: .4byte gReceivedRemoteLinkPlayers
-_080F9360:
- movs r0, 0
-_080F9362:
- pop {r1}
- bx r1
- thumb_func_end sub_80F9344
-
- thumb_func_start sub_80F9368
-sub_80F9368: @ 80F9368
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0xE
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x14
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0x4
- mov r8, r0
- mov r2, sp
- movs r6, 0
- ldr r1, _080F9430 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _080F9434 @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_080F93C6:
- strh r6, [r2]
- mov r0, sp
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _080F93C6
- strh r6, [r2]
- mov r2, sp
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r2, _080F9430 @ =0x040000d4
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- mov r0, sp
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9430: .4byte 0x040000d4
-_080F9434: .4byte 0x81000800
- thumb_func_end sub_80F9368
-
- thumb_func_start sub_80F9438
-sub_80F9438: @ 80F9438
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- pop {r0}
- bx r0
- thumb_func_end sub_80F9438
-
- thumb_func_start sub_80F944C
-sub_80F944C: @ 80F944C
- push {r4,lr}
- movs r2, 0
- ldr r4, _080F9478 @ =gUnknown_020388C0
- movs r3, 0xFF
-_080F9454:
- 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, 0x3
- bls _080F9454
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080F947C @ =gUnknown_083E5968
- bl LoadSpritePalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9478: .4byte gUnknown_020388C0
-_080F947C: .4byte gUnknown_083E5968
- thumb_func_end sub_80F944C
-
- thumb_func_start sub_80F9480
-sub_80F9480: @ 80F9480
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- cmp r2, r1
- bcs _080F949E
- movs r4, 0xFF
-_080F9490:
- adds r0, r3, r2
- strb r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080F9490
-_080F949E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F9480
-
- thumb_func_start sub_80F94A4
-sub_80F94A4: @ 80F94A4
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, 16
- lsrs r1, r2, 16
- lsls r3, 16
- lsrs r2, r3, 16
- cmp r4, 0x5
- bhi _080F94E8
- ldrb r0, [r5]
- cmp r0, 0xFF
- bne _080F94D0
- ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5]
-_080F94D0:
- subs r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F94F4 @ =gSprites
- adds r0, r1
- adds r1, r4, 0
- bl StartSpriteAnim
-_080F94E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F94F0: .4byte gSpriteTemplate_83E5A00
-_080F94F4: .4byte gSprites
- thumb_func_end sub_80F94A4
-
- thumb_func_start sub_80F94F8
-sub_80F94F8: @ 80F94F8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F9516
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F951C @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080F9516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F951C: .4byte gSprites
- thumb_func_end sub_80F94F8
-
- thumb_func_start sub_80F9520
-sub_80F9520: @ 80F9520
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080F9526:
- adds r0, r5, r4
- bl sub_80F94F8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _080F9526
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80F9520
-
- thumb_func_start sub_80F953C
-sub_80F953C: @ 80F953C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r4, 0x3
- bls _080F9550
- b _080F9790
-_080F9550:
- cmp r4, 0x1
- beq _080F95F6
- cmp r4, 0x1
- bgt _080F9564
- cmp r4, 0
- beq _080F9578
- ldr r5, _080F9560 @ =gUnknown_020388C0
- b _080F977A
- .align 2, 0
-_080F9560: .4byte gUnknown_020388C0
-_080F9564:
- cmp r4, 0x2
- bne _080F956A
- b _080F967C
-_080F956A:
- cmp r4, 0x3
- bne _080F9570
- b _080F96F8
-_080F9570:
- ldr r5, _080F9574 @ =gUnknown_020388C0
- b _080F977A
- .align 2, 0
-_080F9574: .4byte gUnknown_020388C0
-_080F9578:
- ldr r0, _080F95D8 @ =gUnknown_020388C0
- ldrb r1, [r0]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080F9584
- b _080F977A
-_080F9584:
- ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5]
- ldr r3, _080F95E0 @ =gSprites
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080F95E4 @ =0x0000ffff
- strh r1, [r0, 0x32]
- ldrb r0, [r5, 0x1]
- cmp r0, 0xFF
- beq _080F95E8
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x1]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x26]
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x1]
- b _080F9650
- .align 2, 0
-_080F95D8: .4byte gUnknown_020388C0
-_080F95DC: .4byte gSpriteTemplate_83E59D0
-_080F95E0: .4byte gSprites
-_080F95E4: .4byte 0x0000ffff
-_080F95E8:
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x34]
- b _080F977A
-_080F95F6:
- ldr r0, _080F9660 @ =gUnknown_020388C0
- ldrb r1, [r0, 0x1]
- adds r5, r0, 0
- cmp r1, 0xFF
- beq _080F9602
- b _080F977A
-_080F9602:
- ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x1]
- ldr r3, _080F9668 @ =gSprites
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x32]
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080F966C
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x26]
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5]
-_080F9650:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x34]
- strh r0, [r1, 0x34]
- b _080F977A
- .align 2, 0
-_080F9660: .4byte gUnknown_020388C0
-_080F9664: .4byte gSpriteTemplate_83E59D0
-_080F9668: .4byte gSprites
-_080F966C:
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strh r0, [r1, 0x34]
- b _080F977A
-_080F967C:
- ldr r0, _080F96E4 @ =gUnknown_020388C0
- ldrb r1, [r0, 0x2]
- adds r5, r0, 0
- cmp r1, 0xFF
- bne _080F977A
- ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x2]
- ldr r3, _080F96EC @ =gSprites
- ldrb r1, [r5, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080F96F0 @ =0x0000ffff
- strh r1, [r0, 0x2E]
- ldrb r0, [r5, 0x3]
- cmp r0, 0xFF
- beq _080F96F4
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x30]
- b _080F9778
- .align 2, 0
-_080F96E4: .4byte gUnknown_020388C0
-_080F96E8: .4byte gSpriteTemplate_83E59E8
-_080F96EC: .4byte gSprites
-_080F96F0: .4byte 0x0000ffff
-_080F96F4:
- ldrb r0, [r5, 0x2]
- b _080F976E
-_080F96F8:
- ldr r0, _080F9760 @ =gUnknown_020388C0
- ldrb r1, [r0, 0x3]
- adds r5, r0, 0
- cmp r1, 0xFF
- bne _080F977A
- ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0x3]
- ldr r3, _080F9768 @ =gSprites
- ldrb r1, [r5, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrb r0, [r5, 0x2]
- cmp r0, 0xFF
- beq _080F976C
- ldrb r0, [r5, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x2]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrb r0, [r5, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0x2]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x30]
- b _080F9778
- .align 2, 0
-_080F9760: .4byte gUnknown_020388C0
-_080F9764: .4byte gSpriteTemplate_83E59E8
-_080F9768: .4byte gSprites
-_080F976C:
- ldrb r0, [r5, 0x3]
-_080F976E:
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
-_080F9778:
- strh r0, [r1, 0x30]
-_080F977A:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F9798 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- ands r1, r4
- bl StartSpriteAnim
-_080F9790:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9798: .4byte gSprites
- thumb_func_end sub_80F953C
-
- thumb_func_start sub_80F979C
-sub_80F979C: @ 80F979C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- cmp r2, 0x3
- bhi _080F97D4
- ldr r0, _080F97D8 @ =gUnknown_020388C0
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F97D4
- ldr r2, _080F97DC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- movs r0, 0x1
- adds r2, r3, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
-_080F97D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080F97D8: .4byte gUnknown_020388C0
-_080F97DC: .4byte gSprites
- thumb_func_end sub_80F979C
-
- thumb_func_start SetBgTilemapBuffer
-SetBgTilemapBuffer: @ 80F97E0
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bhi _080F9808
- ldr r0, _080F9810 @ =gUnknown_020388C0
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F9808
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080F9814 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r4]
-_080F9808:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9810: .4byte gUnknown_020388C0
-_080F9814: .4byte gSprites
- thumb_func_end SetBgTilemapBuffer
-
- thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 80F9818
- push {lr}
- ldr r0, _080F9824 @ =gUnknown_083E5968
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_080F9824: .4byte gUnknown_083E5968
- thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-
- thumb_func_start BuyMenuFreeMemory
-BuyMenuFreeMemory: @ 80F9828
- push {lr}
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end BuyMenuFreeMemory
-
- thumb_func_start sub_80F9834
-sub_80F9834: @ 80F9834
- push {lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F9848
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
-_080F9848:
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _080F9858
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_080F9858:
- ldrh r1, [r2, 0x30]
- adds r1, 0x1
- movs r3, 0
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x2
- ble _080F9870
- strh r3, [r2, 0x30]
-_080F9870:
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x2
- ble _080F987A
- strh r3, [r2, 0x34]
-_080F987A:
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- cmp r1, 0x8
- beq _080F988A
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bne _080F988C
-_080F988A:
- strh r3, [r2, 0x24]
-_080F988C:
- movs r0, 0x26
- ldrsh r1, [r2, r0]
- cmp r1, 0x8
- beq _080F989C
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bne _080F98A0
-_080F989C:
- movs r0, 0
- strh r0, [r2, 0x26]
-_080F98A0:
- pop {r0}
- bx r0
- thumb_func_end sub_80F9834
-
- thumb_func_start sub_80F98A4
-sub_80F98A4: @ 80F98A4
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F98D0 @ =gUnknown_020388C0
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080F98CA
- cmp r1, 0x3
- bhi _080F98CA
- ldr r2, _080F98D4 @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080F98D8 @ =SpriteCallbackDummy
- str r1, [r0]
-_080F98CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080F98D0: .4byte gUnknown_020388C0
-_080F98D4: .4byte gSprites
-_080F98D8: .4byte SpriteCallbackDummy
- thumb_func_end sub_80F98A4
-
- thumb_func_start sub_80F98DC
-sub_80F98DC: @ 80F98DC
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F9908 @ =gUnknown_020388C0
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080F9902
- cmp r1, 0x3
- bhi _080F9902
- ldr r2, _080F990C @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080F9910 @ =sub_80F9834
- str r1, [r0]
-_080F9902:
- pop {r0}
- bx r0
- .align 2, 0
-_080F9908: .4byte gUnknown_020388C0
-_080F990C: .4byte gSprites
-_080F9910: .4byte sub_80F9834
- thumb_func_end sub_80F98DC
-
- thumb_func_start sub_80F9914
-sub_80F9914: @ 80F9914
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080F9964 @ =gUnknown_020388C0
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _080F995C
- cmp r1, 0x3
- bhi _080F995C
- ldr r3, _080F9968 @ =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x26]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x34]
-_080F995C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9964: .4byte gUnknown_020388C0
-_080F9968: .4byte gSprites
- thumb_func_end sub_80F9914
-
- thumb_func_start sub_80F996C
-sub_80F996C: @ 80F996C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80F98A4
- adds r0, r4, 0
- bl sub_80F9914
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80F996C
-
- thumb_func_start sub_80F9988
-sub_80F9988: @ 80F9988
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, _080F99C4 @ =gUnknown_020388C0
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080F99BE
- cmp r2, 0x3
- bhi _080F99BE
- ldr r2, _080F99C8 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r3, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080F99BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080F99C4: .4byte gUnknown_020388C0
-_080F99C8: .4byte gSprites
- thumb_func_end sub_80F9988
-
- thumb_func_start sub_80F99CC
-sub_80F99CC: @ 80F99CC
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A04 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A08 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- subs r0, 0x3
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A04: .4byte sub_80F9A8C
-_080F9A08: .4byte gTasks
- thumb_func_end sub_80F99CC
-
- thumb_func_start sub_80F9A0C
-sub_80F9A0C: @ 80F9A0C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A44 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x3
- strh r0, [r1, 0x8]
- subs r0, 0x4
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A44: .4byte sub_80F9A8C
-_080F9A48: .4byte gTasks
- thumb_func_end sub_80F9A0C
-
- thumb_func_start sub_80F9A4C
-sub_80F9A4C: @ 80F9A4C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _080F9A84 @ =sub_80F9A8C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080F9A88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x7
- strh r0, [r1, 0x8]
- subs r0, 0x8
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080F9A84: .4byte sub_80F9A8C
-_080F9A88: .4byte gTasks
- thumb_func_end sub_80F9A4C
-
- thumb_func_start sub_80F9A8C
-sub_80F9A8C: @ 80F9A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080F9AC4 @ =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9ABE
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080F9AC8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r1, 0
- bl OpenPartyMenu
- adds r0, r4, 0
- bl DestroyTask
-_080F9ABE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9AC4: .4byte gPaletteFade
-_080F9AC8: .4byte gTasks
- thumb_func_end sub_80F9A8C
-
- thumb_func_start sub_80F9ACC
-sub_80F9ACC: @ 80F9ACC
- push {r4,r5,lr}
- ldr r1, _080F9AEC @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9AE2
- b _080F9BF6
-_080F9AE2:
- lsls r0, 2
- ldr r1, _080F9AF0 @ =_080F9AF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9AEC: .4byte 0x0201b000
-_080F9AF0: .4byte _080F9AF4
- .align 2, 0
-_080F9AF4:
- .4byte _080F9B14
- .4byte _080F9B54
- .4byte _080F9B5A
- .4byte _080F9B6E
- .4byte _080F9B98
- .4byte _080F9B9E
- .4byte _080F9BB0
- .4byte _080F9BC8
-_080F9B14:
- ldr r0, _080F9B3C @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9B40 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9B48
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9B44 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _080F9BF0
- .align 2, 0
-_080F9B3C: .4byte 0x00000266
-_080F9B40: .4byte gPlayerPartyCount
-_080F9B44: .4byte gPlayerParty
-_080F9B48:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
-_080F9B54:
- bl sub_806DA98
- b _080F9BB4
-_080F9B5A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9BBC
-_080F9B6E:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9B94 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9BBC
- .align 2, 0
-_080F9B94: .4byte 0x00000266
-_080F9B98:
- bl sub_806E334
- b _080F9BB4
-_080F9B9E:
- bl sub_806E0C4
- ldr r1, _080F9BAC @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9BBC
- .align 2, 0
-_080F9BAC: .4byte 0x0201b000
-_080F9BB0:
- bl sub_80F9C00
-_080F9BB4:
- ldr r1, _080F9BC4 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9BBC:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9BF6
- .align 2, 0
-_080F9BC4: .4byte 0x0201b000
-_080F9BC8:
- ldr r0, _080F9BEC @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9BF0
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9BF8
- .align 2, 0
-_080F9BEC: .4byte 0x00000266
-_080F9BF0:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9BF6:
- movs r0, 0
-_080F9BF8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9ACC
-
- thumb_func_start sub_80F9C00
-sub_80F9C00: @ 80F9C00
- push {r4,lr}
- movs r4, 0
- b _080F9C58
-_080F9C06:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9C24 @ =gPlayerParty
- adds r0, r1
- bl sub_80AE47C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080F9C52
- lsls r0, 2
- ldr r1, _080F9C28 @ =_080F9C2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9C24: .4byte gPlayerParty
-_080F9C28: .4byte _080F9C2C
- .align 2, 0
-_080F9C2C:
- .4byte _080F9C40
- .4byte _080F9C4A
- .4byte _080F9C4A
- .4byte _080F9C40
- .4byte _080F9C40
-_080F9C40:
- adds r0, r4, 0
- movs r1, 0x7E
- bl sub_806BC3C
- b _080F9C52
-_080F9C4A:
- adds r0, r4, 0
- movs r1, 0x70
- bl sub_806BC3C
-_080F9C52:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9C58:
- ldr r0, _080F9C68 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9C06
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9C68: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9C00
-
- thumb_func_start sub_80F9C6C
-sub_80F9C6C: @ 80F9C6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080F9C94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9CD8
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9C98
- cmp r0, 0x2
- beq _080F9CC0
- b _080F9CD8
- .align 2, 0
-_080F9C94: .4byte gPaletteFade
-_080F9C98:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _080F9CB8 @ =gUnknown_02038694
- strb r0, [r1]
- ldr r2, _080F9CBC @ =gUnknown_0202E8CC
- ldrb r0, [r1]
- strh r0, [r2]
- adds r0, r4, 0
- bl sub_8123138
- b _080F9CD8
- .align 2, 0
-_080F9CB8: .4byte gUnknown_02038694
-_080F9CBC: .4byte gUnknown_0202E8CC
-_080F9CC0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9CE0 @ =gUnknown_02038694
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080F9CE4 @ =gUnknown_0202E8CC
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_080F9CD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9CE0: .4byte gUnknown_02038694
-_080F9CE4: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F9C6C
-
- thumb_func_start sub_80F9CE8
-sub_80F9CE8: @ 80F9CE8
- push {r4,r5,lr}
- ldr r1, _080F9D08 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x7
- bls _080F9CFE
- b _080F9E12
-_080F9CFE:
- lsls r0, 2
- ldr r1, _080F9D0C @ =_080F9D10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080F9D08: .4byte 0x0201b000
-_080F9D0C: .4byte _080F9D10
- .align 2, 0
-_080F9D10:
- .4byte _080F9D30
- .4byte _080F9D70
- .4byte _080F9D76
- .4byte _080F9D8A
- .4byte _080F9DB4
- .4byte _080F9DBA
- .4byte _080F9DCC
- .4byte _080F9DE4
-_080F9D30:
- ldr r0, _080F9D58 @ =0x00000266
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _080F9D5C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _080F9D64
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _080F9D60 @ =gPlayerParty
- adds r2, r3
- bl sub_806D90C
- b _080F9E0C
- .align 2, 0
-_080F9D58: .4byte 0x00000266
-_080F9D5C: .4byte gPlayerPartyCount
-_080F9D60: .4byte gPlayerParty
-_080F9D64:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
-_080F9D70:
- bl sub_806DA98
- b _080F9DD0
-_080F9D76:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_806DC34
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _080F9DD8
-_080F9D8A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _080F9DB0 @ =0x00000266
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _080F9DD8
- .align 2, 0
-_080F9DB0: .4byte 0x00000266
-_080F9DB4:
- bl sub_806E334
- b _080F9DD0
-_080F9DBA:
- bl sub_806E0C4
- ldr r1, _080F9DC8 @ =0x0201b000
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _080F9DD8
- .align 2, 0
-_080F9DC8: .4byte 0x0201b000
-_080F9DCC:
- bl sub_80F9E1C
-_080F9DD0:
- ldr r1, _080F9DE0 @ =0x0201b000
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_080F9DD8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _080F9E12
- .align 2, 0
-_080F9DE0: .4byte 0x0201b000
-_080F9DE4:
- ldr r0, _080F9E08 @ =0x00000266
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080F9E0C
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _080F9E14
- .align 2, 0
-_080F9E08: .4byte 0x00000266
-_080F9E0C:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9E12:
- movs r0, 0
-_080F9E14:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80F9CE8
-
- thumb_func_start sub_80F9E1C
-sub_80F9E1C: @ 80F9E1C
- push {r4,lr}
- movs r4, 0
- b _080F9E52
-_080F9E22:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080F9E40 @ =gPlayerParty
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- cmp r0, 0
- bne _080F9E44
- adds r0, r4, 0
- movs r1, 0x9A
- bl sub_806BC3C
- b _080F9E4C
- .align 2, 0
-_080F9E40: .4byte gPlayerParty
-_080F9E44:
- adds r0, r4, 0
- movs r1, 0x8C
- bl sub_806BC3C
-_080F9E4C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080F9E52:
- ldr r0, _080F9E60 @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _080F9E22
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9E60: .4byte gPlayerPartyCount
- thumb_func_end sub_80F9E1C
-
- thumb_func_start sub_80F9E64
-sub_80F9E64: @ 80F9E64
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080F9E8C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080F9EE2
- adds r0, r6, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080F9E90
- cmp r0, 0x2
- beq _080F9ED0
- b _080F9EE2
- .align 2, 0
-_080F9E8C: .4byte gPaletteFade
-_080F9E90:
- movs r0, 0x5
- bl PlaySE
- ldr r4, _080F9EC4 @ =gUnknown_0202E8CC
- adds r0, r6, 0
- bl sub_806CA38
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r5, _080F9EC8 @ =gUnknown_0202E8CE
- ldrh r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9ECC @ =gPlayerParty
- adds r0, r1
- bl sub_8040574
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- adds r0, r6, 0
- bl sub_8123138
- b _080F9EE2
- .align 2, 0
-_080F9EC4: .4byte gUnknown_0202E8CC
-_080F9EC8: .4byte gUnknown_0202E8CE
-_080F9ECC: .4byte gPlayerParty
-_080F9ED0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080F9EE8 @ =gUnknown_0202E8CC
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_8123138
-_080F9EE2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9EE8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_80F9E64
-
- thumb_func_start sub_80F9EEC
-sub_80F9EEC: @ 80F9EEC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080F9F20 @ =gPlayerParty
- ldr r1, _080F9F24 @ =gUnknown_0202E8CC
- ldrb r1, [r1]
- ldr r2, _080F9F28 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch
- movs r4, 0
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, _080F9F30 @ =0x02018000
- movs r0, 0x3
- strb r0, [r1, 0x8]
- ldr r1, _080F9F34 @ =gUnknown_0300485C
- ldr r0, _080F9F38 @ =sub_8080990
- str r0, [r1]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F20: .4byte gPlayerParty
-_080F9F24: .4byte gUnknown_0202E8CC
-_080F9F28: .4byte gPlayerPartyCount
-_080F9F2C: .4byte c2_exit_to_overworld_2_switch
-_080F9F30: .4byte 0x02018000
-_080F9F34: .4byte gUnknown_0300485C
-_080F9F38: .4byte sub_8080990
- thumb_func_end sub_80F9EEC
-
- thumb_func_start sub_80F9F3C
-sub_80F9F3C: @ 80F9F3C
- push {r4,r5,lr}
- ldr r1, _080F9F78 @ =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r5, r1, 0
-_080F9F48:
- ldr r0, _080F9F7C @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080F9F80 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0xD
- bl GetMonData
- cmp r0, 0
- beq _080F9F66
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_080F9F66:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _080F9F48
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9F78: .4byte gScriptResult
-_080F9F7C: .4byte gUnknown_0202E8CC
-_080F9F80: .4byte gPlayerParty
- thumb_func_end sub_80F9F3C
-
- thumb_func_start sub_80F9F84
-sub_80F9F84: @ 80F9F84
- push {r4,r5,lr}
- ldr r0, _080F9FC4 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _080F9FC8 @ =gPlayerParty
- adds r5, r0
- ldr r0, _080F9FCC @ =gUnknown_0202E8CE
- ldrh r1, [r0]
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, _080F9FD0 @ =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, _080F9FD4 @ =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, _080F9FD8 @ =gMoveNames
- adds r1, r2
- bl StringCopy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F9FC4: .4byte gUnknown_0202E8CC
-_080F9FC8: .4byte gPlayerParty
-_080F9FCC: .4byte gUnknown_0202E8CE
-_080F9FD0: .4byte gStringVar1
-_080F9FD4: .4byte gStringVar2
-_080F9FD8: .4byte gMoveNames
- thumb_func_end sub_80F9F84
-
- thumb_func_start sub_80F9FDC
-sub_80F9FDC: @ 80F9FDC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r0, 0xD
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r3, r4, 0
- adds r3, 0xD
- str r3, [sp, 0xC]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r7, r5, 0
- adds r7, 0x11
- str r7, [sp, 0x10]
- mov r0, r8
- adds r1, r7, 0
- bl GetMonData
- mov r1, sp
- adds r1, 0x5
- str r1, [sp, 0x18]
- strb r0, [r1]
- adds r3, r4, 0
- adds r3, 0x11
- str r3, [sp, 0x1C]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- add r7, sp, 0x4
- mov r10, r7
- strb r0, [r7]
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- mov r6, sp
- adds r6, 0x6
- strb r0, [r6]
- ldr r1, _080FA0D8 @ =gUnknown_08208238
- adds r0, r5, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r6]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- lsls r5, 1
- asrs r2, r5
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r4, 1
- asrs r1, r4
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r6]
- ldrb r0, [r6]
- bics r0, r3
- strb r0, [r6]
- lsls r2, r4
- lsls r1, r5
- adds r2, r1
- ldrb r0, [r6]
- orrs r0, r2
- strb r0, [r6]
- mov r0, r8
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- mov r0, r8
- movs r1, 0x15
- adds r2, r6, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA0D8: .4byte gUnknown_08208238
- thumb_func_end sub_80F9FDC
-
- thumb_func_start sub_80FA0DC
-sub_80FA0DC: @ 80FA0DC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _080FA13C @ =gUnknown_0202E8CC
- mov r8, r0
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _080FA140 @ =gPlayerParty
- adds r0, r5
- ldr r4, _080FA144 @ =gUnknown_0202E8CE
- ldrb r2, [r4]
- movs r1, 0
- bl SetMonMoveSlot
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r6
- adds r0, r5
- ldrb r1, [r4]
- bl RemoveMonPPBonus
- ldrh r4, [r4]
- cmp r4, 0x2
- bhi _080FA130
-_080FA10E:
- ldr r0, _080FA13C @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA140 @ =gPlayerParty
- adds r0, r1
- lsls r1, r4, 24
- lsrs r1, 24
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_80F9FDC
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x2
- bls _080FA10E
-_080FA130:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA13C: .4byte gUnknown_0202E8CC
-_080FA140: .4byte gPlayerParty
-_080FA144: .4byte gUnknown_0202E8CE
- thumb_func_end sub_80FA0DC
-
- thumb_func_start sub_80FA148
-sub_80FA148: @ 80FA148
- push {r4,lr}
- ldr r0, _080FA170 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080FA174 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080FA178 @ =gScriptResult
- movs r1, 0
- strh r1, [r4]
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _080FA16A
- movs r0, 0x1
- strh r0, [r4]
-_080FA16A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA170: .4byte gUnknown_0202E8CC
-_080FA174: .4byte gPlayerParty
-_080FA178: .4byte gScriptResult
- thumb_func_end sub_80FA148
-
- thumb_func_start sub_80FA17C
-sub_80FA17C: @ 80FA17C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- ldr r7, _080FA1B4 @ =gSaveBlock1
- ldr r0, _080FA1B8 @ =0x00002dd4
- adds r0, r7
- mov r9, r0
- movs r1, 0x1
- mov r8, r1
-_080FA192:
- movs r0, 0xA
- bl sub_80EB72C
- lsls r4, r6, 3
- adds r5, r4, r7
- ldr r2, _080FA1BC @ =0x00002dd8
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- mov r1, r8
- ands r1, r0
- cmp r1, 0
- beq _080FA1C0
- movs r0, 0xC
- b _080FA1C2
- .align 2, 0
-_080FA1B4: .4byte gSaveBlock1
-_080FA1B8: .4byte 0x00002dd4
-_080FA1BC: .4byte 0x00002dd8
-_080FA1C0:
- movs r0, 0xD
-_080FA1C2:
- bl sub_80EB72C
- ldr r2, _080FA214 @ =0x00002dda
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- adds r3, r4, r7
- mov r2, r8
- ands r2, r0
- ldr r5, _080FA218 @ =0x00002dd5
- adds r3, r5
- lsls r2, 6
- ldrb r0, [r3]
- movs r5, 0x41
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- mov r1, r9
- adds r0, r4, r1
- bl sub_80FA740
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA192
- ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA214: .4byte 0x00002dda
-_080FA218: .4byte 0x00002dd5
-_080FA21C: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA17C
-
- thumb_func_start sub_80FA220
-sub_80FA220: @ 80FA220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FA236
- b _080FA34E
-_080FA236:
- lsls r0, r1, 2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- mov r10, r0
- movs r1, 0x7F
- mov r9, r1
- movs r2, 0x80
- negs r2, r2
- mov r8, r2
-_080FA24A:
- ldr r2, [sp]
- mov r4, r10
- lsls r0, r4, 3
- ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4
- adds r5, r0, r1
- ldrb r6, [r5, 0x1]
- movs r0, 0x40
- ands r0, r6
- cmp r0, 0
- bne _080FA2A0
- ldrb r4, [r5]
- lsls r3, r4, 25
- lsrs r1, r3, 25
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bcc _080FA290
- adds r0, r1, 0
- subs r0, r2
- mov r2, r9
- ands r0, r2
- mov r1, r8
- ands r1, r4
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x7F
- ands r1, r0
- cmp r1, 0
- bne _080FA336
- movs r0, 0x40
- orrs r0, r6
- b _080FA334
- .align 2, 0
-_080FA28C: .4byte gSaveBlock1 + 0x2DD4
-_080FA290:
- lsrs r0, r3, 25
- subs r2, r0
- mov r0, r8
- ands r0, r4
- strb r0, [r5]
- movs r0, 0x40
- orrs r0, r6
- strb r0, [r5, 0x1]
-_080FA2A0:
- ldrb r7, [r5]
- lsls r0, r7, 25
- lsrs r0, 25
- adds r4, r0, r2
- ldrh r0, [r5]
- lsls r6, r0, 18
- lsls r0, r4, 16
- lsrs r0, 16
- lsrs r1, r6, 25
- cmp r0, r1
- bls _080FA310
- adds r0, r4, 0
- bl __umodsi3
- adds r3, r0, 0
- lsrs r1, r6, 25
- adds r0, r4, 0
- str r3, [sp, 0x4]
- bl __udivsi3
- adds r4, r0, 0
- movs r0, 0x1
- eors r4, r0
- ands r4, r0
- lsls r2, r4, 6
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x1]
- movs r1, 0x40
- ands r0, r1
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080FA2FA
- adds r1, r3, 0
- mov r0, r9
- ands r1, r0
- mov r0, r8
- ands r0, r7
- orrs r0, r1
- strb r0, [r5]
- b _080FA336
-_080FA2FA:
- ldrh r0, [r5]
- lsls r0, 18
- lsrs r0, 25
- subs r0, r3
- mov r1, r9
- ands r0, r1
- mov r1, r8
- ands r1, r7
- orrs r1, r0
- strb r1, [r5]
- b _080FA336
-_080FA310:
- mov r2, r9
- ands r4, r2
- mov r0, r8
- ands r0, r7
- orrs r0, r4
- strb r0, [r5]
- lsls r0, 25
- ldrh r1, [r5]
- lsls r1, 18
- lsrs r0, 25
- lsrs r1, 25
- cmp r0, r1
- bne _080FA336
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
-_080FA334:
- strb r0, [r5, 0x1]
-_080FA336:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- cmp r0, 0x4
- bls _080FA24A
- ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
-_080FA34E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA360: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA220
-
- thumb_func_start sub_80FA364
-sub_80FA364: @ 80FA364
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl sub_80FA7C8
- lsls r0, 24
- cmp r0, 0
- bne _080FA462
- ldr r5, _080FA3B4 @ =0x00000833
- adds r0, r5, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- adds r0, r5, 0
- bl FlagSet
- ldr r0, _080FA3B8 @ =0x00000834
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- ldr r1, _080FA3BC @ =gSaveBlock1
- ldrh r2, [r4]
- ldr r3, _080FA3C0 @ =0x00002dd8
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, 0x2]
- ldr r2, _080FA3C4 @ =0x00002dda
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA3B4: .4byte 0x00000833
-_080FA3B8: .4byte 0x00000834
-_080FA3BC: .4byte gSaveBlock1
-_080FA3C0: .4byte 0x00002dd8
-_080FA3C4: .4byte 0x00002dda
-_080FA3C8:
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- ldrh r0, [r4]
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r1, 0x80
- lsls r1, 7
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- mov r0, sp
- bl sub_80FA740
- movs r6, 0
-_080FA3E4:
- lsls r4, r6, 3
- ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4
- adds r1, r4, r5
- mov r0, sp
- movs r2, 0
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- adds r7, r4, 0
- cmp r0, 0
- beq _080FA450
- movs r3, 0x4
- ldr r0, _080FA448 @ =0xffffd22c
- adds r0, r5
- mov r12, r0
- cmp r3, r6
- bls _080FA428
- mov r5, r12
- ldr r4, _080FA44C @ =0x00002dd4
-_080FA40A:
- lsls r2, r3, 3
- adds r2, r5
- adds r2, r4
- subs r3, 0x1
- lsls r0, r3, 3
- adds r0, r5
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsls r3, 16
- lsrs r3, 16
- cmp r3, r6
- bhi _080FA40A
-_080FA428:
- mov r3, r12
- adds r2, r7, r3
- ldr r0, _080FA44C @ =0x00002dd4
- adds r2, r0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0
- cmp r6, 0
- bne _080FA464
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA444: .4byte gSaveBlock1 + 0x2DD4
-_080FA448: .4byte 0xffffd22c
-_080FA44C: .4byte 0x00002dd4
-_080FA450:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA3E4
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r5, 0x20]
- str r1, [r5, 0x24]
-_080FA462:
- movs r0, 0
-_080FA464:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA364
-
- thumb_func_start sub_80FA46C
-sub_80FA46C: @ 80FA46C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r2, 0
- cmp r2, r7
- bcs _080FA4D4
-_080FA488:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, r7
- bcs _080FA4CA
- lsls r0, r2, 3
- mov r1, r9
- adds r6, r1, r0
-_080FA49A:
- lsls r0, r5, 3
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r10
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- cmp r0, 0
- beq _080FA4C0
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r2, [r6]
- str r3, [r6, 0x4]
-_080FA4C0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- bcc _080FA49A
-_080FA4CA:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080FA488
-_080FA4D4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FA46C
-
- thumb_func_start sub_80FA4E4
-sub_80FA4E4: @ 80FA4E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r4, 0
- cmp r4, r8
- bcs _080FA520
-_080FA500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080FA554 @ =0x02007800
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- adds r1, r6, r1
- movs r2, 0x28
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA500
-_080FA520:
- ldr r5, _080FA554 @ =0x02007800
- movs r0, 0x80
- lsls r0, 1
- adds r3, r5, r0
- movs r7, 0
- movs r4, 0
- cmp r4, r8
- bcs _080FA588
-_080FA530:
- movs r6, 0
-_080FA532:
- adds r0, r5, 0
- adds r1, r7, 0
- str r3, [sp]
- bl sub_80FA828
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp]
- cmp r0, 0
- bge _080FA558
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r3!, {r0,r1}
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080FA572
- .align 2, 0
-_080FA554: .4byte 0x02007800
-_080FA558:
- lsls r1, r0, 3
- ldr r0, _080FA5B4 @ =0x02007900
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r1, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bcs _080FA572
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
-_080FA572:
- adds r5, 0x8
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA532
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA530
-_080FA588:
- ldr r4, _080FA5B4 @ =0x02007900
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x2
- bl sub_80FA46C
- adds r5, r4, 0
- ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4
- movs r4, 0
-_080FA59A:
- ldm r5!, {r0,r1}
- stm r3!, {r0,r1}
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA59A
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5B4: .4byte 0x02007900
-_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA4E4
-
- thumb_func_start sub_80FA5BC
-sub_80FA5BC: @ 80FA5BC
- push {lr}
- ldr r0, _080FA5D8 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r1, 3
- ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4
- adds r1, r0
- ldr r0, _080FA5E0 @ =gStringVar1
- adds r1, 0x4
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5D8: .4byte gUnknown_0202E8CC
-_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
-_080FA5E0: .4byte gStringVar1
- thumb_func_end sub_80FA5BC
-
- thumb_func_start sub_80FA5E4
-sub_80FA5E4: @ 80FA5E4
- push {r4,lr}
- movs r4, 0
- ldr r3, _080FA630 @ =gSaveBlock1
- ldr r1, _080FA634 @ =0x00002dd4
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 25
- lsrs r1, 25
- ldr r2, _080FA638 @ =0x00002ddc
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 25
- subs r1, r0
- cmp r1, 0x1
- bgt _080FA626
- ldr r1, _080FA63C @ =0x00002dd5
- adds r0, r3, r1
- ldrb r1, [r0]
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FA626
- ldr r1, _080FA640 @ =0x00002ddd
- adds r0, r3, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r4, r0, 31
-_080FA626:
- ldr r0, _080FA644 @ =gScriptResult
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA630: .4byte gSaveBlock1
-_080FA634: .4byte 0x00002dd4
-_080FA638: .4byte 0x00002ddc
-_080FA63C: .4byte 0x00002dd5
-_080FA640: .4byte 0x00002ddd
-_080FA644: .4byte gScriptResult
- thumb_func_end sub_80FA5E4
-
- thumb_func_start sub_80FA648
-sub_80FA648: @ 80FA648
- ldr r2, _080FA664 @ =gScriptResult
- ldr r0, _080FA668 @ =gSaveBlock1
- ldr r3, _080FA66C @ =0x00002dd8
- adds r1, r0, r3
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080FA664: .4byte gScriptResult
-_080FA668: .4byte gSaveBlock1
-_080FA66C: .4byte 0x00002dd8
- thumb_func_end sub_80FA648
-
- thumb_func_start atk90_changetypestoenemyattacktype
-atk90_changetypestoenemyattacktype: @ 80FA670
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r2, 0
- cmp r2, 0x1
- beq _080FA6B6
- cmp r2, 0x1
- bgt _080FA68A
- cmp r2, 0
- beq _080FA690
- b _080FA732
-_080FA68A:
- cmp r0, 0x2
- beq _080FA6E2
- b _080FA732
-_080FA690:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r3, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- b _080FA6DA
-_080FA6B6:
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
-_080FA6DA:
- cmp r1, r0
- bcs _080FA732
-_080FA6DE:
- movs r0, 0
- b _080FA73A
-_080FA6E2:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x2]
- ldrh r0, [r5, 0x2]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x4]
- ldrh r0, [r5, 0x4]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x6]
- ldrh r0, [r5, 0x6]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
-_080FA72E:
- movs r0, 0x1
- b _080FA73A
-_080FA732:
- bl Random
- movs r1, 0x1
- ands r0, r1
-_080FA73A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end atk90_changetypestoenemyattacktype
-
- thumb_func_start sub_80FA740
-sub_80FA740: @ 80FA740
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x32
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x50
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_080FA782:
- adds r1, r4, 0
- adds r1, 0x1E
- movs r0, 0x7F
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5]
- ldr r0, _080FA7C4 @ =0xffffc07f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0x1
- bl __modsi3
- adds r0, 0x1E
- movs r1, 0x7F
- ands r0, r1
- ldrb r2, [r5]
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- bl Random
- strh r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA7C4: .4byte 0xffffc07f
- thumb_func_end sub_80FA740
-
- thumb_func_start sub_80FA7C8
-sub_80FA7C8: @ 80FA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080FA7CE:
- lsls r1, r4, 3
- ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8
- adds r1, r0
- adds r0, r5, 0
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA7E8
- movs r0, 0x1
- b _080FA7F4
- .align 2, 0
-_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
-_080FA7E8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA7CE
- movs r0, 0
-_080FA7F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7C8
-
- thumb_func_start sub_80FA7FC
-sub_80FA7FC: @ 80FA7FC
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- movs r4, 0
-_080FA804:
- ldrh r1, [r3]
- ldrh r0, [r2]
- adds r2, 0x2
- adds r3, 0x2
- cmp r1, r0
- beq _080FA814
- movs r0, 0
- b _080FA820
-_080FA814:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080FA804
- movs r0, 0x1
-_080FA820:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7FC
-
- thumb_func_start sub_80FA828
-sub_80FA828: @ 80FA828
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r6, _080FA84C @ =0x02007900
- movs r4, 0
- cmp r4, r5
- bge _080FA862
-_080FA838:
- adds r1, r6, 0x4
- adds r0, r7, 0x4
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA850
- lsls r0, r4, 16
- asrs r0, 16
- b _080FA866
- .align 2, 0
-_080FA84C: .4byte 0x02007900
-_080FA850:
- adds r6, 0x8
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _080FA838
-_080FA862:
- movs r0, 0x1
- negs r0, r0
-_080FA866:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA828
-
- thumb_func_start sub_80FA86C
-sub_80FA86C: @ 80FA86C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r2, _080FA890 @ =gUnknown_083E5A20
-_080FA87A:
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _080FA894
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r0, r1
- bne _080FA894
- adds r0, r3, 0x1
- b _080FA89E
- .align 2, 0
-_080FA890: .4byte gUnknown_083E5A20
-_080FA894:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x15
- bls _080FA87A
- movs r0, 0
-_080FA89E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA86C
-
- thumb_func_start unref_sub_80FA8A4
-unref_sub_80FA8A4: @ 80FA8A4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl sub_80FA86C
- cmp r0, 0
- beq _080FA8C4
- lsls r0, 3
- ldr r1, _080FA8C0 @ =gUnknown_083E5A18
- adds r0, r1
- b _080FA8C6
- .align 2, 0
-_080FA8C0: .4byte gUnknown_083E5A18
-_080FA8C4:
- movs r0, 0
-_080FA8C6:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80FA8A4
-
- thumb_func_start sub_80FA8CC
-sub_80FA8CC: @ 80FA8CC
- push {lr}
- cmp r0, 0
- beq _080FA8E4
- cmp r0, 0x16
- bhi _080FA8E4
- lsls r0, 3
- ldr r1, _080FA8E0 @ =gUnknown_083E5A18
- adds r0, r1
- b _080FA8E6
- .align 2, 0
-_080FA8E0: .4byte gUnknown_083E5A18
-_080FA8E4:
- movs r0, 0
-_080FA8E6:
- pop {r1}
- bx r1
- thumb_func_end sub_80FA8CC
-
- thumb_func_start sub_80FA8EC
-sub_80FA8EC: @ 80FA8EC
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl sub_80FA904
-_080FA8F6:
- bl sub_80FA940
- lsls r0, 24
- cmp r0, 0
- bne _080FA8F6
- pop {r0}
- bx r0
- thumb_func_end sub_80FA8EC
-
- thumb_func_start sub_80FA904
-sub_80FA904: @ 80FA904
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _080FA928 @ =gUnknown_020388CC
- str r0, [r3]
- movs r2, 0x79
- adds r2, r0
- mov r12, r2
- movs r2, 0
- mov r4, r12
- strb r2, [r4]
- adds r0, 0x78
- strb r1, [r0]
- ldr r3, [r3]
- cmp r1, 0
- bne _080FA930
- ldr r0, _080FA92C @ =sub_80FAB78
- b _080FA932
- .align 2, 0
-_080FA928: .4byte gUnknown_020388CC
-_080FA92C: .4byte sub_80FAB78
-_080FA930:
- ldr r0, _080FA93C @ =sub_80FAD04
-_080FA932:
- str r0, [r3, 0x18]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA93C: .4byte sub_80FAD04
- thumb_func_end sub_80FA904
-
- thumb_func_start sub_80FA940
-sub_80FA940: @ 80FA940
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _080FA95C @ =gUnknown_020388CC
- ldr r0, [r0]
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _080FA952
- b _080FAAE2
-_080FA952:
- lsls r0, 2
- ldr r1, _080FA960 @ =_080FA964
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FA95C: .4byte gUnknown_020388CC
-_080FA960: .4byte _080FA964
- .align 2, 0
-_080FA964:
- .4byte _080FA984
- .4byte _080FA998
- .4byte _080FA9AC
- .4byte _080FA9BC
- .4byte _080FA9D8
- .4byte _080FA9F4
- .4byte _080FAA38
- .4byte _080FAAB4
-_080FA984:
- ldr r0, _080FA990 @ =gUnknown_083E5DA0
- ldr r1, _080FA994 @ =0x06008000
- bl LZ77UnCompVram
- b _080FAAF4
- .align 2, 0
-_080FA990: .4byte gUnknown_083E5DA0
-_080FA994: .4byte 0x06008000
-_080FA998:
- ldr r0, _080FA9A4 @ =gUnknown_083E6B04
- ldr r1, _080FA9A8 @ =0x0600e000
- bl LZ77UnCompVram
- b _080FAAF4
- .align 2, 0
-_080FA9A4: .4byte gUnknown_083E6B04
-_080FA9A8: .4byte 0x0600e000
-_080FA9AC:
- ldr r0, _080FA9B8 @ =gUnknown_083E5D60
- movs r1, 0x70
- movs r2, 0x60
- bl LoadPalette
- b _080FAAF4
- .align 2, 0
-_080FA9B8: .4byte gUnknown_083E5D60
-_080FA9BC:
- ldr r0, _080FA9D0 @ =gUnknown_083E5AF0
- ldr r1, _080FA9D4 @ =gUnknown_020388CC
- ldr r1, [r1]
- movs r2, 0xC0
- lsls r2, 1
- adds r1, r2
- bl LZ77UnCompWram
- b _080FAAF4
- .align 2, 0
-_080FA9D0: .4byte gUnknown_083E5AF0
-_080FA9D4: .4byte gUnknown_020388CC
-_080FA9D8:
- ldr r0, _080FA9EC @ =gUnknown_083E5B34
- ldr r1, _080FA9F0 @ =gUnknown_020388CC
- ldr r1, [r1]
- movs r3, 0xA0
- lsls r3, 2
- adds r1, r3
- bl LZ77UnCompWram
- b _080FAAF4
- .align 2, 0
-_080FA9EC: .4byte gUnknown_083E5B34
-_080FA9F0: .4byte gUnknown_020388CC
-_080FA9F4:
- bl sub_80FB32C
- ldr r4, _080FAA34 @ =gUnknown_020388CC
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x54
- ldrh r1, [r0]
- adds r0, 0x20
- strh r1, [r0]
- subs r0, 0x1E
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x76
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- bl sub_80FB758
- ldr r1, [r4]
- strb r0, [r1, 0x16]
- ldr r0, [r4]
- ldrh r0, [r0, 0x14]
- bl sub_80FB9C0
- adds r1, r0, 0
- ldr r0, [r4]
- strh r1, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
- b _080FAAF4
- .align 2, 0
-_080FAA34: .4byte gUnknown_020388CC
-_080FAA38:
- ldr r0, _080FAA60 @ =gUnknown_020388CC
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x78
- ldrb r1, [r0]
- cmp r1, 0
- bne _080FAA64
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80FB170
- b _080FAAF4
- .align 2, 0
-_080FAA60: .4byte gUnknown_020388CC
-_080FAA64:
- adds r1, r4, 0
- adds r1, 0x54
- ldrh r0, [r1]
- lsls r0, 3
- subs r0, 0x34
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0
- strh r0, [r2]
- movs r5, 0x56
- adds r5, r4
- mov r12, r5
- ldrh r0, [r5]
- lsls r0, 3
- subs r0, 0x44
- adds r5, r4, 0
- adds r5, 0x5E
- strh r0, [r5]
- ldrh r1, [r1]
- adds r0, r4, 0
- adds r0, 0x64
- strh r1, [r0]
- mov r0, r12
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x66
- strh r1, [r0]
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x80
- str r2, [sp]
- str r2, [sp, 0x4]
- str r3, [sp, 0x8]
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- b _080FAAF4
-_080FAAB4:
- bl sub_80FBA18
- bl sub_80FB260
- ldr r2, _080FAAE8 @ =gUnknown_020388CC
- ldr r0, [r2]
- movs r1, 0
- str r1, [r0, 0x1C]
- str r1, [r0, 0x20]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x7E
- strb r1, [r0]
- ldr r1, _080FAAEC @ =REG_BG2CNT
- ldr r3, _080FAAF0 @ =0x0000bc8a
- adds r0, r3, 0
- strh r0, [r1]
- ldr r1, [r2]
- adds r1, 0x79
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080FAAE2:
- movs r0, 0
- b _080FAB02
- .align 2, 0
-_080FAAE8: .4byte gUnknown_020388CC
-_080FAAEC: .4byte REG_BG2CNT
-_080FAAF0: .4byte 0x0000bc8a
-_080FAAF4:
- ldr r0, _080FAB0C @ =gUnknown_020388CC
- ldr r1, [r0]
- adds r1, 0x79
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
-_080FAB02:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAB0C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FA940
-
- thumb_func_start sub_80FAB10
-sub_80FAB10: @ 80FAB10
- push {r4,lr}
- ldr r4, _080FAB5C @ =gUnknown_020388CC
- ldr r0, [r4]
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080FAB34
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x58
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x5A
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FAB34:
- ldr r0, [r4]
- ldr r0, [r0, 0x20]
- cmp r0, 0
- beq _080FAB54
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x70
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x72
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FAB54:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FAB5C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAB10
-
- thumb_func_start sub_80FAB60
-sub_80FAB60: @ 80FAB60
- push {lr}
- ldr r0, _080FAB74 @ =gUnknown_020388CC
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080FAB74: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAB60
-
- thumb_func_start sub_80FAB78
-sub_80FAB78: @ 80FAB78
- push {r4,lr}
- movs r4, 0
- ldr r2, _080FAC14 @ =gUnknown_020388CC
- ldr r0, [r2]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r2]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r3, _080FAC18 @ =gMain
- ldrh r1, [r3, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FABAA
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- cmp r0, 0x2
- bls _080FABAA
- adds r1, 0x7C
- movs r0, 0xFF
- strb r0, [r1]
- movs r4, 0x1
-_080FABAA:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FABC8
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x56
- ldrh r0, [r0]
- cmp r0, 0xF
- bhi _080FABC8
- adds r1, 0x7C
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0x1
-_080FABC8:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FABE6
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _080FABE6
- adds r1, 0x7B
- movs r0, 0xFF
- strb r0, [r1]
- movs r4, 0x1
-_080FABE6:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080FAC04
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- cmp r0, 0x1B
- bhi _080FAC04
- adds r1, 0x7B
- movs r0, 0x1
- strb r0, [r1]
- movs r4, 0x1
-_080FAC04:
- ldrh r3, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _080FAC1C
- movs r4, 0x4
- b _080FAC26
- .align 2, 0
-_080FAC14: .4byte gUnknown_020388CC
-_080FAC18: .4byte gMain
-_080FAC1C:
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _080FAC26
- movs r4, 0x5
-_080FAC26:
- cmp r4, 0x1
- bne _080FAC38
- ldr r0, [r2]
- adds r0, 0x7A
- movs r1, 0x4
- strb r1, [r0]
- ldr r1, [r2]
- ldr r0, _080FAC40 @ =_swiopen
- str r0, [r1, 0x18]
-_080FAC38:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAC40: .4byte _swiopen
- thumb_func_end sub_80FAB78
-
- thumb_func_start _swiopen
-_swiopen: @ 80FAC44
- push {r4,r5,lr}
- ldr r5, _080FAC5C @ =gUnknown_020388CC
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7A
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FAC60
- movs r0, 0x2
- b _080FACFA
- .align 2, 0
-_080FAC5C: .4byte gUnknown_020388CC
-_080FAC60:
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080FAC76
- adds r1, 0x54
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080FAC76:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080FAC8E
- adds r1, 0x54
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080FAC8E:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080FACA6
- adds r1, 0x56
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_080FACA6:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _080FACBE
- adds r1, 0x56
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_080FACBE:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- adds r1, 0x56
- ldrh r1, [r1]
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80FB758
- ldr r1, [r5]
- strb r0, [r1, 0x16]
- ldr r0, [r5]
- ldrh r1, [r0, 0x14]
- cmp r4, r1
- beq _080FACEE
- strh r4, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
-_080FACEE:
- bl sub_80FBA18
- ldr r1, [r5]
- ldr r0, _080FAD00 @ =sub_80FAB78
- str r0, [r1, 0x18]
- movs r0, 0x3
-_080FACFA:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FAD00: .4byte sub_80FAB78
- thumb_func_end _swiopen
-
- thumb_func_start sub_80FAD04
-sub_80FAD04: @ 80FAD04
- push {r4-r6,lr}
- movs r4, 0
- ldr r3, _080FADD4 @ =gUnknown_020388CC
- ldr r0, [r3]
- mov r12, r0
- adds r0, 0x6A
- strh r4, [r0]
- mov r5, r12
- adds r5, 0x68
- strh r4, [r5]
- ldr r2, _080FADD8 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0
- beq _080FAD3E
- mov r0, r12
- adds r0, 0x5E
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x34
- negs r0, r0
- cmp r1, r0
- ble _080FAD3E
- ldr r0, _080FADDC @ =0x0000ffff
- strh r0, [r5]
- movs r4, 0x1
-_080FAD3E:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FAD5E
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x5E
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, 0x3B
- bgt _080FAD5E
- adds r1, 0x68
- movs r0, 0x1
- strh r0, [r1]
- movs r4, 0x1
-_080FAD5E:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080FAD84
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x5C
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r0, 0x2C
- negs r0, r0
- cmp r1, r0
- ble _080FAD84
- adds r1, r2, 0
- adds r1, 0x6A
- ldr r0, _080FADDC @ =0x0000ffff
- strh r0, [r1]
- movs r4, 0x1
-_080FAD84:
- ldrh r1, [r3, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080FADA4
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x5C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0xAB
- bgt _080FADA4
- adds r1, 0x6A
- movs r0, 0x1
- strh r0, [r1]
- movs r4, 0x1
-_080FADA4:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080FADB0
- movs r4, 0x4
-_080FADB0:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080FADBA
- movs r4, 0x5
-_080FADBA:
- cmp r4, 0x1
- bne _080FADCA
- ldr r0, [r6]
- ldr r1, _080FADE0 @ =sub_80FADE4
- str r1, [r0, 0x18]
- adds r0, 0x6C
- movs r1, 0
- strh r1, [r0]
-_080FADCA:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080FADD4: .4byte gUnknown_020388CC
-_080FADD8: .4byte gMain
-_080FADDC: .4byte 0x0000ffff
-_080FADE0: .4byte sub_80FADE4
- thumb_func_end sub_80FAD04
-
- thumb_func_start sub_80FADE4
-sub_80FADE4: @ 80FADE4
- push {r4,r5,lr}
- ldr r5, _080FAEB4 @ =gUnknown_020388CC
- ldr r2, [r5]
- adds r3, r2, 0
- adds r3, 0x5E
- adds r0, r2, 0
- adds r0, 0x68
- ldrh r0, [r0]
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x5C
- adds r0, r2, 0
- adds r0, 0x6A
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- movs r4, 0
- ldrsh r0, [r1, r4]
- movs r2, 0
- ldrsh r1, [r3, r2]
- bl sub_80FB238
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x6C
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bne _080FAEBC
- adds r0, r2, 0
- adds r0, 0x5C
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r0, r1, 0
- adds r0, 0x2C
- cmp r0, 0
- bge _080FAE3C
- adds r0, 0x7
-_080FAE3C:
- asrs r0, 3
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r2, 0
- adds r0, 0x5E
- movs r4, 0
- ldrsh r1, [r0, r4]
- adds r0, r1, 0
- adds r0, 0x34
- cmp r0, 0
- bge _080FAE56
- adds r0, 0x7
-_080FAE56:
- asrs r0, 3
- adds r0, 0x2
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, r2, 0
- adds r4, 0x64
- adds r0, r2, 0
- adds r0, 0x66
- ldrh r2, [r4]
- cmp r3, r2
- bne _080FAE72
- ldrh r2, [r0]
- cmp r1, r2
- beq _080FAEA0
-_080FAE72:
- strh r3, [r4]
- strh r1, [r0]
- adds r0, r3, 0
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_80FB758
- ldr r1, [r5]
- strb r0, [r1, 0x16]
- ldr r0, [r5]
- ldrh r3, [r0, 0x14]
- cmp r4, r3
- beq _080FAE9C
- strh r4, [r0, 0x14]
- ldrh r1, [r0, 0x14]
- movs r2, 0x10
- bl sub_80FBFB4
-_080FAE9C:
- bl sub_80FBA18
-_080FAEA0:
- ldr r0, _080FAEB4 @ =gUnknown_020388CC
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x6C
- movs r0, 0
- strh r0, [r1]
- ldr r0, _080FAEB8 @ =sub_80FAD04
- str r0, [r2, 0x18]
- movs r0, 0x3
- b _080FAEBE
- .align 2, 0
-_080FAEB4: .4byte gUnknown_020388CC
-_080FAEB8: .4byte sub_80FAD04
-_080FAEBC:
- movs r0, 0x2
-_080FAEBE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FADE4
-
- thumb_func_start sub_80FAEC4
-sub_80FAEC4: @ 80FAEC4
- push {r4-r6,lr}
- ldr r1, _080FAF40 @ =gUnknown_020388CC
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r3, [r0]
- adds r5, r1, 0
- cmp r3, 0
- bne _080FAF48
- subs r0, 0x1A
- strh r3, [r0]
- subs r0, 0x2
- strh r3, [r0]
- str r3, [r2, 0x40]
- str r3, [r2, 0x3C]
- adds r4, r2, 0
- adds r4, 0x54
- ldrh r0, [r4]
- lsls r0, 3
- subs r0, 0x34
- adds r1, r2, 0
- adds r1, 0x60
- strh r0, [r1]
- movs r0, 0x56
- adds r0, r2
- mov r12, r0
- ldrh r0, [r0]
- lsls r0, 3
- subs r0, 0x44
- adds r3, r2, 0
- adds r3, 0x62
- strh r0, [r3]
- movs r6, 0
- ldrsh r0, [r1, r6]
- lsls r0, 8
- cmp r0, 0
- bge _080FAF10
- adds r0, 0xF
-_080FAF10:
- asrs r0, 4
- str r0, [r2, 0x44]
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 8
- cmp r0, 0
- bge _080FAF20
- adds r0, 0xF
-_080FAF20:
- asrs r0, 4
- str r0, [r2, 0x48]
- ldrh r1, [r4]
- adds r0, r2, 0
- adds r0, 0x64
- strh r1, [r0]
- mov r3, r12
- ldrh r0, [r3]
- adds r1, r2, 0
- adds r1, 0x66
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 9
- str r0, [r2, 0x4C]
- ldr r0, _080FAF44 @ =0xfffff800
- b _080FAFA6
- .align 2, 0
-_080FAF40: .4byte gUnknown_020388CC
-_080FAF44: .4byte 0xfffff800
-_080FAF48:
- adds r0, r2, 0
- adds r0, 0x5C
- movs r6, 0
- ldrsh r0, [r0, r6]
- lsls r0, 8
- str r0, [r2, 0x3C]
- adds r0, r2, 0
- adds r0, 0x5E
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r0, 8
- str r0, [r2, 0x40]
- adds r0, r2, 0
- adds r0, 0x60
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, [r2, 0x3C]
- cmp r0, 0
- bge _080FAF74
- adds r0, 0xF
-_080FAF74:
- asrs r0, 4
- negs r0, r0
- str r0, [r2, 0x44]
- ldr r0, [r2, 0x40]
- cmp r0, 0
- bge _080FAF82
- adds r0, 0xF
-_080FAF82:
- asrs r0, 4
- negs r0, r0
- str r0, [r2, 0x48]
- adds r0, r2, 0
- adds r0, 0x64
- ldrh r1, [r0]
- subs r0, 0x10
- strh r1, [r0]
- adds r0, 0x12
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x56
- strh r0, [r1]
- movs r0, 0x80
- lsls r0, 8
- str r0, [r2, 0x4C]
- movs r0, 0x80
- lsls r0, 4
-_080FAFA6:
- str r0, [r2, 0x50]
- ldr r0, [r5]
- adds r0, 0x6E
- movs r1, 0
- strh r1, [r0]
- bl sub_80FBCA0
- bl sub_80FBDF8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80FAEC4
-
- thumb_func_start sub_80FAFC0
-sub_80FAFC0: @ 80FAFC0
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, _080FAFD8 @ =gUnknown_020388CC
- ldr r3, [r0]
- adds r2, r3, 0
- adds r2, 0x6E
- ldrh r1, [r2]
- adds r5, r0, 0
- cmp r1, 0xF
- bls _080FAFDC
- movs r0, 0
- b _080FB164
- .align 2, 0
-_080FAFD8: .4byte gUnknown_020388CC
-_080FAFDC:
- adds r0, r1, 0x1
- movs r1, 0
- strh r0, [r2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bne _080FB050
- str r1, [r3, 0x44]
- str r1, [r3, 0x48]
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r1, [r0]
- subs r0, 0x4
- strh r1, [r0]
- adds r0, 0x6
- ldrh r0, [r0]
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- adds r1, 0x1A
- ldrb r0, [r1]
- movs r2, 0x80
- lsls r2, 9
- cmp r0, 0
- bne _080FB012
- movs r2, 0x80
- lsls r2, 8
-_080FB012:
- str r2, [r3, 0x4C]
- movs r2, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080FB01E
- movs r2, 0x1
-_080FB01E:
- strb r2, [r1]
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x78
- ldrb r0, [r0]
- ldr r2, _080FB048 @ =sub_80FAD04
- cmp r0, 0
- bne _080FB030
- ldr r2, _080FB04C @ =sub_80FAB78
-_080FB030:
- str r2, [r1, 0x18]
- adds r0, r1, 0
- adds r0, 0x58
- ldrh r0, [r0]
- adds r1, 0x5A
- ldrh r1, [r1]
- bl sub_80FBB3C
- bl sub_80FBE24
- movs r4, 0
- b _080FB132
- .align 2, 0
-_080FB048: .4byte sub_80FAD04
-_080FB04C: .4byte sub_80FAB78
-_080FB050:
- ldr r2, [r3, 0x3C]
- ldr r0, [r3, 0x44]
- adds r2, r0
- str r2, [r3, 0x3C]
- ldr r0, [r3, 0x40]
- ldr r1, [r3, 0x48]
- adds r0, r1
- str r0, [r3, 0x40]
- asrs r2, 8
- adds r4, r3, 0
- adds r4, 0x5C
- strh r2, [r4]
- ldr r0, [r3, 0x40]
- asrs r0, 8
- adds r1, r3, 0
- adds r1, 0x5E
- strh r0, [r1]
- ldr r0, [r3, 0x4C]
- ldr r1, [r3, 0x50]
- adds r0, r1
- str r0, [r3, 0x4C]
- ldr r2, [r3, 0x44]
- cmp r2, 0
- bge _080FB090
- adds r0, r3, 0
- adds r0, 0x60
- movs r6, 0
- ldrsh r1, [r4, r6]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- blt _080FB0A4
-_080FB090:
- cmp r2, 0
- ble _080FB0B4
- adds r0, r3, 0
- adds r0, 0x60
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- ble _080FB0B4
-_080FB0A4:
- ldr r3, [r5]
- adds r0, r3, 0
- adds r0, 0x60
- ldrh r2, [r0]
- subs r0, 0x4
- movs r1, 0
- strh r2, [r0]
- str r1, [r3, 0x44]
-_080FB0B4:
- ldr r2, [r5]
- ldr r4, [r2, 0x48]
- cmp r4, 0
- bge _080FB0D0
- adds r0, r2, 0
- adds r0, 0x5E
- adds r3, r2, 0
- adds r3, 0x62
- movs r6, 0
- ldrsh r1, [r0, r6]
- movs r6, 0
- ldrsh r0, [r3, r6]
- cmp r1, r0
- blt _080FB0E8
-_080FB0D0:
- cmp r4, 0
- ble _080FB0FA
- adds r1, r2, 0
- adds r1, 0x5E
- adds r0, r2, 0
- adds r0, 0x62
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- ble _080FB0FA
-_080FB0E8:
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x62
- ldrh r1, [r0]
- adds r3, r2, 0
- adds r3, 0x5E
- movs r0, 0
- strh r1, [r3]
- str r0, [r2, 0x48]
-_080FB0FA:
- ldr r0, _080FB118 @ =gUnknown_020388CC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r3, [r0]
- cmp r3, 0
- bne _080FB120
- ldr r1, [r2, 0x4C]
- ldr r0, _080FB11C @ =0x00007fff
- cmp r1, r0
- bgt _080FB130
- adds r0, 0x1
- str r0, [r2, 0x4C]
- str r3, [r2, 0x50]
- b _080FB130
- .align 2, 0
-_080FB118: .4byte gUnknown_020388CC
-_080FB11C: .4byte 0x00007fff
-_080FB120:
- ldr r0, [r2, 0x4C]
- movs r1, 0x80
- lsls r1, 9
- cmp r0, r1
- ble _080FB130
- str r1, [r2, 0x4C]
- movs r0, 0
- str r0, [r2, 0x50]
-_080FB130:
- movs r4, 0x1
-_080FB132:
- ldr r0, _080FB16C @ =gUnknown_020388CC
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5C
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r1, r3, 0
- adds r1, 0x5E
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, [r3, 0x4C]
- lsls r2, 8
- lsrs r2, 16
- str r2, [sp]
- ldr r2, [r3, 0x4C]
- lsls r2, 8
- lsrs r2, 16
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- adds r0, r4, 0
-_080FB164:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080FB16C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FAFC0
-
- thumb_func_start sub_80FB170
-sub_80FB170: @ 80FB170
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r7, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r4, 16
- lsrs r4, 16
- mov r8, r4
- lsls r7, 16
- adds r4, r7, 0
- lsrs r4, 16
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _080FB230 @ =gUnknown_020388CC
- ldr r6, [r4]
- ldr r7, _080FB234 @ =gSineTable
- mov r12, r7
- adds r4, r5, 0
- adds r4, 0x40
- lsls r4, 1
- add r4, r12
- movs r7, 0
- ldrsh r4, [r4, r7]
- str r4, [sp]
- mov r7, r8
- muls r7, r4
- adds r4, r7, 0
- asrs r4, 8
- mov r10, r4
- str r4, [r6, 0x2C]
- lsls r5, 1
- add r5, r12
- movs r7, 0
- ldrsh r5, [r5, r7]
- negs r4, r5
- mov r7, r8
- muls r7, r4
- adds r4, r7, 0
- asrs r4, 8
- mov r12, r4
- str r4, [r6, 0x30]
- mov r7, r9
- muls r7, r5
- adds r5, r7, 0
- asrs r5, 8
- str r5, [r6, 0x34]
- ldr r7, [sp]
- mov r4, r9
- muls r4, r7
- asrs r4, 8
- mov r8, r4
- str r4, [r6, 0x38]
- lsls r0, 16
- asrs r0, 8
- lsls r2, 16
- asrs r2, 16
- lsls r4, r2, 8
- adds r0, r4
- lsls r3, 16
- asrs r3, 16
- adds r4, r3, 0
- muls r4, r5
- mov r5, r10
- muls r5, r2
- adds r4, r5
- subs r0, r4
- str r0, [r6, 0x24]
- lsls r1, 16
- asrs r1, 8
- lsls r0, r3, 8
- adds r1, r0
- mov r0, r8
- muls r0, r3
- mov r3, r12
- muls r3, r2
- adds r2, r3, 0
- adds r0, r2
- subs r1, r0
- str r1, [r6, 0x28]
- adds r6, 0x7D
- movs r0, 0x1
- strb r0, [r6]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB230: .4byte gUnknown_020388CC
-_080FB234: .4byte gSineTable
- thumb_func_end sub_80FB170
-
- thumb_func_start sub_80FB238
-sub_80FB238: @ 80FB238
- ldr r2, _080FB25C @ =gUnknown_020388CC
- ldr r2, [r2]
- lsls r0, 16
- asrs r0, 8
- movs r3, 0xE0
- lsls r3, 5
- adds r0, r3
- str r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 8
- movs r0, 0x90
- lsls r0, 6
- adds r1, r0
- str r1, [r2, 0x28]
- adds r2, 0x7D
- movs r0, 0x1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080FB25C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FB238
-
- thumb_func_start sub_80FB260
-sub_80FB260: @ 80FB260
- push {lr}
- ldr r0, _080FB29C @ =gUnknown_020388CC
- ldr r2, [r0]
- adds r3, r2, 0
- adds r3, 0x7D
- ldrb r0, [r3]
- cmp r0, 0
- beq _080FB298
- ldr r1, _080FB2A0 @ =REG_BG2PA
- ldr r0, [r2, 0x2C]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x34]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x30]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x38]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r2, 0x24]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r2, 0x28]
- str r0, [r1]
- movs r0, 0
- strb r0, [r3]
-_080FB298:
- pop {r0}
- bx r0
- .align 2, 0
-_080FB29C: .4byte gUnknown_020388CC
-_080FB2A0: .4byte REG_BG2PA
- thumb_func_end sub_80FB260
-
- thumb_func_start sub_80FB2A4
-sub_80FB2A4: @ 80FB2A4
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x38
- movs r3, 0x48
- bl sub_80FB170
- bl sub_80FB260
- ldr r0, _080FB2E8 @ =gUnknown_020388CC
- ldr r2, [r0]
- ldr r1, [r2, 0x20]
- cmp r1, 0
- beq _080FB2E0
- negs r0, r4
- strh r0, [r1, 0x24]
- ldr r1, [r2, 0x20]
- negs r0, r5
- strh r0, [r1, 0x26]
-_080FB2E0:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB2E8: .4byte gUnknown_020388CC
- thumb_func_end sub_80FB2A4
-
- thumb_func_start sub_80FB2EC
-sub_80FB2EC: @ 80FB2EC
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- ldr r0, _080FB30C @ =0xfffe0000
- adds r1, r0
- lsrs r2, r1, 16
- cmp r2, 0xE
- bhi _080FB306
- cmp r3, 0
- beq _080FB306
- cmp r3, 0x1C
- bls _080FB310
-_080FB306:
- movs r0, 0x58
- b _080FB324
- .align 2, 0
-_080FB30C: .4byte 0xfffe0000
-_080FB310:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _080FB328 @ =gRegionMapSections
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3, r0
- adds r0, r1
- ldrb r0, [r0]
-_080FB324:
- pop {r1}
- bx r1
- .align 2, 0
-_080FB328: .4byte gRegionMapSections
- thumb_func_end sub_80FB2EC
-
- thumb_func_start sub_80FB32C
-sub_80FB32C: @ 80FB32C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080FB358 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- adds r2, r0, 0
- cmp r1, 0x19
- bne _080FB35C
- ldrb r0, [r2, 0x5]
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _080FB35C
- bl sub_80FB600
- b _080FB5E8
- .align 2, 0
-_080FB358: .4byte gSaveBlock1
-_080FB35C:
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- movs r1, 0x5
- ldrsb r1, [r2, r1]
- bl get_map_light_level_by_bank_and_number
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x8
- bhi _080FB3A4
- lsls r0, 2
- ldr r1, _080FB37C @ =_080FB380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB37C: .4byte _080FB380
- .align 2, 0
-_080FB380:
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3E0
- .4byte _080FB3A4
- .4byte _080FB3A4
- .4byte _080FB3E0
- .4byte _080FB464
- .4byte _080FB428
-_080FB3A4:
- ldr r4, _080FB3D4 @ =gUnknown_020388CC
- ldr r0, [r4]
- ldr r3, _080FB3D8 @ =gMapHeader
- ldrb r1, [r3, 0x14]
- movs r2, 0
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- strb r2, [r0]
- ldr r0, [r3]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldr r0, _080FB3DC @ =gSaveBlock1
- ldrh r6, [r0]
- ldrh r3, [r0, 0x2]
- ldr r1, [r4]
- ldrh r0, [r1, 0x14]
- cmp r0, 0x45
- beq _080FB3CC
- b _080FB4CC
-_080FB3CC:
- adds r1, 0x7F
- movs r0, 0x1
- strb r0, [r1]
- b _080FB4CC
- .align 2, 0
-_080FB3D4: .4byte gUnknown_020388CC
-_080FB3D8: .4byte gMapHeader
-_080FB3DC: .4byte gSaveBlock1
-_080FB3E0:
- ldr r4, _080FB420 @ =gSaveBlock1
- adds r0, r4, 0
- adds r0, 0x24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r1, 0x25
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r0, _080FB424 @ =gUnknown_020388CC
- ldr r0, [r0]
- ldrb r1, [r2, 0x14]
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x28]
- ldrh r3, [r4, 0x2A]
- b _080FB4CC
- .align 2, 0
-_080FB420: .4byte gSaveBlock1
-_080FB424: .4byte gUnknown_020388CC
-_080FB428:
- ldr r4, _080FB45C @ =gSaveBlock1
- movs r0, 0x14
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x15
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r0, _080FB460 @ =gUnknown_020388CC
- ldr r0, [r0]
- ldrb r1, [r2, 0x14]
- strh r1, [r0, 0x14]
- adds r0, 0x7F
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x18]
- ldrh r3, [r4, 0x1A]
- b _080FB4CC
- .align 2, 0
-_080FB45C: .4byte gSaveBlock1
-_080FB460: .4byte gUnknown_020388CC
-_080FB464:
- ldr r5, _080FB48C @ =gUnknown_020388CC
- ldr r0, [r5]
- ldr r1, _080FB490 @ =gMapHeader
- ldrb r1, [r1, 0x14]
- strh r1, [r0, 0x14]
- cmp r1, 0x57
- beq _080FB498
- ldr r4, _080FB494 @ =gSaveBlock1 + 0x24
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- b _080FB4B6
- .align 2, 0
-_080FB48C: .4byte gUnknown_020388CC
-_080FB490: .4byte gMapHeader
-_080FB494: .4byte gSaveBlock1 + 0x24
-_080FB498:
- ldr r4, _080FB548 @ =gSaveBlock1 + 0x14
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r2, r0, 0
- ldr r1, [r5]
- ldrb r0, [r2, 0x14]
- strh r0, [r1, 0x14]
-_080FB4B6:
- ldr r0, _080FB54C @ =gUnknown_020388CC
- ldr r0, [r0]
- adds r0, 0x7F
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldrh r2, [r0]
- ldrh r0, [r0, 0x4]
- mov r8, r0
- ldrh r6, [r4, 0x4]
- ldrh r3, [r4, 0x6]
-_080FB4CC:
- mov r9, r6
- ldr r4, _080FB54C @ =gUnknown_020388CC
- ldr r0, [r4]
- ldrh r5, [r0, 0x14]
- lsls r0, r5, 3
- ldr r1, _080FB550 @ =gRegionMapLocations
- adds r0, r1
- mov r10, r0
- ldrb r7, [r0, 0x2]
- adds r0, r2, 0
- adds r1, r7, 0
- str r3, [sp]
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r3, [sp]
- cmp r1, 0
- bne _080FB4F4
- movs r1, 0x1
-_080FB4F4:
- adds r0, r6, 0
- str r3, [sp]
- bl __udivsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- cmp r6, r7
- bcc _080FB50C
- subs r0, r7, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB50C:
- mov r2, r10
- ldrb r4, [r2, 0x3]
- mov r0, r8
- adds r1, r4, 0
- str r3, [sp]
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r3, [sp]
- cmp r1, 0
- bne _080FB526
- movs r1, 0x1
-_080FB526:
- adds r0, r3, 0
- bl __udivsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _080FB53A
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
-_080FB53A:
- cmp r5, 0x24
- beq _080FB59C
- cmp r5, 0x24
- bgt _080FB554
- cmp r5, 0x1D
- beq _080FB55E
- b _080FB5BE
- .align 2, 0
-_080FB548: .4byte gSaveBlock1 + 0x14
-_080FB54C: .4byte gUnknown_020388CC
-_080FB550: .4byte gRegionMapLocations
-_080FB554:
- cmp r5, 0x29
- beq _080FB566
- cmp r5, 0x33
- beq _080FB566
- b _080FB5BE
-_080FB55E:
- cmp r3, 0
- beq _080FB5BE
- movs r6, 0
- b _080FB5BE
-_080FB566:
- movs r6, 0
- ldr r1, _080FB598 @ =gSaveBlock1
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _080FB574
- movs r6, 0x1
-_080FB574:
- cmp r0, 0x33
- ble _080FB57E
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB57E:
- movs r3, 0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, 0x25
- ble _080FB58A
- movs r3, 0x1
-_080FB58A:
- cmp r0, 0x38
- ble _080FB5BE
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- b _080FB5BE
- .align 2, 0
-_080FB598: .4byte gSaveBlock1
-_080FB59C:
- movs r6, 0
- mov r0, r9
- cmp r0, 0xE
- bls _080FB5A6
- movs r6, 0x1
-_080FB5A6:
- mov r1, r9
- cmp r1, 0x1C
- bls _080FB5B2
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB5B2:
- mov r2, r9
- cmp r2, 0x36
- bls _080FB5BE
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FB5BE:
- ldr r0, _080FB5F8 @ =gUnknown_020388CC
- ldr r2, [r0]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- ldr r1, _080FB5FC @ =gRegionMapLocations
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r6, r0
- adds r0, 0x1
- adds r1, r2, 0
- adds r1, 0x54
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- ldr r1, _080FB5FC @ =gRegionMapLocations
- adds r0, r1
- ldrb r0, [r0, 0x1]
- adds r0, r3, r0
- adds r0, 0x2
- adds r2, 0x56
- strh r0, [r2]
-_080FB5E8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB5F8: .4byte gUnknown_020388CC
-_080FB5FC: .4byte gRegionMapLocations
- thumb_func_end sub_80FB32C
-
- thumb_func_start sub_80FB600
-sub_80FB600: @ 80FB600
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r7, 0
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x1
- mov r5, sp
- adds r5, 0x2
- add r6, sp, 0x4
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_810D9EC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r5
- cmp r0, 0x4
- bhi _080FB694
- lsls r0, 2
- ldr r1, _080FB63C @ =_080FB640
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB63C: .4byte _080FB640
- .align 2, 0
-_080FB640:
- .4byte _080FB694
- .4byte _080FB654
- .4byte _080FB664
- .4byte _080FB674
- .4byte _080FB684
-_080FB654:
- ldr r2, _080FB660 @ =gUnknown_020388CC
- ldr r1, [r2]
- movs r0, 0x8
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB660: .4byte gUnknown_020388CC
-_080FB664:
- ldr r2, _080FB670 @ =gUnknown_020388CC
- ldr r1, [r2]
- movs r0, 0xC
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB670: .4byte gUnknown_020388CC
-_080FB674:
- ldr r2, _080FB680 @ =gUnknown_020388CC
- ldr r1, [r2]
- movs r0, 0x27
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB680: .4byte gUnknown_020388CC
-_080FB684:
- ldr r2, _080FB690 @ =gUnknown_020388CC
- ldr r1, [r2]
- movs r0, 0x2E
- strh r0, [r1, 0x14]
- b _080FB710
- .align 2, 0
-_080FB690: .4byte gUnknown_020388CC
-_080FB694:
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r4]
- bl get_mapheader_by_bank_and_number
- ldr r1, _080FB750 @ =gUnknown_020388CC
- mov r9, r1
- ldr r2, [r1]
- ldrb r1, [r0, 0x14]
- strh r1, [r2, 0x14]
- ldr r6, [r0]
- ldr r1, _080FB754 @ =gRegionMapLocations
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r5, r0, r1
- ldrb r4, [r5, 0x2]
- ldr r0, [r6]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FB6C6
- movs r1, 0x1
-_080FB6C6:
- mov r2, r10
- movs r3, 0
- ldrsh r0, [r2, r3]
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r8, r4
- bcc _080FB6E2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_080FB6E2:
- ldrb r4, [r5, 0x3]
- ldr r0, [r6, 0x4]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FB6F6
- movs r1, 0x1
-_080FB6F6:
- mov r2, sp
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r2, r9
- cmp r7, r4
- bcc _080FB710
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
-_080FB710:
- ldr r0, [r2]
- adds r0, 0x7F
- movs r1, 0
- strb r1, [r0]
- ldr r2, [r2]
- ldr r3, _080FB754 @ =gRegionMapLocations
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0]
- add r0, r8
- adds r0, 0x1
- adds r1, r2, 0
- adds r1, 0x54
- strh r0, [r1]
- ldrh r0, [r2, 0x14]
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0, 0x1]
- adds r0, r7, r0
- adds r0, 0x2
- adds r2, 0x56
- strh r0, [r2]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FB750: .4byte gUnknown_020388CC
-_080FB754: .4byte gRegionMapLocations
- thumb_func_end sub_80FB600
-
- thumb_func_start sub_80FB758
-sub_80FB758: @ 80FB758
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x58
- bls _080FB764
- b _080FB9A0
-_080FB764:
- lsls r0, 2
- ldr r1, _080FB770 @ =_080FB774
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FB770: .4byte _080FB774
- .align 2, 0
-_080FB774:
- .4byte _080FB8DC
- .4byte _080FB8E4
- .4byte _080FB8EA
- .4byte _080FB8F4
- .4byte _080FB8FC
- .4byte _080FB904
- .4byte _080FB90C
- .4byte _080FB914
- .4byte _080FB91C
- .4byte _080FB924
- .4byte _080FB92C
- .4byte _080FB934
- .4byte _080FB93C
- .4byte _080FB944
- .4byte _080FB94C
- .4byte _080FB954
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB96C
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB988
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB9A0
- .4byte _080FB8D8
-_080FB8D8:
- movs r0, 0
- b _080FB9A2
-_080FB8DC:
- ldr r0, _080FB8E0 @ =0x0000080f
- b _080FB956
- .align 2, 0
-_080FB8E0: .4byte 0x0000080f
-_080FB8E4:
- movs r0, 0x81
- lsls r0, 4
- b _080FB956
-_080FB8EA:
- ldr r0, _080FB8F0 @ =0x00000811
- b _080FB956
- .align 2, 0
-_080FB8F0: .4byte 0x00000811
-_080FB8F4:
- ldr r0, _080FB8F8 @ =0x00000812
- b _080FB956
- .align 2, 0
-_080FB8F8: .4byte 0x00000812
-_080FB8FC:
- ldr r0, _080FB900 @ =0x00000813
- b _080FB956
- .align 2, 0
-_080FB900: .4byte 0x00000813
-_080FB904:
- ldr r0, _080FB908 @ =0x00000814
- b _080FB956
- .align 2, 0
-_080FB908: .4byte 0x00000814
-_080FB90C:
- ldr r0, _080FB910 @ =0x00000815
- b _080FB956
- .align 2, 0
-_080FB910: .4byte 0x00000815
-_080FB914:
- ldr r0, _080FB918 @ =0x00000816
- b _080FB956
- .align 2, 0
-_080FB918: .4byte 0x00000816
-_080FB91C:
- ldr r0, _080FB920 @ =0x00000817
- b _080FB956
- .align 2, 0
-_080FB920: .4byte 0x00000817
-_080FB924:
- ldr r0, _080FB928 @ =0x00000818
- b _080FB956
- .align 2, 0
-_080FB928: .4byte 0x00000818
-_080FB92C:
- ldr r0, _080FB930 @ =0x00000819
- b _080FB956
- .align 2, 0
-_080FB930: .4byte 0x00000819
-_080FB934:
- ldr r0, _080FB938 @ =0x0000081a
- b _080FB956
- .align 2, 0
-_080FB938: .4byte 0x0000081a
-_080FB93C:
- ldr r0, _080FB940 @ =0x0000081b
- b _080FB956
- .align 2, 0
-_080FB940: .4byte 0x0000081b
-_080FB944:
- ldr r0, _080FB948 @ =0x0000081c
- b _080FB956
- .align 2, 0
-_080FB948: .4byte 0x0000081c
-_080FB94C:
- ldr r0, _080FB950 @ =0x0000081d
- b _080FB956
- .align 2, 0
-_080FB950: .4byte 0x0000081d
-_080FB954:
- ldr r0, _080FB968 @ =0x0000081e
-_080FB956:
- bl FlagGet
- lsls r0, 24
- movs r1, 0x3
- cmp r0, 0
- beq _080FB964
- movs r1, 0x2
-_080FB964:
- adds r0, r1, 0
- b _080FB9A2
- .align 2, 0
-_080FB968: .4byte 0x0000081e
-_080FB96C:
- ldr r0, _080FB984 @ =0x00000848
- bl FlagGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- negs r0, r1
- orrs r0, r1
- asrs r0, 31
- movs r1, 0x4
- ands r0, r1
- b _080FB9A2
- .align 2, 0
-_080FB984: .4byte 0x00000848
-_080FB988:
- ldr r0, _080FB99C @ =0x00000849
- bl FlagGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- b _080FB9A2
- .align 2, 0
-_080FB99C: .4byte 0x00000849
-_080FB9A0:
- movs r0, 0x1
-_080FB9A2:
- pop {r1}
- bx r1
- thumb_func_end sub_80FB758
-
- thumb_func_start sub_80FB9A8
-sub_80FB9A8: @ 80FB9A8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl sub_80FB2EC
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FB9A8
-
- thumb_func_start sub_80FB9C0
-sub_80FB9C0: @ 80FB9C0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, _080FB9E8 @ =gUnknown_083E7684
- ldrh r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x58
- beq _080FB9FC
- adds r5, r4, 0
- adds r6, r4, 0x2
-_080FB9D6:
- lsls r1, r2, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, r3
- bne _080FB9EC
- adds r0, r1, r6
- ldrh r0, [r0]
- b _080FB9FE
- .align 2, 0
-_080FB9E8: .4byte gUnknown_083E7684
-_080FB9EC:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 2
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _080FB9D6
-_080FB9FC:
- adds r0, r3, 0
-_080FB9FE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FB9C0
-
- thumb_func_start sub_80FBA04
-sub_80FBA04: @ 80FBA04
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_80FB9C0
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FBA04
-
- thumb_func_start sub_80FBA18
-sub_80FBA18: @ 80FBA18
- push {r4-r6,lr}
- ldr r0, _080FBA2C @ =gUnknown_020388CC
- ldr r1, [r0]
- ldrh r0, [r1, 0x14]
- cmp r0, 0x58
- bne _080FBA30
- movs r0, 0
- strb r0, [r1, 0x17]
- b _080FBA96
- .align 2, 0
-_080FBA2C: .4byte gUnknown_020388CC
-_080FBA30:
- adds r0, r1, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FBA40
- adds r0, r1, 0
- adds r0, 0x54
- b _080FBA44
-_080FBA40:
- adds r0, r1, 0
- adds r0, 0x64
-_080FBA44:
- ldrh r4, [r0]
- adds r0, 0x2
- ldrh r5, [r0]
- movs r6, 0
- b _080FBA70
-_080FBA4E:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FB2EC
- ldr r1, _080FBA8C @ =gUnknown_020388CC
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x14]
- cmp r0, r1
- bne _080FBA70
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_080FBA70:
- cmp r4, 0x1
- bhi _080FBA4E
- adds r0, r5, 0
- bl sub_80FBAA0
- lsls r0, 24
- cmp r0, 0
- beq _080FBA90
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0x1D
- b _080FBA70
- .align 2, 0
-_080FBA8C: .4byte gUnknown_020388CC
-_080FBA90:
- ldr r0, _080FBA9C @ =gUnknown_020388CC
- ldr r0, [r0]
- strb r6, [r0, 0x17]
-_080FBA96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBA9C: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBA18
-
- thumb_func_start sub_80FBAA0
-sub_80FBAA0: @ 80FBAA0
- push {r4,r5,lr}
- lsls r0, 16
- ldr r1, _080FBAB4 @ =0xffff0000
- adds r0, r1
- lsrs r5, r0, 16
- ldr r0, _080FBAB8 @ =0x0000ffff
- cmp r5, r0
- bne _080FBAC0
- b _080FBAE2
- .align 2, 0
-_080FBAB4: .4byte 0xffff0000
-_080FBAB8: .4byte 0x0000ffff
-_080FBABC:
- movs r0, 0x1
- b _080FBAE4
-_080FBAC0:
- movs r4, 0x1
-_080FBAC2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FB2EC
- ldr r1, _080FBAEC @ =gUnknown_020388CC
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1, 0x14]
- cmp r0, r1
- beq _080FBABC
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1C
- bls _080FBAC2
-_080FBAE2:
- movs r0, 0
-_080FBAE4:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080FBAEC: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBAA0
-
- thumb_func_start sub_80FBAF0
-sub_80FBAF0: @ 80FBAF0
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, _080FBB34 @ =gUnknown_020388CC
- ldr r1, [r0]
- adds r3, r1, 0
- adds r3, 0x7A
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r0, 0
- beq _080FBB2E
- adds r0, r1, 0
- adds r0, 0x7B
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r4, [r2, 0x20]
- adds r0, r4
- strh r0, [r2, 0x20]
- adds r0, r1, 0
- adds r0, 0x7C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r1, [r2, 0x22]
- adds r0, r1
- strh r0, [r2, 0x22]
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
-_080FBB2E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBB34: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBAF0
-
- thumb_func_start nullsub_66
-nullsub_66: @ 80FBB38
- bx lr
- thumb_func_end nullsub_66
-
- thumb_func_start sub_80FBB3C
-sub_80FBB3C: @ 80FBB3C
- push {r4-r7,lr}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _080FBBAC @ =gUnknown_083E76E8
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [sp, 0x20]
- str r2, [sp, 0x24]
- mov r2, sp
- ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- lsrs r3, r0, 16
- add r2, sp, 0x18
- ldrh r1, [r2, 0x4]
- orrs r1, r0
- str r1, [r2, 0x4]
- mov r0, sp
- strh r3, [r0]
- ldr r0, _080FBBB4 @ =gUnknown_020388CC
- ldr r4, [r0]
- adds r0, r4, 0
- adds r0, 0x58
- strh r3, [r0]
- ldr r5, _080FBBB8 @ =0xffff0000
- add r1, sp, 0x20
- ldr r0, [r1, 0x4]
- ands r0, r5
- orrs r0, r6
- str r0, [r1, 0x4]
- mov r0, sp
- strh r6, [r0, 0x2]
- adds r3, r4, 0
- adds r0, r3, 0
- adds r0, 0x5A
- strh r6, [r0]
- adds r0, 0x1E
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- bne _080FBBC0
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r3, r1
- str r0, [sp, 0x18]
- ldr r0, [r2, 0x4]
- ands r0, r5
- subs r1, 0x80
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r0, _080FBBBC @ =sub_80FBAF0
- b _080FBBD6
- .align 2, 0
-_080FBBAC: .4byte gUnknown_083E76E8
-_080FBBB0: .4byte gSpriteTemplate_83E76F0
-_080FBBB4: .4byte gUnknown_020388CC
-_080FBBB8: .4byte 0xffff0000
-_080FBBBC: .4byte sub_80FBAF0
-_080FBBC0:
- movs r3, 0xA0
- lsls r3, 2
- adds r0, r4, r3
- str r0, [sp, 0x18]
- ldr r0, [r2, 0x4]
- ands r0, r5
- movs r1, 0xC0
- lsls r1, 3
- orrs r0, r1
- str r0, [r2, 0x4]
- ldr r0, _080FBC38 @ =nullsub_66
-_080FBBD6:
- str r0, [sp, 0x14]
- adds r0, r2, 0
- bl LoadSpriteSheet
- adds r0, r7, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0x38
- movs r2, 0x48
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _080FBC90
- ldr r4, _080FBC3C @ =gUnknown_020388CC
- ldr r2, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080FBC40 @ =gSprites
- adds r3, r0, r1
- str r3, [r2, 0x1C]
- adds r2, 0x78
- ldrb r0, [r2]
- cmp r0, 0x1
- bne _080FBC44
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r3, 0x3]
- ldr r2, [r4]
- ldr r1, [r2, 0x1C]
- ldrh r0, [r1, 0x20]
- subs r0, 0x8
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x1C]
- ldrh r0, [r1, 0x22]
- subs r0, 0x8
- strh r0, [r1, 0x22]
- ldr r0, [r2, 0x1C]
- movs r1, 0x1
- bl StartSpriteAnim
- b _080FBC6C
- .align 2, 0
-_080FBC38: .4byte nullsub_66
-_080FBC3C: .4byte gUnknown_020388CC
-_080FBC40: .4byte gSprites
-_080FBC44:
- ldrb r1, [r3, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3, 0x3]
- ldr r1, [r4]
- ldr r2, [r1, 0x1C]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldr r2, [r1, 0x1C]
- adds r1, 0x56
- ldrh r0, [r1]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x22]
-_080FBC6C:
- ldr r4, _080FBC98 @ =gUnknown_020388CC
- ldr r0, [r4]
- ldr r1, [r0, 0x1C]
- movs r0, 0x2
- strh r0, [r1, 0x30]
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- ldr r1, [r4]
- ldr r2, [r1, 0x1C]
- lsls r0, 24
- lsrs r0, 20
- ldr r4, _080FBC9C @ =0x00000101
- adds r0, r4
- strh r0, [r2, 0x32]
- ldr r1, [r1, 0x1C]
- movs r0, 0x1
- strh r0, [r1, 0x34]
-_080FBC90:
- add sp, 0x28
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBC98: .4byte gUnknown_020388CC
-_080FBC9C: .4byte 0x00000101
- thumb_func_end sub_80FBB3C
-
- thumb_func_start sub_80FBCA0
-sub_80FBCA0: @ 80FBCA0
- push {r4,lr}
- ldr r4, _080FBCCC @ =gUnknown_020388CC
- ldr r0, [r4]
- ldr r0, [r0, 0x1C]
- cmp r0, 0
- beq _080FBCC4
- bl DestroySprite
- ldr r0, [r4]
- adds r0, 0x58
- ldrh r0, [r0]
- bl FreeSpriteTilesByTag
- ldr r0, [r4]
- adds r0, 0x5A
- ldrh r0, [r0]
- bl FreeSpritePaletteByTag
-_080FBCC4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBCCC: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBCA0
-
- thumb_func_start unref_sub_80FBCD0
-unref_sub_80FBCD0: @ 80FBCD0
- ldr r0, _080FBCDC @ =gUnknown_020388CC
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- movs r0, 0x1
- strh r0, [r1, 0x34]
- bx lr
- .align 2, 0
-_080FBCDC: .4byte gUnknown_020388CC
- thumb_func_end unref_sub_80FBCD0
-
- thumb_func_start unref_sub_80FBCE0
-unref_sub_80FBCE0: @ 80FBCE0
- ldr r0, _080FBCEC @ =gUnknown_020388CC
- ldr r0, [r0]
- ldr r1, [r0, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x34]
- bx lr
- .align 2, 0
-_080FBCEC: .4byte gUnknown_020388CC
- thumb_func_end unref_sub_80FBCE0
-
- thumb_func_start sub_80FBCF0
-sub_80FBCF0: @ 80FBCF0
- push {r4,r5,lr}
- sub sp, 0x28
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080FBD98 @ =gUnknown_083E5C40
- str r2, [sp, 0x18]
- movs r2, 0x80
- add r5, sp, 0x18
- lsrs r3, r0, 16
- orrs r0, r2
- str r0, [r5, 0x4]
- ldr r0, _080FBD9C @ =gUnknown_083E5C20
- str r0, [sp, 0x20]
- ldr r2, _080FBDA0 @ =0xffff0000
- add r4, sp, 0x20
- ldr r0, [r4, 0x4]
- ands r0, r2
- orrs r0, r1
- str r0, [r4, 0x4]
- mov r0, sp
- movs r2, 0
- strh r3, [r0]
- strh r1, [r0, 0x2]
- ldr r0, _080FBDA4 @ =gUnknown_083E7708
- str r0, [sp, 0x4]
- ldr r0, _080FBDA8 @ =gUnknown_083E7718
- str r0, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable
- str r0, [sp, 0x10]
- ldr r0, _080FBDB0 @ =SpriteCallbackDummy
- str r0, [sp, 0x14]
- ldr r0, _080FBDB4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _080FBD42
- ldr r0, _080FBDB8 @ =gUnknown_083E5CE0
- str r0, [sp, 0x18]
- ldr r0, _080FBDBC @ =gUnknown_083E5CC0
- str r0, [sp, 0x20]
-_080FBD42:
- adds r0, r5, 0
- bl LoadSpriteSheet
- adds r0, r4, 0
- bl LoadSpritePalette
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080FBDC0 @ =gUnknown_020388CC
- ldr r2, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _080FBDC4 @ =gSprites
- adds r1, r0
- str r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FBDCC
- adds r0, r2, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x22]
- ldr r1, [r2, 0x20]
- ldr r0, _080FBDC8 @ =sub_80FBF34
- b _080FBDEA
- .align 2, 0
-_080FBD98: .4byte gUnknown_083E5C40
-_080FBD9C: .4byte gUnknown_083E5C20
-_080FBDA0: .4byte 0xffff0000
-_080FBDA4: .4byte gUnknown_083E7708
-_080FBDA8: .4byte gUnknown_083E7718
-_080FBDAC: .4byte gDummySpriteAffineAnimTable
-_080FBDB0: .4byte SpriteCallbackDummy
-_080FBDB4: .4byte gSaveBlock2
-_080FBDB8: .4byte gUnknown_083E5CE0
-_080FBDBC: .4byte gUnknown_083E5CC0
-_080FBDC0: .4byte gUnknown_020388CC
-_080FBDC4: .4byte gSprites
-_080FBDC8: .4byte sub_80FBF34
-_080FBDCC:
- adds r0, r2, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x30
- strh r0, [r1, 0x20]
- ldr r1, [r2, 0x20]
- adds r0, r2, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x42
- strh r0, [r1, 0x22]
- ldr r1, [r2, 0x20]
- ldr r0, _080FBDF4 @ =sub_80FBEA4
-_080FBDEA:
- str r0, [r1, 0x1C]
- add sp, 0x28
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FBDF4: .4byte sub_80FBEA4
- thumb_func_end sub_80FBCF0
-
- thumb_func_start sub_80FBDF8
-sub_80FBDF8: @ 80FBDF8
- push {lr}
- ldr r3, _080FBE1C @ =gUnknown_020388CC
- ldr r0, [r3]
- ldr r2, [r0, 0x20]
- cmp r2, 0
- beq _080FBE16
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r3]
- ldr r1, [r0, 0x20]
- ldr r0, _080FBE20 @ =SpriteCallbackDummy
- str r0, [r1, 0x1C]
-_080FBE16:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBE1C: .4byte gUnknown_020388CC
-_080FBE20: .4byte SpriteCallbackDummy
- thumb_func_end sub_80FBDF8
-
- thumb_func_start sub_80FBE24
-sub_80FBE24: @ 80FBE24
- push {lr}
- ldr r0, _080FBE5C @ =gUnknown_020388CC
- ldr r3, [r0]
- ldr r1, [r3, 0x20]
- cmp r1, 0
- beq _080FBE9A
- adds r0, r3, 0
- adds r0, 0x78
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080FBE64
- adds r0, r3, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x30
- strh r0, [r1, 0x20]
- ldr r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 4
- subs r0, 0x42
- strh r0, [r1, 0x22]
- ldr r1, [r3, 0x20]
- ldr r0, _080FBE60 @ =sub_80FBEA4
- b _080FBE8C
- .align 2, 0
-_080FBE5C: .4byte gUnknown_020388CC
-_080FBE60: .4byte sub_80FBEA4
-_080FBE64:
- adds r0, r3, 0
- adds r0, 0x74
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- movs r2, 0
- strh r0, [r1, 0x20]
- ldr r1, [r3, 0x20]
- adds r0, r3, 0
- adds r0, 0x76
- ldrh r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x22]
- ldr r0, [r3, 0x20]
- strh r2, [r0, 0x24]
- ldr r0, [r3, 0x20]
- strh r2, [r0, 0x26]
- ldr r1, [r3, 0x20]
- ldr r0, _080FBEA0 @ =sub_80FBF34
-_080FBE8C:
- str r0, [r1, 0x1C]
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_080FBE9A:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBEA0: .4byte sub_80FBF34
- thumb_func_end sub_80FBE24
-
- thumb_func_start sub_80FBEA4
-sub_80FBEA4: @ 80FBEA4
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _080FBF08 @ =gUnknown_020388CC
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x5C
- movs r4, 0
- ldrsh r2, [r0, r4]
- lsls r2, 1
- negs r2, r2
- strh r2, [r3, 0x24]
- adds r1, 0x5E
- movs r4, 0
- ldrsh r0, [r1, r4]
- lsls r0, 1
- negs r0, r0
- strh r0, [r3, 0x26]
- ldrh r1, [r3, 0x22]
- adds r1, r0
- adds r0, r3, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x20]
- adds r1, r2
- adds r2, r3, 0
- adds r2, 0x28
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- adds r2, r1
- strh r2, [r3, 0x30]
- adds r0, 0x8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB0
- bhi _080FBF04
- lsls r0, r2, 16
- asrs r2, r0, 16
- movs r0, 0x8
- negs r0, r0
- cmp r2, r0
- blt _080FBF04
- cmp r2, 0xF8
- ble _080FBF0C
-_080FBF04:
- movs r0, 0
- b _080FBF0E
- .align 2, 0
-_080FBF08: .4byte gUnknown_020388CC
-_080FBF0C:
- movs r0, 0x1
-_080FBF0E:
- strh r0, [r3, 0x32]
- movs r1, 0x32
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _080FBF20
- adds r0, r3, 0
- bl sub_80FBF40
- b _080FBF2C
-_080FBF20:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080FBF2C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FBEA4
-
- thumb_func_start sub_80FBF34
-sub_80FBF34: @ 80FBF34
- push {lr}
- bl sub_80FBF40
- pop {r0}
- bx r0
- thumb_func_end sub_80FBF34
-
- thumb_func_start sub_80FBF40
-sub_80FBF40: @ 80FBF40
- push {lr}
- adds r2, r0, 0
- ldr r0, _080FBF80 @ =gUnknown_020388CC
- ldr r0, [r0]
- adds r0, 0x7E
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FBF84
- ldrh r0, [r2, 0x3C]
- adds r0, 0x1
- strh r0, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080FBF90
- movs r0, 0
- strh r0, [r2, 0x3C]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080FBF90
- .align 2, 0
-_080FBF80: .4byte gUnknown_020388CC
-_080FBF84:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080FBF90:
- pop {r0}
- bx r0
- thumb_func_end sub_80FBF40
-
- thumb_func_start sub_80FBF94
-sub_80FBF94: @ 80FBF94
- push {lr}
- ldr r0, _080FBFB0 @ =gUnknown_020388CC
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FBFAA
- adds r1, 0x7E
- movs r0, 0x1
- strb r0, [r1]
-_080FBFAA:
- pop {r0}
- bx r0
- .align 2, 0
-_080FBFB0: .4byte gUnknown_020388CC
- thumb_func_end sub_80FBF94
-
- thumb_func_start sub_80FBFB4
-sub_80FBFB4: @ 80FBFB4
- push {lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r1, 0x56
- bne _080FBFCA
- bl GetSecretBaseMapName
- b _080FBFF2
-_080FBFCA:
- cmp r1, 0x57
- bhi _080FBFE4
- ldr r0, _080FBFE0 @ =gRegionMapLocations
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r3, 0
- bl StringCopy
- b _080FBFF2
- .align 2, 0
-_080FBFE0: .4byte gRegionMapLocations
-_080FBFE4:
- cmp r2, 0
- bne _080FBFEA
- movs r2, 0x12
-_080FBFEA:
- adds r0, r3, 0
- movs r1, 0
- bl StringFill
-_080FBFF2:
- pop {r1}
- bx r1
- thumb_func_end sub_80FBFB4
-
- thumb_func_start sub_80FBFF8
-sub_80FBFF8: @ 80FBFF8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x56
- beq _080FC014
- cmp r1, 0x57
- bne _080FC020
- ldr r1, _080FC010 @ =gOtherText_Ferry
- bl StringCopy
- b _080FC026
- .align 2, 0
-_080FC010: .4byte gOtherText_Ferry
-_080FC014:
- ldr r1, _080FC01C @ =gOtherText_SecretBase
- bl StringCopy
- b _080FC026
- .align 2, 0
-_080FC01C: .4byte gOtherText_SecretBase
-_080FC020:
- movs r2, 0
- bl sub_80FBFB4
-_080FC026:
- pop {r1}
- bx r1
- thumb_func_end sub_80FBFF8
-
- thumb_func_start sub_80FC02C
-sub_80FC02C: @ 80FC02C
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x42
- beq _080FC03C
- bl sub_80FBFF8
- b _080FC042
-_080FC03C:
- ldr r1, _080FC048 @ =gOtherText_Hideout
- bl StringCopy
-_080FC042:
- pop {r1}
- bx r1
- .align 2, 0
-_080FC048: .4byte gOtherText_Hideout
- thumb_func_end sub_80FC02C
-
- thumb_func_start sub_80FC04C
-sub_80FC04C: @ 80FC04C
- push {r4,r5,lr}
- ldr r5, [sp, 0xC]
- lsls r0, 16
- ldr r4, _080FC070 @ =gRegionMapLocations
- lsrs r0, 13
- adds r0, r4
- ldrb r4, [r0]
- strh r4, [r1]
- ldrb r1, [r0, 0x1]
- strh r1, [r2]
- ldrb r1, [r0, 0x2]
- strh r1, [r3]
- ldrb r0, [r0, 0x3]
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC070: .4byte gRegionMapLocations
- thumb_func_end sub_80FC04C
-
- thumb_func_start sub_80FC074
-sub_80FC074: @ 80FC074
- push {r4,lr}
- ldr r0, _080FC090 @ =gMain
- ldr r1, _080FC094 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _080FC084
- b _080FC1F2
-_080FC084:
- lsls r0, 2
- ldr r1, _080FC098 @ =_080FC09C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC090: .4byte gMain
-_080FC094: .4byte 0x0000043c
-_080FC098: .4byte _080FC09C
- .align 2, 0
-_080FC09C:
- .4byte _080FC0C4
- .4byte _080FC104
- .4byte _080FC110
- .4byte _080FC120
- .4byte _080FC15C
- .4byte _080FC170
- .4byte _080FC184
- .4byte _080FC1A4
- .4byte _080FC1AA
- .4byte _080FC1C4
-_080FC0C4:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- b _080FC1E6
-_080FC104:
- ldr r0, _080FC10C @ =gWindowConfig_81E7224
- bl SetUpWindowConfig
- b _080FC1E6
- .align 2, 0
-_080FC10C: .4byte gWindowConfig_81E7224
-_080FC110:
- ldr r0, _080FC11C @ =gWindowConfig_81E7224
- bl InitMenuWindow
- bl MenuZeroFillScreen
- b _080FC1E6
- .align 2, 0
-_080FC11C: .4byte gWindowConfig_81E7224
-_080FC120:
- ldr r4, _080FC158 @ =0x02000008
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBB3C
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- adds r1, r4, 0
- subs r1, 0x8
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x6]
- movs r2, 0xA4
- lsls r2, 4
- adds r4, r2
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xC
- bl StringFill
- bl sub_80FC254
- b _080FC1E6
- .align 2, 0
-_080FC158: .4byte 0x02000008
-_080FC15C:
- ldr r0, _080FC168 @ =gUnknown_083E773C
- ldr r1, _080FC16C @ =0x0600c000
- bl LZ77UnCompVram
- b _080FC1E6
- .align 2, 0
-_080FC168: .4byte gUnknown_083E773C
-_080FC16C: .4byte 0x0600c000
-_080FC170:
- ldr r0, _080FC17C @ =gUnknown_083E7774
- ldr r1, _080FC180 @ =0x0600f000
- bl LZ77UnCompVram
- b _080FC1E6
- .align 2, 0
-_080FC17C: .4byte gUnknown_083E7774
-_080FC180: .4byte 0x0600f000
-_080FC184:
- ldr r0, _080FC19C @ =gUnknown_083E771C
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere
- movs r1, 0x1
- movs r2, 0x90
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- b _080FC1E6
- .align 2, 0
-_080FC19C: .4byte gUnknown_083E771C
-_080FC1A0: .4byte gOtherText_FlyToWhere
-_080FC1A4:
- bl sub_80FC31C
- b _080FC1E6
-_080FC1AA:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _080FC1C0 @ =sub_80FC214
- bl SetVBlankCallback
- b _080FC1E6
- .align 2, 0
-_080FC1C0: .4byte sub_80FC214
-_080FC1C4:
- ldr r1, _080FC1F8 @ =REG_BLDCNT
- movs r0, 0
- strh r0, [r1]
- subs r1, 0x46
- ldr r2, _080FC1FC @ =0x00001e0d
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- ldr r2, _080FC200 @ =0x00001741
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080FC204 @ =sub_80FC5B4
- bl sub_80FC244
- ldr r0, _080FC208 @ =sub_80FC228
- bl SetMainCallback2
-_080FC1E6:
- ldr r1, _080FC20C @ =gMain
- ldr r0, _080FC210 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080FC1F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC1F8: .4byte REG_BLDCNT
-_080FC1FC: .4byte 0x00001e0d
-_080FC200: .4byte 0x00001741
-_080FC204: .4byte sub_80FC5B4
-_080FC208: .4byte sub_80FC228
-_080FC20C: .4byte gMain
-_080FC210: .4byte 0x0000043c
- thumb_func_end sub_80FC074
-
- thumb_func_start sub_80FC214
-sub_80FC214: @ 80FC214
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80FC214
-
- thumb_func_start sub_80FC228
-sub_80FC228: @ 80FC228
- push {lr}
- ldr r0, _080FC240 @ =0x02000000
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_080FC240: .4byte 0x02000000
- thumb_func_end sub_80FC228
-
- thumb_func_start sub_80FC244
-sub_80FC244: @ 80FC244
- ldr r1, _080FC250 @ =0x02000000
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_080FC250: .4byte 0x02000000
- thumb_func_end sub_80FC244
-
- thumb_func_start sub_80FC254
-sub_80FC254: @ 80FC254
- push {r4,r5,lr}
- ldr r4, _080FC2AC @ =0x02000000
- ldrb r0, [r4, 0x1E]
- cmp r0, 0x2
- beq _080FC262
- cmp r0, 0x4
- bne _080FC2EC
-_080FC262:
- movs r1, 0
- ldr r2, _080FC2B0 @ =gUnknown_083E79C0
- adds r5, r4, 0
-_080FC268:
- lsls r0, r1, 3
- adds r4, r0, r2
- ldrh r0, [r5, 0x1C]
- ldrh r3, [r4, 0x4]
- cmp r0, r3
- bne _080FC2B4
- ldrh r0, [r4, 0x6]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC2BE
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0xF
- bl MenuPrint
- ldrb r0, [r5, 0x1F]
- ldr r1, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1D
- movs r2, 0x11
- bl sub_8072B4C
- b _080FC310
- .align 2, 0
-_080FC2AC: .4byte 0x02000000
-_080FC2B0: .4byte gUnknown_083E79C0
-_080FC2B4:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080FC268
-_080FC2BE:
- movs r0, 0
- cmp r0, 0
- bne _080FC310
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _080FC2E8 @ =0x02000008
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
- b _080FC310
- .align 2, 0
-_080FC2E8: .4byte 0x02000008
-_080FC2EC:
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080FC318 @ =0x00000a48
- adds r0, r4, r1
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x10
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0xF
- bl MenuZeroFillWindowRect
-_080FC310:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC318: .4byte 0x00000a48
- thumb_func_end sub_80FC254
-
- thumb_func_start sub_80FC31C
-sub_80FC31C: @ 80FC31C
- push {r4,lr}
- sub sp, 0x8
- ldr r0, _080FC360 @ =gUnknown_083E784C
- ldr r4, _080FC364 @ =0x02000888
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldr r1, _080FC368 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0xE0
- lsls r1, 1
- orrs r0, r1
- ldr r1, _080FC36C @ =0x0000ffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 10
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _080FC370 @ =gUnknown_083E79CC
- bl LoadSpritePalette
- bl sub_80FC374
- bl sub_80FC484
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC360: .4byte gUnknown_083E784C
-_080FC364: .4byte 0x02000888
-_080FC368: .4byte 0xffff0000
-_080FC36C: .4byte 0x0000ffff
-_080FC370: .4byte gUnknown_083E79CC
- thumb_func_end sub_80FC31C
-
- thumb_func_start sub_80FC374
-sub_80FC374: @ 80FC374
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _080FC3D4 @ =0x0000080f
- str r0, [sp, 0xC]
- movs r1, 0
- mov r9, r1
- mov r2, sp
- adds r2, 0x6
- str r2, [sp, 0x14]
- mov r3, sp
- adds r3, 0xA
- str r3, [sp, 0x18]
- mov r0, sp
- adds r0, 0x8
- str r0, [sp, 0x10]
- add r1, sp, 0x4
- mov r10, r1
-_080FC39E:
- ldr r2, [sp, 0x18]
- str r2, [sp]
- mov r0, r9
- add r1, sp, 0x4
- mov r2, sp
- adds r2, 0x6
- ldr r3, [sp, 0x10]
- bl sub_80FC04C
- mov r3, r10
- ldrh r0, [r3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r3]
- mov r1, sp
- ldrh r0, [r1, 0x6]
- adds r0, 0x2
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r1, 0x6]
- ldr r2, [sp, 0x10]
- ldrh r0, [r2]
- cmp r0, 0x2
- bne _080FC3D8
- movs r7, 0x1
- b _080FC3E4
- .align 2, 0
-_080FC3D4: .4byte 0x0000080f
-_080FC3D8:
- ldr r3, [sp, 0x18]
- ldrh r0, [r3]
- movs r7, 0
- cmp r0, 0x2
- bne _080FC3E4
- movs r7, 0x2
-_080FC3E4:
- mov r0, r10
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r3, [sp, 0x14]
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080FC458
- ldr r1, _080FC434 @ =gSprites
- mov r8, r1
- lsls r4, r5, 4
- adds r0, r4, r5
- lsls r6, r0, 2
- adds r2, r6, r1
- lsls r3, r7, 6
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x1]
- ldr r0, [sp, 0xC]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC43C
- mov r0, r8
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, _080FC438 @ =sub_80FC55C
- str r1, [r0]
- b _080FC442
- .align 2, 0
-_080FC430: .4byte gSpriteTemplate_83E7A38
-_080FC434: .4byte gSprites
-_080FC438: .4byte sub_80FC55C
-_080FC43C:
- adds r0, r7, 0x3
- lsls r0, 16
- lsrs r7, r0, 16
-_080FC442:
- adds r4, r5
- lsls r4, 2
- ldr r0, _080FC480 @ =gSprites
- adds r4, r0
- lsls r1, r7, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- mov r2, r9
- strh r2, [r4, 0x2E]
-_080FC458:
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r0, 0xF
- bls _080FC39E
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC480: .4byte gSprites
- thumb_func_end sub_80FC374
-
- thumb_func_start sub_80FC484
-sub_80FC484: @ 80FC484
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r8, r0
- ldr r6, _080FC54C @ =gUnknown_083E79D4
- ldrh r0, [r6, 0x2]
- cmp r0, 0x58
- beq _080FC53C
- mov r5, sp
- adds r5, 0x6
- add r7, sp, 0x4
- ldr r1, _080FC550 @ =gSprites
- mov r9, r1
- movs r0, 0x1C
- add r0, r9
- mov r10, r0
-_080FC4AC:
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r6
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080FC524
- adds r0, r6, 0x2
- adds r0, r4, r0
- ldrh r6, [r0]
- mov r0, sp
- adds r0, 0xA
- str r0, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- add r3, sp, 0x8
- bl sub_80FC04C
- ldrh r0, [r7]
- adds r0, 0x1
- lsls r0, 3
- strh r0, [r7]
- ldrh r0, [r5]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r5]
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r0, 0
- ldrsh r2, [r5, r0]
- ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _080FC524
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- mov r1, r9
- adds r4, r2, r1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
- add r2, r10
- ldr r0, _080FC558 @ =sub_80FC55C
- str r0, [r2]
- adds r0, r4, 0
- movs r1, 0x6
- bl StartSpriteAnim
- strh r6, [r4, 0x2E]
-_080FC524:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r6, _080FC54C @ =gUnknown_083E79D4
- lsls r0, 2
- adds r1, r6, 0x2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _080FC4AC
-_080FC53C:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC54C: .4byte gUnknown_083E79D4
-_080FC550: .4byte gSprites
-_080FC554: .4byte gSpriteTemplate_83E7A38
-_080FC558: .4byte sub_80FC55C
- thumb_func_end sub_80FC484
-
- thumb_func_start sub_80FC55C
-sub_80FC55C: @ 80FC55C
- push {lr}
- adds r2, r0, 0
- ldr r0, _080FC59C @ =0x02000000
- ldrh r1, [r0, 0x1C]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r1, r0
- bne _080FC5A0
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _080FC5AE
- movs r0, 0
- strh r0, [r2, 0x30]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsrs r1, r2, 2
- movs r0, 0x1
- eors r1, r0
- ands r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _080FC5AE
- .align 2, 0
-_080FC59C: .4byte 0x02000000
-_080FC5A0:
- movs r0, 0x10
- strh r0, [r2, 0x30]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x15
- ands r0, r1
- strb r0, [r2]
-_080FC5AE:
- pop {r0}
- bx r0
- thumb_func_end sub_80FC55C
-
- thumb_func_start sub_80FC5B4
-sub_80FC5B4: @ 80FC5B4
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080FC5C8 @ =0x02000000
- ldrh r1, [r4, 0x4]
- cmp r1, 0
- beq _080FC5CC
- cmp r1, 0x1
- beq _080FC5E4
- b _080FC5F4
- .align 2, 0
-_080FC5C8: .4byte 0x02000000
-_080FC5CC:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _080FC5F4
-_080FC5E4:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080FC5F4
- ldr r0, _080FC5FC @ =sub_80FC600
- bl sub_80FC244
-_080FC5F4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC5FC: .4byte sub_80FC600
- thumb_func_end sub_80FC5B4
-
- thumb_func_start sub_80FC600
-sub_80FC600: @ 80FC600
- push {r4,lr}
- ldr r0, _080FC620 @ =0x02000000
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _080FC68A
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080FC68A
- lsls r0, 2
- ldr r1, _080FC624 @ =_080FC628
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC620: .4byte 0x02000000
-_080FC624: .4byte _080FC628
- .align 2, 0
-_080FC628:
- .4byte _080FC68A
- .4byte _080FC68A
- .4byte _080FC68A
- .4byte _080FC640
- .4byte _080FC646
- .4byte _080FC674
-_080FC640:
- bl sub_80FC254
- b _080FC68A
-_080FC646:
- ldr r4, _080FC668 @ =0x02000000
- ldrb r0, [r4, 0x1E]
- cmp r0, 0x2
- beq _080FC652
- cmp r0, 0x4
- bne _080FC68A
-_080FC652:
- movs r0, 0x5
- bl m4aSongNumStart
- ldr r1, _080FC66C @ =0x00000a6e
- adds r0, r4, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _080FC670 @ =sub_80FC69C
- bl sub_80FC244
- b _080FC68A
- .align 2, 0
-_080FC668: .4byte 0x02000000
-_080FC66C: .4byte 0x00000a6e
-_080FC670: .4byte sub_80FC69C
-_080FC674:
- movs r0, 0x5
- bl m4aSongNumStart
- ldr r0, _080FC690 @ =0x02000000
- ldr r1, _080FC694 @ =0x00000a6e
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FC698 @ =sub_80FC69C
- bl sub_80FC244
-_080FC68A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC690: .4byte 0x02000000
-_080FC694: .4byte 0x00000a6e
-_080FC698: .4byte sub_80FC69C
- thumb_func_end sub_80FC600
-
- thumb_func_start sub_80FC69C
-sub_80FC69C: @ 80FC69C
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080FC6B0 @ =0x02000000
- ldrh r1, [r4, 0x4]
- cmp r1, 0
- beq _080FC6B4
- cmp r1, 0x1
- beq _080FC6CC
- b _080FC792
- .align 2, 0
-_080FC6B0: .4byte 0x02000000
-_080FC6B4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _080FC792
-_080FC6CC:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080FC792
- bl sub_80FAB10
- ldr r1, _080FC6F4 @ =0x00000a6e
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FC78C
- ldrh r0, [r4, 0x1C]
- cmp r0, 0xF
- beq _080FC724
- cmp r0, 0xF
- bgt _080FC6F8
- cmp r0, 0
- beq _080FC710
- b _080FC748
- .align 2, 0
-_080FC6F4: .4byte 0x00000a6e
-_080FC6F8:
- cmp r0, 0x3A
- beq _080FC708
- cmp r0, 0x49
- bne _080FC748
- movs r0, 0x16
- bl sub_8053538
- b _080FC786
-_080FC708:
- movs r0, 0x15
- bl sub_8053538
- b _080FC786
-_080FC710:
- ldr r0, _080FC720 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0xD
- cmp r0, 0
- bne _080FC73A
- movs r1, 0xC
- b _080FC73A
- .align 2, 0
-_080FC720: .4byte gSaveBlock2
-_080FC724:
- ldr r0, _080FC744 @ =0x00000854
- bl FlagGet
- lsls r0, 24
- movs r1, 0xB
- cmp r0, 0
- beq _080FC73A
- ldrb r0, [r4, 0x1F]
- cmp r0, 0
- bne _080FC73A
- movs r1, 0x14
-_080FC73A:
- adds r0, r1, 0
- bl sub_8053538
- b _080FC786
- .align 2, 0
-_080FC744: .4byte 0x00000854
-_080FC748:
- ldr r3, _080FC764 @ =gUnknown_083E7920
- ldr r0, _080FC768 @ =0x02000000
- ldrh r1, [r0, 0x1C]
- lsls r0, r1, 1
- adds r2, r0, r1
- adds r0, r3, 0x2
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FC76C
- bl sub_8053538
- b _080FC786
- .align 2, 0
-_080FC764: .4byte gUnknown_083E7920
-_080FC768: .4byte 0x02000000
-_080FC76C:
- adds r0, r2, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- bl warp1_set_2
-_080FC786:
- bl sub_80865BC
- b _080FC792
-_080FC78C:
- ldr r0, _080FC79C @ =sub_808AD58
- bl SetMainCallback2
-_080FC792:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC79C: .4byte sub_808AD58
- thumb_func_end sub_80FC69C
-
- thumb_func_start sub_80FC7A0
-sub_80FC7A0: @ 80FC7A0
- push {lr}
- ldr r2, _080FC7E8 @ =gUnknown_03005DEC
- ldr r1, [r0, 0x4]
- str r1, [r2]
- ldr r2, _080FC7EC @ =gUnknown_03005E00
- ldrb r1, [r0, 0x1F]
- strb r1, [r2]
- ldr r2, _080FC7F0 @ =gUnknown_03005DE8
- ldrb r1, [r0, 0x19]
- strb r1, [r2]
- ldr r2, _080FC7F4 @ =gUnknown_03005DFC
- ldrb r1, [r0, 0x1A]
- strb r1, [r2]
- ldr r2, _080FC7F8 @ =gUnknown_03005DF8
- ldrb r1, [r0, 0x1B]
- strb r1, [r2]
- ldr r2, _080FC7FC @ =gUnknown_03005DF0
- ldrb r1, [r0, 0x1C]
- strb r1, [r2]
- ldr r2, _080FC800 @ =gUnknown_03005E04
- ldrb r1, [r0, 0x1D]
- strb r1, [r2]
- ldr r2, _080FC804 @ =gUnknown_03005DF4
- ldrb r1, [r0, 0x1E]
- strb r1, [r2]
- ldrb r0, [r0]
- subs r0, 0x2
- cmp r0, 0x22
- bls _080FC7DC
- b _080FC928
-_080FC7DC:
- lsls r0, 2
- ldr r1, _080FC808 @ =_080FC80C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FC7E8: .4byte gUnknown_03005DEC
-_080FC7EC: .4byte gUnknown_03005E00
-_080FC7F0: .4byte gUnknown_03005DE8
-_080FC7F4: .4byte gUnknown_03005DFC
-_080FC7F8: .4byte gUnknown_03005DF8
-_080FC7FC: .4byte gUnknown_03005DF0
-_080FC800: .4byte gUnknown_03005E04
-_080FC804: .4byte gUnknown_03005DF4
-_080FC808: .4byte _080FC80C
- .align 2, 0
-_080FC80C:
- .4byte _080FC898
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8F8
- .4byte _080FC928
- .4byte _080FC89E
- .4byte _080FC8A4
- .4byte _080FC8B8
- .4byte _080FC8CA
- .4byte _080FC928
- .4byte _080FC8E0
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC8E6
- .4byte _080FC8C4
- .4byte _080FC8EC
- .4byte _080FC8F2
- .4byte _080FC928
- .4byte _080FC928
- .4byte _080FC904
-_080FC898:
- bl sub_80FCAA4
- b _080FC928
-_080FC89E:
- bl sub_80FCB5C
- b _080FC928
-_080FC8A4:
- bl sub_80FCD54
- ldr r0, _080FC8B4 @ =gUnknown_03005E00
- ldrb r0, [r0]
- bl sub_80FCC18
- b _080FC928
- .align 2, 0
-_080FC8B4: .4byte gUnknown_03005E00
-_080FC8B8:
- bl sub_80FCD54
- bl sub_80FCEA4
- bl sub_80FCCBC
-_080FC8C4:
- bl sub_80FCEA4
- b _080FC928
-_080FC8CA:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- b _080FC928
-_080FC8E0:
- bl sub_80FCF3C
- b _080FC928
-_080FC8E6:
- bl sub_80FCD54
- b _080FC928
-_080FC8EC:
- bl sub_80FD06C
- b _080FC928
-_080FC8F2:
- bl sub_80FD114
- b _080FC928
-_080FC8F8:
- bl sub_80FCAC4
- movs r0, 0x3
- bl sub_80FC92C
- b _080FC928
-_080FC904:
- bl sub_80FCD54
- bl sub_80FD06C
- bl sub_80FD114
- bl sub_80FCCBC
- bl sub_80FCB5C
- bl sub_80FCB5C
- movs r0, 0x2
- bl sub_80FC92C
- movs r0, 0x4
- bl sub_80FC9E4
-_080FC928:
- pop {r0}
- bx r0
- thumb_func_end sub_80FC7A0
-
- thumb_func_start sub_80FC92C
-sub_80FC92C: @ 80FC92C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0
- ldr r0, _080FC9CC @ =gUnknown_03005DF0
- mov r8, r0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FC9BE
- ldr r1, _080FC9D0 @ =gUnknown_03005DF8
- mov r12, r1
- ldr r3, _080FC9D4 @ =gUnknown_03005E04
- mov r10, r3
- ldr r0, _080FC9D8 @ =gUnknown_03005DE8
- mov r9, r0
-_080FC952:
- ldr r1, _080FC9DC @ =gUnknown_03005DFC
- ldrb r0, [r1]
- adds r0, r2
- mov r3, r10
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FC9E0 @ =gUnknown_03005DEC
- ldr r1, [r3]
- adds r1, r0
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r4, 0
- adds r5, r2, 0x1
- mov r0, r12
- ldrb r0, [r0]
- cmp r4, r0
- bcs _080FC9B2
- movs r6, 0x80
- lsls r6, 8
-_080FC97E:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080FC9A2
- movs r0, 0x1F
- ands r0, r1
- adds r0, r7
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _080FC998
- movs r2, 0x1F
-_080FC998:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FC9A2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, 0x2
- mov r1, r12
- ldrb r1, [r1]
- cmp r4, r1
- bcc _080FC97E
-_080FC9B2:
- lsls r0, r5, 24
- lsrs r2, r0, 24
- mov r3, r8
- ldrb r3, [r3]
- cmp r2, r3
- bcc _080FC952
-_080FC9BE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FC9CC: .4byte gUnknown_03005DF0
-_080FC9D0: .4byte gUnknown_03005DF8
-_080FC9D4: .4byte gUnknown_03005E04
-_080FC9D8: .4byte gUnknown_03005DE8
-_080FC9DC: .4byte gUnknown_03005DFC
-_080FC9E0: .4byte gUnknown_03005DEC
- thumb_func_end sub_80FC92C
-
- thumb_func_start sub_80FC9E4
-sub_80FC9E4: @ 80FC9E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080FCA8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCA7C
- ldr r1, _080FCA90 @ =gUnknown_03005DF8
- mov r10, r1
-_080FCA02:
- ldr r3, _080FCA94 @ =gUnknown_03005DFC
- ldrb r0, [r3]
- adds r0, r2
- ldr r3, _080FCA98 @ =gUnknown_03005E04
- ldrb r1, [r3]
- muls r0, r1
- lsls r0, 1
- ldr r3, _080FCA9C @ =gUnknown_03005DEC
- ldr r1, [r3]
- adds r1, r0
- ldr r3, _080FCAA0 @ =gUnknown_03005DE8
- ldrb r0, [r3]
- lsls r0, 1
- adds r3, r1, r0
- movs r5, 0
- adds r7, r2, 0x1
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FCA70
- movs r1, 0x80
- lsls r1, 8
- mov r9, r1
- movs r0, 0x1F
- mov r12, r0
- mov r1, r8
- subs r6, r0, r1
-_080FCA38:
- ldrh r1, [r3]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _080FCA60
- movs r4, 0x1F
- mov r2, r12
- ands r2, r1
- cmp r2, r6
- ble _080FCA56
- mov r1, r8
- lsrs r0, r1, 1
- subs r0, r4, r0
- lsls r0, 24
- lsrs r2, r0, 24
-_080FCA56:
- lsls r0, r2, 10
- lsls r1, r2, 5
- orrs r0, r1
- orrs r0, r2
- strh r0, [r3]
-_080FCA60:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, 0x2
- mov r0, r10
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FCA38
-_080FCA70:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r1, _080FCA8C @ =gUnknown_03005DF0
- ldrb r1, [r1]
- cmp r2, r1
- bcc _080FCA02
-_080FCA7C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCA8C: .4byte gUnknown_03005DF0
-_080FCA90: .4byte gUnknown_03005DF8
-_080FCA94: .4byte gUnknown_03005DFC
-_080FCA98: .4byte gUnknown_03005E04
-_080FCA9C: .4byte gUnknown_03005DEC
-_080FCAA0: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FC9E4
-
- thumb_func_start sub_80FCAA4
-sub_80FCAA4: @ 80FCAA4
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080FCAC0 @ =0x00000c7f
-_080FCAAA:
- lsls r0, r4, 16
- lsrs r0, 16
- bl sub_80FD1C8
- adds r4, 0x1
- cmp r4, r5
- bls _080FCAAA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCAC0: .4byte 0x00000c7f
- thumb_func_end sub_80FCAA4
-
- thumb_func_start sub_80FCAC4
-sub_80FCAC4: @ 80FCAC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCB44 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCB36
- ldr r0, _080FCB48 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r3, _080FCB4C @ =gUnknown_03005DF8
-_080FCADC:
- ldr r0, _080FCB50 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCB54 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCB58 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCB2A
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCB08:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCB1C
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD39C
- strh r0, [r4]
- ldr r3, [sp]
-_080FCB1C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCB08
-_080FCB2A:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCB44 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCADC
-_080FCB36:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCB44: .4byte gUnknown_03005DF0
-_080FCB48: .4byte gUnknown_03005DEC
-_080FCB4C: .4byte gUnknown_03005DF8
-_080FCB50: .4byte gUnknown_03005DFC
-_080FCB54: .4byte gUnknown_03005E04
-_080FCB58: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCAC4
-
- thumb_func_start sub_80FCB5C
-sub_80FCB5C: @ 80FCB5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r2, 0
- ldr r0, _080FCC00 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCBF2
- ldr r0, _080FCC04 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r3, _080FCC08 @ =gUnknown_03005E04
-_080FCB74:
- ldr r0, _080FCC0C @ =gUnknown_03005DFC
- ldrb r1, [r0]
- ldrb r0, [r3]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCC10 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- adds r0, r2
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- ldrb r0, [r3]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FCC14 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r7, r2, 0x1
- cmp r5, r0
- bge _080FCBE6
- ldr r6, _080FCC08 @ =gUnknown_03005E04
-_080FCBAA:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FCBD0
- ldrb r2, [r6]
- lsls r2, 1
- adds r2, r4, r2
- mov r0, sp
- adds r1, r4, 0
- str r3, [sp, 0x4]
- bl sub_80FD68C
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
- ldr r3, [sp, 0x4]
-_080FCBD0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FCC14 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FCBAA
-_080FCBE6:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FCC00 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCB74
-_080FCBF2:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCC00: .4byte gUnknown_03005DF8
-_080FCC04: .4byte gUnknown_03005DEC
-_080FCC08: .4byte gUnknown_03005E04
-_080FCC0C: .4byte gUnknown_03005DFC
-_080FCC10: .4byte gUnknown_03005DE8
-_080FCC14: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FCB5C
-
- thumb_func_start sub_80FCC18
-sub_80FCC18: @ 80FCC18
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0
- ldr r0, _080FCCA4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCC94
- ldr r0, _080FCCA8 @ =gUnknown_03005DEC
- mov r9, r0
- ldr r3, _080FCCAC @ =gUnknown_03005DF8
-_080FCC38:
- ldr r0, _080FCCB0 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCCB4 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r9
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCCB8 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCC88
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCC64:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCC7A
- adds r0, r4, 0
- mov r1, r8
- str r3, [sp]
- bl sub_80FD3D0
- strh r0, [r4]
- ldr r3, [sp]
-_080FCC7A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCC64
-_080FCC88:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCCA4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCC38
-_080FCC94:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCCA4: .4byte gUnknown_03005DF0
-_080FCCA8: .4byte gUnknown_03005DEC
-_080FCCAC: .4byte gUnknown_03005DF8
-_080FCCB0: .4byte gUnknown_03005DFC
-_080FCCB4: .4byte gUnknown_03005E04
-_080FCCB8: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCC18
-
- thumb_func_start sub_80FCCBC
-sub_80FCCBC: @ 80FCCBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCD3C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCD2E
- ldr r0, _080FCD40 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r3, _080FCD44 @ =gUnknown_03005DF8
-_080FCCD4:
- ldr r0, _080FCD48 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCD4C @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCD50 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCD22
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCD00:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCD14
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD4DC
- strh r0, [r4]
- ldr r3, [sp]
-_080FCD14:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCD00
-_080FCD22:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCD3C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCCD4
-_080FCD2E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCD3C: .4byte gUnknown_03005DF0
-_080FCD40: .4byte gUnknown_03005DEC
-_080FCD44: .4byte gUnknown_03005DF8
-_080FCD48: .4byte gUnknown_03005DFC
-_080FCD4C: .4byte gUnknown_03005E04
-_080FCD50: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCCBC
-
- thumb_func_start sub_80FCD54
-sub_80FCD54: @ 80FCD54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _080FCE8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r7, r0
- bcs _080FCDE0
- ldr r0, _080FCE90 @ =gUnknown_03005DEC
- mov r8, r0
-_080FCD6A:
- ldr r0, _080FCE94 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r7
- ldr r0, _080FCE98 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r2, r8
- ldr r1, [r2]
- adds r1, r0
- ldr r0, _080FCE9C @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r5, r1, r0
- adds r4, r5, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80FD50C
- strh r0, [r5]
- movs r6, 0x1
- adds r5, r4, 0
- ldr r0, _080FCEA0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- subs r0, 0x1
- adds r7, 0x1
- cmp r6, r0
- bge _080FCDCA
-_080FCDA2:
- adds r4, r5, 0x2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80FD50C
- strh r0, [r5]
- subs r1, r5, 0x2
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, r4, 0
- ldr r0, _080FCEA0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- blt _080FCDA2
-_080FCDCA:
- subs r1, r5, 0x2
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- lsls r0, r7, 24
- lsrs r7, r0, 24
- ldr r0, _080FCE8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r7, r0
- bcc _080FCD6A
-_080FCDE0:
- movs r6, 0
- ldr r0, _080FCEA0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080FCE80
- ldr r3, _080FCE90 @ =gUnknown_03005DEC
- mov r9, r3
- ldr r0, _080FCE98 @ =gUnknown_03005E04
- mov r8, r0
-_080FCDF2:
- ldr r0, _080FCE94 @ =gUnknown_03005DFC
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- muls r0, r1
- lsls r0, 1
- mov r3, r9
- ldr r2, [r3]
- adds r2, r0
- ldr r0, _080FCE9C @ =gUnknown_03005DE8
- ldrb r0, [r0]
- adds r0, r6
- lsls r0, 1
- adds r5, r2, r0
- lsls r1, 1
- adds r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- movs r7, 0x1
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- adds r5, r0
- ldr r0, _080FCE8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, 0x1
- cmp r7, r0
- bge _080FCE64
- ldr r4, _080FCE98 @ =gUnknown_03005E04
-_080FCE32:
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- ldrb r1, [r4]
- lsls r1, 1
- subs r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
- lsls r0, 1
- adds r5, r0
- ldr r0, _080FCE8C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r7, r0
- blt _080FCE32
-_080FCE64:
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 1
- subs r1, r5, r1
- adds r0, r5, 0
- bl sub_80FD50C
- strh r0, [r5]
- lsls r0, r6, 24
- lsrs r6, r0, 24
- ldr r0, _080FCEA0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080FCDF2
-_080FCE80:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCE8C: .4byte gUnknown_03005DF0
-_080FCE90: .4byte gUnknown_03005DEC
-_080FCE94: .4byte gUnknown_03005DFC
-_080FCE98: .4byte gUnknown_03005E04
-_080FCE9C: .4byte gUnknown_03005DE8
-_080FCEA0: .4byte gUnknown_03005DF8
- thumb_func_end sub_80FCD54
-
- thumb_func_start sub_80FCEA4
-sub_80FCEA4: @ 80FCEA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FCF24 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FCF16
- ldr r0, _080FCF28 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r3, _080FCF2C @ =gUnknown_03005DF8
-_080FCEBC:
- ldr r0, _080FCF30 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FCF34 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r4, r8
- ldr r1, [r4]
- adds r1, r0
- ldr r0, _080FCF38 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- adds r6, r2, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- bcs _080FCF0A
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FCEE8:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FCEFC
- adds r0, r4, 0
- str r3, [sp]
- bl sub_80FD53C
- strh r0, [r4]
- ldr r3, [sp]
-_080FCEFC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r5, r0
- bcc _080FCEE8
-_080FCF0A:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FCF24 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FCEBC
-_080FCF16:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FCF24: .4byte gUnknown_03005DF0
-_080FCF28: .4byte gUnknown_03005DEC
-_080FCF2C: .4byte gUnknown_03005DF8
-_080FCF30: .4byte gUnknown_03005DFC
-_080FCF34: .4byte gUnknown_03005E04
-_080FCF38: .4byte gUnknown_03005DE8
- thumb_func_end sub_80FCEA4
-
- thumb_func_start sub_80FCF3C
-sub_80FCF3C: @ 80FCF3C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _080FD068 @ =gUnknown_03005DEC
- ldr r4, [r0]
- movs r6, 0
- movs r0, 0x80
- lsls r0, 8
- adds r5, r0, 0
-_080FCF54:
- movs r7, 0
-_080FCF56:
- ldrh r0, [r4]
- ands r0, r5
- cmp r0, 0
- bne _080FCF66
- adds r0, r4, 0
- bl sub_80FD53C
- strh r0, [r4]
-_080FCF66:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, 0x2
- cmp r7, 0x3F
- bls _080FCF56
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3F
- bls _080FCF54
- movs r7, 0
- ldr r1, _080FD068 @ =gUnknown_03005DEC
- mov r10, r1
- mov r3, sp
- movs r2, 0x80
- lsls r2, 8
- mov r9, r2
-_080FCF8A:
- lsls r0, r7, 1
- mov r2, r10
- ldr r1, [r2]
- adds r4, r1, r0
- ldrh r1, [r4]
- strh r1, [r3]
- mov r1, r9
- strh r1, [r4]
- movs r6, 0x1
- adds r4, 0x80
- adds r5, r0, 0
-_080FCFA0:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- ands r0, r2
- cmp r0, 0
- bne _080FCFC0
- adds r2, r4, 0
- adds r2, 0x80
- mov r0, sp
- adds r1, r4, 0
- str r3, [sp, 0x4]
- bl sub_80FD7AC
- strh r0, [r4]
- ldr r3, [sp, 0x4]
- strh r0, [r3]
-_080FCFC0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, 0x80
- cmp r6, 0x3E
- bls _080FCFA0
- mov r0, r9
- strh r0, [r4]
- mov r1, r10
- ldr r0, [r1]
- adds r4, r0, r5
- ldrh r0, [r4]
- strh r0, [r3]
- mov r2, r9
- strh r2, [r4]
- movs r6, 0x1
- adds r4, 0x80
- movs r0, 0x80
- lsls r0, 8
- mov r8, r0
-_080FCFE8:
- ldrh r0, [r4]
- mov r1, r8
- ands r0, r1
- adds r5, r4, 0
- adds r5, 0x80
- cmp r0, 0
- bne _080FD008
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- str r3, [sp, 0x4]
- bl sub_80FD7AC
- strh r0, [r4]
- ldr r3, [sp, 0x4]
- strh r0, [r3]
-_080FD008:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r5, 0
- cmp r6, 0x3E
- bls _080FCFE8
- mov r2, r9
- strh r2, [r4]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3F
- bls _080FCF8A
- ldr r0, _080FD068 @ =gUnknown_03005DEC
- ldr r4, [r0]
- movs r6, 0
- movs r0, 0x80
- lsls r0, 8
- mov r8, r0
-_080FD02E:
- movs r7, 0
- adds r5, r6, 0x1
-_080FD032:
- ldrh r0, [r4]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080FD044
- adds r0, r4, 0
- bl sub_80FD53C
- strh r0, [r4]
-_080FD044:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, 0x2
- cmp r7, 0x3F
- bls _080FD032
- lsls r0, r5, 24
- lsrs r6, r0, 24
- cmp r6, 0x3F
- bls _080FD02E
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD068: .4byte gUnknown_03005DEC
- thumb_func_end sub_80FCF3C
-
- thumb_func_start sub_80FD06C
-sub_80FD06C: @ 80FD06C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FD0FC @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FD0EE
- ldr r0, _080FD100 @ =gUnknown_03005DEC
- mov r8, r0
-_080FD082:
- ldr r0, _080FD104 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FD108 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FD10C @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- adds r4, 0x2
- ldr r0, _080FD110 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r2, 0x1
- cmp r5, r0
- bge _080FD0E2
- movs r0, 0x80
- lsls r0, 8
- adds r7, r0, 0
-_080FD0BA:
- ldrh r0, [r4]
- ands r0, r7
- cmp r0, 0
- bne _080FD0D0
- mov r0, sp
- adds r1, r4, 0
- bl sub_80FD568
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
-_080FD0D0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FD110 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FD0BA
-_080FD0E2:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FD0FC @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FD082
-_080FD0EE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD0FC: .4byte gUnknown_03005DF0
-_080FD100: .4byte gUnknown_03005DEC
-_080FD104: .4byte gUnknown_03005DFC
-_080FD108: .4byte gUnknown_03005E04
-_080FD10C: .4byte gUnknown_03005DE8
-_080FD110: .4byte gUnknown_03005DF8
- thumb_func_end sub_80FD06C
-
- thumb_func_start sub_80FD114
-sub_80FD114: @ 80FD114
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r2, 0
- ldr r0, _080FD1B0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FD1A2
- ldr r0, _080FD1B4 @ =gUnknown_03005DEC
- mov r8, r0
- ldr r7, _080FD1B8 @ =gUnknown_03005E04
-_080FD12C:
- ldr r0, _080FD1BC @ =gUnknown_03005DFC
- ldrb r1, [r0]
- ldrb r0, [r7]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FD1C0 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- adds r0, r2
- lsls r0, 1
- adds r4, r1, r0
- ldrh r1, [r4]
- mov r0, sp
- strh r1, [r0]
- movs r5, 0x1
- ldrb r0, [r7]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FD1C4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r6, r2, 0x1
- cmp r5, r0
- bge _080FD196
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FD166:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- bne _080FD180
- mov r0, sp
- adds r1, r4, 0
- str r2, [sp, 0x4]
- bl sub_80FD568
- strh r0, [r4]
- mov r1, sp
- strh r0, [r1]
- ldr r2, [sp, 0x4]
-_080FD180:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r7]
- lsls r0, 1
- adds r4, r0
- ldr r0, _080FD1C4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- blt _080FD166
-_080FD196:
- lsls r0, r6, 24
- lsrs r2, r0, 24
- ldr r0, _080FD1B0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FD12C
-_080FD1A2:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FD1B0: .4byte gUnknown_03005DF8
-_080FD1B4: .4byte gUnknown_03005DEC
-_080FD1B8: .4byte gUnknown_03005E04
-_080FD1BC: .4byte gUnknown_03005DFC
-_080FD1C0: .4byte gUnknown_03005DE8
-_080FD1C4: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FD114
-
- thumb_func_start sub_80FD1C8
-sub_80FD1C8: @ 80FD1C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r2, sp
- ldr r3, _080FD234 @ =gUnknown_083E7A50
- lsls r1, r0, 1
- add r1, r10
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- mov r5, sp
- adds r0, r3, 0x2
- adds r1, r0
- ldrb r4, [r1]
- lsls r2, r4, 24
- lsrs r1, r2, 27
- movs r0, 0x7
- ands r1, r0
- strh r1, [r5, 0x2]
- lsrs r2, 25
- mov r9, r2
- movs r0, 0x3
- ands r2, r0
- mov r9, r2
- movs r5, 0x1
- ands r5, r4
- movs r4, 0x1
- mov r8, r4
- cmp r8, r1
- bcs _080FD27A
- mov r3, sp
-_080FD21A:
- cmp r5, 0
- bne _080FD238
- mov r0, r8
- lsls r2, r0, 2
- mov r4, sp
- adds r1, r4, r2
- ldrb r0, [r3]
- mov r4, r8
- subs r0, r4
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- add r0, r8
- b _080FD24A
- .align 2, 0
-_080FD234: .4byte gUnknown_083E7A50
-_080FD238:
- mov r0, r8
- lsls r2, r0, 2
- mov r4, sp
- adds r1, r4, r2
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
-_080FD24A:
- strb r0, [r1, 0x1]
- add r2, sp
- ldrb r0, [r2]
- cmp r0, 0x3F
- bhi _080FD25A
- ldrb r0, [r2, 0x1]
- cmp r0, 0x3F
- bls _080FD262
-_080FD25A:
- mov r0, r8
- subs r0, 0x1
- strh r0, [r3, 0x2]
- b _080FD27A
-_080FD262:
- ldrh r0, [r3, 0x2]
- mov r1, r8
- subs r0, r1
- strh r0, [r2, 0x2]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r3, 0x2]
- cmp r8, r0
- bcc _080FD21A
-_080FD27A:
- movs r2, 0
- mov r8, r2
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r8, r0
- bcc _080FD288
- b _080FD38A
-_080FD288:
- movs r3, 0x1F
-_080FD28A:
- ldr r1, _080FD2E8 @ =gUnknown_03005DEC
- mov r4, r8
- lsls r0, r4, 2
- mov r2, sp
- adds r6, r2, r0
- ldrb r0, [r6, 0x1]
- lsls r0, 7
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r6]
- lsls r0, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080FD376
- movs r7, 0x1F
- ands r7, r1
- lsls r0, r1, 16
- lsrs r5, r0, 21
- ands r5, r3
- lsrs r4, r0, 26
- ands r4, r3
- mov r0, r9
- cmp r0, 0
- blt _080FD36C
- cmp r0, 0x1
- ble _080FD2EC
- cmp r0, 0x3
- bgt _080FD36C
- ldrh r0, [r6, 0x2]
- adds r1, r7, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r1, r5, r0
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r7, 0x1F
- bls _080FD360
- movs r7, 0x1F
- b _080FD360
- .align 2, 0
-_080FD2E8: .4byte gUnknown_03005DEC
-_080FD2EC:
- mov r1, r10
- lsls r0, r1, 1
- add r0, r10
- ldr r1, _080FD320 @ =gUnknown_083E7A50
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsrs r0, 3
- movs r1, 0x7
- ands r0, r1
- movs r1, 0x3
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- cmp r0, 0x1
- beq _080FD33C
- cmp r0, 0x1
- bgt _080FD324
- cmp r0, 0
- beq _080FD32A
- b _080FD36C
- .align 2, 0
-_080FD320: .4byte gUnknown_083E7A50
-_080FD324:
- cmp r0, 0x2
- beq _080FD34E
- b _080FD36C
-_080FD32A:
- ldrh r0, [r6, 0x2]
- cmp r7, r0
- bcc _080FD338
- subs r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
- b _080FD36C
-_080FD338:
- movs r7, 0
- b _080FD36C
-_080FD33C:
- ldrh r0, [r6, 0x2]
- cmp r5, r0
- bcc _080FD34A
- subs r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- b _080FD36C
-_080FD34A:
- movs r5, 0
- b _080FD36C
-_080FD34E:
- ldrh r0, [r6, 0x2]
- cmp r4, r0
- bcc _080FD35C
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080FD36C
-_080FD35C:
- movs r4, 0
- b _080FD36C
-_080FD360:
- cmp r5, 0x1F
- bls _080FD366
- movs r5, 0x1F
-_080FD366:
- cmp r4, 0x1F
- bls _080FD36C
- movs r4, 0x1F
-_080FD36C:
- lsls r0, r4, 10
- lsls r1, r5, 5
- orrs r0, r1
- orrs r7, r0
- strh r7, [r2]
-_080FD376:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r8, r0
- bcs _080FD38A
- b _080FD28A
-_080FD38A:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD1C8
-
- thumb_func_start sub_80FD39C
-sub_80FD39C: @ 80FD39C
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 10
- lsls r2, r1, 5
- orrs r0, r2
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FD39C
-
- thumb_func_start sub_80FD3D0
-sub_80FD3D0: @ 80FD3D0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrh r0, [r0]
- movs r2, 0x1F
- movs r1, 0x1F
- ands r1, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r2
- lsrs r0, 26
- ands r0, r2
- cmp r1, 0x10
- bhi _080FD400
- cmp r3, 0x10
- bhi _080FD400
- cmp r0, 0x10
- bhi _080FD400
- adds r0, r4, 0
- bl sub_80FD40C
- lsls r0, 16
- lsrs r0, 16
- b _080FD402
-_080FD400:
- ldr r0, _080FD408 @ =0x00007fff
-_080FD402:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080FD408: .4byte 0x00007fff
- thumb_func_end sub_80FD3D0
-
- thumb_func_start sub_80FD40C
-sub_80FD40C: @ 80FD40C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- mov r8, r0
- movs r6, 0
- movs r7, 0
- adds r0, r4, 0
- movs r1, 0x6
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _080FD4C4
- lsls r0, 2
- ldr r1, _080FD450 @ =_080FD454
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FD450: .4byte _080FD454
- .align 2, 0
-_080FD454:
- .4byte _080FD46C
- .4byte _080FD47C
- .4byte _080FD48C
- .4byte _080FD49A
- .4byte _080FD4A8
- .4byte _080FD4B6
-_080FD46C:
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r6, r0, 16
- adds r7, r6, 0
- movs r1, 0
- mov r8, r1
- b _080FD4C4
-_080FD47C:
- movs r7, 0
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r6, r8
- b _080FD4C4
-_080FD48C:
- movs r0, 0x15
- subs r0, r5
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- mov r8, r7
- b _080FD4C4
-_080FD49A:
- movs r7, 0
- movs r6, 0
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- b _080FD4C2
-_080FD4A8:
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- mov r8, r6
- b _080FD4C4
-_080FD4B6:
- movs r7, 0
- movs r0, 0x17
- subs r0, r5
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
-_080FD4C2:
- mov r8, r0
-_080FD4C4:
- lsls r0, r7, 10
- lsls r1, r6, 5
- orrs r0, r1
- mov r1, r8
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r0, 16
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD40C
-
- thumb_func_start sub_80FD4DC
-sub_80FD4DC: @ 80FD4DC
- push {lr}
- ldrh r0, [r0]
- movs r2, 0x1F
- movs r1, 0x1F
- ands r1, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r2
- lsrs r0, 26
- ands r0, r2
- cmp r1, 0x10
- bhi _080FD500
- cmp r3, 0x10
- bhi _080FD500
- cmp r0, 0x10
- bhi _080FD500
- movs r0, 0
- b _080FD502
-_080FD500:
- ldr r0, _080FD508 @ =0x00007fff
-_080FD502:
- pop {r1}
- bx r1
- .align 2, 0
-_080FD508: .4byte 0x00007fff
- thumb_func_end sub_80FD4DC
-
- thumb_func_start sub_80FD50C
-sub_80FD50C: @ 80FD50C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r3, [r4]
- cmp r3, 0
- beq _080FD534
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _080FD526
- adds r0, r2, 0
- b _080FD536
-_080FD526:
- ldrh r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FD534
- ldrh r0, [r4]
- b _080FD536
-_080FD534:
- movs r0, 0
-_080FD536:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD50C
-
- thumb_func_start sub_80FD53C
-sub_80FD53C: @ 80FD53C
- push {r4,lr}
- ldrh r1, [r0]
- movs r0, 0x1F
- movs r3, 0x1F
- ands r3, r1
- lsls r1, 16
- lsrs r2, r1, 21
- lsrs r1, 26
- subs r3, r0, r3
- adds r4, r0, 0
- bics r4, r2
- adds r2, r4, 0
- bics r0, r1
- lsls r0, 10
- lsls r2, 5
- orrs r0, r2
- orrs r0, r3
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD53C
-
- thumb_func_start sub_80FD568
-sub_80FD568: @ 80FD568
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r1, 0
- ldrh r4, [r0]
- ldrh r5, [r7]
- lsls r6, r4, 16
- lsls r0, r5, 16
- mov r12, r0
- cmp r4, r5
- beq _080FD5DA
- mov r2, sp
- movs r3, 0x1F
- movs r1, 0x1F
- adds r0, r1, 0
- ands r0, r4
- strh r0, [r2]
- lsrs r0, r6, 21
- ands r0, r3
- strh r0, [r2, 0x2]
- lsrs r0, r6, 26
- ands r0, r3
- strh r0, [r2, 0x4]
- mov r0, sp
- ands r1, r5
- strh r1, [r0, 0x6]
- mov r1, sp
- mov r2, r12
- lsrs r0, r2, 21
- ands r0, r3
- strh r0, [r1, 0x8]
- lsrs r0, r2, 26
- ands r0, r3
- strh r0, [r1, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0x19
- bls _080FD5C2
- mov r0, sp
- ldrh r0, [r0, 0x2]
- cmp r0, 0x19
- bls _080FD5C2
- mov r0, sp
- ldrh r0, [r0, 0x4]
- cmp r0, 0x19
- bhi _080FD5DA
-_080FD5C2:
- mov r0, sp
- ldrh r0, [r0, 0x6]
- cmp r0, 0x19
- bls _080FD5DE
- mov r0, sp
- ldrh r0, [r0, 0x8]
- cmp r0, 0x19
- bls _080FD5DE
- mov r0, sp
- ldrh r0, [r0, 0xA]
- cmp r0, 0x19
- bls _080FD5DE
-_080FD5DA:
- ldrh r0, [r7]
- b _080FD684
-_080FD5DE:
- movs r4, 0
- add r6, sp, 0xC
- mov r7, sp
- adds r7, 0x6
- adds r5, r6, 0
-_080FD5E8:
- lsls r2, r4, 1
- mov r1, sp
- adds r0, r1, r2
- adds r1, r7, r2
- ldrh r3, [r0]
- ldrh r0, [r1]
- cmp r3, r0
- bls _080FD5FE
- adds r1, r5, r2
- subs r0, r3, r0
- b _080FD602
-_080FD5FE:
- adds r1, r5, r2
- subs r0, r3
-_080FD602:
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _080FD5E8
- adds r1, r6, 0
- ldrh r0, [r1, 0x2]
- ldrh r3, [r1]
- cmp r3, r0
- bcc _080FD628
- ldrh r2, [r1, 0x4]
- cmp r3, r2
- bcc _080FD622
- adds r2, r3, 0
- b _080FD63C
-_080FD622:
- cmp r0, r2
- bcs _080FD62E
- b _080FD636
-_080FD628:
- ldrh r2, [r1, 0x4]
- cmp r0, r2
- bcc _080FD632
-_080FD62E:
- ldrh r2, [r1, 0x2]
- b _080FD63C
-_080FD632:
- cmp r2, r3
- bcc _080FD63A
-_080FD636:
- ldrh r2, [r1, 0x4]
- b _080FD63C
-_080FD63A:
- ldrh r2, [r6]
-_080FD63C:
- mov r0, sp
- ldrh r1, [r0, 0x6]
- lsrs r0, r2, 1
- movs r6, 0x1F
- subs r6, r0
- adds r0, r1, 0
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, sp
- ldrh r0, [r0, 0x8]
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- ldrh r0, [r0, 0xA]
- muls r0, r6
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- lsls r4, 5
- orrs r0, r4
- orrs r5, r0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r5, 0
-_080FD684:
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD568
-
- thumb_func_start sub_80FD68C
-sub_80FD68C: @ 80FD68C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- mov r10, r1
- str r2, [sp]
- ldrh r1, [r3]
- mov r0, r10
- ldrh r0, [r0]
- cmp r1, r0
- bne _080FD6B4
- ldrh r0, [r2]
- cmp r0, r1
- bne _080FD6B4
- mov r1, r10
- ldrh r0, [r1]
- b _080FD79C
-_080FD6B4:
- mov r2, r10
- ldrh r0, [r2]
- movs r1, 0x1F
- mov r9, r1
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- lsls r0, 16
- lsrs r2, r0, 21
- mov r1, r9
- ands r1, r2
- mov r8, r1
- lsrs r0, 26
- mov r2, r9
- ands r2, r0
- str r2, [sp, 0x4]
- ldrh r2, [r3]
- adds r0, r4, 0
- ands r0, r2
- lsls r2, 16
- lsrs r1, r2, 21
- mov r3, r9
- ands r1, r3
- adds r0, r1
- lsrs r2, 26
- ands r2, r3
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- adds r0, r5, r1
- ldr r2, [sp, 0x4]
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- ldrh r1, [r3]
- ands r4, r1
- lsls r1, 16
- lsrs r0, r1, 21
- mov r2, r9
- ands r0, r2
- adds r4, r0
- lsrs r1, 26
- ands r1, r2
- adds r4, r1
- adds r0, r4, 0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r7, r6
- bne _080FD736
- cmp r1, r6
- bne _080FD736
- mov r3, r10
- ldrh r0, [r3]
- b _080FD79C
-_080FD736:
- cmp r7, r6
- bls _080FD73E
- subs r0, r7, r6
- b _080FD740
-_080FD73E:
- subs r0, r6, r7
-_080FD740:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r1, r6
- bls _080FD74C
- subs r0, r1, r6
- b _080FD74E
-_080FD74C:
- subs r0, r6, r1
-_080FD74E:
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- bcc _080FD758
- adds r0, r2, 0
-_080FD758:
- lsrs r0, 1
- movs r4, 0x1F
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r8
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, [sp, 0x4]
- adds r0, r1, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- mov r2, r8
- lsls r1, r2, 5
- orrs r0, r1
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r0, 16
-_080FD79C:
- 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_80FD68C
-
- thumb_func_start sub_80FD7AC
-sub_80FD7AC: @ 80FD7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r3, r0, 0
- mov r10, r1
- str r2, [sp]
- ldrh r1, [r3]
- mov r0, r10
- ldrh r0, [r0]
- cmp r1, r0
- bne _080FD7D4
- ldrh r0, [r2]
- cmp r0, r1
- bne _080FD7D4
- mov r1, r10
- ldrh r0, [r1]
- b _080FD8BA
-_080FD7D4:
- mov r2, r10
- ldrh r0, [r2]
- movs r1, 0x1F
- mov r9, r1
- movs r4, 0x1F
- adds r5, r4, 0
- ands r5, r0
- lsls r0, 16
- lsrs r2, r0, 21
- mov r1, r9
- ands r1, r2
- mov r8, r1
- lsrs r0, 26
- mov r2, r9
- ands r2, r0
- str r2, [sp, 0x4]
- ldrh r2, [r3]
- adds r0, r4, 0
- ands r0, r2
- lsls r2, 16
- lsrs r1, r2, 21
- mov r3, r9
- ands r1, r3
- adds r0, r1
- lsrs r2, 26
- ands r2, r3
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r1, r8
- adds r0, r5, r1
- ldr r2, [sp, 0x4]
- adds r0, r2
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, [sp]
- ldrh r1, [r3]
- ands r4, r1
- lsls r1, 16
- lsrs r0, r1, 21
- mov r2, r9
- ands r0, r2
- adds r4, r0
- lsrs r1, 26
- ands r1, r2
- adds r4, r1
- adds r0, r4, 0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r7, r6
- bne _080FD856
- cmp r1, r6
- bne _080FD856
- mov r3, r10
- ldrh r0, [r3]
- b _080FD8BA
-_080FD856:
- cmp r7, r6
- bls _080FD85E
- subs r0, r7, r6
- b _080FD860
-_080FD85E:
- subs r0, r6, r7
-_080FD860:
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r1, r6
- bls _080FD86C
- subs r0, r1, r6
- b _080FD86E
-_080FD86C:
- subs r0, r6, r1
-_080FD86E:
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- bcc _080FD878
- adds r0, r2, 0
-_080FD878:
- movs r4, 0x1F
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r8
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r1, [sp, 0x4]
- adds r0, r1, 0
- muls r0, r4
- movs r1, 0x1F
- bl __divsi3
- lsls r0, 16
- lsrs r0, 6
- mov r2, r8
- lsls r1, r2, 5
- orrs r0, r1
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r0, 16
-_080FD8BA:
- 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_80FD7AC
-
- thumb_func_start sub_80FD8CC
-sub_80FD8CC: @ 80FD8CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldrb r1, [r0, 0x1D]
- lsrs r5, r1, 3
- ldrb r1, [r0, 0x1E]
- lsrs r1, 3
- str r1, [sp, 0x8]
- ldr r1, [r0, 0x4]
- str r1, [sp]
- ldr r2, [r0, 0x10]
- str r2, [sp, 0x4]
- ldrh r0, [r0, 0x16]
- cmp r0, 0x2
- bne _080FD97C
- movs r1, 0
- ldr r0, [sp, 0x8]
- cmp r1, r0
- bcc _080FD8FA
- b _080FDA08
-_080FD8FA:
- movs r0, 0
- adds r2, r1, 0x1
- mov r10, r2
- cmp r0, r5
- bcs _080FD96E
- adds r2, r1, 0
- muls r2, r5
- mov r9, r2
- lsls r1, 3
- mov r8, r1
-_080FD90E:
- movs r4, 0
- lsls r6, r0, 4
- adds r7, r0, 0x1
- add r0, r9
- lsls r0, 6
- ldr r1, [sp, 0x4]
- adds r1, r0
- mov r12, r1
-_080FD91E:
- lsls r0, r4, 3
- mov r2, r12
- adds r3, r2, r0
- mov r1, r8
- adds r0, r1, r4
- lsls r0, 3
- muls r0, r5
- lsls r0, 1
- ldr r2, [sp]
- adds r0, r2, r0
- adds r2, r0, r6
- ldrh r0, [r2, 0x2]
- lsls r0, 8
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0x6]
- lsls r0, 8
- ldrh r1, [r2, 0x4]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- ldrh r1, [r2, 0x8]
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r0, [r2, 0xE]
- lsls r0, 8
- ldrh r1, [r2, 0xC]
- orrs r0, r1
- strh r0, [r3, 0x6]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080FD91E
- lsls r0, r7, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080FD90E
-_080FD96E:
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bcc _080FD8FA
- b _080FDA08
-_080FD97C:
- movs r1, 0
- ldr r0, [sp, 0x8]
- cmp r1, r0
- bcs _080FDA08
-_080FD984:
- movs r0, 0
- adds r2, r1, 0x1
- mov r10, r2
- cmp r0, r5
- bcs _080FD9FC
- adds r2, r1, 0
- muls r2, r5
- mov r9, r2
- lsls r1, 3
- mov r8, r1
-_080FD998:
- movs r4, 0
- lsls r6, r0, 4
- adds r7, r0, 0x1
- add r0, r9
- lsls r0, 5
- ldr r1, [sp, 0x4]
- adds r1, r0
- mov r12, r1
-_080FD9A8:
- lsls r0, r4, 2
- mov r2, r12
- adds r3, r2, r0
- mov r1, r8
- adds r0, r1, r4
- lsls r0, 3
- muls r0, r5
- lsls r0, 1
- ldr r2, [sp]
- adds r0, r2, r0
- adds r2, r0, r6
- ldrh r1, [r2, 0x2]
- lsls r1, 4
- ldrh r0, [r2]
- orrs r1, r0
- ldrh r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2, 0x6]
- lsls r0, 12
- orrs r1, r0
- strh r1, [r3]
- ldrh r1, [r2, 0xA]
- lsls r1, 4
- ldrh r0, [r2, 0x8]
- orrs r1, r0
- ldrh r0, [r2, 0xC]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2, 0xE]
- lsls r0, 12
- orrs r1, r0
- strh r1, [r3, 0x2]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _080FD9A8
- lsls r0, r7, 16
- lsrs r0, 16
- cmp r0, r5
- bcc _080FD998
-_080FD9FC:
- mov r1, r10
- lsls r0, r1, 16
- lsrs r1, r0, 16
- ldr r2, [sp, 0x8]
- cmp r1, r2
- bcc _080FD984
-_080FDA08:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD8CC
-
- thumb_func_start sub_80FDA18
-sub_80FDA18: @ 80FDA18
- push {lr}
- ldr r2, _080FDA68 @ =gUnknown_03005E0C
- ldrb r1, [r0, 0x18]
- lsls r1, 4
- strh r1, [r2]
- ldr r3, _080FDA6C @ =gUnknown_03005E08
- ldrh r2, [r2]
- lsls r2, 1
- ldr r1, [r0, 0x8]
- adds r1, r2
- str r1, [r3]
- ldr r2, _080FDA70 @ =gUnknown_03005DEC
- ldr r1, [r0, 0x4]
- str r1, [r2]
- ldr r2, _080FDA74 @ =gUnknown_03005DE8
- ldrb r1, [r0, 0x19]
- strb r1, [r2]
- ldr r2, _080FDA78 @ =gUnknown_03005DFC
- ldrb r1, [r0, 0x1A]
- strb r1, [r2]
- ldr r2, _080FDA7C @ =gUnknown_03005DF8
- ldrb r1, [r0, 0x1B]
- strb r1, [r2]
- ldr r2, _080FDA80 @ =gUnknown_03005DF0
- ldrb r1, [r0, 0x1C]
- strb r1, [r2]
- ldr r2, _080FDA84 @ =gUnknown_03005E04
- ldrb r1, [r0, 0x1D]
- strb r1, [r2]
- ldr r2, _080FDA88 @ =gUnknown_03005DF4
- ldrb r1, [r0, 0x1E]
- strb r1, [r2]
- ldrh r0, [r0, 0x14]
- cmp r0, 0x5
- bhi _080FDADE
- lsls r0, 2
- ldr r1, _080FDA8C @ =_080FDA90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FDA68: .4byte gUnknown_03005E0C
-_080FDA6C: .4byte gUnknown_03005E08
-_080FDA70: .4byte gUnknown_03005DEC
-_080FDA74: .4byte gUnknown_03005DE8
-_080FDA78: .4byte gUnknown_03005DFC
-_080FDA7C: .4byte gUnknown_03005DF8
-_080FDA80: .4byte gUnknown_03005DF0
-_080FDA84: .4byte gUnknown_03005E04
-_080FDA88: .4byte gUnknown_03005DF4
-_080FDA8C: .4byte _080FDA90
- .align 2, 0
-_080FDA90:
- .4byte _080FDAA8
- .4byte _080FDAB0
- .4byte _080FDAB8
- .4byte _080FDAC2
- .4byte _080FDACC
- .4byte _080FDAD6
-_080FDAA8:
- movs r0, 0
- bl sub_80FDC18
- b _080FDADE
-_080FDAB0:
- movs r0, 0x1
- bl sub_80FDC18
- b _080FDADE
-_080FDAB8:
- bl sub_80FDAE4
- bl sub_80FDF88
- b _080FDADE
-_080FDAC2:
- bl sub_80FDBE4
- bl sub_80FDED8
- b _080FDADE
-_080FDACC:
- bl sub_80FDBA8
- bl sub_80FDE28
- b _080FDADE
-_080FDAD6:
- bl sub_80FDB8C
- bl sub_80FDD70
-_080FDADE:
- pop {r0}
- bx r0
- thumb_func_end sub_80FDA18
-
- thumb_func_start sub_80FDAE4
-sub_80FDAE4: @ 80FDAE4
- ldr r2, _080FDB4C @ =gUnknown_03005E08
- ldr r1, [r2]
- movs r0, 0
- strh r0, [r1]
- ldr r0, [r2]
- ldr r2, _080FDB50 @ =0x000018c6
- adds r1, r2, 0
- strh r1, [r0, 0x2]
- ldr r2, _080FDB54 @ =0x000077bd
- adds r1, r2, 0
- strh r1, [r0, 0x4]
- ldr r2, _080FDB58 @ =0x00002d6b
- adds r1, r2, 0
- strh r1, [r0, 0x6]
- ldr r2, _080FDB5C @ =0x000018dd
- adds r1, r2, 0
- strh r1, [r0, 0x8]
- ldr r2, _080FDB60 @ =0x00001ba6
- adds r1, r2, 0
- strh r1, [r0, 0xA]
- ldr r2, _080FDB64 @ =0x000074c6
- adds r1, r2, 0
- strh r1, [r0, 0xC]
- ldr r2, _080FDB68 @ =0x00001bbd
- adds r1, r2, 0
- strh r1, [r0, 0xE]
- ldr r2, _080FDB6C @ =0x000074dd
- adds r1, r2, 0
- strh r1, [r0, 0x10]
- ldr r2, _080FDB70 @ =0x000077a6
- adds r1, r2, 0
- strh r1, [r0, 0x12]
- ldr r2, _080FDB74 @ =0x0000197d
- adds r1, r2, 0
- strh r1, [r0, 0x14]
- ldr r2, _080FDB78 @ =0x00001bab
- adds r1, r2, 0
- strh r1, [r0, 0x16]
- ldr r2, _080FDB7C @ =0x00007566
- adds r1, r2, 0
- strh r1, [r0, 0x18]
- ldr r2, _080FDB80 @ =0x00002cdd
- adds r1, r2, 0
- strh r1, [r0, 0x1A]
- ldr r2, _080FDB84 @ =0x00002fa6
- adds r1, r2, 0
- strh r1, [r0, 0x1C]
- ldr r2, _080FDB88 @ =0x000074cb
- adds r1, r2, 0
- strh r1, [r0, 0x1E]
- bx lr
- .align 2, 0
-_080FDB4C: .4byte gUnknown_03005E08
-_080FDB50: .4byte 0x000018c6
-_080FDB54: .4byte 0x000077bd
-_080FDB58: .4byte 0x00002d6b
-_080FDB5C: .4byte 0x000018dd
-_080FDB60: .4byte 0x00001ba6
-_080FDB64: .4byte 0x000074c6
-_080FDB68: .4byte 0x00001bbd
-_080FDB6C: .4byte 0x000074dd
-_080FDB70: .4byte 0x000077a6
-_080FDB74: .4byte 0x0000197d
-_080FDB78: .4byte 0x00001bab
-_080FDB7C: .4byte 0x00007566
-_080FDB80: .4byte 0x00002cdd
-_080FDB84: .4byte 0x00002fa6
-_080FDB88: .4byte 0x000074cb
- thumb_func_end sub_80FDAE4
-
- thumb_func_start sub_80FDB8C
-sub_80FDB8C: @ 80FDB8C
- ldr r2, _080FDBA0 @ =gUnknown_03005E08
- ldr r0, [r2]
- movs r1, 0
- strh r1, [r0]
- ldr r2, [r2]
- strh r1, [r2, 0x2]
- ldr r1, _080FDBA4 @ =0x00007fff
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_080FDBA0: .4byte gUnknown_03005E08
-_080FDBA4: .4byte 0x00007fff
- thumb_func_end sub_80FDB8C
-
- thumb_func_start sub_80FDBA8
-sub_80FDBA8: @ 80FDBA8
- push {r4,r5,lr}
- ldr r1, _080FDBE0 @ =gUnknown_03005E08
- ldr r0, [r1]
- movs r2, 0
- strh r2, [r0]
- ldr r0, [r1]
- strh r2, [r0, 0x2]
- movs r4, 0
- adds r5, r1, 0
-_080FDBBA:
- ldr r0, [r5]
- lsls r2, r4, 1
- adds r2, r0
- adds r0, r4, 0x2
- lsls r3, r0, 1
- lsls r1, r0, 11
- lsls r0, 6
- orrs r1, r0
- orrs r1, r3
- strh r1, [r2, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xD
- bls _080FDBBA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDBE0: .4byte gUnknown_03005E08
- thumb_func_end sub_80FDBA8
-
- thumb_func_start sub_80FDBE4
-sub_80FDBE4: @ 80FDBE4
- push {r4,lr}
- ldr r2, _080FDC14 @ =gUnknown_03005E08
- ldr r1, [r2]
- movs r0, 0
- strh r0, [r1]
- movs r3, 0
- adds r4, r2, 0
-_080FDBF2:
- ldr r0, [r4]
- lsls r2, r3, 1
- adds r2, r0
- lsls r0, r3, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r0, r3
- strh r0, [r2, 0x2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _080FDBF2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDC14: .4byte gUnknown_03005E08
- thumb_func_end sub_80FDBE4
-
- thumb_func_start sub_80FDC18
-sub_80FDC18: @ 80FDC18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- movs r1, 0xDF
- mov r9, r1
- cmp r0, 0
- bne _080FDC30
- movs r2, 0xFF
- mov r9, r2
-_080FDC30:
- movs r6, 0
- ldr r3, _080FDCB4 @ =gUnknown_03005E08
- mov r12, r3
- mov r0, r9
- lsls r4, r0, 1
- ldr r5, _080FDCB8 @ =gUnknown_03005DF0
- cmp r6, r9
- bcs _080FDC54
- movs r2, 0
-_080FDC42:
- ldr r0, [r3]
- lsls r1, r6, 1
- adds r1, r0
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r9
- bcc _080FDC42
-_080FDC54:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4, r0
- ldr r2, _080FDCBC @ =0x00003def
- adds r1, r2, 0
- strh r1, [r0]
- movs r3, 0
- ldrb r5, [r5]
- cmp r3, r5
- bcs _080FDD58
-_080FDC68:
- ldr r2, _080FDCC0 @ =gUnknown_03005DEC
- ldr r0, _080FDCC4 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r3
- ldr r0, _080FDCC8 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- ldr r1, [r2]
- adds r1, r0
- ldr r0, _080FDCCC @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r6, 0
- ldr r0, _080FDCD0 @ =gUnknown_03005DF8
- adds r2, r0, 0
- adds r3, 0x1
- mov r10, r3
- ldrb r3, [r2]
- cmp r6, r3
- bcs _080FDD4A
- ldr r0, _080FDCD4 @ =gUnknown_03005E0C
- mov r8, r0
-_080FDC98:
- ldrh r0, [r4]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FDCD8
- mov r1, r8
- ldrh r0, [r1]
- strh r0, [r4]
- adds r6, 0x1
- adds r7, r4, 0x2
- b _080FDD3E
- .align 2, 0
-_080FDCB4: .4byte gUnknown_03005E08
-_080FDCB8: .4byte gUnknown_03005DF0
-_080FDCBC: .4byte 0x00003def
-_080FDCC0: .4byte gUnknown_03005DEC
-_080FDCC4: .4byte gUnknown_03005DFC
-_080FDCC8: .4byte gUnknown_03005E04
-_080FDCCC: .4byte gUnknown_03005DE8
-_080FDCD0: .4byte gUnknown_03005DF8
-_080FDCD4: .4byte gUnknown_03005E0C
-_080FDCD8:
- adds r0, r4, 0
- bl sub_80FE038
- lsls r0, 16
- lsrs r5, r0, 16
- movs r3, 0x1
- adds r6, 0x1
- adds r7, r4, 0x2
- cmp r3, r9
- bcs _080FDD34
- ldr r0, _080FDD04 @ =gUnknown_03005E08
- ldr r2, [r0]
- ldrh r1, [r2, 0x2]
- mov r12, r0
- cmp r1, 0
- bne _080FDD08
- strh r5, [r2, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- adds r0, 0x1
- b _080FDD32
- .align 2, 0
-_080FDD04: .4byte gUnknown_03005E08
-_080FDD08:
- mov r2, r12
- ldr r1, [r2]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _080FDD2C
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r9
- bcs _080FDD34
- lsls r0, r3, 1
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- bne _080FDD08
- strh r5, [r1]
-_080FDD2C:
- mov r1, r8
- ldrh r0, [r1]
- adds r0, r3
-_080FDD32:
- strh r0, [r4]
-_080FDD34:
- ldr r2, _080FDD68 @ =gUnknown_03005DF8
- cmp r3, r9
- bne _080FDD3E
- mov r3, r9
- strh r3, [r4]
-_080FDD3E:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r4, r7, 0
- ldrb r0, [r2]
- cmp r6, r0
- bcc _080FDC98
-_080FDD4A:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r3, r0, 24
- ldr r0, _080FDD6C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r3, r0
- bcc _080FDC68
-_080FDD58:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDD68: .4byte gUnknown_03005DF8
-_080FDD6C: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDC18
-
- thumb_func_start sub_80FDD70
-sub_80FDD70: @ 80FDD70
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r2, 0
- ldr r0, _080FDDC4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDE14
- ldr r0, _080FDDC8 @ =gUnknown_03005DEC
- mov r8, r0
-_080FDD84:
- ldr r0, _080FDDCC @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDDD0 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDDD4 @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r6, 0
- ldr r0, _080FDDD8 @ =gUnknown_03005DF8
- adds r3, r0, 0
- adds r7, r2, 0x1
- ldrb r0, [r3]
- cmp r6, r0
- bcs _080FDE08
- ldr r5, _080FDDDC @ =gUnknown_03005E0C
-_080FDDB0:
- ldrh r0, [r4]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080FDDE0
- ldrh r0, [r5]
- strh r0, [r4]
- b _080FDDFA
- .align 2, 0
-_080FDDC4: .4byte gUnknown_03005DF0
-_080FDDC8: .4byte gUnknown_03005DEC
-_080FDDCC: .4byte gUnknown_03005DFC
-_080FDDD0: .4byte gUnknown_03005E04
-_080FDDD4: .4byte gUnknown_03005DE8
-_080FDDD8: .4byte gUnknown_03005DF8
-_080FDDDC: .4byte gUnknown_03005E0C
-_080FDDE0:
- adds r0, r4, 0
- bl sub_80FD4DC
- lsls r0, 16
- cmp r0, 0
- bne _080FDDF2
- ldrh r0, [r5]
- adds r0, 0x1
- b _080FDDF6
-_080FDDF2:
- ldrh r0, [r5]
- adds r0, 0x2
-_080FDDF6:
- strh r0, [r4]
- ldr r3, _080FDE20 @ =gUnknown_03005DF8
-_080FDDFA:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, 0x2
- ldrb r0, [r3]
- cmp r6, r0
- bcc _080FDDB0
-_080FDE08:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDE24 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDD84
-_080FDE14:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDE20: .4byte gUnknown_03005DF8
-_080FDE24: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDD70
-
- thumb_func_start sub_80FDE28
-sub_80FDE28: @ 80FDE28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDE7C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDEC4
- ldr r0, _080FDE80 @ =gUnknown_03005DEC
- mov r8, r0
-_080FDE3E:
- ldr r0, _080FDE84 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDE88 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDE8C @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDE90 @ =gUnknown_03005DF8
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FDEB8
- ldr r6, _080FDE94 @ =gUnknown_03005E0C
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDE6E:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDE98
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FDEA8
- .align 2, 0
-_080FDE7C: .4byte gUnknown_03005DF0
-_080FDE80: .4byte gUnknown_03005DEC
-_080FDE84: .4byte gUnknown_03005DFC
-_080FDE88: .4byte gUnknown_03005E04
-_080FDE8C: .4byte gUnknown_03005DE8
-_080FDE90: .4byte gUnknown_03005DF8
-_080FDE94: .4byte gUnknown_03005E0C
-_080FDE98:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE17C
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FDEA8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FDED0 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDE6E
-_080FDEB8:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDED4 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDE3E
-_080FDEC4:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDED0: .4byte gUnknown_03005DF8
-_080FDED4: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDE28
-
- thumb_func_start sub_80FDED8
-sub_80FDED8: @ 80FDED8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDF2C @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FDF74
- ldr r0, _080FDF30 @ =gUnknown_03005DEC
- mov r8, r0
-_080FDEEE:
- ldr r0, _080FDF34 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDF38 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDF3C @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDF40 @ =gUnknown_03005DF8
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FDF68
- ldr r6, _080FDF44 @ =gUnknown_03005E0C
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDF1E:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDF48
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FDF58
- .align 2, 0
-_080FDF2C: .4byte gUnknown_03005DF0
-_080FDF30: .4byte gUnknown_03005DEC
-_080FDF34: .4byte gUnknown_03005DFC
-_080FDF38: .4byte gUnknown_03005E04
-_080FDF3C: .4byte gUnknown_03005DE8
-_080FDF40: .4byte gUnknown_03005DF8
-_080FDF44: .4byte gUnknown_03005E0C
-_080FDF48:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE1B0
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FDF58:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FDF80 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDF1E
-_080FDF68:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FDF84 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDEEE
-_080FDF74:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FDF80: .4byte gUnknown_03005DF8
-_080FDF84: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDED8
-
- thumb_func_start sub_80FDF88
-sub_80FDF88: @ 80FDF88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r2, 0
- ldr r0, _080FDFDC @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcs _080FE024
- ldr r0, _080FDFE0 @ =gUnknown_03005DEC
- mov r8, r0
-_080FDF9E:
- ldr r0, _080FDFE4 @ =gUnknown_03005DFC
- ldrb r1, [r0]
- adds r1, r2
- ldr r0, _080FDFE8 @ =gUnknown_03005E04
- ldrb r0, [r0]
- muls r0, r1
- lsls r0, 1
- mov r3, r8
- ldr r1, [r3]
- adds r1, r0
- ldr r0, _080FDFEC @ =gUnknown_03005DE8
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r1, r0
- movs r5, 0
- ldr r0, _080FDFF0 @ =gUnknown_03005DF8
- adds r7, r2, 0x1
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080FE018
- ldr r6, _080FDFF4 @ =gUnknown_03005E0C
- movs r0, 0x80
- lsls r0, 8
- adds r2, r0, 0
-_080FDFCE:
- ldrh r0, [r4]
- ands r0, r2
- cmp r0, 0
- beq _080FDFF8
- ldrh r0, [r6]
- strh r0, [r4]
- b _080FE008
- .align 2, 0
-_080FDFDC: .4byte gUnknown_03005DF0
-_080FDFE0: .4byte gUnknown_03005DEC
-_080FDFE4: .4byte gUnknown_03005DFC
-_080FDFE8: .4byte gUnknown_03005E04
-_080FDFEC: .4byte gUnknown_03005DE8
-_080FDFF0: .4byte gUnknown_03005DF8
-_080FDFF4: .4byte gUnknown_03005E0C
-_080FDFF8:
- adds r0, r4, 0
- str r2, [sp]
- bl sub_80FE0AC
- ldrh r1, [r6]
- adds r0, r1
- strh r0, [r4]
- ldr r2, [sp]
-_080FE008:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x2
- ldr r0, _080FE030 @ =gUnknown_03005DF8
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080FDFCE
-_080FE018:
- lsls r0, r7, 24
- lsrs r2, r0, 24
- ldr r0, _080FE034 @ =gUnknown_03005DF0
- ldrb r0, [r0]
- cmp r2, r0
- bcc _080FDF9E
-_080FE024:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE030: .4byte gUnknown_03005DF8
-_080FE034: .4byte gUnknown_03005DF0
- thumb_func_end sub_80FDF88
-
- thumb_func_start sub_80FE038
-sub_80FE038: @ 80FE038
- push {r4,lr}
- ldrh r0, [r0]
- movs r1, 0x1F
- movs r4, 0x1F
- ands r4, r0
- lsls r0, 16
- lsrs r3, r0, 21
- ands r3, r1
- lsrs r2, r0, 26
- ands r2, r1
- movs r1, 0x3
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE05C
- movs r0, 0x1C
- ands r0, r4
- adds r4, r0, 0x4
-_080FE05C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE06A
- movs r0, 0x1C
- ands r0, r3
- adds r3, r0, 0x4
-_080FE06A:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE078
- movs r0, 0x1C
- ands r0, r2
- adds r2, r0, 0x4
-_080FE078:
- cmp r4, 0x5
- bhi _080FE07E
- movs r4, 0x6
-_080FE07E:
- cmp r4, 0x1E
- bls _080FE084
- movs r4, 0x1E
-_080FE084:
- cmp r3, 0x5
- bhi _080FE08A
- movs r3, 0x6
-_080FE08A:
- cmp r3, 0x1E
- bls _080FE090
- movs r3, 0x1E
-_080FE090:
- cmp r2, 0x5
- bhi _080FE096
- movs r2, 0x6
-_080FE096:
- cmp r2, 0x1E
- bls _080FE09C
- movs r2, 0x1E
-_080FE09C:
- lsls r0, r2, 10
- lsls r1, r3, 5
- orrs r0, r1
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FE038
-
- thumb_func_start sub_80FE0AC
-sub_80FE0AC: @ 80FE0AC
- push {lr}
- ldrh r0, [r0]
- movs r1, 0x1F
- movs r3, 0x1F
- ands r3, r0
- lsls r0, 16
- lsrs r2, r0, 21
- ands r2, r1
- lsrs r0, 26
- ands r0, r1
- cmp r3, 0xB
- bhi _080FE0D0
- cmp r2, 0xA
- bhi _080FE0D0
- cmp r0, 0xA
- bhi _080FE0D0
- movs r0, 0x1
- b _080FE176
-_080FE0D0:
- cmp r3, 0x13
- bls _080FE0F4
- cmp r2, 0x13
- bls _080FE0DC
- cmp r0, 0x13
- bhi _080FE100
-_080FE0DC:
- cmp r3, 0x13
- bls _080FE0F4
- cmp r2, 0x13
- bls _080FE0EA
- cmp r0, 0xE
- bhi _080FE100
- b _080FE138
-_080FE0EA:
- cmp r0, 0x13
- bls _080FE0F4
- cmp r2, 0xE
- bhi _080FE100
- b _080FE114
-_080FE0F4:
- cmp r2, 0x13
- bls _080FE104
- cmp r0, 0x13
- bls _080FE104
- cmp r3, 0xE
- bls _080FE15C
-_080FE100:
- movs r0, 0x2
- b _080FE176
-_080FE104:
- cmp r3, 0x13
- bls _080FE128
- cmp r2, 0xB
- bls _080FE11C
- cmp r0, 0xB
- bls _080FE118
- cmp r2, r0
- bcs _080FE138
-_080FE114:
- movs r0, 0x8
- b _080FE176
-_080FE118:
- movs r0, 0xA
- b _080FE176
-_080FE11C:
- cmp r0, 0xB
- bls _080FE124
- movs r0, 0xD
- b _080FE176
-_080FE124:
- movs r0, 0x4
- b _080FE176
-_080FE128:
- cmp r2, 0x13
- bls _080FE14C
- cmp r3, 0xB
- bls _080FE140
- cmp r0, 0xB
- bls _080FE13C
- cmp r3, r0
- bcc _080FE15C
-_080FE138:
- movs r0, 0x7
- b _080FE176
-_080FE13C:
- movs r0, 0xB
- b _080FE176
-_080FE140:
- cmp r0, 0xB
- bls _080FE148
- movs r0, 0xE
- b _080FE176
-_080FE148:
- movs r0, 0x5
- b _080FE176
-_080FE14C:
- cmp r0, 0x13
- bls _080FE174
- cmp r3, 0xB
- bls _080FE160
- cmp r2, 0xB
- bls _080FE168
- cmp r3, r2
- bcs _080FE114
-_080FE15C:
- movs r0, 0x9
- b _080FE176
-_080FE160:
- cmp r2, 0xB
- bls _080FE168
- movs r0, 0xC
- b _080FE176
-_080FE168:
- cmp r0, 0xB
- bls _080FE170
- movs r0, 0xF
- b _080FE176
-_080FE170:
- movs r0, 0x6
- b _080FE176
-_080FE174:
- movs r0, 0x3
-_080FE176:
- pop {r1}
- bx r1
- thumb_func_end sub_80FE0AC
-
- thumb_func_start sub_80FE17C
-sub_80FE17C: @ 80FE17C
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x1E
- ands r0, r1
- lsls r0, 16
- cmp r0, 0
- beq _080FE1A8
- lsrs r0, 17
- b _080FE1AA
-_080FE1A8:
- movs r0, 0x1
-_080FE1AA:
- pop {r1}
- bx r1
- thumb_func_end sub_80FE17C
-
- thumb_func_start sub_80FE1B0
-sub_80FE1B0: @ 80FE1B0
- push {lr}
- ldrh r1, [r0]
- movs r3, 0x1F
- movs r0, 0x1F
- ands r0, r1
- lsls r1, 16
- lsrs r2, r1, 21
- ands r2, r3
- lsrs r1, 26
- ands r1, r3
- adds r0, r2
- adds r0, r1
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80FE1B0
-
- thumb_func_start sub_80FE1DC
-sub_80FE1DC: @ 80FE1DC
- push {lr}
- sub sp, 0x8
- bl sub_80FE2B4
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _080FE218 @ =gUnknown_083EC604
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- ldr r0, _080FE21C @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE218: .4byte gUnknown_083EC604
-_080FE21C: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE1DC
-
- thumb_func_start sub_80FE220
-sub_80FE220: @ 80FE220
- push {lr}
- ldr r1, _080FE238 @ =gUnknown_020388D4
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- bl sub_80FE1DC
- bl sub_80FE394
- pop {r0}
- bx r0
- .align 2, 0
-_080FE238: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE220
-
- thumb_func_start sub_80FE23C
-sub_80FE23C: @ 80FE23C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80FE220
- ldr r1, _080FE25C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE260 @ =sub_80FE2EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE25C: .4byte gTasks
-_080FE260: .4byte sub_80FE2EC
- thumb_func_end sub_80FE23C
-
- thumb_func_start sub_80FE264
-sub_80FE264: @ 80FE264
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE23C
- ldr r1, _080FE284 @ =0x0201f000
- ldr r0, _080FE288 @ =gSaveBlock1 + 0x1A1A
- str r0, [r1]
- adds r0, 0x10
- str r0, [r1, 0x4]
- movs r2, 0
- movs r0, 0x10
- strb r0, [r1, 0x8]
- strb r2, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE284: .4byte 0x0201f000
-_080FE288: .4byte gSaveBlock1 + 0x1A1A
- thumb_func_end sub_80FE264
-
- thumb_func_start sub_80FE28C
-sub_80FE28C: @ 80FE28C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE23C
- ldr r1, _080FE2AC @ =0x0201f000
- ldr r0, _080FE2B0 @ =gSaveBlock1 + 0x2688
- str r0, [r1]
- adds r0, 0xC
- str r0, [r1, 0x4]
- movs r0, 0xC
- strb r0, [r1, 0x8]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2AC: .4byte 0x0201f000
-_080FE2B0: .4byte gSaveBlock1 + 0x2688
- thumb_func_end sub_80FE28C
-
- thumb_func_start sub_80FE2B4
-sub_80FE2B4: @ 80FE2B4
- push {lr}
- sub sp, 0x8
- ldr r1, _080FE2E8 @ =gUnknown_083EC654
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FE2E8: .4byte gUnknown_083EC654
- thumb_func_end sub_80FE2B4
-
- thumb_func_start sub_80FE2EC
-sub_80FE2EC: @ 80FE2EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r0, _080FE368 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r5, 0x80
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _080FE38C
- ldr r4, _080FE36C @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE324
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE324:
- ldrh r1, [r4, 0x2E]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE342
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _080FE370 @ =gUnknown_020388D4
- strb r0, [r1]
- bl sub_80FE394
-_080FE342:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE378
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FE374 @ =gUnknown_083EC604
- ldr r0, _080FE370 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _080FE38C
- .align 2, 0
-_080FE368: .4byte gPaletteFade
-_080FE36C: .4byte gMain
-_080FE370: .4byte gUnknown_020388D4
-_080FE374: .4byte gUnknown_083EC604
-_080FE378:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE38C
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl gpu_pal_decompress_alloc_tag_and_upload
-_080FE38C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE2EC
-
- thumb_func_start sub_80FE394
-sub_80FE394: @ 80FE394
- push {lr}
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _080FE3BC @ =gUnknown_083EC624
- ldr r0, _080FE3C0 @ =gUnknown_020388D4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_080FE3BC: .4byte gUnknown_083EC624
-_080FE3C0: .4byte gUnknown_020388D4
- thumb_func_end sub_80FE394
-
- thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
-gpu_pal_decompress_alloc_tag_and_upload: @ 80FE3C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- movs r0, 0x6
- bl FreeSpritePaletteByTag
- ldr r0, _080FE404 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _080FE40C
- ldr r0, _080FE408 @ =gUnknown_0815F399
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- b _080FE412
- .align 2, 0
-_080FE404: .4byte 0x0201f000
-_080FE408: .4byte gUnknown_0815F399
-_080FE40C:
- adds r0, r4, 0
- bl sub_8139E24
-_080FE412:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
-
- thumb_func_start sub_80FE418
-sub_80FE418: @ 80FE418
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE5AC
- pop {r0}
- bx r0
- thumb_func_end sub_80FE418
-
- thumb_func_start sub_80FE428
-sub_80FE428: @ 80FE428
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FE464 @ =gUnknown_020388D4
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- bl sub_80FE394
- ldr r1, _080FE468 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE46C @ =sub_80FE2EC
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE464: .4byte gUnknown_020388D4
-_080FE468: .4byte gTasks
-_080FE46C: .4byte sub_80FE2EC
- thumb_func_end sub_80FE428
-
- thumb_func_start sub_80FE470
-sub_80FE470: @ 80FE470
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- mov r8, r1
- mov r9, r2
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8072CBC
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r7, _080FE51C @ =gStringVar4
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x5
- mov r10, r0
- strb r0, [r7, 0x1]
- strb r5, [r7, 0x2]
- adds r7, 0x3
- ldr r1, _080FE520 @ =gUnknown_083EC5E4
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- bl sub_8134194
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- movs r2, 0x56
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- ldr r0, _080FE524 @ =gDecorationInventories
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x4]
- adds r0, r7, 0
- movs r2, 0x68
- movs r3, 0x1
- bl sub_8072C14
- adds r7, r0, 0
- movs r0, 0xFC
- strb r0, [r7]
- mov r0, r10
- strb r0, [r7, 0x1]
- strb r6, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- ldr r0, _080FE51C @ =gStringVar4
- mov r1, r8
- mov r2, r9
- bl MenuPrint
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE51C: .4byte gStringVar4
-_080FE520: .4byte gUnknown_083EC5E4
-_080FE524: .4byte gDecorationInventories
- thumb_func_end sub_80FE470
-
- thumb_func_start sub_80FE528
-sub_80FE528: @ 80FE528
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r5, 0
- ldr r1, _080FE574 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
-_080FE548:
- ldr r0, _080FE578 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FE57C
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FE57C
- cmp r5, 0x6
- beq _080FE57C
- cmp r5, 0x7
- beq _080FE57C
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xD
- bl sub_80FE470
- b _080FE58E
- .align 2, 0
-_080FE574: .4byte gTasks
-_080FE578: .4byte 0x0201f000
-_080FE57C:
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0xFF
- bl sub_80FE470
-_080FE58E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _080FE548
- ldr r0, _080FE5A8 @ =gUnknownText_Exit
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5A8: .4byte gUnknownText_Exit
- thumb_func_end sub_80FE528
-
- thumb_func_start sub_80FE5AC
-sub_80FE5AC: @ 80FE5AC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE528
- ldr r0, _080FE5F8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _080FE5FC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE600 @ =sub_80FE604
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE5F8: .4byte gUnknown_020388F6
-_080FE5FC: .4byte gTasks
-_080FE600: .4byte sub_80FE604
- thumb_func_end sub_80FE5AC
-
- thumb_func_start sub_80FE604
-sub_80FE604: @ 80FE604
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _080FE638 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE61C
- b _080FE720
-_080FE61C:
- ldr r2, _080FE63C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080FE640
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080FE720
- .align 2, 0
-_080FE638: .4byte gPaletteFade
-_080FE63C: .4byte gMain
-_080FE640:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080FE656
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _080FE720
-_080FE656:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FE70C
- movs r0, 0x5
- bl PlaySE
- bl GetMenuCursorPos
- ldr r4, _080FE6C0 @ =gUnknown_020388F6
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _080FE704
- ldrb r0, [r4]
- bl sub_8134194
- ldr r1, _080FE6C4 @ =gUnknown_020388D5
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _080FE6DC
- ldrb r0, [r4]
- bl sub_8134104
- ldr r2, _080FE6C8 @ =gUnknown_020388D0
- ldr r1, _080FE6CC @ =gDecorationInventories
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_80FEF50
- bl sub_80F944C
- ldr r0, _080FE6D0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9480
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, _080FE6D4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE6D8 @ =sub_80FE868
- str r1, [r0]
- b _080FE720
- .align 2, 0
-_080FE6C0: .4byte gUnknown_020388F6
-_080FE6C4: .4byte gUnknown_020388D5
-_080FE6C8: .4byte gUnknown_020388D0
-_080FE6CC: .4byte gDecorationInventories
-_080FE6D0: .4byte gUnknown_020388F7
-_080FE6D4: .4byte gTasks
-_080FE6D8: .4byte sub_80FE868
-_080FE6DC:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE6FC @ =gSecretBaseText_NoDecors
- ldr r2, _080FE700 @ =sub_80FE418
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FE720
- .align 2, 0
-_080FE6FC: .4byte gSecretBaseText_NoDecors
-_080FE700: .4byte sub_80FE418
-_080FE704:
- adds r0, r5, 0
- bl sub_80FE728
- b _080FE720
-_080FE70C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FE720
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80FE728
-_080FE720:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE604
-
- thumb_func_start sub_80FE728
-sub_80FE728: @ 80FE728
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080FE748 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- beq _080FE74C
- adds r0, r2, 0
- bl sub_80FE758
- b _080FE752
- .align 2, 0
-_080FE748: .4byte gTasks
-_080FE74C:
- adds r0, r2, 0
- bl sub_8109DAC
-_080FE752:
- pop {r0}
- bx r0
- thumb_func_end sub_80FE728
-
- thumb_func_start sub_80FE758
-sub_80FE758: @ 80FE758
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080FE794 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- beq _080FE79C
- bl sub_80FE1DC
- bl MenuDisplayMessageBox
- bl sub_80FE394
- ldr r0, _080FE798 @ =sub_80FE2EC
- str r0, [r5]
- b _080FE7A2
- .align 2, 0
-_080FE794: .4byte gTasks
-_080FE798: .4byte sub_80FE2EC
-_080FE79C:
- adds r0, r4, 0
- bl sub_80B3068
-_080FE7A2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE758
-
- thumb_func_start sub_80FE7A8
-sub_80FE7A8: @ 80FE7A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FE7CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x1E]
- ldr r1, _080FE7D0 @ =gUnknown_020388F6
- strb r3, [r1]
- bl sub_80FE5AC
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7CC: .4byte gTasks
-_080FE7D0: .4byte gUnknown_020388F6
- thumb_func_end sub_80FE7A8
-
- thumb_func_start sub_80FE7D4
-sub_80FE7D4: @ 80FE7D4
- push {lr}
- lsls r1, 24
- ldr r2, _080FE7E8 @ =gUnknown_083EC5E4
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_080FE7E8: .4byte gUnknown_083EC5E4
- thumb_func_end sub_80FE7D4
-
- thumb_func_start sub_80FE7EC
-sub_80FE7EC: @ 80FE7EC
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FEC94
- ldr r0, _080FE858 @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_80FECB8
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r4, _080FE85C @ =gUnknown_020388F2
- ldr r0, _080FE860 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- ldr r0, _080FE864 @ =gUnknown_020388F3
- ldrb r3, [r0]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE858: .4byte gUnknown_020388F6
-_080FE85C: .4byte gUnknown_020388F2
-_080FE860: .4byte gUnknown_020388F4
-_080FE864: .4byte gUnknown_020388F3
- thumb_func_end sub_80FE7EC
-
- thumb_func_start sub_80FE868
-sub_80FE868: @ 80FE868
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80FE7EC
- ldr r1, _080FE88C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FE890 @ =sub_80FE948
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FE88C: .4byte gTasks
-_080FE890: .4byte sub_80FE948
- thumb_func_end sub_80FE868
-
- thumb_func_start sub_80FE894
-sub_80FE894: @ 80FE894
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0
- mov r10, r0
- ldr r6, _080FE920 @ =gUnknown_020388F2
- ldrb r1, [r6]
- ldr r4, _080FE924 @ =gUnknown_020388F4
- ldrb r0, [r4]
- adds r1, r0
- ldr r2, _080FE928 @ =gUnknown_020388D5
- mov r9, r2
- ldrb r0, [r2]
- cmp r1, r0
- bne _080FE8C8
- movs r1, 0x1
- mov r10, r1
-_080FE8C8:
- movs r0, 0x5
- bl PlaySE
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0
- beq _080FE8DC
- bl MoveMenuCursor
- strb r0, [r6]
-_080FE8DC:
- cmp r7, 0
- beq _080FE8EE
- ldrb r0, [r4]
- adds r0, r7
- strb r0, [r4]
- mov r0, r8
- movs r1, 0x1
- bl sub_80FEABC
-_080FE8EE:
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r0, r1
- mov r2, r9
- ldrb r2, [r2]
- cmp r0, r2
- beq _080FE92C
- mov r0, r10
- cmp r0, 0
- beq _080FE90E
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
-_080FE90E:
- ldrb r0, [r4]
- ldrb r6, [r6]
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FECE0
- b _080FE938
- .align 2, 0
-_080FE920: .4byte gUnknown_020388F2
-_080FE924: .4byte gUnknown_020388F4
-_080FE928: .4byte gUnknown_020388D5
-_080FE92C:
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
-_080FE938:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE894
-
- thumb_func_start sub_80FE948
-sub_80FE948: @ 80FE948
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FE980 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080FE95C
- b _080FEAAC
-_080FE95C:
- ldr r0, _080FE984 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x40
- bne _080FE9A0
- ldr r0, _080FE988 @ =gUnknown_020388F2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE98C
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FE894
- b _080FE9A0
- .align 2, 0
-_080FE980: .4byte gPaletteFade
-_080FE984: .4byte gMain
-_080FE988: .4byte gUnknown_020388F2
-_080FE98C:
- ldr r0, _080FE9C4 @ =gUnknown_020388F4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FE9A0
- movs r2, 0x1
- negs r2, r2
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FE894
-_080FE9A0:
- ldr r0, _080FE9C8 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x80
- bne _080FE9EE
- ldr r2, _080FE9CC @ =gUnknown_020388F2
- ldr r1, _080FE9D0 @ =gUnknown_020388F3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9D4
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_80FE894
- b _080FE9EE
- .align 2, 0
-_080FE9C4: .4byte gUnknown_020388F4
-_080FE9C8: .4byte gMain
-_080FE9CC: .4byte gUnknown_020388F2
-_080FE9D0: .4byte gUnknown_020388F3
-_080FE9D4:
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- ldrb r1, [r1]
- cmp r0, r1
- beq _080FE9EE
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- bl sub_80FE894
-_080FE9EE:
- ldr r0, _080FEA40 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080FEA7C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080FEA44 @ =gUnknown_020388F5
- ldr r1, _080FEA48 @ =gUnknown_020388F2
- ldr r0, _080FEA38 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldrb r1, [r1]
- adds r0, r1
- strb r0, [r2]
- ldr r1, _080FEA3C @ =gUnknown_020388D5
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEA54
- ldr r1, _080FEA4C @ =gUnknown_083EC634
- ldr r2, _080FEA50 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- b _080FEA68
- .align 2, 0
-_080FEA38: .4byte gUnknown_020388F4
-_080FEA3C: .4byte gUnknown_020388D5
-_080FEA40: .4byte gMain
-_080FEA44: .4byte gUnknown_020388F5
-_080FEA48: .4byte gUnknown_020388F2
-_080FEA4C: .4byte gUnknown_083EC634
-_080FEA50: .4byte gTasks
-_080FEA54:
- ldr r2, _080FEA74 @ =gUnknown_083EC634
- ldr r1, _080FEA78 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- lsls r0, 3
- adds r0, r2
-_080FEA68:
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080FEAAC
- .align 2, 0
-_080FEA74: .4byte gUnknown_083EC634
-_080FEA78: .4byte gTasks
-_080FEA7C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FEAAC
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080FEAB4 @ =gUnknown_083EC634
- ldr r2, _080FEAB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080FEAAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEAB4: .4byte gUnknown_083EC634
-_080FEAB8: .4byte gTasks
- thumb_func_end sub_80FE948
-
- thumb_func_start sub_80FEABC
-sub_80FEABC: @ 80FEABC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r4]
- cmp r0, 0
- bne _080FEADE
- movs r0, 0
- bl SetBgTilemapBuffer
- ldrb r0, [r4]
- cmp r0, 0
- beq _080FEAE8
-_080FEADE:
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x8
- bl sub_80F953C
-_080FEAE8:
- ldr r5, _080FEB58 @ =gUnknown_020388F4
- ldrb r0, [r5]
- adds r0, 0x7
- ldr r4, _080FEB5C @ =gUnknown_020388D5
- ldrb r1, [r4]
- cmp r0, r1
- bne _080FEAFC
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_080FEAFC:
- ldrb r0, [r5]
- adds r0, 0x7
- ldrb r4, [r4]
- cmp r0, r4
- bge _080FEB10
- movs r0, 0x1
- movs r1, 0x3C
- movs r2, 0x98
- bl sub_80F953C
-_080FEB10:
- ldrb r4, [r5]
- adds r0, r4, 0
- adds r0, 0x8
- cmp r4, r0
- blt _080FEB1C
- b _080FEC7E
-_080FEB1C:
- adds r7, r5, 0
-_080FEB1E:
- ldrb r1, [r7]
- subs r1, r4, r1
- lsls r0, r1, 25
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r6, r0, 24
- ldr r0, _080FEB60 @ =gUnknown_020388F7
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080FEB3C
- adds r0, r1, 0
- bl sub_80F94F8
-_080FEB3C:
- ldr r0, _080FEB5C @ =gUnknown_020388D5
- ldrb r0, [r0]
- cmp r4, r0
- bne _080FEB68
- lsls r2, r6, 3
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _080FEB64 @ =gUnknownText_Exit
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEC7E
- .align 2, 0
-_080FEB58: .4byte gUnknown_020388F4
-_080FEB5C: .4byte gUnknown_020388D5
-_080FEB60: .4byte gUnknown_020388F7
-_080FEB64: .4byte gUnknownText_Exit
-_080FEB68:
- ldr r0, _080FEBC0 @ =gUnknown_020388D0
- ldr r1, [r0]
- adds r2, r1, r4
- ldrb r1, [r2]
- mov r12, r0
- adds r5, r4, 0x1
- cmp r1, 0
- bne _080FEB7A
- b _080FEC70
-_080FEB7A:
- ldr r0, _080FEBC4 @ =0x0201f000
- ldrb r5, [r0, 0x9]
- cmp r5, 0x1
- bne _080FEBDC
- ldr r0, _080FEBC8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FEBDC
- cmp r0, 0x7
- beq _080FEBDC
- ldr r0, _080FEBCC @ =gTasks
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r3, 0x1E
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _080FEBDC
- ldrb r1, [r2]
- lsls r1, 5
- ldr r0, _080FEBD0 @ =gDecorations + 0x1
- adds r1, r0
- ldr r0, _080FEBD4 @ =gStringVar1
- bl StringCopy
- lsls r2, r6, 3
- str r5, [sp]
- ldr r0, _080FEBD8 @ =gUnknown_083EC65A
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
- b _080FEBF8
- .align 2, 0
-_080FEBC0: .4byte gUnknown_020388D0
-_080FEBC4: .4byte 0x0201f000
-_080FEBC8: .4byte gUnknown_020388F6
-_080FEBCC: .4byte gTasks
-_080FEBD0: .4byte gDecorations + 0x1
-_080FEBD4: .4byte gStringVar1
-_080FEBD8: .4byte gUnknown_083EC65A
-_080FEBDC:
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 5
- ldr r1, _080FEC00 @ =gDecorations + 0x1
- adds r0, r1
- lsls r2, r6, 3
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x8
- movs r3, 0x68
- bl sub_8072A18
-_080FEBF8:
- movs r1, 0
- adds r5, r4, 0x1
- b _080FEC0A
- .align 2, 0
-_080FEC00: .4byte gDecorations + 0x1
-_080FEC04:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC0A:
- cmp r1, 0xF
- bhi _080FEC34
- ldr r0, _080FEC38 @ =gUnknown_020388D6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC04
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC3C @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r2, 0xC0
- lsls r2, 13
- adds r3, r2
- asrs r3, 16
- movs r0, 0x4
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC34:
- movs r1, 0
- b _080FEC46
- .align 2, 0
-_080FEC38: .4byte gUnknown_020388D6
-_080FEC3C: .4byte gUnknown_020388F7
-_080FEC40:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
-_080FEC46:
- cmp r1, 0xB
- bhi _080FEC70
- ldr r0, _080FEC8C @ =gUnknown_020388E6
- adds r0, r1, r0
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, r4
- bne _080FEC40
- ldrb r3, [r7]
- subs r3, r4, r3
- ldr r1, _080FEC90 @ =gUnknown_020388F7
- adds r1, r3, r1
- lsls r3, 20
- movs r0, 0xC0
- lsls r0, 13
- adds r3, r0
- asrs r3, 16
- movs r0, 0x5
- movs r2, 0x6C
- bl sub_80F94A4
-_080FEC70:
- lsls r0, r5, 16
- lsrs r4, r0, 16
- ldrb r0, [r7]
- adds r0, 0x8
- cmp r4, r0
- bge _080FEC7E
- b _080FEB1E
-_080FEC7E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEC8C: .4byte gUnknown_020388E6
-_080FEC90: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEABC
-
- thumb_func_start sub_80FEC94
-sub_80FEC94: @ 80FEC94
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FEABC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FEC94
-
- thumb_func_start sub_80FECB8
-sub_80FECB8: @ 80FECB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80FE470
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FECB8
-
- thumb_func_start sub_80FECE0
-sub_80FECE0: @ 80FECE0
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080FED14 @ =gDecorations
- ldr r1, _080FED18 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 5
- adds r2, 0x18
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x30
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x80
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080FED14: .4byte gDecorations
-_080FED18: .4byte gUnknown_020388D0
- thumb_func_end sub_80FECE0
-
- thumb_func_start sub_80FED1C
-sub_80FED1C: @ 80FED1C
- push {lr}
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuZeroFillWindowRect
- movs r0, 0xF
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_80FED1C
-
- thumb_func_start sub_80FED3C
-sub_80FED3C: @ 80FED3C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, _080FED5C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FED60 @ =sub_80FE868
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FED5C: .4byte gTasks
-_080FED60: .4byte sub_80FE868
- thumb_func_end sub_80FED3C
-
- thumb_func_start sub_80FED64
-sub_80FED64: @ 80FED64
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080FED7C @ =gUnknown_020388D6
-_080FED6E:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FED80
- movs r0, 0x1
- b _080FED8C
- .align 2, 0
-_080FED7C: .4byte gUnknown_020388D6
-_080FED80:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _080FED6E
- movs r0, 0
-_080FED8C:
- pop {r1}
- bx r1
- thumb_func_end sub_80FED64
-
- thumb_func_start sub_80FED90
-sub_80FED90: @ 80FED90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r3, 0
- ldr r4, _080FEE30 @ =gUnknown_020388D6
- movs r1, 0
- ldr r2, _080FEE34 @ =gUnknown_020388E6
-_080FEDA4:
- adds r0, r3, r4
- strb r1, [r0]
- cmp r3, 0xB
- bhi _080FEDB0
- adds r0, r3, r2
- strb r1, [r0]
-_080FEDB0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDA4
- movs r3, 0
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- mov r10, r0
- ldr r1, _080FEE3C @ =gDecorationInventories
- mov r9, r1
- ldr r2, _080FEE40 @ =gUnknown_020388F6
- mov r8, r2
-_080FEDC8:
- mov r1, r10
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080FEE5A
- movs r1, 0
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEE5A
- ldr r0, _080FEE38 @ =gSaveBlock1 + 0x1A1A
- adds r0, r3
- mov r12, r0
- ldr r7, _080FEE30 @ =gUnknown_020388D6
-_080FEDEA:
- ldr r0, _080FEE44 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- mov r1, r12
- ldrb r1, [r1]
- cmp r0, r1
- bne _080FEE48
- movs r1, 0
- cmp r1, r6
- bcs _080FEE1E
- ldrb r0, [r7]
- cmp r0, r4
- beq _080FEE1E
- ldr r5, _080FEE30 @ =gUnknown_020388D6
- adds r2, r4, 0
-_080FEE0C:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEE1E
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEE0C
-_080FEE1E:
- cmp r1, r6
- bne _080FEE48
- adds r0, r6, r7
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEE5A
- .align 2, 0
-_080FEE30: .4byte gUnknown_020388D6
-_080FEE34: .4byte gUnknown_020388E6
-_080FEE38: .4byte gSaveBlock1 + 0x1A1A
-_080FEE3C: .4byte gDecorationInventories
-_080FEE40: .4byte gUnknown_020388F6
-_080FEE44: .4byte gUnknown_020388D0
-_080FEE48:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 3
- add r0, r9
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEDEA
-_080FEE5A:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bls _080FEDC8
- movs r6, 0
- movs r3, 0
- ldr r0, _080FEEE4 @ =gDecorationInventories
- mov r8, r0
-_080FEE6C:
- ldr r0, _080FEEE8 @ =gSaveBlock1
- ldr r1, _080FEEEC @ =0x00002688
- adds r0, r1
- adds r2, r3, r0
- ldrb r0, [r2]
- adds r7, r3, 0x1
- cmp r0, 0
- beq _080FEF0E
- movs r1, 0
- ldr r0, _080FEEF0 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080FEF0E
- adds r5, r2, 0
-_080FEE8E:
- ldr r0, _080FEEF4 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- adds r4, r1, 0x1
- ldrb r2, [r5]
- cmp r0, r2
- bne _080FEEFC
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80FED64
- lsls r0, 24
- cmp r0, 0
- bne _080FEEFC
- movs r1, 0
- cmp r1, r6
- bcs _080FEED0
- ldr r2, _080FEEF8 @ =gUnknown_020388E6
- ldrb r0, [r2]
- cmp r0, r4
- beq _080FEED0
- adds r3, r2, 0
- adds r2, r4, 0
-_080FEEBE:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r6
- bcs _080FEED0
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080FEEBE
-_080FEED0:
- cmp r1, r6
- bne _080FEEFC
- ldr r0, _080FEEF8 @ =gUnknown_020388E6
- adds r0, r6, r0
- strb r4, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FEF0E
- .align 2, 0
-_080FEEE4: .4byte gDecorationInventories
-_080FEEE8: .4byte gSaveBlock1
-_080FEEEC: .4byte 0x00002688
-_080FEEF0: .4byte gUnknown_020388F6
-_080FEEF4: .4byte gUnknown_020388D0
-_080FEEF8: .4byte gUnknown_020388E6
-_080FEEFC:
- lsls r0, r4, 16
- lsrs r1, r0, 16
- ldr r0, _080FEF24 @ =gUnknown_020388F6
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcc _080FEE8E
-_080FEF0E:
- lsls r0, r7, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bls _080FEE6C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF24: .4byte gUnknown_020388F6
- thumb_func_end sub_80FED90
-
- thumb_func_start sub_80FEF28
-sub_80FEF28: @ 80FEF28
- push {lr}
- ldr r0, _080FEF38 @ =gUnknown_020388D5
- ldrb r1, [r0]
- cmp r1, 0x7
- bhi _080FEF40
- ldr r0, _080FEF3C @ =gUnknown_020388F3
- strb r1, [r0]
- b _080FEF46
- .align 2, 0
-_080FEF38: .4byte gUnknown_020388D5
-_080FEF3C: .4byte gUnknown_020388F3
-_080FEF40:
- ldr r1, _080FEF4C @ =gUnknown_020388F3
- movs r0, 0x7
- strb r0, [r1]
-_080FEF46:
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF4C: .4byte gUnknown_020388F3
- thumb_func_end sub_80FEF28
-
- thumb_func_start sub_80FEF50
-sub_80FEF50: @ 80FEF50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FED90
- bl sub_80FEF28
- ldr r0, _080FEF6C @ =gUnknown_020388F2
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080FEF70 @ =gUnknown_020388F4
- strb r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080FEF6C: .4byte gUnknown_020388F2
-_080FEF70: .4byte gUnknown_020388F4
- thumb_func_end sub_80FEF50
-
- thumb_func_start sub_80FEF74
-sub_80FEF74: @ 80FEF74
- push {lr}
- ldr r0, _080FEFA0 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- .align 2, 0
-_080FEFA0: .4byte gUnknown_020388F7
- thumb_func_end sub_80FEF74
-
- thumb_func_start sub_80FEFA4
-sub_80FEFA4: @ 80FEFA4
- push {r4,lr}
- movs r2, 0
- ldr r0, _080FEFD0 @ =gUnknown_020388F4
- ldrb r0, [r0]
- ldr r1, _080FEFD4 @ =gUnknown_020388F2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r0, 0x1
- ldr r4, _080FEFD8 @ =gUnknown_020388D6
- ldr r3, _080FEFDC @ =gUnknown_020388E6
-_080FEFB8:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, r1
- beq _080FEFCC
- cmp r2, 0xB
- bhi _080FEFE0
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _080FEFE0
-_080FEFCC:
- movs r0, 0
- b _080FEFEC
- .align 2, 0
-_080FEFD0: .4byte gUnknown_020388F4
-_080FEFD4: .4byte gUnknown_020388F2
-_080FEFD8: .4byte gUnknown_020388D6
-_080FEFDC: .4byte gUnknown_020388E6
-_080FEFE0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _080FEFB8
- movs r0, 0x1
-_080FEFEC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FEFA4
-
- thumb_func_start sub_80FEFF4
-sub_80FEFF4: @ 80FEFF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080FF028 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080FF00E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080FF020
-_080FF00E:
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r0, _080FF02C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080FF030 @ =sub_80FE868
- str r0, [r1]
-_080FF020:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF028: .4byte gMain
-_080FF02C: .4byte gTasks
-_080FF030: .4byte sub_80FE868
- thumb_func_end sub_80FEFF4
-
- thumb_func_start sub_80FF034
-sub_80FF034: @ 80FF034
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE5AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF034
-
- thumb_func_start sub_80FF058
-sub_80FF058: @ 80FF058
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080FF08C @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl BuyMenuFreeMemory
- ldr r1, _080FF090 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080FF094 @ =sub_80FF034
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF08C: .4byte gUnknown_020388F7
-_080FF090: .4byte gTasks
-_080FF094: .4byte sub_80FF034
- thumb_func_end sub_80FF058
-
- thumb_func_start sub_80FF098
-sub_80FF098: @ 80FF098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080FF0D4 @ =gUnknown_020388D5
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r3, _080FF0D8 @ =gUnknown_020388F4
- ldrb r2, [r3]
- adds r0, r2, 0x7
- ldrb r1, [r1]
- cmp r0, r1
- ble _080FF0BA
- cmp r2, 0
- beq _080FF0BA
- subs r0, r2, 0x1
- strb r0, [r3]
-_080FF0BA:
- ldr r0, _080FF0DC @ =gUnknown_020388F6
- ldrb r0, [r0]
- bl sub_8134104
- adds r0, r4, 0
- bl sub_80FED90
- bl sub_80FEF28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF0D4: .4byte gUnknown_020388D5
-_080FF0D8: .4byte gUnknown_020388F4
-_080FF0DC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF098
-
- thumb_func_start sub_80FF0E0
-sub_80FF0E0: @ 80FF0E0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF10C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r4, r2, r3
- ldr r1, _080FF110 @ =gSaveBlock1
- ldrh r0, [r1]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x10]
- adds r3, 0x8
- adds r2, r3
- adds r1, r2, 0x2
- adds r0, r2, 0
- bl PlayerGetDestCoords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF10C: .4byte gTasks
-_080FF110: .4byte gSaveBlock1
- thumb_func_end sub_80FF0E0
-
- thumb_func_start sub_80FF114
-sub_80FF114: @ 80FF114
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl DrawWholeMapView
- ldr r1, _080FF158 @ =gSaveBlock1
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r3, _080FF15C @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r3
- movs r3, 0xE
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x10]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl warp1_set
- bl warp_in
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF158: .4byte gSaveBlock1
-_080FF15C: .4byte gTasks
- thumb_func_end sub_80FF114
-
- thumb_func_start sub_80FF160
-sub_80FF160: @ 80FF160
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _080FF188
- ldr r1, _080FF180 @ =gSecretBaseText_NoDecors
- ldr r2, _080FF184 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF1A2
- .align 2, 0
-_080FF180: .4byte gSecretBaseText_NoDecors
-_080FF184: .4byte sub_80FE428
-_080FF188:
- ldr r1, _080FF1A8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x1E]
- ldr r0, _080FF1AC @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_080FF1A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF1A8: .4byte gTasks
-_080FF1AC: .4byte gUnknown_020388F6
- thumb_func_end sub_80FF160
-
- thumb_func_start sub_80FF1B0
-sub_80FF1B0: @ 80FF1B0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080FF1D0 @ =0x0000ffff
- cmp r2, 0x22
- beq _080FF1D8
- cmp r2, 0x26
- bne _080FF1E2
- ldr r0, _080FF1D4 @ =gUnknown_083EC97C
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
- b _080FF1E2
- .align 2, 0
-_080FF1D0: .4byte 0x0000ffff
-_080FF1D4: .4byte gUnknown_083EC97C
-_080FF1D8:
- ldr r0, _080FF1E8 @ =gUnknown_083EC984
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
-_080FF1E2:
- pop {r1}
- bx r1
- .align 2, 0
-_080FF1E8: .4byte gUnknown_083EC984
- thumb_func_end sub_80FF1B0
-
- thumb_func_start sub_80FF1EC
-sub_80FF1EC: @ 80FF1EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, [sp, 0x54]
- 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
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- movs r2, 0
- lsls r0, r3, 16
- cmp r2, r3
- bcc _080FF222
- b _080FF384
-_080FF222:
- ldr r1, [sp, 0x8]
- str r1, [sp, 0x28]
- str r0, [sp, 0x2C]
-_080FF228:
- ldr r3, [sp, 0x4]
- ldr r4, [sp, 0xC]
- subs r1, r3, r4
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, 0x1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r10, r0
- adds r1, r2, 0x1
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x28]
- cmp r10, r3
- bcc _080FF24C
- b _080FF374
-_080FF24C:
- ldr r4, [sp, 0x10]
- lsls r4, 5
- str r4, [sp, 0x18]
- ldr r0, _080FF2B4 @ =gDecorations + 0x1C
- adds r0, r4, r0
- str r0, [sp, 0x1C]
- ldr r0, _080FF2B8 @ =gDecorations
- adds r0, r4, r0
- str r0, [sp, 0x24]
- ldr r3, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r3
- str r1, [sp, 0x20]
-_080FF266:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, [sp, 0x20]
- add r1, r10
- ldr r4, [sp, 0x1C]
- ldr r0, [r4]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- lsls r4, r0, 16
- lsls r0, r4, 8
- lsrs r0, 24
- bl sub_8057288
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FF2AC
- ldr r3, [sp, 0x24]
- ldrb r0, [r3, 0x11]
- cmp r0, 0x1
- beq _080FF2BC
- lsrs r0, r4, 28
- cmp r0, 0
- beq _080FF2BC
-_080FF2AC:
- movs r4, 0xC0
- lsls r4, 4
- mov r8, r4
- b _080FF2C0
- .align 2, 0
-_080FF2B4: .4byte gDecorations + 0x1C
-_080FF2B8: .4byte gDecorations
-_080FF2BC:
- movs r0, 0
- mov r8, r0
-_080FF2C0:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1, 0x11]
- lsls r7, r5, 16
- ldr r2, [sp, 0x14]
- lsls r2, 16
- mov r9, r2
- cmp r0, 0x3
- beq _080FF2EA
- asrs r0, r7, 16
- asrs r1, r2, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1
- cmp r0, 0x1
- beq _080FF2EC
-_080FF2EA:
- movs r6, 0
-_080FF2EC:
- ldr r3, [sp, 0x18]
- ldr r4, _080FF334 @ =gDecorations
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r4, [sp, 0x20]
- add r4, r10
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_80FF1B0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080FF338 @ =0x0000ffff
- cmp r5, r0
- beq _080FF33C
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- orrs r3, r5
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileEntryAt
- b _080FF362
- .align 2, 0
-_080FF334: .4byte gDecorations
-_080FF338: .4byte 0x0000ffff
-_080FF33C:
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
-_080FF362:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r4, [sp, 0x28]
- cmp r10, r4
- bcs _080FF374
- b _080FF266
-_080FF374:
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- cmp r2, r0
- bcs _080FF384
- b _080FF228
-_080FF384:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF1EC
-
- thumb_func_start sub_80FF394
-sub_80FF394: @ 80FF394
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _080FF3BC @ =gDecorations
- lsls r0, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bhi _080FF46C
- lsls r0, 2
- ldr r1, _080FF3C0 @ =_080FF3C4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF3BC: .4byte gDecorations
-_080FF3C0: .4byte _080FF3C4
- .align 2, 0
-_080FF3C4:
- .4byte _080FF3EC
- .4byte _080FF3F6
- .4byte _080FF400
- .4byte _080FF410
- .4byte _080FF41A
- .4byte _080FF424
- .4byte _080FF434
- .4byte _080FF43E
- .4byte _080FF44E
- .4byte _080FF45E
-_080FF3EC:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF408
-_080FF3F6:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF408
-_080FF400:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF408:
- movs r3, 0x1
- bl sub_80FF1EC
- b _080FF46C
-_080FF410:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x4
- b _080FF42C
-_080FF41A:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _080FF42C
-_080FF424:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
-_080FF42C:
- movs r3, 0x2
- bl sub_80FF1EC
- b _080FF46C
-_080FF434:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _080FF456
-_080FF43E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80FF1EC
- b _080FF46C
-_080FF44E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_080FF456:
- movs r3, 0x3
- bl sub_80FF1EC
- b _080FF46C
-_080FF45E:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_80FF1EC
-_080FF46C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF394
-
- thumb_func_start sub_80FF474
-sub_80FF474: @ 80FF474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r0, _080FF54C @ =gMapHeader
- mov r8, r0
- ldr r1, _080FF550 @ =gUnknown_0202E8CE
- mov r9, r1
- ldr r2, _080FF554 @ =gUnknown_0202E8D0
- mov r10, r2
- ldr r7, _080FF558 @ =gSaveBlock1
-_080FF490:
- adds r5, r6, 0
- adds r5, 0xAE
- adds r4, r5, 0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF570
- adds r0, r4, 0
- bl FlagReset
- movs r2, 0
- mov r4, r8
- ldr r0, [r4, 0x4]
- ldrb r6, [r0]
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r0, 0x4]
- ldrh r0, [r0, 0x14]
- cmp r0, r5
- beq _080FF4E0
- ldr r0, _080FF54C @ =gMapHeader
- ldr r3, [r0, 0x4]
- ldrb r6, [r3]
- adds r4, r5, 0
-_080FF4C6:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _080FF4E0
- ldr r0, [r3, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _080FF4C6
-_080FF4E0:
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r2, 1
- adds r4, r2
- lsls r4, 3
- adds r1, r4, r1
- ldr r2, _080FF55C @ =0x00003f20
- adds r0, r2, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, _080FF560 @ =gUnknown_02038900
- ldr r1, [r1]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- bl VarSet
- mov r5, r8
- ldr r0, [r5, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- mov r6, r9
- strh r0, [r6]
- ldr r1, _080FF564 @ =gUnknown_020391A4
- ldrh r1, [r1]
- mov r2, r10
- strh r1, [r2]
- ldr r1, _080FF568 @ =gUnknown_020391A6
- ldrh r1, [r1]
- ldr r4, _080FF56C @ =gUnknown_0202E8D2
- strh r1, [r4]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl show_sprite
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- mov r5, r10
- movs r6, 0
- ldrsh r3, [r5, r6]
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- bl sub_805C0F8
- mov r6, r9
- ldrb r0, [r6]
- ldrb r1, [r7, 0x5]
- ldrb r2, [r7, 0x4]
- bl sub_805C78C
- b _080FF57A
- .align 2, 0
-_080FF54C: .4byte gMapHeader
-_080FF550: .4byte gUnknown_0202E8CE
-_080FF554: .4byte gUnknown_0202E8D0
-_080FF558: .4byte gSaveBlock1
-_080FF55C: .4byte 0x00003f20
-_080FF560: .4byte gUnknown_02038900
-_080FF564: .4byte gUnknown_020391A4
-_080FF568: .4byte gUnknown_020391A6
-_080FF56C: .4byte gUnknown_0202E8D2
-_080FF570:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xD
- bls _080FF490
-_080FF57A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF474
-
- thumb_func_start sub_80FF58C
-sub_80FF58C: @ 80FF58C
- push {lr}
- movs r1, 0
- ldr r0, _080FF5A8 @ =0x0201f000
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _080FF5B6
- ldr r3, [r0]
-_080FF59A:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080FF5AC
- movs r0, 0x1
- b _080FF5B8
- .align 2, 0
-_080FF5A8: .4byte 0x0201f000
-_080FF5AC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _080FF59A
-_080FF5B6:
- movs r0, 0
-_080FF5B8:
- pop {r1}
- bx r1
- thumb_func_end sub_80FF58C
-
- thumb_func_start sub_80FF5BC
-sub_80FF5BC: @ 80FF5BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080FF5E4 @ =0x0201f000
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _080FF5F0
- ldr r0, _080FF5E8 @ =gUnknown_020388F6
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080FF5F0
- cmp r0, 0x7
- beq _080FF5F0
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF5EC @ =gSecretBaseText_DecorCantPlace
- b _080FF66E
- .align 2, 0
-_080FF5E4: .4byte 0x0201f000
-_080FF5E8: .4byte gUnknown_020388F6
-_080FF5EC: .4byte gSecretBaseText_DecorCantPlace
-_080FF5F0:
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF688
- bl sub_80FF58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF62C
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _080FF624 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _080FF628 @ =sub_80FF6AC
- str r1, [r0]
- b _080FF69C
- .align 2, 0
-_080FF624: .4byte gTasks
-_080FF628: .4byte sub_80FF6AC
-_080FF62C:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r0, _080FF654 @ =gStringVar1
- ldr r4, _080FF658 @ =0x0201f000
- ldrb r1, [r4, 0x8]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _080FF664
- ldr r0, _080FF65C @ =gStringVar4
- ldr r1, _080FF660 @ =gSecretBaseText_NoMoreDecor
- bl StringExpandPlaceholders
- b _080FF66C
- .align 2, 0
-_080FF654: .4byte gStringVar1
-_080FF658: .4byte 0x0201f000
-_080FF65C: .4byte gStringVar4
-_080FF660: .4byte gSecretBaseText_NoMoreDecor
-_080FF664:
- ldr r0, _080FF67C @ =gStringVar4
- ldr r1, _080FF680 @ =gSecretBaseText_NoMoreDecor2
- bl StringExpandPlaceholders
-_080FF66C:
- ldr r1, _080FF67C @ =gStringVar4
-_080FF66E:
- ldr r2, _080FF684 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _080FF69C
- .align 2, 0
-_080FF67C: .4byte gStringVar4
-_080FF680: .4byte gSecretBaseText_NoMoreDecor2
-_080FF684: .4byte sub_80FEFF4
-_080FF688:
- bl sub_80FEF74
- bl sub_80FED1C
- ldr r1, _080FF6A4 @ =gSecretBaseText_InUseAlready
- ldr r2, _080FF6A8 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080FF69C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF6A4: .4byte gSecretBaseText_InUseAlready
-_080FF6A8: .4byte sub_80FEFF4
- thumb_func_end sub_80FF5BC
-
- thumb_func_start sub_80FF6AC
-sub_80FF6AC: @ 80FF6AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080FF6D0 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- beq _080FF714
- cmp r0, 0x1
- bgt _080FF6D4
- cmp r0, 0
- beq _080FF6DA
- b _080FF77A
- .align 2, 0
-_080FF6D0: .4byte gTasks
-_080FF6D4:
- cmp r0, 0x2
- beq _080FF764
- b _080FF77A
-_080FF6DA:
- ldr r0, _080FF70C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080FF77A
- adds r0, r6, 0
- bl sub_80FF0E0
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r0, _080FF710 @ =gUnknown_020388F7
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- movs r0, 0x1
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF70C: .4byte gPaletteFade
-_080FF710: .4byte gUnknown_020388F7
-_080FF714:
- ldr r4, _080FF754 @ =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- ldr r5, _080FF758 @ =gUnknown_02038900
- ldr r0, _080FF75C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF760 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl AddDecorationIconObjectFromFieldObject
- adds r0, r6, 0
- bl sub_80FF960
- adds r0, r6, 0
- adds r1, r5, 0
- bl SetUpPlacingDecorationPlayerAvatar
- bl pal_fill_black
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r7, 0xC]
- b _080FF77A
- .align 2, 0
-_080FF754: .4byte gPaletteFade
-_080FF758: .4byte gUnknown_02038900
-_080FF75C: .4byte gUnknown_020388F5
-_080FF760: .4byte gUnknown_020388D0
-_080FF764:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FF77A
- movs r0, 0
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- bl sub_810065C
-_080FF77A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FF6AC
-
- thumb_func_start AddDecorationIconObjectFromFieldObject
-AddDecorationIconObjectFromFieldObject: @ 80FF780
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_80FEF74
- bl sub_80FED1C
- adds r0, r5, 0
- bl sub_81006D0
- lsls r4, 5
- ldr r0, _080FF810 @ =gDecorations
- adds r4, r0
- str r4, [r5]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _080FF834
- adds r0, r5, 0
- bl sub_81008BC
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl sub_8100930
- adds r0, r5, 0
- bl sub_8100874
- ldr r1, _080FF814 @ =0x00000884
- adds r0, r5, r1
- ldr r1, _080FF818 @ =gMapHeader
- ldr r1, [r1]
- ldr r2, [r1, 0x14]
- ldr r1, [r5]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- ldr r2, [r2, 0xC]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1, 0xE]
- lsrs r1, 12
- bl sub_810070C
- ldr r0, _080FF81C @ =gUnknown_083EC954
- bl LoadSpritePalette
- ldr r3, _080FF820 @ =gUnknown_020391A8
- ldr r2, _080FF824 @ =gSprites
- ldr r4, _080FF828 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- ldr r0, _080FF82C @ =gSpriteTemplate_83EC93C
- ldr r3, _080FF830 @ =gUnknown_083EC900
- ldr r1, [r5]
- ldrb r2, [r1, 0x12]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- b _080FF87E
- .align 2, 0
-_080FF810: .4byte gDecorations
-_080FF814: .4byte 0x00000884
-_080FF818: .4byte gMapHeader
-_080FF81C: .4byte gUnknown_083EC954
-_080FF820: .4byte gUnknown_020391A8
-_080FF824: .4byte gSprites
-_080FF828: .4byte gUnknown_03004880
-_080FF82C: .4byte gSpriteTemplate_83EC93C
-_080FF830: .4byte gUnknown_083EC900
-_080FF834:
- ldr r2, _080FF888 @ =gUnknown_020391A8
- ldr r6, _080FF88C @ =gSprites
- ldr r5, _080FF890 @ =gUnknown_03004880
- ldr r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0, 0x2E]
- strb r0, [r2]
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, _080FF894 @ =sub_81009A8
- ldr r2, _080FF898 @ =gUnknown_083EC900
- ldrb r3, [r4, 0x12]
- lsls r3, 2
- adds r3, r2
- ldrb r2, [r3, 0x2]
- ldrb r3, [r3, 0x3]
- movs r4, 0x1
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_080FF87E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF888: .4byte gUnknown_020391A8
-_080FF88C: .4byte gSprites
-_080FF890: .4byte gUnknown_03004880
-_080FF894: .4byte sub_81009A8
-_080FF898: .4byte gUnknown_083EC900
- thumb_func_end AddDecorationIconObjectFromFieldObject
-
- thumb_func_start SetUpPlacingDecorationPlayerAvatar
-SetUpPlacingDecorationPlayerAvatar: @ 80FF89C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080FF8F0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x12]
- ldr r3, _080FF8F4 @ =gUnknown_083EC900
- ldr r0, [r1]
- ldrb r4, [r0, 0x12]
- lsls r1, r4, 2
- adds r1, r3
- lsls r0, r2, 4
- ldrb r1, [r1, 0x2]
- adds r0, r1
- subs r2, 0x1
- lsls r2, 3
- subs r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0x2
- beq _080FF8D6
- cmp r4, 0x8
- beq _080FF8D6
- cmp r4, 0x9
- bne _080FF8DE
-_080FF8D6:
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
-_080FF8DE:
- ldr r0, _080FF8F8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080FF900
- ldr r1, _080FF8FC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _080FF908
- .align 2, 0
-_080FF8F0: .4byte gTasks
-_080FF8F4: .4byte gUnknown_083EC900
-_080FF8F8: .4byte gSaveBlock2
-_080FF8FC: .4byte SpriteCallbackDummy
-_080FF900:
- ldr r1, _080FF94C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_080FF908:
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _080FF950 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r3, _080FF954 @ =gSprites
- ldr r0, _080FF950 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r4, _080FF958 @ =gUnknown_020391A8
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl DestroySprite
- ldr r0, _080FF95C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FF94C: .4byte SpriteCallbackDummy
-_080FF950: .4byte gUnknown_020391A9
-_080FF954: .4byte gSprites
-_080FF958: .4byte gUnknown_020391A8
-_080FF95C: .4byte gUnknown_03004880
- thumb_func_end SetUpPlacingDecorationPlayerAvatar
-
- thumb_func_start sub_80FF960
-sub_80FF960: @ 80FF960
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080FF98C @ =gDecorations
- ldr r0, _080FF990 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _080FF994 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r2
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bls _080FF980
- b _080FFAA6
-_080FF980:
- lsls r0, 2
- ldr r1, _080FF998 @ =_080FF99C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FF98C: .4byte gDecorations
-_080FF990: .4byte gUnknown_020388F5
-_080FF994: .4byte gUnknown_020388D0
-_080FF998: .4byte _080FF99C
- .align 2, 0
-_080FF99C:
- .4byte _080FF9C4
- .4byte _080FF9D8
- .4byte _080FF9F0
- .4byte _080FFA08
- .4byte _080FFA1C
- .4byte _080FFA30
- .4byte _080FFA44
- .4byte _080FFA64
- .4byte _080FFA7C
- .4byte _080FFA94
-_080FF9C4:
- ldr r0, _080FF9D4 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _080FFA88
- .align 2, 0
-_080FF9D4: .4byte gTasks
-_080FF9D8:
- ldr r1, _080FF9EC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FF9EC: .4byte gTasks
-_080FF9F0:
- ldr r1, _080FFA04 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _080FFAA4
- .align 2, 0
-_080FFA04: .4byte gTasks
-_080FFA08:
- ldr r1, _080FFA18 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- b _080FFAA0
- .align 2, 0
-_080FFA18: .4byte gTasks
-_080FFA1C:
- ldr r0, _080FFA2C @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- b _080FFA88
- .align 2, 0
-_080FFA2C: .4byte gTasks
-_080FFA30:
- ldr r1, _080FFA40 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- b _080FFAA0
- .align 2, 0
-_080FFA40: .4byte gTasks
-_080FFA44:
- ldr r0, _080FFA60 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x12]
- movs r0, 0x3
- strh r0, [r1, 0x14]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _080FFAA6
- .align 2, 0
-_080FFA60: .4byte gTasks
-_080FFA64:
- ldr r1, _080FFA78 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x4
- b _080FFAA4
- .align 2, 0
-_080FFA78: .4byte gTasks
-_080FFA7C:
- ldr r0, _080FFA90 @ =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
-_080FFA88:
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- b _080FFAA6
- .align 2, 0
-_080FFA90: .4byte gTasks
-_080FFA94:
- ldr r1, _080FFAAC @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
-_080FFAA0:
- strh r1, [r0, 0x12]
- movs r1, 0x2
-_080FFAA4:
- strh r1, [r0, 0x14]
-_080FFAA6:
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAAC: .4byte gTasks
- thumb_func_end sub_80FF960
-
- thumb_func_start sub_80FFAB0
-sub_80FFAB0: @ 80FFAB0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFAF8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFAFC @ =gSprites
- ldr r0, _080FFB00 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB04 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8100038
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFAF8: .4byte gTasks
-_080FFAFC: .4byte gSprites
-_080FFB00: .4byte gUnknown_020391A8
-_080FFB04: .4byte gUnknown_020391A9
- thumb_func_end sub_80FFAB0
-
- thumb_func_start sub_80FFB08
-sub_80FFB08: @ 80FFB08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080FFB54 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, _080FFB58 @ =gSprites
- ldr r0, _080FFB5C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, _080FFB60 @ =gUnknown_020391A9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_810045C
- ldr r1, _080FFB64 @ =gSecretBaseText_CancelDecorating
- ldr r2, _080FFB68 @ =sub_8100248
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FFB54: .4byte gTasks
-_080FFB58: .4byte gSprites
-_080FFB5C: .4byte gUnknown_020391A8
-_080FFB60: .4byte gUnknown_020391A9
-_080FFB64: .4byte gSecretBaseText_CancelDecorating
-_080FFB68: .4byte sub_8100248
- thumb_func_end sub_80FFB08
-
- thumb_func_start sub_80FFB6C
-sub_80FFB6C: @ 80FFB6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FFB86
- cmp r4, 0
- beq _080FFB8A
-_080FFB86:
- movs r0, 0
- b _080FFB8C
-_080FFB8A:
- movs r0, 0x1
-_080FFB8C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB6C
-
- thumb_func_start sub_80FFB94
-sub_80FFB94: @ 80FFB94
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r1, 16
- asrs r1, 16
- ldr r3, _080FFBD0 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- lsls r1, r4, 16
- asrs r1, 16
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _080FFBD4
- cmp r5, 0
- beq _080FFBD4
- movs r0, 0
- b _080FFBD6
- .align 2, 0
-_080FFBD0: .4byte gTasks
-_080FFBD4:
- movs r0, 0x1
-_080FFBD6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFB94
-
- thumb_func_start sub_80FFBDC
-sub_80FFBDC: @ 80FFBDC
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057274
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC1C
- ldrb r0, [r5]
- cmp r0, 0x21
- bne _080FFC0A
- adds r0, r4, 0
- bl sub_8057300
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FFC18
-_080FFC0A:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- beq _080FFC1C
-_080FFC18:
- movs r0, 0x1
- b _080FFC1E
-_080FFC1C:
- movs r0, 0
-_080FFC1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFBDC
-
- thumb_func_start sub_80FFC24
-sub_80FFC24: @ 80FFC24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, _080FFC60 @ =gTasks
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- str r0, [sp, 0x8]
- ldr r3, [sp]
- ldrb r0, [r3, 0x11]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _080FFC56
- b _08100024
-_080FFC56:
- lsls r0, 2
- ldr r1, _080FFC64 @ =_080FFC68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080FFC60: .4byte gTasks
-_080FFC64: .4byte _080FFC68
- .align 2, 0
-_080FFC68:
- .4byte _080FFC7C
- .4byte _080FFC7C
- .4byte _080FFD68
- .4byte _080FFF1C
- .4byte _080FFFA0
-_080FFC7C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFC86
- b _08100024
-_080FFC86:
- mov r1, r10
- lsls r1, 2
- str r1, [sp, 0x1C]
-_080FFC8C:
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- ldr r3, _080FFD64 @ =gTasks
- adds r0, r3
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _080FFD56
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0xC]
- asrs r1, 16
- mov r9, r1
-_080FFCB8:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r2, _080FFD64 @ =gTasks
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r9
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- ldr r1, [sp]
- bl sub_80FFBDC
- lsls r0, 24
- cmp r0, 0
- bne _080FFD1A
- b _080FFFF4
-_080FFD1A:
- mov r0, r10
- adds r1, r6, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFD2E
- b _080FFFF4
-_080FFD2E:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0xC]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFD4A
- cmp r4, 0x10
- beq _080FFD4A
- b _080FFFF4
-_080FFD4A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFCB8
-_080FFD56:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r2
- bcc _080FFC8C
- b _08100024
- .align 2, 0
-_080FFD64: .4byte gTasks
-_080FFD68:
- movs r6, 0
- mov r3, r10
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x18]
- cmp r6, r0
- bge _080FFE54
- adds r0, r3, 0
- add r0, r10
- lsls r0, 3
- str r0, [sp, 0x10]
-_080FFD82:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFE48
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFDA0:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80FFB6C
- lsls r0, 24
- cmp r0, 0
- bne _080FFE0C
- b _080FFFF4
-_080FFE0C:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFE22
- b _080FFFF4
-_080FFE22:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _080FFE3A
- b _080FFFF4
-_080FFE3A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _080FFF18 @ =gTasks
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFDA0
-_080FFE48:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- cmp r6, r3
- blt _080FFD82
-_080FFE54:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- ldr r1, [sp, 0x4]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE74
- b _08100024
-_080FFE74:
- lsls r0, 16
- str r0, [sp, 0x20]
-_080FFE78:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r1, _080FFF18 @ =gTasks
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, r7, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl sub_805729C
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- adds r0, r4, 0
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- bne _080FFEDA
- b _080FFFF4
-_080FFEDA:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_80FFB94
- lsls r0, 24
- cmp r0, 0
- bne _080FFEF0
- b _080FFFF4
-_080FFEF0:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080FFF0A
- cmp r4, 0x10
- bne _080FFFF4
-_080FFF0A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFE78
- b _08100024
- .align 2, 0
-_080FFF18: .4byte gTasks
-_080FFF1C:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
-_080FFF26:
- mov r1, r10
- lsls r0, r1, 2
- add r0, r10
- lsls r1, r0, 3
- ldr r2, _080FFF9C @ =gTasks
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _080FFF8C
- adds r0, r2, 0
- adds r1, r0
- mov r8, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r5, r0, 16
-_080FFF50:
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, r7
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_80572B0
- lsls r0, 24
- cmp r0, 0
- beq _080FFFF4
- adds r0, r4, 0
- adds r1, r5, 0x1
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- beq _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFF50
-_080FFF8C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _080FFF26
- b _08100024
- .align 2, 0
-_080FFF9C: .4byte gTasks
-_080FFFA0:
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- mov r9, r0
- movs r7, 0
- str r1, [sp, 0x1C]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _08100024
- adds r6, r2, 0
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x20]
-_080FFFC0:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldrb r0, [r3, 0x12]
- cmp r0, 0x5
- bne _080FFFF8
-_080FFFE8:
- adds r0, r4, 0
- bl sub_80572EC
- lsls r0, 24
- cmp r0, 0
- bne _08100004
-_080FFFF4:
- movs r0, 0
- b _08100026
-_080FFFF8:
- adds r0, r4, 0
- bl sub_80572D8
- lsls r0, 24
- cmp r0, 0
- beq _080FFFE8
-_08100004:
- adds r0, r5, 0
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _080FFFF4
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _080FFFC0
-_08100024:
- movs r0, 0x1
-_08100026:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FFC24
-
- thumb_func_start sub_8100038
-sub_8100038: @ 8100038
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810006C @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100070 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 5
- ldr r0, _08100074 @ =gDecorations
- adds r1, r0
- adds r0, r4, 0
- bl sub_80FFC24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100080
- ldr r1, _08100078 @ =gSecretBaseText_PlaceItHere
- ldr r2, _0810007C @ =sub_81000A0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08100092
- .align 2, 0
-_0810006C: .4byte gUnknown_020388F5
-_08100070: .4byte gUnknown_020388D0
-_08100074: .4byte gDecorations
-_08100078: .4byte gSecretBaseText_PlaceItHere
-_0810007C: .4byte sub_81000A0
-_08100080:
- movs r0, 0x20
- bl PlaySE
- ldr r1, _08100098 @ =gSecretBaseText_CantBePlacedHere
- ldr r2, _0810009C @ =sub_81006A8
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100092:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100098: .4byte gSecretBaseText_CantBePlacedHere
-_0810009C: .4byte sub_81006A8
- thumb_func_end sub_8100038
-
- thumb_func_start sub_81000A0
-sub_81000A0: @ 81000A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _081000C0 @ =gUnknown_083EC95C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081000C0: .4byte gUnknown_083EC95C
- thumb_func_end sub_81000A0
-
- thumb_func_start sub_81000C4
-sub_81000C4: @ 81000C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8100174
- ldr r2, _0810010C @ =gDecorations
- ldr r0, _08100110 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _08100114 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r3, [r0]
- lsls r0, r3, 5
- adds r0, r2
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _0810011C
- ldr r0, _08100118 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- ldrh r1, [r1, 0xA]
- adds r2, r3, 0
- bl sub_80FF394
- b _0810013C
- .align 2, 0
-_0810010C: .4byte gDecorations
-_08100110: .4byte gUnknown_020388F5
-_08100114: .4byte gUnknown_020388D0
-_08100118: .4byte gTasks
-_0810011C:
- ldr r2, _0810015C @ =gUnknown_020391A4
- ldr r0, _08100160 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x7
- strh r0, [r2]
- ldr r2, _08100164 @ =gUnknown_020391A6
- ldrh r0, [r1, 0xA]
- subs r0, 0x7
- strh r0, [r2]
- ldr r0, _08100168 @ =gUnknown_081A2F7B
- bl ScriptContext1_SetupScript
-_0810013C:
- ldr r2, _0810016C @ =gSprites
- ldr r0, _08100170 @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x2
- strh r1, [r0, 0x22]
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810015C: .4byte gUnknown_020391A4
-_08100160: .4byte gTasks
-_08100164: .4byte gUnknown_020391A6
-_08100168: .4byte gUnknown_081A2F7B
-_0810016C: .4byte gSprites
-_08100170: .4byte gUnknown_020391A8
- thumb_func_end sub_81000C4
-
- thumb_func_start sub_8100174
-sub_8100174: @ 8100174
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- ldr r0, _081001B0 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r3, r1
- bcs _0810019A
- ldr r4, [r5]
-_08100188:
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _081001B8
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08100188
-_0810019A:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- bne _08100204
- movs r3, 0
- ldr r0, _081001B4 @ =gUnknown_020388D6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _081001F0
- b _08100210
- .align 2, 0
-_081001B0: .4byte 0x0201f000
-_081001B4: .4byte gUnknown_020388D6
-_081001B8:
- ldr r0, _081001E4 @ =gUnknown_020388F5
- ldrb r1, [r0]
- ldr r0, _081001E8 @ =gUnknown_020388D0
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r5, 0x4]
- adds r2, r3
- ldr r0, _081001EC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- subs r0, 0x7
- lsls r0, 4
- ldrb r1, [r1, 0xA]
- subs r1, 0x7
- adds r0, r1
- strb r0, [r2]
- b _0810019A
- .align 2, 0
-_081001E4: .4byte gUnknown_020388F5
-_081001E8: .4byte gUnknown_020388D0
-_081001EC: .4byte gTasks
-_081001F0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _081001F0
- b _08100236
-_08100204:
- movs r3, 0
- ldr r0, _0810021C @ =gUnknown_020388E6
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08100224
-_08100210:
- ldr r0, _08100220 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r2]
- b _0810023E
- .align 2, 0
-_0810021C: .4byte gUnknown_020388E6
-_08100220: .4byte gUnknown_020388F5
-_08100224:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bhi _0810023E
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08100224
-_08100236:
- ldr r0, _08100244 @ =gUnknown_020388F5
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
-_0810023E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100244: .4byte gUnknown_020388F5
- thumb_func_end sub_8100174
-
- thumb_func_start sub_8100248
-sub_8100248: @ 8100248
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08100268 @ =gUnknown_083EC964
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100268: .4byte gUnknown_083EC964
- thumb_func_end sub_8100248
-
- thumb_func_start sub_810026C
-sub_810026C: @ 810026C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_810028C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810026C
-
- thumb_func_start sub_810028C
-sub_810028C: @ 810028C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081002B4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081002B8 @ =c1_overworld_prev_quest
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081002B4: .4byte gTasks
-_081002B8: .4byte c1_overworld_prev_quest
- thumb_func_end sub_810028C
-
- thumb_func_start c1_overworld_prev_quest
-c1_overworld_prev_quest: @ 81002BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081002DC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081002E0
- cmp r0, 0x1
- beq _08100300
- b _0810031C
- .align 2, 0
-_081002DC: .4byte gTasks
-_081002E0:
- bl ScriptContext2_Enable
- ldr r0, _081002FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810031C
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _0810031C
- .align 2, 0
-_081002FC: .4byte gPaletteFade
-_08100300:
- bl sub_81016F4
- ldr r0, _08100324 @ =0x00000bb8
- bl FreeSpritePaletteByTag
- ldr r1, _08100328 @ =gUnknown_0300485C
- ldr r0, _0810032C @ =sub_8100364
- str r0, [r1]
- ldr r0, _08100330 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0810031C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100324: .4byte 0x00000bb8
-_08100328: .4byte gUnknown_0300485C
-_0810032C: .4byte sub_8100364
-_08100330: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end c1_overworld_prev_quest
-
- thumb_func_start sub_8100334
-sub_8100334: @ 8100334
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100354
- ldr r0, _0810035C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08100360 @ =sub_80FE948
- str r0, [r1]
-_08100354:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810035C: .4byte gTasks
-_08100360: .4byte sub_80FE948
- thumb_func_end sub_8100334
-
- thumb_func_start sub_8100364
-sub_8100364: @ 8100364
- push {lr}
- bl ScriptContext2_Enable
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl pal_fill_black
- ldr r0, _08100388 @ =sub_8100334
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_80FE7EC
- pop {r0}
- bx r0
- .align 2, 0
-_08100388: .4byte sub_8100334
- thumb_func_end sub_8100364
-
- thumb_func_start sub_810038C
-sub_810038C: @ 810038C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _081003BC @ =gTasks + 0x8
- adds r2, r1, r0
- ldr r0, _081003C0 @ =gUnknown_020391AA
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081003C4
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- subs r0, r1
- subs r0, 0x6
- cmp r0, 0
- bge _081003C4
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- b _081003DE
- .align 2, 0
-_081003BC: .4byte gTasks + 0x8
-_081003C0: .4byte gUnknown_020391AA
-_081003C4:
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _081003E8
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- subs r1, 0x7
- ldr r0, _081003E4 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- blt _081003E8
- ldrh r0, [r2, 0x2]
- subs r0, 0x1
-_081003DE:
- strh r0, [r2, 0x2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_081003E4: .4byte gMapHeader
-_081003E8:
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _081003FE
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, 0x7
- cmp r0, 0
- bge _081003FE
- ldrh r0, [r2]
- adds r0, 0x1
- b _0810041E
-_081003FE:
- ldrb r0, [r3]
- cmp r0, 0x4
- bne _08100428
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- adds r1, r0
- subs r1, 0x8
- ldr r0, _08100424 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r1, r0
- blt _08100428
- ldrh r0, [r2]
- subs r0, 0x1
-_0810041E:
- strh r0, [r2]
- movs r0, 0
- b _0810042A
- .align 2, 0
-_08100424: .4byte gMapHeader
-_08100428:
- movs r0, 0x1
-_0810042A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810038C
-
- thumb_func_start sub_8100430
-sub_8100430: @ 8100430
- push {lr}
- ldr r0, _08100450 @ =gMain
- ldrh r0, [r0, 0x2C]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- beq _08100454
- cmp r1, 0x80
- beq _08100454
- cmp r1, 0x20
- beq _08100454
- cmp r1, 0x10
- beq _08100454
- movs r0, 0
- b _08100456
- .align 2, 0
-_08100450: .4byte gMain
-_08100454:
- movs r0, 0x1
-_08100456:
- pop {r1}
- bx r1
- thumb_func_end sub_8100430
-
- thumb_func_start sub_810045C
-sub_810045C: @ 810045C
- push {r4,lr}
- ldr r1, _08100488 @ =gUnknown_020391AA
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0810048C @ =gSprites
- ldr r3, _08100490 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100488: .4byte gUnknown_020391AA
-_0810048C: .4byte gSprites
-_08100490: .4byte gUnknown_020391A8
- thumb_func_end sub_810045C
-
- thumb_func_start sub_8100494
-sub_8100494: @ 8100494
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _081004D0 @ =gSprites
- ldr r3, _081004D4 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x36
- ldrsh r6, [r0, r1]
- cmp r6, 0
- beq _081004B2
- b _081005DE
-_081004B2:
- ldr r1, _081004D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _081004E0
- ldr r0, _081004DC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- b _081004EE
- .align 2, 0
-_081004D0: .4byte gSprites
-_081004D4: .4byte gUnknown_020391A8
-_081004D8: .4byte gTasks
-_081004DC: .4byte gUnknown_083EC96C
-_081004E0:
- cmp r0, 0x2
- bne _08100500
- ldr r0, _081004FC @ =gUnknown_083EC96C
- movs r3, 0x20
- ldrsh r1, [r2, r3]
- lsls r1, 3
- adds r0, 0x4
-_081004EE:
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- b _0810063C
- .align 2, 0
-_081004FC: .4byte gUnknown_083EC96C
-_08100500:
- ldr r7, _08100644 @ =gMain
- ldrh r1, [r7, 0x2C]
- movs r0, 0xF0
- mov r12, r0
- ands r0, r1
- cmp r0, 0x40
- bne _08100534
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
-_08100534:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x80
- bne _08100564
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x34]
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
-_08100564:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x20
- bne _08100594
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0810064C @ =0x0000fffe
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- subs r0, 0x1
- strh r0, [r2, 0x8]
-_08100594:
- ldrh r1, [r7, 0x2C]
- mov r0, r12
- ands r0, r1
- cmp r0, 0x10
- bne _081005C4
- ldr r1, _08100648 @ =gUnknown_020391AA
- movs r0, 0x4
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_081005C4:
- bl sub_8100430
- lsls r0, 24
- cmp r0, 0
- beq _081005DA
- adds r0, r4, 0
- bl sub_810038C
- lsls r0, 24
- cmp r0, 0
- bne _081005DE
-_081005DA:
- bl sub_810045C
-_081005DE:
- ldr r0, _08100648 @ =gUnknown_020391AA
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810060C
- ldr r3, _08100650 @ =gSprites
- ldr r2, _08100654 @ =gUnknown_020391A8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x36]
- adds r1, 0x1
- strh r1, [r0, 0x36]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x36]
- movs r0, 0x7
- ands r0, r2
- strh r0, [r1, 0x36]
-_0810060C:
- ldr r0, _08100658 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0810063C
- ldr r4, _08100644 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810062E
- strh r3, [r2, 0x1C]
-_0810062E:
- ldrh r1, [r4, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810063C
- strh r3, [r2, 0x1C]
-_0810063C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100644: .4byte gMain
-_08100648: .4byte gUnknown_020391AA
-_0810064C: .4byte 0x0000fffe
-_08100650: .4byte gSprites
-_08100654: .4byte gUnknown_020391A8
-_08100658: .4byte gTasks
- thumb_func_end sub_8100494
-
- thumb_func_start sub_810065C
-sub_810065C: @ 810065C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r2, _08100698 @ =gSprites
- ldr r0, _0810069C @ =gUnknown_020391A8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- strh r2, [r0, 0x3C]
- ldr r1, _081006A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _081006A4 @ =sub_8100494
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100698: .4byte gSprites
-_0810069C: .4byte gUnknown_020391A8
-_081006A0: .4byte gTasks
-_081006A4: .4byte sub_8100494
- thumb_func_end sub_810065C
-
- thumb_func_start sub_81006A8
-sub_81006A8: @ 81006A8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081006CC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081006C2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081006C8
-_081006C2:
- adds r0, r2, 0
- bl sub_810065C
-_081006C8:
- pop {r0}
- bx r0
- .align 2, 0
-_081006CC: .4byte gMain
- thumb_func_end sub_81006A8
-
- thumb_func_start sub_81006D0
-sub_81006D0: @ 81006D0
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x84
- movs r5, 0
- ldr r4, _08100708 @ =0x000007ff
-_081006DE:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r4
- bls _081006DE
- movs r1, 0
- adds r2, r3, 0x4
- movs r3, 0
-_081006F2:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081006F2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100708: .4byte 0x000007ff
- thumb_func_end sub_81006D0
-
- thumb_func_start sub_810070C
-sub_810070C: @ 810070C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- movs r2, 0
- ldr r0, _0810073C @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- lsrs r4, r1, 12
- ldr r3, [r0, 0x8]
-_0810071E:
- lsls r1, r2, 1
- adds r1, r5
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0810071E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810073C: .4byte gMapHeader
- thumb_func_end sub_810070C
-
- thumb_func_start sub_8100740
-sub_8100740: @ 8100740
- push {r4-r7,lr}
- sub sp, 0x20
- adds r7, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- lsrs r3, r1, 26
- cmp r2, 0
- beq _08100754
- ldr r0, _08100784 @ =0x000003ff
- ands r2, r0
-_08100754:
- movs r5, 0
- ldr r0, _08100788 @ =gMapHeader
- ldr r6, [r0]
- lsls r4, r2, 5
-_0810075C:
- mov r0, sp
- adds r2, r0, r5
- ldr r0, [r6, 0x10]
- ldr r0, [r0, 0x4]
- adds r1, r4, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810075C
- cmp r3, 0x1
- beq _081007AE
- cmp r3, 0x1
- bgt _0810078C
- cmp r3, 0
- beq _08100796
- b _0810086A
- .align 2, 0
-_08100784: .4byte 0x000003ff
-_08100788: .4byte gMapHeader
-_0810078C:
- cmp r3, 0x2
- beq _0810080E
- cmp r3, 0x3
- beq _08100846
- b _0810086A
-_08100796:
- movs r5, 0
-_08100798:
- adds r1, r7, r5
- mov r2, sp
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _08100798
- b _0810086A
-_081007AE:
- movs r5, 0
- movs r6, 0xF
-_081007B2:
- lsls r4, r5, 2
- adds r4, r7
- adds r5, 0x1
- lsls r3, r5, 2
- subs r0, r3, 0x1
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4]
- subs r0, r3, 0x2
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x1]
- subs r0, r3, 0x3
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x2]
- subs r3, 0x4
- mov r1, sp
- adds r0, r1, r3
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x3]
- lsls r5, 16
- lsrs r5, 16
- cmp r5, 0x7
- bls _081007B2
- b _0810086A
-_0810080E:
- movs r5, 0
- movs r3, 0x7
-_08100812:
- lsls r2, r5, 2
- adds r2, r7
- subs r1, r3, r5
- lsls r1, 2
- mov r4, sp
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r1, 0x1
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- adds r0, r1, 0x2
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- adds r1, 0x3
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08100812
- b _0810086A
-_08100846:
- movs r5, 0
- movs r4, 0x1F
- movs r6, 0xF
-_0810084C:
- adds r3, r7, r5
- subs r0, r4, r5
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0810084C
-_0810086A:
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8100740
-
- thumb_func_start sub_8100874
-sub_8100874: @ 8100874
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_0810087A:
- lsls r0, r4, 5
- adds r0, 0x84
- adds r0, r5, r0
- lsls r2, r4, 1
- adds r1, r5, 0x4
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8100740
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _0810087A
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100874
-
- thumb_func_start sub_810089C
-sub_810089C: @ 810089C
- lsls r0, 16
- ldr r1, _081008B4 @ =gMapHeader
- ldr r1, [r1]
- ldr r1, [r1, 0x14]
- ldr r1, [r1, 0xC]
- lsrs r0, 15
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _081008B8 @ =0x00000fff
- ands r0, r1
- bx lr
- .align 2, 0
-_081008B4: .4byte gMapHeader
-_081008B8: .4byte 0x00000fff
- thumb_func_end sub_810089C
-
- thumb_func_start sub_81008BC
-sub_81008BC: @ 81008BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- movs r6, 0
- ldr r1, _0810092C @ =gUnknown_083EC860
- lsls r5, r0, 4
- adds r0, r5, r1
- ldrb r0, [r0, 0xC]
- cmp r6, r0
- bcs _08100920
- adds r7, r1, 0
-_081008D8:
- mov r4, r8
- ldm r4!, {r1}
- adds r0, r7, 0x4
- adds r0, r5, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- ldr r1, [r1, 0x1C]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r5, r1
- ldr r1, [r1]
- adds r1, r6
- lsls r0, 3
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_810089C
- adds r2, r5, r7
- ldr r1, [r2]
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0xC]
- cmp r6, r2
- bcc _081008D8
-_08100920:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810092C: .4byte gUnknown_083EC860
- thumb_func_end sub_81008BC
-
- thumb_func_start sub_8100930
-sub_8100930: @ 8100930
- push {r4,r5,lr}
- lsls r0, 24
- ldr r3, _08100998 @ =gUnknown_020391AC
- movs r1, 0
- strb r1, [r3]
- ldrb r2, [r3, 0x1]
- subs r1, 0x4
- ands r1, r2
- movs r4, 0xD
- negs r4, r4
- ands r1, r4
- movs r2, 0x11
- negs r2, r2
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r3, 0x1]
- ldr r1, _0810099C @ =gUnknown_083EC900
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- movs r5, 0x3F
- lsls r1, 6
- strb r1, [r3, 0x1]
- ldrh r2, [r3, 0x2]
- ldr r1, _081009A0 @ =0xfffffe00
- ands r1, r2
- strh r1, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x3]
- ldrb r0, [r0, 0x1]
- lsls r0, 6
- ands r5, r1
- orrs r5, r0
- strb r5, [r3, 0x3]
- ldrh r1, [r3, 0x4]
- ldr r0, _081009A4 @ =0xfffffc00
- ands r0, r1
- strh r0, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- ands r4, r0
- movs r0, 0x4
- orrs r4, r0
- movs r0, 0xF
- ands r4, r0
- strb r4, [r3, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100998: .4byte gUnknown_020391AC
-_0810099C: .4byte gUnknown_083EC900
-_081009A0: .4byte 0xfffffe00
-_081009A4: .4byte 0xfffffc00
- thumb_func_end sub_8100930
-
- thumb_func_start sub_81009A8
-sub_81009A8: @ 81009A8
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- ldr r1, _081009BC @ =sub_81009C0
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_081009BC: .4byte sub_81009C0
- thumb_func_end sub_81009A8
-
- thumb_func_start sub_81009C0
-sub_81009C0: @ 81009C0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081009FA
- movs r1, 0x3A
- ldrsh r0, [r2, r1]
- cmp r0, 0xE
- bgt _081009E2
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _081009EC
-_081009E2:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
-_081009EC:
- strb r0, [r3]
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x3A]
- b _08100A06
-_081009FA:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08100A06:
- pop {r0}
- bx r0
- thumb_func_end sub_81009C0
-
- thumb_func_start sub_8100A0C
-sub_8100A0C: @ 8100A0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8100D38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100A44
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08100A3C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08100A40 @ =sub_8100E70
- str r1, [r0]
- b _08100A50
- .align 2, 0
-_08100A3C: .4byte gTasks
-_08100A40: .4byte sub_8100E70
-_08100A44:
- ldr r1, _08100A58 @ =gSecretBaseText_NoDecorInUse
- ldr r2, _08100A5C @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100A50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100A58: .4byte gSecretBaseText_NoDecorInUse
-_08100A5C: .4byte sub_80FE428
- thumb_func_end sub_8100A0C
-
- thumb_func_start sub_8100A60
-sub_8100A60: @ 8100A60
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08100A78 @ =0x0201f000
- ldr r1, [r3]
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3, 0x4]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08100A78: .4byte 0x0201f000
- thumb_func_end sub_8100A60
-
- thumb_func_start sub_8100A7C
-sub_8100A7C: @ 8100A7C
- push {r4-r6,lr}
- ldr r6, _08100A9C @ =gUnknown_0202E8CE
- movs r0, 0
- strh r0, [r6]
- ldr r2, _08100AA0 @ =gScriptResult
- strh r0, [r2]
- ldr r4, _08100AA4 @ =gUnknown_0202E8CC
- ldr r1, _08100AA8 @ =gUnknown_02039234
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08100AB8
- movs r0, 0x1
- strh r0, [r2]
- b _08100B0A
- .align 2, 0
-_08100A9C: .4byte gUnknown_0202E8CE
-_08100AA0: .4byte gScriptResult
-_08100AA4: .4byte gUnknown_0202E8CC
-_08100AA8: .4byte gUnknown_02039234
-_08100AAC:
- ldr r1, _08100AB4 @ =gUnknown_0202E8D0
- ldrb r0, [r2]
- strh r0, [r1]
- b _08100B0A
- .align 2, 0
-_08100AB4: .4byte gUnknown_0202E8D0
-_08100AB8:
- ldr r3, _08100B10 @ =gDecorations
- ldr r2, _08100B14 @ =0x0201f000
- ldr r1, _08100B18 @ =gUnknown_020391B4
- ldrh r0, [r4]
- lsls r0, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- bne _08100B0A
- ldrh r0, [r4, 0x4]
- strh r0, [r6]
- ldrb r0, [r4]
- bl sub_8100A60
- movs r1, 0
- ldr r0, _08100B1C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08100B0A
- ldr r5, [r0, 0x4]
- ldrh r4, [r6]
- adds r3, r2, 0
-_08100AF2:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r5
- ldrh r0, [r2, 0x14]
- cmp r0, r4
- beq _08100AAC
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bcc _08100AF2
-_08100B0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100B10: .4byte gDecorations
-_08100B14: .4byte 0x0201f000
-_08100B18: .4byte gUnknown_020391B4
-_08100B1C: .4byte gMapHeader
- thumb_func_end sub_8100A7C
-
- thumb_func_start sub_8100B20
-sub_8100B20: @ 8100B20
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, _08100B4C @ =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r1, [r0]
- cmp r2, r1
- bcs _08100B64
- adds r3, r0, 0
- ldr r5, [r3, 0x4]
- ldr r0, _08100B50 @ =gUnknown_0202E8CC
- ldrh r4, [r0]
- ldr r6, _08100B54 @ =gUnknown_0202E8CE
-_08100B38:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r5
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _08100B58
- ldrb r0, [r1]
- strh r0, [r6]
- b _08100B64
- .align 2, 0
-_08100B4C: .4byte gMapHeader
-_08100B50: .4byte gUnknown_0202E8CC
-_08100B54: .4byte gUnknown_0202E8CE
-_08100B58:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3]
- cmp r2, r0
- bcc _08100B38
-_08100B64:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8100B20
-
- thumb_func_start sub_8100B6C
-sub_8100B6C: @ 8100B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r7, 0
- b _08100C64
-_08100B7C:
- lsls r3, r7, 3
- ldr r0, _08100BE0 @ =gUnknown_020391B4
- adds r4, r3, r0
- ldrb r1, [r4]
- ldr r2, _08100BE4 @ =0x0201f000
- ldr r0, [r2]
- adds r0, r1
- ldrb r6, [r0]
- lsls r0, r6, 5
- ldr r5, _08100BE8 @ =gDecorations
- adds r0, r5
- ldrb r2, [r0, 0x11]
- ldr r5, _08100BE4 @ =0x0201f000
- ldr r0, [r5, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r9, r1
- movs r5, 0xF
- mov r10, r5
- mov r1, r10
- ands r1, r0
- mov r10, r1
- adds r5, r3, 0
- adds r3, r7, 0x1
- str r3, [sp]
- cmp r2, 0x4
- beq _08100C5E
- cmp r6, 0x29
- bne _08100BD0
- mov r0, r9
- adds r0, 0x7
- adds r1, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _08100BD0
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
- strb r0, [r4, 0x2]
-_08100BD0:
- movs r6, 0
- ldr r1, _08100BE0 @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
- adds r3, r7, 0x1
- str r3, [sp]
- b _08100C4E
- .align 2, 0
-_08100BE0: .4byte gUnknown_020391B4
-_08100BE4: .4byte 0x0201f000
-_08100BE8: .4byte gDecorations
-_08100BEC:
- movs r4, 0
- adds r0, r2, r1
- adds r7, r6, 0x1
- str r7, [sp, 0x4]
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- bcs _08100C42
- ldr r0, _08100C7C @ =gUnknown_020391B4
- adds r0, r5
- mov r8, r0
- subs r1, r6, 0x7
- str r1, [sp, 0x8]
-_08100C04:
- adds r0, r4, 0x7
- add r0, r9
- ldr r1, _08100C80 @ =gMapHeader
- ldr r3, [r1]
- mov r7, r10
- subs r2, r7, r6
- ldr r1, [r3]
- muls r2, r1
- mov r7, r9
- adds r1, r7, r4
- adds r1, r2
- ldr r2, [r3, 0xC]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xC0
- lsls r3, 6
- adds r2, r3, 0
- orrs r2, r1
- mov r7, r10
- ldr r3, [sp, 0x8]
- subs r1, r7, r3
- bl MapGridSetMetatileEntryAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r7, r8
- ldrb r7, [r7, 0x1]
- cmp r4, r7
- bcc _08100C04
-_08100C42:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r1, _08100C7C @ =gUnknown_020391B4
- adds r2, r5, 0
- adds r0, r5, r1
-_08100C4E:
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bcc _08100BEC
- ldr r2, _08100C7C @ =gUnknown_020391B4
- adds r0, r5, r2
- ldrb r0, [r0]
- bl sub_8100A60
-_08100C5E:
- ldr r3, [sp]
- lsls r0, r3, 24
- lsrs r7, r0, 24
-_08100C64:
- ldr r0, _08100C84 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08100B7C
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08100C7C: .4byte gUnknown_020391B4
-_08100C80: .4byte gMapHeader
-_08100C84: .4byte gUnknown_02039234
- thumb_func_end sub_8100B6C
-
- thumb_func_start sub_8100C88
-sub_8100C88: @ 8100C88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08100CAC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08100CC4
- cmp r0, 0x1
- bgt _08100CB0
- cmp r0, 0
- beq _08100CBA
- b _08100D24
- .align 2, 0
-_08100CAC: .4byte gTasks
-_08100CB0:
- cmp r0, 0x2
- beq _08100CF4
- cmp r0, 0x3
- beq _08100D08
- b _08100D24
-_08100CBA:
- bl sub_8100B6C
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08100D24
-_08100CC4:
- ldr r0, _08100CEC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100D24
- bl DrawWholeMapView
- ldr r0, _08100CF0 @ =gUnknown_081A2F8A
- bl ScriptContext1_SetupScript
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r5, 0xC]
- b _08100D24
- .align 2, 0
-_08100CEC: .4byte gPaletteFade
-_08100CF0: .4byte gUnknown_081A2F8A
-_08100CF4:
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_80FED90
- bl pal_fill_black
- movs r0, 0x3
- strh r0, [r5, 0xC]
- b _08100D24
-_08100D08:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100D24
- ldr r0, _08100D2C @ =0x0000ffff
- strh r0, [r5, 0x22]
- ldr r1, _08100D30 @ =gSecretBaseText_DecorReturned
- ldr r2, _08100D34 @ =sub_81010F0
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08100D24:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08100D2C: .4byte 0x0000ffff
-_08100D30: .4byte gSecretBaseText_DecorReturned
-_08100D34: .4byte sub_81010F0
- thumb_func_end sub_8100C88
-
- thumb_func_start sub_8100D38
-sub_8100D38: @ 8100D38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08100D68 @ =0x0201f000
- adds r4, r0, 0
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcs _08100D7C
- adds r5, r4, 0
- ldr r1, _08100D6C @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
-_08100D56:
- ldr r0, [r5]
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08100D70
- strh r2, [r1, 0x22]
- movs r0, 0x1
- b _08100D7E
- .align 2, 0
-_08100D68: .4byte 0x0201f000
-_08100D6C: .4byte gTasks
-_08100D70:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r0, [r4, 0x8]
- cmp r2, r0
- bcc _08100D56
-_08100D7C:
- movs r0, 0
-_08100D7E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8100D38
-
- thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
-SetUpPuttingAwayDecorationPlayerAvatar: @ 8100D84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- bl player_get_direction_lower_nybble
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r3, _08100DD8 @ =gUnknown_020391A8
- ldr r2, _08100DDC @ =gSprites
- ldr r4, _08100DE0 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- bl sub_81016C8
- ldr r0, _08100DE4 @ =gSpriteTemplate_83ECA88
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _08100DE8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08100DF0
- ldr r1, _08100DEC @ =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _08100DF8
- .align 2, 0
-_08100DD8: .4byte gUnknown_020391A8
-_08100DDC: .4byte gSprites
-_08100DE0: .4byte gUnknown_03004880
-_08100DE4: .4byte gSpriteTemplate_83ECA88
-_08100DE8: .4byte gSaveBlock2
-_08100DEC: .4byte SpriteCallbackDummy
-_08100DF0:
- ldr r1, _08100E5C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08100DF8:
- movs r2, 0x88
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, _08100E60 @ =gUnknown_020391A9
- strb r0, [r1]
- ldr r6, _08100E64 @ =gSprites
- ldr r0, _08100E60 @ =gUnknown_020391A9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, _08100E68 @ =gUnknown_020391A8
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, _08100E6C @ =gUnknown_03004880
- ldr r0, [r0, 0x4]
- strb r0, [r5]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r0, 0x5]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100E5C: .4byte SpriteCallbackDummy
-_08100E60: .4byte gUnknown_020391A9
-_08100E64: .4byte gSprites
-_08100E68: .4byte gUnknown_020391A8
-_08100E6C: .4byte gUnknown_03004880
- thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
-
- thumb_func_start sub_8100E70
-sub_8100E70: @ 8100E70
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08100E94 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08100EC4
- cmp r0, 0x1
- bgt _08100E98
- cmp r0, 0
- beq _08100E9E
- b _08100EE6
- .align 2, 0
-_08100E94: .4byte gTasks + 0x8
-_08100E98:
- cmp r0, 0x2
- beq _08100ED2
- b _08100EE6
-_08100E9E:
- ldr r0, _08100EC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08100EE6
- adds r0, r5, 0
- bl sub_80FF0E0
- movs r0, 0x1
- strh r0, [r4, 0x4]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- bl sub_8072DEC
- b _08100EE6
- .align 2, 0
-_08100EC0: .4byte gPaletteFade
-_08100EC4:
- bl SetUpPuttingAwayDecorationPlayerAvatar
- bl pal_fill_black
- movs r0, 0x2
- strh r0, [r4, 0x4]
- b _08100EE6
-_08100ED2:
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08100EE6
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl sub_8100EEC
-_08100EE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8100E70
-
- thumb_func_start sub_8100EEC
-sub_8100EEC: @ 8100EEC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _08100F70 @ =gSprites
- ldr r3, _08100F74 @ =gUnknown_020391A8
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- strh r6, [r0, 0x3C]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08100F78 @ =sub_8101698
- str r1, [r0]
- ldr r2, _08100F7C @ =gUnknown_020391A9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x88
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x48
- strh r1, [r0, 0x22]
- ldr r1, _08100F80 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x1C]
- ldr r1, _08100F84 @ =sub_8100494
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08100F70: .4byte gSprites
-_08100F74: .4byte gUnknown_020391A8
-_08100F78: .4byte sub_8101698
-_08100F7C: .4byte gUnknown_020391A9
-_08100F80: .4byte gTasks
-_08100F84: .4byte sub_8100494
- thumb_func_end sub_8100EEC
-
- thumb_func_start sub_8100F88
-sub_8100F88: @ 8100F88
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08100FB0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- adds r0, r4, 0
- bl sub_8101024
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08100FB0: .4byte gTasks
- thumb_func_end sub_8100F88
-
- thumb_func_start sub_8100FB4
-sub_8100FB4: @ 8100FB4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810100C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_810045C
- ldr r3, _08101010 @ =gSprites
- ldr r5, _08101014 @ =gUnknown_020391A8
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _08101018 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _0810101C @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _08101020 @ =sub_810156C
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810100C: .4byte gTasks
-_08101010: .4byte gSprites
-_08101014: .4byte gUnknown_020391A8
-_08101018: .4byte SpriteCallbackDummy
-_0810101C: .4byte gSecretBaseText_StopPuttingAwayDecor
-_08101020: .4byte sub_810156C
- thumb_func_end sub_8100FB4
-
- thumb_func_start sub_8101024
-sub_8101024: @ 8101024
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8101460
- ldr r0, _08101040 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810104C
- ldr r1, _08101044 @ =gSecretBaseText_ReturnDecor
- ldr r2, _08101048 @ =sub_8101518
- b _081010B0
- .align 2, 0
-_08101040: .4byte gUnknown_02039234
-_08101044: .4byte gSecretBaseText_ReturnDecor
-_08101048: .4byte sub_8101518
-_0810104C:
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, _081010BC @ =gTasks + 0x8
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057238
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101082
- adds r0, r4, 0
- bl sub_805738C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081010D4
-_08101082:
- ldr r3, _081010C0 @ =gSprites
- ldr r4, _081010C4 @ =gUnknown_020391A8
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, _081010C8 @ =SpriteCallbackDummy
- str r1, [r0]
- ldr r1, _081010CC @ =gSecretBaseText_StopPuttingAwayDecor
- ldr r2, _081010D0 @ =sub_810156C
-_081010B0:
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _081010E0
- .align 2, 0
-_081010BC: .4byte gTasks + 0x8
-_081010C0: .4byte gSprites
-_081010C4: .4byte gUnknown_020391A8
-_081010C8: .4byte SpriteCallbackDummy
-_081010CC: .4byte gSecretBaseText_StopPuttingAwayDecor
-_081010D0: .4byte sub_810156C
-_081010D4:
- ldr r1, _081010E8 @ =gSecretBaseText_NoDecor
- ldr r2, _081010EC @ =sub_81010F0
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_081010E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081010E8: .4byte gSecretBaseText_NoDecor
-_081010EC: .4byte sub_81010F0
- thumb_func_end sub_8101024
-
- thumb_func_start sub_81010F0
-sub_81010F0: @ 81010F0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08101114 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810110A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101110
-_0810110A:
- adds r0, r2, 0
- bl sub_8100EEC
-_08101110:
- pop {r0}
- bx r0
- .align 2, 0
-_08101114: .4byte gMain
- thumb_func_end sub_81010F0
-
- thumb_func_start sub_8101118
-sub_8101118: @ 8101118
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- ldr r1, _08101130 @ =gDecorations
- lsrs r0, 19
- adds r0, r1
- ldrb r1, [r0, 0x12]
- cmp r1, 0
- bne _08101134
- movs r0, 0x1
- strb r0, [r2, 0x1]
- b _08101192
- .align 2, 0
-_08101130: .4byte gDecorations
-_08101134:
- cmp r1, 0x1
- bne _08101140
- movs r0, 0x2
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- b _08101194
-_08101140:
- cmp r1, 0x2
- bne _0810114C
- movs r0, 0x3
- strb r0, [r2, 0x1]
- movs r0, 0x1
- b _08101192
-_0810114C:
- cmp r1, 0x3
- bne _08101154
- movs r0, 0x4
- b _0810118E
-_08101154:
- cmp r1, 0x4
- bne _0810115E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08101192
-_0810115E:
- cmp r1, 0x5
- bne _08101166
- movs r0, 0x1
- b _0810118E
-_08101166:
- cmp r1, 0x6
- bne _08101172
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x3
- b _08101192
-_08101172:
- cmp r1, 0x7
- bne _0810117E
- movs r0, 0x2
- strb r0, [r2, 0x1]
- movs r0, 0x4
- b _08101192
-_0810117E:
- cmp r1, 0x8
- bne _08101188
- movs r0, 0x3
- strb r0, [r2, 0x1]
- b _08101192
-_08101188:
- cmp r1, 0x9
- bne _08101194
- movs r0, 0x3
-_0810118E:
- strb r0, [r2, 0x1]
- movs r0, 0x2
-_08101192:
- strb r0, [r2, 0x2]
-_08101194:
- pop {r0}
- bx r0
- thumb_func_end sub_8101118
-
- thumb_func_start sub_8101198
-sub_8101198: @ 8101198
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- ldr r5, _081011F0 @ =gSprites
- ldr r6, _081011F4 @ =gUnknown_020391A8
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- adds r2, 0x3E
- ldrb r3, [r2]
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r2]
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r3, r5, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r3, _081011F8 @ =SpriteCallbackDummy
- str r3, [r2]
- ldr r4, _081011FC @ =gUnknown_020391A9
- ldrb r3, [r4]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- lsrs r0, 20
- adds r0, 0x88
- strh r0, [r2, 0x20]
- ldrb r2, [r4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- lsrs r1, 20
- adds r1, 0x48
- strh r1, [r0, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081011F0: .4byte gSprites
-_081011F4: .4byte gUnknown_020391A8
-_081011F8: .4byte SpriteCallbackDummy
-_081011FC: .4byte gUnknown_020391A9
- thumb_func_end sub_8101198
-
- thumb_func_start sub_8101200
-sub_8101200: @ 8101200
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _0810128C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0x8]
- subs r0, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r2, 0xA]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _08101290 @ =0x0201f000
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r4, r0, 4
- movs r5, 0xF
- ands r5, r0
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0810125A
- adds r0, r4, 0x7
- adds r1, r5, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _0810125A
- ldrb r0, [r6, 0x2]
- subs r0, 0x1
- strb r0, [r6, 0x2]
-_0810125A:
- cmp r7, r4
- bcc _08101294
- ldrb r1, [r6, 0x1]
- adds r0, r4, r1
- cmp r7, r0
- bge _08101294
- ldrb r0, [r6, 0x2]
- subs r0, r5, r0
- cmp r8, r0
- ble _08101294
- cmp r8, r5
- bhi _08101294
- subs r0, r7, r4
- adds r0, 0x1
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- subs r1, r5, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_8101198
- movs r0, 0x1
- b _08101296
- .align 2, 0
-_0810128C: .4byte gTasks
-_08101290: .4byte 0x0201f000
-_08101294:
- movs r0, 0
-_08101296:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8101200
-
- thumb_func_start sub_81012A0
-sub_81012A0: @ 81012A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0810130C @ =0x0201f000
- ldr r3, _08101310 @ =gUnknown_020391B4
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r3
- ldrb r1, [r0]
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r7, r0, 4
- movs r6, 0xF
- ands r6, r0
- movs r5, 0
- ldr r0, _08101318 @ =gSaveBlock1
- mov r8, r0
- mov r9, r3
-_081012CA:
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- ldr r2, _0810131C @ =0x00000c24
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r7
- bne _08101328
- ldr r2, _08101320 @ =0x00000c26
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r6
- bne _08101328
- ldr r0, _08101324 @ =0x00000c34
- adds r4, r1, r0
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08101328
- ldr r0, _08101314 @ =gUnknown_02039234
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r9
- ldrh r1, [r4]
- strh r1, [r0, 0x4]
- b _08101332
- .align 2, 0
-_0810130C: .4byte 0x0201f000
-_08101310: .4byte gUnknown_020391B4
-_08101314: .4byte gUnknown_02039234
-_08101318: .4byte gSaveBlock1
-_0810131C: .4byte 0x00000c24
-_08101320: .4byte 0x00000c26
-_08101324: .4byte 0x00000c34
-_08101328:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _081012CA
-_08101332:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81012A0
-
- thumb_func_start sub_8101340
-sub_8101340: @ 8101340
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- b _081013A2
-_0810134A:
- ldr r0, [r0]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810139C
- ldr r0, _08101390 @ =gDecorations
- ldrb r2, [r1]
- lsls r1, r2, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0810139C
- ldr r5, _08101394 @ =gUnknown_020391B4
- adds r0, r2, 0
- adds r1, r5, 0
- bl sub_8101118
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r5, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0810139C
- strb r6, [r5]
- bl sub_81012A0
- ldr r0, _08101398 @ =gUnknown_02039234
- strb r4, [r0]
- movs r0, 0x1
- b _081013AC
- .align 2, 0
-_08101390: .4byte gDecorations
-_08101394: .4byte gUnknown_020391B4
-_08101398: .4byte gUnknown_02039234
-_0810139C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081013A2:
- ldr r0, _081013B4 @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r6, r1
- bcc _0810134A
- movs r0, 0
-_081013AC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081013B4: .4byte 0x0201f000
- thumb_func_end sub_8101340
-
- thumb_func_start sub_81013B8
-sub_81013B8: @ 81013B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- ldr r7, _08101450 @ =0x0201f000
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcs _0810143E
- adds r6, r7, 0
- ldr r5, _08101454 @ =gUnknown_02039234
-_081013EA:
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldrb r0, [r0]
- lsrs r3, r0, 4
- movs r2, 0xF
- ands r2, r0
- cmp r1, 0
- beq _08101432
- ldr r0, _08101458 @ =gDecorations
- lsls r1, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _08101432
- ldr r0, [sp]
- cmp r0, r3
- bhi _08101432
- cmp r10, r2
- bhi _08101432
- cmp r9, r3
- bcc _08101432
- cmp r8, r2
- bcc _08101432
- ldr r0, _0810145C @ =gUnknown_020391B4
- ldrb r1, [r5]
- lsls r1, 3
- adds r1, r0
- strb r4, [r1]
- bl sub_81012A0
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08101432:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcc _081013EA
-_0810143E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101450: .4byte 0x0201f000
-_08101454: .4byte gUnknown_02039234
-_08101458: .4byte gDecorations
-_0810145C: .4byte gUnknown_020391B4
- thumb_func_end sub_81013B8
-
- thumb_func_start sub_8101460
-sub_8101460: @ 8101460
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _081014B8 @ =gUnknown_02039234
- movs r0, 0
- strb r0, [r4]
- adds r0, r6, 0
- bl sub_8101340
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08101504
- movs r5, 0
- ldr r0, _081014BC @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcs _081014D2
- adds r7, r4, 0
-_08101486:
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- cmp r1, 0
- beq _081014C4
- ldr r4, _081014C0 @ =gUnknown_020391B4
- adds r0, r1, 0
- adds r1, r4, 0
- bl sub_8101118
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8101200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081014C4
- strb r5, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _081014D2
- .align 2, 0
-_081014B8: .4byte gUnknown_02039234
-_081014BC: .4byte 0x0201f000
-_081014C0: .4byte gUnknown_020391B4
-_081014C4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810150C @ =0x0201f000
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcc _08101486
-_081014D2:
- ldr r0, _08101510 @ =gUnknown_02039234
- ldrb r0, [r0]
- cmp r0, 0
- beq _08101504
- ldr r0, _0810150C @ =0x0201f000
- ldr r2, _08101514 @ =gUnknown_020391B4
- ldrb r1, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 4
- movs r3, 0xF
- ands r3, r1
- ldrb r1, [r2, 0x2]
- subs r1, r3, r1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r2, 0x1]
- adds r2, r0
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- bl sub_81013B8
-_08101504:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810150C: .4byte 0x0201f000
-_08101510: .4byte gUnknown_02039234
-_08101514: .4byte gUnknown_020391B4
- thumb_func_end sub_8101460
-
- thumb_func_start sub_8101518
-sub_8101518: @ 8101518
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101538 @ =gUnknown_083EC9CC
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101538: .4byte gUnknown_083EC9CC
- thumb_func_end sub_8101518
-
- thumb_func_start sub_810153C
-sub_810153C: @ 810153C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _08101564 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _08101568 @ =sub_8100C88
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101564: .4byte gTasks
-_08101568: .4byte sub_8100C88
- thumb_func_end sub_810153C
-
- thumb_func_start sub_810156C
-sub_810156C: @ 810156C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810158C @ =gUnknown_083EC9D4
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810158C: .4byte gUnknown_083EC9D4
- thumb_func_end sub_810156C
-
- thumb_func_start sub_8101590
-sub_8101590: @ 8101590
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_81015B0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101590
-
- thumb_func_start sub_81015B0
-sub_81015B0: @ 81015B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _081015D8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, _081015DC @ =sub_81015E0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081015D8: .4byte gTasks
-_081015DC: .4byte sub_81015E0
- thumb_func_end sub_81015B0
-
- thumb_func_start sub_81015E0
-sub_81015E0: @ 81015E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08101600 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08101604
- cmp r0, 0x1
- beq _08101620
- b _08101636
- .align 2, 0
-_08101600: .4byte gTasks
-_08101604:
- ldr r0, _0810161C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101636
- adds r0, r4, 0
- bl sub_80FF114
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08101636
- .align 2, 0
-_0810161C: .4byte gPaletteFade
-_08101620:
- bl sub_81016F4
- ldr r0, _0810163C @ =gUnknown_0300485C
- ldr r1, _08101640 @ =sub_8101678
- str r1, [r0]
- ldr r0, _08101644 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08101636:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810163C: .4byte gUnknown_0300485C
-_08101640: .4byte sub_8101678
-_08101644: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_81015E0
-
- thumb_func_start sub_8101648
-sub_8101648: @ 8101648
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101668
- ldr r0, _08101670 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08101674 @ =sub_80FE2EC
- str r0, [r1]
-_08101668:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101670: .4byte gTasks
-_08101674: .4byte sub_80FE2EC
- thumb_func_end sub_8101648
-
- thumb_func_start sub_8101678
-sub_8101678: @ 8101678
- push {lr}
- bl pal_fill_black
- bl MenuDisplayMessageBox
- bl sub_80FE220
- ldr r0, _08101694 @ =sub_8101648
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08101694: .4byte sub_8101648
- thumb_func_end sub_8101678
-
- thumb_func_start sub_8101698
-sub_8101698: @ 8101698
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0xF
- ble _081016B8
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081016C4
-_081016B8:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_081016C4:
- pop {r0}
- bx r0
- thumb_func_end sub_8101698
-
- thumb_func_start sub_81016C8
-sub_81016C8: @ 81016C8
- push {lr}
- ldr r0, _081016DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081016E4
- ldr r0, _081016E0 @ =gUnknown_083ECA5C
- bl LoadSpritePalette
- b _081016EA
- .align 2, 0
-_081016DC: .4byte gSaveBlock2
-_081016E0: .4byte gUnknown_083ECA5C
-_081016E4:
- ldr r0, _081016F0 @ =gUnknown_083ECA64
- bl LoadSpritePalette
-_081016EA:
- pop {r0}
- bx r0
- .align 2, 0
-_081016F0: .4byte gUnknown_083ECA64
- thumb_func_end sub_81016C8
-
- thumb_func_start sub_81016F4
-sub_81016F4: @ 81016F4
- push {lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_81016F4
-
- thumb_func_start sub_8101700
-sub_8101700: @ 8101700
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101728
- ldr r1, _08101720 @ =gSecretBaseText_NoDecors
- ldr r2, _08101724 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101742
- .align 2, 0
-_08101720: .4byte gSecretBaseText_NoDecors
-_08101724: .4byte sub_80FE428
-_08101728:
- ldr r1, _08101748 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- ldr r0, _0810174C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101742:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101748: .4byte gTasks
-_0810174C: .4byte gUnknown_020388F6
- thumb_func_end sub_8101700
-
- thumb_func_start unref_sub_8101750
-unref_sub_8101750: @ 8101750
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81341D4
- lsls r0, 24
- cmp r0, 0
- bne _08101778
- ldr r1, _08101770 @ =gSecretBaseText_NoDecors
- ldr r2, _08101774 @ =sub_80FE428
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101792
- .align 2, 0
-_08101770: .4byte gSecretBaseText_NoDecors
-_08101774: .4byte sub_80FE428
-_08101778:
- ldr r1, _08101798 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strh r1, [r0, 0x1E]
- ldr r0, _0810179C @ =gUnknown_020388F6
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_80FE5AC
-_08101792:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101798: .4byte gTasks
-_0810179C: .4byte gUnknown_020388F6
- thumb_func_end unref_sub_8101750
-
- thumb_func_start sub_81017A0
-sub_81017A0: @ 81017A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80FEF74
- bl sub_80FED1C
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08101808
- ldr r0, _081017EC @ =gStringVar1
- ldr r1, _081017F0 @ =gUnknown_020388F5
- ldrb r2, [r1]
- ldr r1, _081017F4 @ =gUnknown_020388D0
- ldr r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 5
- ldr r2, _081017F8 @ =gDecorations + 0x1
- adds r1, r2
- bl StringCopy
- ldr r4, _081017FC @ =gStringVar4
- ldr r1, _08101800 @ =gSecretBaseText_WillBeDiscarded
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _08101804 @ =sub_8101824
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08101814
- .align 2, 0
-_081017EC: .4byte gStringVar1
-_081017F0: .4byte gUnknown_020388F5
-_081017F4: .4byte gUnknown_020388D0
-_081017F8: .4byte gDecorations + 0x1
-_081017FC: .4byte gStringVar4
-_08101800: .4byte gSecretBaseText_WillBeDiscarded
-_08101804: .4byte sub_8101824
-_08101808:
- ldr r1, _0810181C @ =gSecretBaseText_DecorInUse
- ldr r2, _08101820 @ =sub_80FEFF4
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_08101814:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810181C: .4byte gSecretBaseText_DecorInUse
-_08101820: .4byte sub_80FEFF4
- thumb_func_end sub_81017A0
-
- thumb_func_start sub_8101824
-sub_8101824: @ 8101824
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _08101844 @ =gUnknown_083ECAA0
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101844: .4byte gUnknown_083ECAA0
- thumb_func_end sub_8101824
-
- thumb_func_start sub_8101848
-sub_8101848: @ 8101848
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xE
- bl MenuZeroFillWindowRect
- ldr r6, _08101890 @ =gUnknown_020388F5
- ldrb r1, [r6]
- ldr r5, _08101894 @ =gUnknown_020388D0
- ldr r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8109A30
- ldrb r1, [r6]
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- adds r0, r4, 0
- bl sub_80FF098
- ldr r1, _08101898 @ =gSecretBaseText_DecorThrownAway
- ldr r2, _0810189C @ =sub_80FEFF4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08101890: .4byte gUnknown_020388F5
-_08101894: .4byte gUnknown_020388D0
-_08101898: .4byte gSecretBaseText_DecorThrownAway
-_0810189C: .4byte sub_80FEFF4
- thumb_func_end sub_8101848
-
- thumb_func_start sub_81018A0
-sub_81018A0: @ 81018A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81019B0
- ldr r0, _081018B4 @ =sub_81018B8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081018B4: .4byte sub_81018B8
- thumb_func_end sub_81018A0
-
- thumb_func_start sub_81018B8
-sub_81018B8: @ 81018B8
- push {lr}
- ldr r0, _081018D0 @ =gMain
- ldr r1, _081018D4 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _0810194A
- lsls r0, 2
- ldr r1, _081018D8 @ =_081018DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081018D0: .4byte gMain
-_081018D4: .4byte 0x0000043c
-_081018D8: .4byte _081018DC
- .align 2, 0
-_081018DC:
- .4byte _081018F8
- .4byte _08101902
- .4byte _08101908
- .4byte _08101912
- .4byte _08101918
- .4byte _0810191E
- .4byte _08101938
-_081018F8:
- bl sub_8101A28
- bl sub_8101BA4
- b _08101922
-_08101902:
- bl sub_8101A8C
- b _08101922
-_08101908:
- bl sub_8101AE0
- bl sub_8101B04
- b _08101922
-_08101912:
- bl sub_8101C84
- b _08101922
-_08101918:
- bl sub_8101CA0
- b _08101922
-_0810191E:
- bl sub_8101CC0
-_08101922:
- ldr r1, _08101930 @ =gMain
- ldr r0, _08101934 @ =0x0000043c
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810194A
- .align 2, 0
-_08101930: .4byte gMain
-_08101934: .4byte 0x0000043c
-_08101938:
- bl sub_8101CD4
- bl sub_8101CEC
- bl sub_8101A44
- ldr r0, _08101950 @ =sub_8101954
- bl SetMainCallback2
-_0810194A:
- pop {r0}
- bx r0
- .align 2, 0
-_08101950: .4byte sub_8101954
- thumb_func_end sub_81018B8
-
- thumb_func_start sub_8101954
-sub_8101954: @ 8101954
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8101954
-
- thumb_func_start sub_810196C
-sub_810196C: @ 810196C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _081019A8 @ =REG_WIN0H
- ldr r2, _081019AC @ =0x02000000
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5A
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- adds r0, r2, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- adds r0, r2, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081019A8: .4byte REG_WIN0H
-_081019AC: .4byte 0x02000000
- thumb_func_end sub_810196C
-
- thumb_func_start sub_81019B0
-sub_81019B0: @ 81019B0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081019E4 @ =nullsub_67
- movs r1, 0xFF
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _081019E8 @ =gTasks
- adds r0, r1
- strh r4, [r0, 0x8]
- adds r0, 0xA
- adds r1, r5, 0
- bl StoreWordInTwoHalfwords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081019E4: .4byte nullsub_67
-_081019E8: .4byte gTasks
- thumb_func_end sub_81019B0
-
- thumb_func_start sub_81019EC
-sub_81019EC: @ 81019EC
- push {lr}
- ldr r0, _08101A18 @ =nullsub_67
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r0, _08101A1C @ =gTasks
- adds r2, r0
- ldr r1, _08101A20 @ =0x02000000
- ldrh r0, [r2, 0x8]
- strb r0, [r1, 0x1]
- adds r2, 0xA
- adds r1, 0x64
- adds r0, r2, 0
- bl LoadWordFromTwoHalfwords
- pop {r0}
- bx r0
- .align 2, 0
-_08101A18: .4byte nullsub_67
-_08101A1C: .4byte gTasks
-_08101A20: .4byte 0x02000000
- thumb_func_end sub_81019EC
-
- thumb_func_start nullsub_67
-nullsub_67: @ 8101A24
- bx lr
- thumb_func_end nullsub_67
-
- thumb_func_start sub_8101A28
-sub_8101A28: @ 8101A28
- push {lr}
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- thumb_func_end sub_8101A28
-
- thumb_func_start sub_8101A44
-sub_8101A44: @ 8101A44
- push {r4,lr}
- ldr r0, _08101A7C @ =sub_810196C
- bl SetVBlankCallback
- ldr r3, _08101A80 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08101A84 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08101A88 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101A7C: .4byte sub_810196C
-_08101A80: .4byte 0x04000208
-_08101A84: .4byte 0x04000200
-_08101A88: .4byte REG_DISPSTAT
- thumb_func_end sub_8101A44
-
- thumb_func_start sub_8101A8C
-sub_8101A8C: @ 8101A8C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0x80
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- ldr r1, _08101AD8 @ =0x040000d4
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08101ADC @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08101AAA:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _08101AAA
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101AD8: .4byte 0x040000d4
-_08101ADC: .4byte 0x81000800
- thumb_func_end sub_8101A8C
-
- thumb_func_start sub_8101AE0
-sub_8101AE0: @ 8101AE0
- sub sp, 0x4
- movs r2, 0xE0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08101AFC @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _08101B00 @ =0x81000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08101AFC: .4byte 0x040000d4
-_08101B00: .4byte 0x81000200
- thumb_func_end sub_8101AE0
-
- thumb_func_start sub_8101B04
-sub_8101B04: @ 8101B04
- push {r4,r5,lr}
- ldr r5, _08101B70 @ =REG_BG0CNT
- movs r1, 0
- strh r1, [r5]
- ldr r2, _08101B74 @ =REG_BG1CNT
- strh r1, [r2]
- ldr r3, _08101B78 @ =REG_BG2CNT
- strh r1, [r3]
- ldr r4, _08101B7C @ =REG_BG3CNT
- strh r1, [r4]
- ldr r0, _08101B80 @ =REG_BG0HOFS
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B84 @ =0x00001f08
- adds r0, r1, 0
- strh r0, [r5]
- ldr r1, _08101B88 @ =0x00001c01
- adds r0, r1, 0
- strh r0, [r2]
- ldr r2, _08101B8C @ =0x00001d02
- adds r0, r2, 0
- strh r0, [r3]
- ldr r1, _08101B90 @ =0x00001e02
- adds r0, r1, 0
- strh r0, [r4]
- ldr r0, _08101B94 @ =REG_WININ
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08101B98 @ =REG_BLDCNT
- ldr r2, _08101B9C @ =0x00001048
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08101BA0 @ =0x00000809
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08101B70: .4byte REG_BG0CNT
-_08101B74: .4byte REG_BG1CNT
-_08101B78: .4byte REG_BG2CNT
-_08101B7C: .4byte REG_BG3CNT
-_08101B80: .4byte REG_BG0HOFS
-_08101B84: .4byte 0x00001f08
-_08101B88: .4byte 0x00001c01
-_08101B8C: .4byte 0x00001d02
-_08101B90: .4byte 0x00001e02
-_08101B94: .4byte REG_WININ
-_08101B98: .4byte REG_BLDCNT
-_08101B9C: .4byte 0x00001048
-_08101BA0: .4byte 0x00000809
- thumb_func_end sub_8101B04
-
- thumb_func_start sub_8101BA4
-sub_8101BA4: @ 8101BA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl sub_81019EC
- ldr r5, _08101C74 @ =0x02000000
- movs r4, 0
- strb r4, [r5]
- strb r4, [r5, 0x2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- strb r1, [r5, 0x3]
- strb r4, [r5, 0x4]
- movs r0, 0
- strh r4, [r5, 0x8]
- strb r0, [r5, 0xA]
- strb r0, [r5, 0xB]
- ldr r0, _08101C78 @ =gSaveBlock1
- ldr r1, _08101C7C @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0xC]
- strh r4, [r5, 0xE]
- strh r4, [r5, 0x10]
- strh r4, [r5, 0x12]
- strh r4, [r5, 0x18]
- movs r0, 0x8
- strh r0, [r5, 0x1A]
- adds r1, r5, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl GetCurrentMapMusic
- adds r1, r5, 0
- adds r1, 0x60
- strh r0, [r1]
- movs r7, 0
- adds r6, r5, 0
- ldr r2, _08101C80 @ =gUnknown_083ECCF8
- mov r9, r2
- movs r0, 0x1C
- adds r0, r6
- mov r8, r0
-_08101C14:
- lsls r5, r7, 1
- adds r0, r6, 0
- adds r0, 0x22
- adds r0, r5, r0
- movs r1, 0
- strh r1, [r0]
- adds r4, r6, 0
- adds r4, 0x28
- adds r4, r5, r4
- ldrb r0, [r6, 0x3]
- lsls r0, 1
- lsls r1, r7, 2
- adds r0, r1
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x15
- bl __modsi3
- strh r0, [r4]
- add r5, r8
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- movs r2, 0xFC
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r5]
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r1, r2, 0
- bl __modsi3
- strh r0, [r5]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08101C14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C74: .4byte 0x02000000
-_08101C78: .4byte gSaveBlock1
-_08101C7C: .4byte 0x00000494
-_08101C80: .4byte gUnknown_083ECCF8
- thumb_func_end sub_8101BA4
-
- thumb_func_start sub_8101C84
-sub_8101C84: @ 8101C84
- push {r4,lr}
- ldr r4, _08101C9C @ =gWindowConfig_81E7128
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101C9C: .4byte gWindowConfig_81E7128
- thumb_func_end sub_8101C84
-
- thumb_func_start sub_8101CA0
-sub_8101CA0: @ 8101CA0
- push {lr}
- bl ResetPaletteFade
- bl ResetSpriteData
- ldr r1, _08101CBC @ =gOamLimit
- movs r0, 0x80
- strb r0, [r1]
- bl FreeAllSpritePalettes
- bl ResetTasks
- pop {r0}
- bx r0
- .align 2, 0
-_08101CBC: .4byte gOamLimit
- thumb_func_end sub_8101CA0
-
- thumb_func_start sub_8101CC0
-sub_8101CC0: @ 8101CC0
- push {lr}
- bl sub_8106448
- bl sub_81064B8
- bl sub_81063C0
- pop {r0}
- bx r0
- thumb_func_end sub_8101CC0
-
- thumb_func_start sub_8101CD4
-sub_8101CD4: @ 8101CD4
- push {lr}
- bl sub_8104EA8
- bl sub_8104F8C
- bl sub_8103DC8
- bl sub_81050C4
- pop {r0}
- bx r0
- thumb_func_end sub_8101CD4
-
- thumb_func_start sub_8101CEC
-sub_8101CEC: @ 8101CEC
- push {lr}
- bl sub_8104048
- bl sub_8102DA8
- bl sub_8104C5C
- bl sub_8101D04
- pop {r0}
- bx r0
- thumb_func_end sub_8101CEC
-
- thumb_func_start sub_8101D04
-sub_8101D04: @ 8101D04
- push {r4,lr}
- ldr r4, _08101D20 @ =sub_8101D24
- adds r0, r4, 0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D20: .4byte sub_8101D24
- thumb_func_end sub_8101D04
-
- thumb_func_start sub_8101D24
-sub_8101D24: @ 8101D24
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08101D50 @ =gUnknown_083ECAAC
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, _08101D54 @ =0x02000000
- ldr r5, _08101D58 @ =gTasks
-_08101D36:
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r4, r5
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _08101D36
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08101D50: .4byte gUnknown_083ECAAC
-_08101D54: .4byte 0x02000000
-_08101D58: .4byte gTasks
- thumb_func_end sub_8101D24
-
- thumb_func_start sub_8101D5C
-sub_8101D5C: @ 8101D5C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r4, _08101D88 @ =0x02000000
- ldrb r0, [r4, 0x2]
- bl sub_810423C
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101D88: .4byte 0x02000000
- thumb_func_end sub_8101D5C
-
- thumb_func_start sub_8101D8C
-sub_8101D8C: @ 8101D8C
- push {lr}
- ldr r0, _08101DA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08101DA2
- ldr r1, _08101DAC @ =0x02000000
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08101DA2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101DA8: .4byte gPaletteFade
-_08101DAC: .4byte 0x02000000
- thumb_func_end sub_8101D8C
-
- thumb_func_start sub_8101DB0
-sub_8101DB0: @ 8101DB0
- push {lr}
- ldr r2, _08101DD8 @ =0x02000000
- movs r0, 0
- strh r0, [r2, 0xE]
- strh r0, [r2, 0x12]
- strh r0, [r2, 0x18]
- ldrb r1, [r2, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r2, 0x4]
- movs r0, 0x4
- strb r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _08101DDC
- movs r0, 0x19
- strb r0, [r2]
- b _08101DEC
- .align 2, 0
-_08101DD8: .4byte 0x02000000
-_08101DDC:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _08101DEC
- movs r0, 0x3
- strb r0, [r2]
- movs r0, 0x4
- bl sub_8104CAC
-_08101DEC:
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8101DB0
-
- thumb_func_start sub_8101DF4
-sub_8101DF4: @ 8101DF4
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _08101E06
- ldr r1, _08101E0C @ =0x02000000
- movs r0, 0x4
- strb r0, [r1]
-_08101E06:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101E0C: .4byte 0x02000000
- thumb_func_end sub_8101DF4
-
- thumb_func_start sub_8101E10
-sub_8101E10: @ 8101E10
- push {lr}
- movs r0, 0
- bl sub_8104CAC
- ldr r2, _08101E34 @ =0x02000000
- movs r0, 0x5
- strb r0, [r2]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08101E38 @ =0x0000270e
- cmp r1, r0
- ble _08101E2C
- movs r0, 0x17
- strb r0, [r2]
-_08101E2C:
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08101E34: .4byte 0x02000000
-_08101E38: .4byte 0x0000270e
- thumb_func_end sub_8101E10
-
- thumb_func_start sub_8101E3C
-sub_8101E3C: @ 8101E3C
- push {r4,lr}
- ldr r0, _08101E58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08101E60
- movs r0, 0
- bl sub_8104AB8
- ldr r1, _08101E5C @ =0x02000000
- movs r0, 0x8
- strb r0, [r1]
- b _08101F1A
- .align 2, 0
-_08101E58: .4byte gMain
-_08101E5C: .4byte 0x02000000
-_08101E60:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08101EC2
- ldr r2, _08101EB8 @ =0x02000000
- movs r1, 0xC
- ldrsh r0, [r2, r1]
- subs r0, 0x3
- movs r3, 0x12
- ldrsh r1, [r2, r3]
- adds r0, r1
- cmp r0, 0
- blt _08101EBC
- ldrh r4, [r2, 0x12]
- adds r0, r1, 0
- cmp r0, 0x2
- bgt _08101E9C
-_08101E84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8103D50
- lsls r0, r4, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08101E84
-_08101E9C:
- ldr r1, _08101EB8 @ =0x02000000
- ldrh r0, [r1, 0xC]
- subs r0, 0x3
- ldrh r3, [r1, 0x12]
- adds r0, r3
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0x9
- strb r0, [r1]
- movs r0, 0x5F
- bl PlaySE
- b _08101F1A
- .align 2, 0
-_08101EB8: .4byte 0x02000000
-_08101EBC:
- movs r0, 0x6
- strb r0, [r2]
- b _08101F1A
-_08101EC2:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08101EEC
- ldr r4, _08101F24 @ =0x02000000
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08101EEC
- movs r0, 0x5F
- bl PlaySE
- ldrb r0, [r4, 0x12]
- bl sub_8103D50
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
-_08101EEC:
- ldr r0, _08101F24 @ =0x02000000
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- ldr r2, _08101F28 @ =gMain
- adds r3, r0, 0
- cmp r1, 0x2
- bgt _08101F08
- cmp r1, 0
- beq _08101F0C
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08101F0C
-_08101F08:
- movs r0, 0x9
- strb r0, [r3]
-_08101F0C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08101F1A
- movs r0, 0x15
- strb r0, [r3]
-_08101F1A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08101F24: .4byte 0x02000000
-_08101F28: .4byte gMain
- thumb_func_end sub_8101E3C
-
- thumb_func_start sub_8101F2C
-sub_8101F2C: @ 8101F2C
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8101F2C
-
- thumb_func_start sub_8101F44
-sub_8101F44: @ 8101F44
- push {lr}
- ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins
- bl sub_8101F2C
- ldr r1, _08101F5C @ =0x02000000
- movs r0, 0x7
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F58: .4byte gOtherText_DontHaveThreeCoins
-_08101F5C: .4byte 0x02000000
- thumb_func_end sub_8101F44
-
- thumb_func_start sub_8101F60
-sub_8101F60: @ 8101F60
- push {lr}
- ldr r0, _08101F80 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08101F78
- bl MenuZeroFillScreen
- ldr r1, _08101F84 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
-_08101F78:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101F80: .4byte gMain
-_08101F84: .4byte 0x02000000
- thumb_func_end sub_8101F60
-
- thumb_func_start sub_8101F88
-sub_8101F88: @ 8101F88
- push {lr}
- bl sub_8104AEC
- lsls r0, 24
- cmp r0, 0
- beq _08101F9A
- ldr r1, _08101FA0 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
-_08101F9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08101FA0: .4byte 0x02000000
- thumb_func_end sub_8101F88
-
- thumb_func_start sub_8101FA4
-sub_8101FA4: @ 8101FA4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8102484
- bl sub_8104DA4
- movs r0, 0
- bl sub_8102DEC
- movs r0, 0x1
- bl sub_8102DEC
- movs r0, 0x2
- bl sub_8102DEC
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r4, _08101FDC @ =0x02000000
- ldrb r1, [r4, 0x4]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08101FE0
- bl sub_810430C
- movs r0, 0xA
- b _08101FE8
- .align 2, 0
-_08101FDC: .4byte 0x02000000
-_08101FE0:
- movs r0, 0x1
- bl sub_8104CAC
- movs r0, 0xB
-_08101FE8:
- strb r0, [r4]
- ldr r4, _08102004 @ =0x02000000
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08101FFC
- bl dp15_jump_random_unknown
- strh r0, [r4, 0x1A]
-_08101FFC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102004: .4byte 0x02000000
- thumb_func_end sub_8101FA4
-
- thumb_func_start sub_8102008
-sub_8102008: @ 8102008
- push {lr}
- bl sub_810432C
- lsls r0, 24
- cmp r0, 0
- beq _08102028
- movs r0, 0x1
- bl sub_8104CAC
- ldr r1, _08102030 @ =0x02000000
- ldrb r2, [r1, 0x4]
- movs r0, 0xDF
- ands r0, r2
- strb r0, [r1, 0x4]
- movs r0, 0xB
- strb r0, [r1]
-_08102028:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102030: .4byte 0x02000000
- thumb_func_end sub_8102008
-
- thumb_func_start sub_8102034
-sub_8102034: @ 8102034
- push {lr}
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _0810204E
- bl sub_81024F0
- ldr r1, _08102054 @ =0x02000000
- movs r0, 0xC
- strb r0, [r1]
-_0810204E:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102054: .4byte 0x02000000
- thumb_func_end sub_8102034
-
- thumb_func_start sub_8102058
-sub_8102058: @ 8102058
- push {r4,lr}
- ldr r0, _08102088 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810207E
- movs r0, 0x18
- bl PlaySE
- ldr r4, _0810208C @ =0x02000000
- ldrb r0, [r4, 0x18]
- bl sub_8102E1C
- ldrb r0, [r4, 0x18]
- bl sub_8103C14
- movs r0, 0xD
- strb r0, [r4]
-_0810207E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102088: .4byte gMain
-_0810208C: .4byte 0x02000000
- thumb_func_end sub_8102058
-
- thumb_func_start sub_8102090
-sub_8102090: @ 8102090
- push {r4,lr}
- ldr r4, _081020BC @ =0x02000000
- ldrb r0, [r4, 0x18]
- bl sub_8102E40
- lsls r0, 24
- cmp r0, 0
- bne _081020C0
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r1, 0xC
- strb r1, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081020B6
- movs r0, 0xE
- strb r0, [r4]
-_081020B6:
- movs r0, 0x1
- b _081020C2
- .align 2, 0
-_081020BC: .4byte 0x02000000
-_081020C0:
- movs r0, 0
-_081020C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102090
-
- thumb_func_start sub_81020C8
-sub_81020C8: @ 81020C8
- push {r4,lr}
- ldr r4, _08102128 @ =0x02000000
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- strb r0, [r4, 0x4]
- bl sub_81027A0
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _081020E8
- subs r0, 0x1
- strb r0, [r4, 0xA]
- ldrb r0, [r4, 0xB]
- adds r0, 0x1
- strb r0, [r4, 0xB]
-_081020E8:
- ldrh r0, [r4, 0x8]
- cmp r0, 0
- beq _081021B4
- movs r0, 0xF
- strb r0, [r4]
- bl sub_8102A24
- bl sub_8103F70
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xE]
- subs r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bge _0810210C
- movs r0, 0
- strh r0, [r4, 0x10]
-_0810210C:
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102130
- ldr r0, _0810212C @ =0x00000185
- bl PlayFanfare
- movs r0, 0x6
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102128: .4byte 0x02000000
-_0810212C: .4byte 0x00000185
-_08102130:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810214C
- ldr r0, _08102148 @ =0x00000185
- bl PlayFanfare
- movs r0, 0x5
- bl sub_8104CAC
- b _0810215A
- .align 2, 0
-_08102148: .4byte 0x00000185
-_0810214C:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0x2
- bl sub_8104CAC
-_0810215A:
- ldr r1, _081021B0 @ =0x02000000
- ldrh r3, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 1
- ands r0, r3
- adds r2, r1, 0
- cmp r0, 0
- beq _08102192
- ldrb r1, [r2, 0x4]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0
- strb r0, [r2, 0x4]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- strb r1, [r2, 0xA]
- strb r1, [r2, 0xB]
- strb r1, [r2, 0x3]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r3
- cmp r0, 0
- beq _08102192
- movs r0, 0x1
- strb r0, [r2, 0x3]
-_08102192:
- ldrh r1, [r2, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081021D2
- ldrb r0, [r2, 0x2]
- cmp r0, 0xF
- bhi _081021D2
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r2, 0x2]
- bl sub_8104064
- b _081021D2
- .align 2, 0
-_081021B0: .4byte 0x02000000
-_081021B4:
- movs r0, 0x3
- bl sub_8104CAC
- movs r0, 0x14
- strb r0, [r4]
- ldrh r0, [r4, 0x12]
- ldrh r1, [r4, 0x10]
- adds r0, r1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- ldr r1, _081021DC @ =0x0000270f
- cmp r0, r1
- ble _081021D2
- strh r1, [r4, 0x10]
-_081021D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081021DC: .4byte 0x0000270f
- thumb_func_end sub_81020C8
-
- thumb_func_start sub_81021E0
-sub_81021E0: @ 81021E0
- push {lr}
- bl sub_8102A44
- lsls r0, 24
- cmp r0, 0
- beq _081021F2
- ldr r1, _081021F8 @ =0x02000000
- movs r0, 0x10
- strb r0, [r1]
-_081021F2:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081021F8: .4byte 0x02000000
- thumb_func_end sub_81021E0
-
- thumb_func_start sub_81021FC
-sub_81021FC: @ 81021FC
- push {r4,lr}
- bl sub_8103FA0
- lsls r0, 24
- cmp r0, 0
- beq _08102256
- ldr r4, _08102260 @ =0x02000000
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0xC0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08102220
- movs r0, 0x1C
- bl sav12_xor_increment
-_08102220:
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08102236
- movs r0, 0
- strh r0, [r4, 0x18]
- movs r0, 0x9
- strb r0, [r4]
-_08102236:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08102242
- movs r0, 0x11
- strb r0, [r4]
-_08102242:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102256
- cmp r2, 0
- beq _08102256
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102256:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102260: .4byte 0x02000000
- thumb_func_end sub_81021FC
-
- thumb_func_start sub_8102264
-sub_8102264: @ 8102264
- push {r4,lr}
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _08102294
- ldr r4, _0810229C @ =0x02000000
- movs r0, 0x13
- strb r0, [r4]
- ldrh r1, [r4, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08102294
- movs r0, 0x9
- strb r0, [r4]
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _08102294
- movs r0, 0x4
- bl sub_8104CAC
- movs r0, 0x12
- strb r0, [r4]
-_08102294:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810229C: .4byte 0x02000000
- thumb_func_end sub_8102264
-
- thumb_func_start sub_81022A0
-sub_81022A0: @ 81022A0
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081022C0
- ldr r2, _081022C8 @ =0x02000000
- movs r0, 0x13
- strb r0, [r2]
- ldrh r1, [r2, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081022C0
- movs r0, 0x9
- strb r0, [r2]
-_081022C0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022C8: .4byte 0x02000000
- thumb_func_end sub_81022A0
-
- thumb_func_start sub_81022CC
-sub_81022CC: @ 81022CC
- push {lr}
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r1, _081022EC @ =0x02000000
- movs r0, 0x2
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081022EC: .4byte 0x02000000
- thumb_func_end sub_81022CC
-
- thumb_func_start sub_81022F0
-sub_81022F0: @ 81022F0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0810230C
- movs r0, 0
- strh r0, [r1, 0xA]
- ldr r1, _08102314 @ =0x02000000
- movs r0, 0x13
- strb r0, [r1]
-_0810230C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102314: .4byte 0x02000000
- thumb_func_end sub_81022F0
-
- thumb_func_start sub_8102318
-sub_8102318: @ 8102318
- push {lr}
- ldr r0, _0810233C @ =gOtherText_QuitGamePrompt
- bl sub_8101F2C
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- bl sub_814AB84
- ldr r1, _08102340 @ =0x02000000
- movs r0, 0x16
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810233C: .4byte gOtherText_QuitGamePrompt
-_08102340: .4byte 0x02000000
- thumb_func_end sub_8102318
-
- thumb_func_start sub_8102344
-sub_8102344: @ 8102344
- push {lr}
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0810237C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_8103D8C
- movs r0, 0x1
- bl sub_8103D8C
- movs r0, 0x2
- bl sub_8103D8C
- ldr r0, _08102378 @ =0x02000000
- ldrh r1, [r0, 0x12]
- ldrh r2, [r0, 0xC]
- adds r1, r2
- strh r1, [r0, 0xC]
- movs r1, 0x1B
- strb r1, [r0]
- b _08102392
- .align 2, 0
-_08102378: .4byte 0x02000000
-_0810237C:
- cmp r1, 0x1
- beq _08102388
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08102392
-_08102388:
- bl MenuZeroFillScreen
- ldr r1, _08102398 @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
-_08102392:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102398: .4byte 0x02000000
- thumb_func_end sub_8102344
-
- thumb_func_start sub_810239C
-sub_810239C: @ 810239C
- push {lr}
- ldr r0, _081023B0 @ =gOtherText_MaxCoins
- bl sub_8101F2C
- ldr r1, _081023B4 @ =0x02000000
- movs r0, 0x18
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023B0: .4byte gOtherText_MaxCoins
-_081023B4: .4byte 0x02000000
- thumb_func_end sub_810239C
-
- thumb_func_start sub_81023B8
-sub_81023B8: @ 81023B8
- push {lr}
- ldr r0, _081023D8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081023D0
- bl MenuZeroFillScreen
- ldr r1, _081023DC @ =0x02000000
- movs r0, 0x5
- strb r0, [r1]
-_081023D0:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023D8: .4byte gMain
-_081023DC: .4byte 0x02000000
- thumb_func_end sub_81023B8
-
- thumb_func_start sub_81023E0
-sub_81023E0: @ 81023E0
- push {lr}
- ldr r0, _081023F4 @ =gOtherText_OutOfCoins
- bl sub_8101F2C
- ldr r1, _081023F8 @ =0x02000000
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_081023F4: .4byte gOtherText_OutOfCoins
-_081023F8: .4byte 0x02000000
- thumb_func_end sub_81023E0
-
- thumb_func_start sub_81023FC
-sub_81023FC: @ 81023FC
- push {lr}
- ldr r0, _0810241C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08102414
- bl MenuZeroFillScreen
- ldr r1, _08102420 @ =0x02000000
- movs r0, 0x1B
- strb r0, [r1]
-_08102414:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810241C: .4byte gMain
-_08102420: .4byte 0x02000000
- thumb_func_end sub_81023FC
-
- thumb_func_start sub_8102424
-sub_8102424: @ 8102424
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08102454 @ =gSaveBlock1
- ldr r4, _08102458 @ =0x02000000
- ldrh r1, [r4, 0xC]
- ldr r2, _0810245C @ =0x00000494
- adds r0, r2
- movs r2, 0
- strh r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102454: .4byte gSaveBlock1
-_08102458: .4byte 0x02000000
-_0810245C: .4byte 0x00000494
- thumb_func_end sub_8102424
-
- thumb_func_start sub_8102460
-sub_8102460: @ 8102460
- push {lr}
- ldr r0, _0810247C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08102476
- ldr r0, _08102480 @ =0x02000000
- ldr r0, [r0, 0x64]
- bl SetMainCallback2
-_08102476:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810247C: .4byte gPaletteFade
-_08102480: .4byte 0x02000000
- thumb_func_end sub_8102460
-
- thumb_func_start sub_8102484
-sub_8102484: @ 8102484
- push {r4,lr}
- ldr r4, _081024E4 @ =0x02000000
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _081024DC
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- bne _081024DC
- bl sub_8102540
- lsls r0, 24
- cmp r0, 0
- beq _081024C0
- bl sub_8102578
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- beq _081024C0
- ldr r1, _081024E8 @ =gUnknown_083ECE42
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- orrs r0, r1
- strb r0, [r4, 0x4]
- cmp r3, 0x1
- bne _081024DC
-_081024C0:
- bl sub_81025BC
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- beq _081024DC
- ldr r2, _081024E4 @ =0x02000000
- ldr r1, _081024EC @ =gUnknown_083ECE48
- lsls r0, r3, 1
- adds r0, r1
- ldrb r1, [r0]
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strb r0, [r2, 0x4]
-_081024DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081024E4: .4byte 0x02000000
-_081024E8: .4byte gUnknown_083ECE42
-_081024EC: .4byte gUnknown_083ECE48
- thumb_func_end sub_8102484
-
- thumb_func_start sub_81024F0
-sub_81024F0: @ 81024F0
- push {lr}
- ldr r1, _08102508 @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x6]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08102502
- movs r0, 0x1
- strb r0, [r1, 0x6]
-_08102502:
- pop {r0}
- bx r0
- .align 2, 0
-_08102508: .4byte 0x02000000
- thumb_func_end sub_81024F0
-
- thumb_func_start sub_810250C
-sub_810250C: @ 810250C
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0
- movs r3, 0x1
- ldr r4, _08102528 @ =gUnknown_083ECE3A
-_08102518:
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0810252C
- adds r0, r2, r4
- ldrb r0, [r0]
- b _0810253A
- .align 2, 0
-_08102528: .4byte gUnknown_083ECE3A
-_0810252C:
- lsrs r1, 1
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _08102518
- movs r0, 0
-_0810253A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810250C
-
- thumb_func_start sub_8102540
-sub_8102540: @ 8102540
- push {r4,lr}
- bl Random
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08102568 @ =gUnknown_083ECD04
- ldr r1, _0810256C @ =0x02000000
- movs r3, 0x12
- ldrsh r2, [r1, r3]
- ldrb r3, [r1, 0x1]
- lsls r1, r3, 1
- adds r1, r3
- subs r1, 0x1
- adds r2, r1
- adds r2, r4
- ldrb r1, [r2]
- cmp r1, r0
- bhi _08102570
- movs r0, 0
- b _08102572
- .align 2, 0
-_08102568: .4byte gUnknown_083ECD04
-_0810256C: .4byte 0x02000000
-_08102570:
- movs r0, 0x1
-_08102572:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102540
-
- thumb_func_start sub_8102578
-sub_8102578: @ 8102578
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _081025B4 @ =gUnknown_083ECD16
-_0810257E:
- bl Random
- movs r2, 0xFF
- ldr r3, _081025B8 @ =0x02000000
- lsls r1, r5, 16
- asrs r4, r1, 16
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 1
- ldrb r3, [r3, 0x1]
- adds r1, r3
- adds r1, r6
- ldrb r1, [r1]
- ands r2, r0
- cmp r1, r2
- bgt _081025AA
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _0810257E
-_081025AA:
- lsls r0, r5, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081025B4: .4byte gUnknown_083ECD16
-_081025B8: .4byte 0x02000000
- thumb_func_end sub_8102578
-
- thumb_func_start sub_81025BC
-sub_81025BC: @ 81025BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08102600 @ =gUnknown_083ECD28
- mov r8, r0
- ldr r5, _08102604 @ =0x02000000
- movs r7, 0x80
- lsls r7, 17
-_081025CE:
- bl Random
- movs r4, 0xFF
- ands r4, r0
- lsls r2, r6, 16
- asrs r1, r2, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldrb r3, [r5, 0x1]
- adds r0, r3
- add r0, r8
- ldrb r3, [r0]
- cmp r1, 0
- bne _08102608
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102608
- adds r3, 0xA
- asrs r0, r7, 16
- cmp r3, r0
- ble _08102622
- adds r3, r0, 0
- b _08102622
- .align 2, 0
-_08102600: .4byte gUnknown_083ECD28
-_08102604: .4byte 0x02000000
-_08102608:
- asrs r0, r2, 16
- cmp r0, 0x4
- bne _08102622
- ldrb r0, [r5, 0x3]
- cmp r0, 0x1
- bne _08102622
- lsls r0, r3, 16
- ldr r1, _08102648 @ =0xfff60000
- adds r0, r1
- lsrs r3, r0, 16
- cmp r0, 0
- bge _08102622
- movs r3, 0
-_08102622:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r4
- bgt _08102638
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081025CE
-_08102638:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08102648: .4byte 0xfff60000
- thumb_func_end sub_81025BC
-
- thumb_func_start sub_810264C
-sub_810264C: @ 810264C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _08102660 @ =0x02000000
- ldrb r0, [r3, 0x3]
- cmp r0, 0
- beq _08102668
- ldr r0, _08102664 @ =gUnknown_083ECDAC
- b _0810266A
- .align 2, 0
-_08102660: .4byte 0x02000000
-_08102664: .4byte gUnknown_083ECDAC
-_08102668:
- ldr r0, _0810267C @ =gUnknown_083ECD46
-_0810266A:
- lsls r1, r2, 4
- adds r1, r2
- ldrb r3, [r3, 0x2]
- adds r1, r3
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_0810267C: .4byte gUnknown_083ECD46
- thumb_func_end sub_810264C
-
- thumb_func_start sub_8102680
-sub_8102680: @ 8102680
- push {r4-r6,lr}
- ldr r1, _081026A4 @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x5]
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _081026D2
- movs r6, 0x5
- b _081026AE
- .align 2, 0
-_081026A4: .4byte 0x02000000
-_081026A8:
- subs r0, r5, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081026AE:
- lsls r0, r6, 16
- asrs r5, r0, 16
- cmp r5, 0
- ble _081026CE
- bl Random
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_810264C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcs _081026A8
-_081026CE:
- ldr r0, _081026D8 @ =0x02000000
- strb r6, [r0, 0x5]
-_081026D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081026D8: .4byte 0x02000000
- thumb_func_end sub_8102680
-
- thumb_func_start sub_81026DC
-sub_81026DC: @ 81026DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r0, _081026FC @ =gUnknown_083ECE12
- lsls r4, 1
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcc _08102700
- movs r0, 0
- b _08102702
- .align 2, 0
-_081026FC: .4byte gUnknown_083ECE12
-_08102700:
- movs r0, 0x1
-_08102702:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81026DC
-
- thumb_func_start dp15_jump_random_unknown
-dp15_jump_random_unknown: @ 8102708
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _0810271C @ =0x02000000
- movs r2, 0x10
- ldrsh r1, [r0, r2]
- ldr r0, _08102720 @ =0x0000012b
- cmp r1, r0
- ble _08102724
- movs r4, 0x4
- b _0810273A
- .align 2, 0
-_0810271C: .4byte 0x02000000
-_08102720: .4byte 0x0000012b
-_08102724:
- cmp r1, 0xF9
- ble _0810272C
- movs r4, 0x3
- b _0810273A
-_0810272C:
- cmp r1, 0xC7
- ble _08102734
- movs r4, 0x2
- b _0810273A
-_08102734:
- cmp r1, 0x95
- ble _0810273A
- movs r4, 0x1
-_0810273A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r5, _0810275C @ =gUnknown_083ECE1C
- lsls r4, 2
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08102760
- movs r0, 0x4
- b _0810279A
- .align 2, 0
-_0810275C: .4byte gUnknown_083ECE1C
-_08102760:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- adds r2, r5, 0x2
- adds r2, r4, r2
- ldr r3, _08102790 @ =gUnknown_083ECE30
- ldr r1, _08102794 @ =0x02000000
- ldrb r1, [r1, 0xB]
- lsls r1, 1
- adds r1, r3
- ldrb r1, [r1]
- ldrb r2, [r2]
- adds r1, r2
- lsls r1, 24
- cmp r0, r1
- bcc _08102798
- movs r0, 0x8
- b _0810279A
- .align 2, 0
-_08102790: .4byte gUnknown_083ECE30
-_08102794: .4byte 0x02000000
-_08102798:
- movs r0, 0x2
-_0810279A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dp15_jump_random_unknown
-
- thumb_func_start sub_81027A0
-sub_81027A0: @ 81027A0
- push {r4,lr}
- ldr r4, _081027CC @ =0x02000000
- movs r0, 0
- strh r0, [r4, 0x8]
- bl sub_81027D0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _081027B8
- bl sub_8102840
-_081027B8:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- ble _081027C4
- bl sub_810290C
-_081027C4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081027CC: .4byte 0x02000000
- thumb_func_end sub_81027A0
-
- thumb_func_start sub_81027D0
-sub_81027D0: @ 81027D0
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x2
- bl sub_8102BA4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x2
- bl sub_8102BA4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810282E
- ldr r2, _08102834 @ =0x02000000
- ldr r0, _08102838 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _0810283C @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0
- bl sub_8103E04
-_0810282E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102834: .4byte 0x02000000
-_08102838: .4byte gUnknown_083ECE6C
-_0810283C: .4byte gUnknown_083ECE5A
- thumb_func_end sub_81027D0
-
- thumb_func_start sub_8102840
-sub_8102840: @ 8102840
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _0810289E
- cmp r1, 0
- bne _0810287C
- movs r1, 0x1
-_0810287C:
- ldr r2, _08102900 @ =0x02000000
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x1
- bl sub_8103E04
-_0810289E:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081028FA
- cmp r1, 0
- bne _081028D8
- movs r1, 0x1
-_081028D8:
- ldr r2, _08102900 @ =0x02000000
- ldr r0, _08102904 @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _08102908 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
- movs r0, 0x2
- bl sub_8103E04
-_081028FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102900: .4byte 0x02000000
-_08102904: .4byte gUnknown_083ECE6C
-_08102908: .4byte gUnknown_083ECE5A
- thumb_func_end sub_8102840
-
- thumb_func_start sub_810290C
-sub_810290C: @ 810290C
- push {r4,r5,lr}
- movs r0, 0
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _08102968
- cmp r1, 0
- beq _08102962
- ldr r2, _081029C8 @ =0x02000000
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_08102962:
- movs r0, 0x3
- bl sub_8103E04
-_08102968:
- movs r0, 0
- movs r1, 0x3
- bl sub_8102BA4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8102BA4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl sub_8102BA4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81029D4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- beq _081029C2
- cmp r1, 0
- beq _081029BC
- ldr r2, _081029C8 @ =0x02000000
- ldr r0, _081029CC @ =gUnknown_083ECE6C
- lsls r1, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- ldrh r3, [r2, 0xE]
- adds r0, r3
- strh r0, [r2, 0xE]
- ldr r0, _081029D0 @ =gUnknown_083ECE5A
- adds r1, r0
- ldrh r0, [r2, 0x8]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2, 0x8]
-_081029BC:
- movs r0, 0x4
- bl sub_8103E04
-_081029C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081029C8: .4byte 0x02000000
-_081029CC: .4byte gUnknown_083ECE6C
-_081029D0: .4byte gUnknown_083ECE5A
- thumb_func_end sub_810290C
-
- thumb_func_start sub_81029D4
-sub_81029D4: @ 81029D4
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r3, r1
- bne _081029F8
- cmp r3, r2
- bne _081029F8
- ldr r0, _081029F4 @ =gUnknown_083ECE52
- adds r0, r3, r0
- ldrb r0, [r0]
- b _08102A1E
- .align 2, 0
-_081029F4: .4byte gUnknown_083ECE52
-_081029F8:
- cmp r3, 0
- bne _08102A04
- cmp r1, 0
- bne _08102A04
- cmp r2, 0x1
- beq _08102A10
-_08102A04:
- cmp r3, 0x1
- bne _08102A14
- cmp r1, 0x1
- bne _08102A14
- cmp r2, 0
- bne _08102A14
-_08102A10:
- movs r0, 0x6
- b _08102A1E
-_08102A14:
- cmp r3, 0x4
- beq _08102A1C
- movs r0, 0x9
- b _08102A1E
-_08102A1C:
- movs r0, 0
-_08102A1E:
- pop {r1}
- bx r1
- thumb_func_end sub_81029D4
-
- thumb_func_start sub_8102A24
-sub_8102A24: @ 8102A24
- push {r4,lr}
- ldr r4, _08102A40 @ =sub_8102A64
- adds r0, r4, 0
- movs r1, 0x4
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A40: .4byte sub_8102A64
- thumb_func_end sub_8102A24
-
- thumb_func_start sub_8102A44
-sub_8102A44: @ 8102A44
- push {lr}
- ldr r0, _08102A58 @ =sub_8102A64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08102A5C
- movs r0, 0
- b _08102A5E
- .align 2, 0
-_08102A58: .4byte sub_8102A64
-_08102A5C:
- movs r0, 0x1
-_08102A5E:
- pop {r1}
- bx r1
- thumb_func_end sub_8102A44
-
- thumb_func_start sub_8102A64
-sub_8102A64: @ 8102A64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102A94 @ =gUnknown_083ECB20
- ldr r2, _08102A98 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102A76:
- 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 _08102A76
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102A94: .4byte gUnknown_083ECB20
-_08102A98: .4byte gTasks
- thumb_func_end sub_8102A64
-
- thumb_func_start sub_8102A9C
-sub_8102A9C: @ 8102A9C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8103E38
- lsls r0, 24
- cmp r0, 0
- beq _08102AC8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, _08102AC4 @ =0x02000000
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102AC8
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _08102ACA
- .align 2, 0
-_08102AC4: .4byte 0x02000000
-_08102AC8:
- movs r0, 0
-_08102ACA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8102A9C
-
- thumb_func_start sub_8102AD0
-sub_8102AD0: @ 8102AD0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08102B22
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102AF6
- movs r0, 0x15
- bl PlaySE
-_08102AF6:
- ldr r2, _08102B70 @ =0x02000000
- ldrh r0, [r2, 0xE]
- subs r0, 0x1
- strh r0, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _08102B74 @ =0x0000270e
- cmp r1, r0
- bgt _08102B0E
- adds r0, r3, 0x1
- strh r0, [r2, 0xC]
-_08102B0E:
- movs r0, 0x8
- strh r0, [r4, 0xA]
- ldr r0, _08102B78 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08102B22
- movs r0, 0x4
- strh r0, [r4, 0xA]
-_08102B22:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08102B58
- ldr r0, _08102B78 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08102B58
- movs r0, 0x15
- bl PlaySE
- ldr r1, _08102B70 @ =0x02000000
- ldrh r0, [r1, 0xE]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- ldr r2, _08102B7C @ =0x0000270f
- cmp r0, r2
- ble _08102B54
- strh r2, [r1, 0xC]
-_08102B54:
- movs r0, 0
- strh r0, [r1, 0xE]
-_08102B58:
- ldr r0, _08102B70 @ =0x02000000
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08102B68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08102B68:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102B70: .4byte 0x02000000
-_08102B74: .4byte 0x0000270e
-_08102B78: .4byte gMain
-_08102B7C: .4byte 0x0000270f
- thumb_func_end sub_8102AD0
-
- thumb_func_start sub_8102B80
-sub_8102B80: @ 8102B80
- push {lr}
- bl sub_8103E7C
- lsls r0, 24
- cmp r0, 0
- beq _08102B9A
- ldr r0, _08102BA0 @ =sub_8102A64
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08102B9A:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102BA0: .4byte sub_8102A64
- thumb_func_end sub_8102B80
-
- thumb_func_start sub_8102BA4
-sub_8102BA4: @ 8102BA4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r0, _08102BF0 @ =0x02000000
- lsls r2, r4, 1
- adds r0, 0x28
- adds r2, r0
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r1, 16
- asrs r1, 16
- adds r0, r1
- movs r1, 0x15
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102BD4
- adds r0, 0x15
- lsls r0, 16
- lsrs r1, r0, 16
-_08102BD4:
- ldr r2, _08102BF4 @ =gUnknown_083ECCB2
- lsls r1, 16
- asrs r1, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 2
- adds r0, r4
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102BF0: .4byte 0x02000000
-_08102BF4: .4byte gUnknown_083ECCB2
- thumb_func_end sub_8102BA4
-
- thumb_func_start sub_8102BF8
-sub_8102BF8: @ 8102BF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- movs r6, 0
- ldr r0, _08102C40 @ =0x02000000
- lsls r1, r5, 1
- adds r0, 0x1C
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- beq _08102C20
- ldr r6, _08102C44 @ =0x0000ffff
-_08102C20:
- lsls r1, r4, 16
- asrs r1, 16
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102C40: .4byte 0x02000000
-_08102C44: .4byte 0x0000ffff
- thumb_func_end sub_8102BF8
-
- thumb_func_start sub_8102C48
-sub_8102C48: @ 8102C48
- push {lr}
- ldr r1, _08102C7C @ =0x02000000
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- adds r1, r0
- adds r0, r1, 0
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08102C6E
- adds r0, 0x6
- lsls r0, 16
- lsrs r1, r0, 16
-_08102C6E:
- ldr r0, _08102C80 @ =gUnknown_083ECCF1
- lsls r1, 16
- asrs r1, 16
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_08102C7C: .4byte 0x02000000
-_08102C80: .4byte gUnknown_083ECCF1
- thumb_func_end sub_8102C48
-
- thumb_func_start sub_8102C84
-sub_8102C84: @ 8102C84
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- ldr r6, _08102CC8 @ =0x02000000
- lsrs r5, 23
- adds r4, r6, 0
- adds r4, 0x1C
- adds r4, r5, r4
- lsls r1, 16
- asrs r1, 16
- ldrh r0, [r4]
- adds r1, r0
- strh r1, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0xFC
- lsls r1, 1
- bl __modsi3
- strh r0, [r4]
- adds r6, 0x28
- adds r5, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl __divsi3
- movs r1, 0x15
- subs r1, r0
- strh r1, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08102CC8: .4byte 0x02000000
- thumb_func_end sub_8102C84
-
- thumb_func_start sub_8102CCC
-sub_8102CCC: @ 8102CCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, _08102D24 @ =0x02000000
- lsls r1, r6, 1
- adds r0, 0x1C
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D18
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D00
- lsrs r4, r2, 16
-_08102D00:
- lsls r1, r4, 16
- asrs r1, 16
- adds r0, r6, 0
- bl sub_8102C84
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D18:
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08102D24: .4byte 0x02000000
- thumb_func_end sub_8102CCC
-
- thumb_func_start sub_8102D28
-sub_8102D28: @ 8102D28
- push {r4,lr}
- ldr r4, _08102D58 @ =0x02000000
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4, 0x14]
- adds r0, r1
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r4, 0x14]
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl __divsi3
- movs r1, 0x6
- subs r1, r0
- strh r1, [r4, 0x16]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08102D58: .4byte 0x02000000
- thumb_func_end sub_8102D28
-
- thumb_func_start sub_8102D5C
-sub_8102D5C: @ 8102D5C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _08102DA4 @ =0x02000000
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r2, r0, 16
- asrs r1, r2, 16
- cmp r1, 0
- beq _08102D9A
- lsls r0, r4, 16
- asrs r0, 16
- cmp r1, r0
- bge _08102D84
- lsrs r4, r2, 16
-_08102D84:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
-_08102D9A:
- lsls r0, 16
- asrs r0, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08102DA4: .4byte 0x02000000
- thumb_func_end sub_8102D5C
-
- thumb_func_start sub_8102DA8
-sub_8102DA8: @ 8102DA8
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _08102DE0 @ =sub_8102E68
- ldr r7, _08102DE4 @ =gTasks
- ldr r6, _08102DE8 @ =0x0200003a
-_08102DB2:
- adds r0, r5, 0
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- strh r4, [r1, 0x26]
- adds r1, r4, r6
- strb r0, [r1]
- bl _call_via_r5
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08102DB2
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08102DE0: .4byte sub_8102E68
-_08102DE4: .4byte gTasks
-_08102DE8: .4byte 0x0200003a
- thumb_func_end sub_8102DA8
-
- thumb_func_start sub_8102DEC
-sub_8102DEC: @ 8102DEC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08102E14 @ =gTasks
- ldr r1, _08102E18 @ =0x02000000
- adds r1, 0x3A
- adds r0, r1
- ldrb r2, [r0]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0x1
- strh r2, [r1, 0x8]
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- strh r2, [r0, 0x24]
- bx lr
- .align 2, 0
-_08102E14: .4byte gTasks
-_08102E18: .4byte 0x02000000
- thumb_func_end sub_8102DEC
-
- thumb_func_start sub_8102E1C
-sub_8102E1C: @ 8102E1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E38 @ =gTasks
- ldr r1, _08102E3C @ =0x02000000
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x8]
- bx lr
- .align 2, 0
-_08102E38: .4byte gTasks
-_08102E3C: .4byte 0x02000000
- thumb_func_end sub_8102E1C
-
- thumb_func_start sub_8102E40
-sub_8102E40: @ 8102E40
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08102E60 @ =gTasks
- ldr r1, _08102E64 @ =0x02000000
- adds r1, 0x3A
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08102E60: .4byte gTasks
-_08102E64: .4byte 0x02000000
- thumb_func_end sub_8102E40
-
- thumb_func_start sub_8102E68
-sub_8102E68: @ 8102E68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08102E98 @ =gUnknown_083ECB2C
- ldr r2, _08102E9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08102E7A:
- 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 _08102E7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08102E98: .4byte gUnknown_083ECB2C
-_08102E9C: .4byte gTasks
- thumb_func_end sub_8102E68
-
- thumb_func_start sub_8102EA0
-sub_8102EA0: @ 8102EA0
- movs r0, 0
- bx lr
- thumb_func_end sub_8102EA0
-
- thumb_func_start sub_8102EA4
-sub_8102EA4: @ 8102EA4
- push {lr}
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08102EBC @ =0x02000000
- movs r2, 0x1A
- ldrsh r1, [r1, r2]
- bl sub_8102C84
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08102EBC: .4byte 0x02000000
- thumb_func_end sub_8102EA4
-
- thumb_func_start sub_8102EC0
-sub_8102EC0: @ 8102EC0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x8]
- ldr r3, _08102F40 @ =0x02000000
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r1
- strh r2, [r0]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x2E
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r3, 0xA]
- cmp r0, 0
- bne _08102F28
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08102F12
- ldrb r0, [r3, 0x6]
- cmp r0, 0
- beq _08102F12
- ldr r1, _08102F44 @ =gUnknown_083ECB40
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- cmp r0, 0
- bne _08102F28
-_08102F12:
- ldr r1, _08102F40 @ =0x02000000
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r1, _08102F48 @ =gUnknown_083ECB4C
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08102F28:
- ldr r0, _08102F40 @ =0x02000000
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r0, 0x2E
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0xA]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08102F40: .4byte 0x02000000
-_08102F44: .4byte gUnknown_083ECB40
-_08102F48: .4byte gUnknown_083ECB4C
- thumb_func_end sub_8102EC0
-
- thumb_func_start sub_8102F4C
-sub_8102F4C: @ 8102F4C
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _08102F8C @ =gUnknown_083ECB58
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- ldr r5, _08102F90 @ =0x02000000
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r6, r0, 1
- adds r7, r5, 0
- adds r7, 0x1C
- adds r0, r6, r7
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- beq _08102F94
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1A
- ldrsh r1, [r5, r6]
- bl sub_8102CCC
- b _08102FC8
- .align 2, 0
-_08102F8C: .4byte gUnknown_083ECB58
-_08102F90: .4byte 0x02000000
-_08102F94:
- adds r0, r5, 0
- adds r0, 0x2E
- adds r1, r6, r0
- ldrh r3, [r1]
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0
- beq _08102FCC
- subs r0, r3, 0x1
- strh r0, [r1]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x1A
- ldrsh r1, [r5, r2]
- bl sub_8102C84
- movs r6, 0x26
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r7
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x18
- bl __modsi3
-_08102FC8:
- lsls r0, 16
- lsrs r2, r0, 16
-_08102FCC:
- cmp r2, 0
- bne _08102FF8
- ldr r1, _08103004 @ =0x02000000
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r1, 0x2E
- adds r0, r1
- movs r6, 0
- ldrsh r1, [r0, r6]
- cmp r1, 0
- bne _08102FF8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0xA]
- strh r1, [r4, 0xC]
-_08102FF8:
- movs r0, 0
- add sp, 0xC
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08103004: .4byte 0x02000000
- thumb_func_end sub_8102F4C
-
- thumb_func_start sub_8103008
-sub_8103008: @ 8103008
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, _08103058 @ =0x02000000
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r4, r1, 0
- adds r4, 0x22
- adds r0, r4
- ldrh r1, [r2, 0xA]
- strh r1, [r0]
- ldrh r0, [r2, 0xA]
- negs r3, r0
- strh r3, [r2, 0xA]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08103038
- lsls r0, r3, 16
- asrs r0, 17
- strh r0, [r2, 0xA]
-_08103038:
- movs r0, 0xA
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _0810304E
- strh r3, [r2, 0x8]
- strh r3, [r2, 0x24]
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
-_0810304E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103058: .4byte 0x02000000
- thumb_func_end sub_8103008
-
- thumb_func_start sub_810305C
-sub_810305C: @ 810305C
- push {r4,r5,lr}
- ldr r4, _0810309C @ =0x02000000
- ldrb r0, [r4, 0x4]
- bl sub_810250C
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldrb r1, [r4, 0x4]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _0810307A
- movs r5, 0
- movs r3, 0x1
-_0810307A:
- ldr r1, _081030A0 @ =gUnknown_083ECB64
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r3, 0
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810309C: .4byte 0x02000000
-_081030A0: .4byte gUnknown_083ECB64
- thumb_func_end sub_810305C
-
- thumb_func_start sub_81030A4
-sub_81030A4: @ 81030A4
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- asrs r3, 16
- movs r0, 0
- adds r1, r3, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, r4
- beq _081030CC
- cmp r0, r5
- bne _081030D8
-_081030CC:
- ldr r0, _081030D4 @ =0x02000000
- strb r1, [r0, 0x7]
- movs r0, 0x1
- b _081030DA
- .align 2, 0
-_081030D4: .4byte 0x02000000
-_081030D8:
- movs r0, 0
-_081030DA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81030A4
-
- thumb_func_start sub_81030E0
-sub_81030E0: @ 81030E0
- push {r4,lr}
- movs r1, 0x1
- lsls r0, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x2
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _08103128
- movs r1, 0x3
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _0810312C
-_08103128:
- movs r0, 0x1
- b _0810312E
-_0810312C:
- movs r0, 0
-_0810312E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81030E0
-
- thumb_func_start sub_8103134
-sub_8103134: @ 8103134
- push {lr}
- ldr r0, _08103148 @ =0x02000000
- ldrb r1, [r0, 0x4]
- movs r0, 0xC2
- ands r0, r1
- cmp r0, 0
- bne _0810314C
- movs r0, 0
- b _0810314E
- .align 2, 0
-_08103148: .4byte 0x02000000
-_0810314C:
- movs r0, 0x1
-_0810314E:
- pop {r1}
- bx r1
- thumb_func_end sub_8103134
-
- thumb_func_start sub_8103154
-sub_8103154: @ 8103154
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r5, 0
- movs r0, 0x2
- mov r9, r0
- ldr r6, _08103194 @ =0x02000000
-_0810316E:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r1, r9
- subs r0, r1, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r8
- adds r2, r7, 0
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103198
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r5, [r6, 0x2E]
- movs r0, 0x1
- b _081031A6
- .align 2, 0
-_08103194: .4byte 0x02000000
-_08103198:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810316E
- movs r0, 0
-_081031A6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8103154
-
- thumb_func_start sub_81031B4
-sub_81031B4: @ 81031B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- bl sub_8103134
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _081031E2
- movs r0, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _0810321E
-_081031E2:
- movs r0, 0x1
- mov r8, r0
- ldr r5, _0810320C @ =0x02000000
- movs r7, 0
-_081031EA:
- mov r1, r8
- lsls r0, r1, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _08103210
- mov r0, r8
- strh r0, [r5, 0x34]
- strh r7, [r5, 0x2E]
- movs r0, 0x1
- b _081032B2
- .align 2, 0
-_0810320C: .4byte 0x02000000
-_08103210:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x3
- ble _081031EA
-_0810321E:
- movs r0, 0x1
- mov r8, r0
- adds r7, r6, 0
- ldr r6, _0810326C @ =0x02000000
-_08103226:
- mov r1, r8
- lsls r5, r1, 16
- cmp r7, 0
- bne _0810323A
- asrs r0, r5, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081032A0
-_0810323A:
- movs r0, 0x1
- asrs r4, r5, 16
- subs r0, r4
- lsls r0, 16
- asrs r0, 16
- mov r1, r10
- mov r2, r9
- bl sub_81030A4
- lsls r0, 24
- cmp r0, 0
- beq _081032A0
- cmp r4, 0x1
- bne _08103270
- cmp r7, 0
- bne _08103266
- movs r0, 0x3
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103270
-_08103266:
- movs r0, 0x3
- strh r0, [r6, 0x34]
- b _0810329A
- .align 2, 0
-_0810326C: .4byte 0x02000000
-_08103270:
- asrs r0, r5, 16
- cmp r0, 0x3
- bgt _08103294
- adds r4, r0, 0x1
- cmp r7, 0
- bne _0810328A
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _08103294
-_0810328A:
- movs r0, 0x2
- strh r0, [r6, 0x34]
- strh r4, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_08103294:
- movs r0, 0x1
- strh r0, [r6, 0x34]
- mov r0, r8
-_0810329A:
- strh r0, [r6, 0x2E]
- movs r0, 0x1
- b _081032B2
-_081032A0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r5, r1
- lsrs r1, r0, 16
- mov r8, r1
- asrs r0, 16
- cmp r0, 0x4
- ble _08103226
- movs r0, 0
-_081032B2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81031B4
-
- thumb_func_start sub_81032C0
-sub_81032C0: @ 81032C0
- push {lr}
- ldr r1, _081032E0 @ =gUnknown_083ECB70
- ldr r0, _081032E4 @ =0x02000000
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_081032E0: .4byte gUnknown_083ECB70
-_081032E4: .4byte 0x02000000
- thumb_func_end sub_81032C0
-
- thumb_func_start sub_81032E8
-sub_81032E8: @ 81032E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08103320 @ =0x02000000
- movs r6, 0
- ldrh r1, [r0, 0x34]
- mov r8, r1
- movs r1, 0x34
- ldrsh r7, [r0, r1]
- adds r5, r0, 0
-_081032FC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5, 0x7]
- cmp r0, r1
- bne _08103324
- mov r0, r8
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- movs r0, 0x1
- b _08103332
- .align 2, 0
-_08103320: .4byte 0x02000000
-_08103324:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081032FC
- movs r0, 0
-_08103332:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81032E8
-
- thumb_func_start sub_810333C
-sub_810333C: @ 810333C
- push {r4-r7,lr}
- bl sub_81032E8
- lsls r0, 24
- cmp r0, 0
- beq _0810339A
- ldr r1, _0810338C @ =0x02000000
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _08103396
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _08103396
- cmp r0, 0x4
- beq _08103396
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_08103364:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103364
- b _08103396
- .align 2, 0
-_0810338C: .4byte 0x02000000
-_08103390:
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
-_08103396:
- movs r0, 0x1
- b _081033D2
-_0810339A:
- ldr r1, _081033D8 @ =0x02000000
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _081033D0
- movs r5, 0
- movs r7, 0x2
- adds r6, r1, 0
-_081033AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x7]
- cmp r0, r1
- beq _08103390
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081033AA
-_081033D0:
- movs r0, 0
-_081033D2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081033D8: .4byte 0x02000000
- thumb_func_end sub_810333C
-
- thumb_func_start sub_81033DC
-sub_81033DC: @ 81033DC
- push {r4,lr}
- ldr r0, _08103414 @ =0x02000000
- ldrb r3, [r0, 0x7]
- adds r4, r3, 0
- ldrb r2, [r0, 0x4]
- movs r1, 0x40
- ands r1, r2
- cmp r1, 0
- beq _081033F6
- movs r3, 0
- cmp r4, 0
- bne _081033F6
- movs r3, 0x1
-_081033F6:
- ldr r1, _08103418 @ =gUnknown_083ECB7C
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08103414: .4byte 0x02000000
-_08103418: .4byte gUnknown_083ECB7C
- thumb_func_end sub_81033DC
-
- thumb_func_start sub_810341C
-sub_810341C: @ 810341C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0810345C @ =0x02000000
- movs r5, 0
- ldrh r1, [r0, 0x36]
- mov r8, r1
- movs r1, 0x36
- ldrsh r7, [r0, r1]
- adds r6, r0, 0
-_08103438:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r9
- bne _08103460
- mov r0, r8
- strh r0, [r6, 0x38]
- strh r5, [r6, 0x32]
- movs r0, 0x1
- b _0810346E
- .align 2, 0
-_0810345C: .4byte 0x02000000
-_08103460:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103438
- movs r0, 0
-_0810346E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810341C
-
- thumb_func_start sub_810347C
-sub_810347C: @ 810347C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _081034A0 @ =0x02000000
- movs r2, 0x34
- ldrsh r1, [r0, r2]
- movs r2, 0x36
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _081034B4
- adds r0, r6, 0
- bl sub_810341C
- lsls r0, 24
- lsrs r0, 24
- b _081034EA
- .align 2, 0
-_081034A0: .4byte 0x02000000
-_081034A4:
- ldr r0, _081034B0 @ =0x02000000
- strh r5, [r0, 0x32]
- mov r1, r8
- strh r1, [r0, 0x38]
- movs r0, 0x1
- b _081034EA
- .align 2, 0
-_081034B0: .4byte 0x02000000
-_081034B4:
- movs r2, 0x1
- mov r8, r2
- cmp r1, 0x1
- bne _081034C0
- movs r0, 0x3
- mov r8, r0
-_081034C0:
- movs r5, 0
- mov r7, r8
-_081034C4:
- lsls r0, r5, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _081034A4
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081034C4
- movs r0, 0
-_081034EA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810347C
-
- thumb_func_start sub_81034F4
-sub_81034F4: @ 81034F4
- push {r4,r5,lr}
- movs r5, 0
- b _08103500
-_081034FA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103500:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_81030E0
- lsls r0, 24
- cmp r0, 0
- bne _081034FA
- ldr r0, _0810351C @ =0x02000000
- strh r5, [r0, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810351C: .4byte 0x02000000
- thumb_func_end sub_81034F4
-
- thumb_func_start sub_8103520
-sub_8103520: @ 8103520
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0
- bne _0810352E
- movs r0, 0x1
- b _08103538
-_0810352E:
- cmp r0, 0x1
- beq _08103536
- movs r0, 0
- b _0810353C
-_08103536:
- movs r0, 0
-_08103538:
- strb r0, [r1]
- movs r0, 0x1
-_0810353C:
- pop {r1}
- bx r1
- thumb_func_end sub_8103520
-
- thumb_func_start sub_8103540
-sub_8103540: @ 8103540
- push {lr}
- ldr r1, _0810355C @ =gUnknown_083ECB88
- ldr r0, _08103560 @ =0x02000000
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_0810355C: .4byte gUnknown_083ECB88
-_08103560: .4byte 0x02000000
- thumb_func_end sub_8103540
-
- thumb_func_start sub_8103564
-sub_8103564: @ 8103564
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, _081035D0 @ =0x02000000
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081035E0
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081035E0
- ldrh r0, [r4, 0x2E]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _081035E0
- movs r5, 0
- mov r7, sp
- movs r0, 0x2
- mov r8, r0
- adds r6, r4, 0
-_081035AA:
- lsls r0, r5, 16
- asrs r4, r0, 16
- mov r0, r8
- subs r1, r0, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081035D4
- movs r0, 0x2
- strh r0, [r6, 0x36]
- strh r5, [r6, 0x30]
- b _081035E0
- .align 2, 0
-_081035D0: .4byte 0x02000000
-_081035D4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081035AA
-_081035E0:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103564
-
- thumb_func_start j5_08111E84
-j5_08111E84: @ 81035EC
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _08103650 @ =0x02000000
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08103660
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103660
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _08103660
- movs r6, 0
- mov r7, sp
- adds r5, r4, 0
-_0810362A:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08103654
- ldrh r0, [r5, 0x34]
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _08103660
- .align 2, 0
-_08103650: .4byte 0x02000000
-_08103654:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810362A
-_08103660:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end j5_08111E84
-
- thumb_func_start sub_8103668
-sub_8103668: @ 8103668
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _0810368C @ =0x02000000
- ldrh r3, [r4, 0x34]
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _0810375A
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810375A
- cmp r2, 0x2
- bne _081036AE
- bl j5_08111E84
- b _0810375A
- .align 2, 0
-_0810368C: .4byte 0x02000000
-_08103690:
- ldr r0, _0810369C @ =0x02000000
- movs r1, 0
- strh r6, [r0, 0x36]
- strh r1, [r0, 0x30]
- b _0810375A
- .align 2, 0
-_0810369C: .4byte 0x02000000
-_081036A0:
- movs r0, 0x2
- strh r0, [r5, 0x36]
- adds r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_081036AA:
- movs r0, 0x3
- b _08103736
-_081036AE:
- ldrh r1, [r4, 0x2E]
- subs r1, r3, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- bl sub_8103520
- lsls r0, 24
- cmp r0, 0
- beq _0810375A
- movs r6, 0x2
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _081036D8
- movs r6, 0x3
-_081036D8:
- movs r5, 0
- mov r7, sp
-_081036DC:
- lsls r0, r6, 16
- asrs r4, r0, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- beq _08103690
- lsls r1, r5, 16
- movs r0, 0x80
- lsls r0, 9
- adds r1, r0
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x1
- ble _081036DC
- movs r6, 0x1
- mov r7, sp
- ldr r5, _0810373C @ =0x02000000
-_0810370E:
- ldrh r1, [r5, 0x34]
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- ldrb r1, [r7]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0810374E
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08103740
- cmp r4, 0x2
- ble _081036A0
-_08103736:
- strh r0, [r5, 0x36]
- strh r6, [r5, 0x30]
- b _0810375A
- .align 2, 0
-_0810373C: .4byte 0x02000000
-_08103740:
- cmp r4, 0x2
- ble _081036AA
- movs r0, 0x2
- strh r0, [r5, 0x36]
- subs r0, r4, 0x1
- strh r0, [r5, 0x30]
- b _0810375A
-_0810374E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0810370E
-_0810375A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103668
-
- thumb_func_start sub_8103764
-sub_8103764: @ 8103764
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r0, 0
- bne _08103778
- cmp r1, 0x1
- beq _08103780
-_08103778:
- cmp r0, 0x1
- bne _08103784
- cmp r2, 0
- bne _08103784
-_08103780:
- movs r0, 0x1
- b _08103786
-_08103784:
- movs r0, 0
-_08103786:
- pop {r1}
- bx r1
- thumb_func_end sub_8103764
-
- thumb_func_start sub_810378C
-sub_810378C: @ 810378C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037A6
- cmp r1, 0x1
- bne _081037A6
- cmp r2, 0
- beq _081037B2
-_081037A6:
- cmp r0, 0x1
- bne _081037B6
- cmp r1, 0
- bne _081037B6
- cmp r2, 0x1
- bne _081037B6
-_081037B2:
- movs r0, 0x1
- b _081037B8
-_081037B6:
- movs r0, 0
-_081037B8:
- pop {r1}
- bx r1
- thumb_func_end sub_810378C
-
- thumb_func_start sub_81037BC
-sub_81037BC: @ 81037BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0
- bne _081037D6
- cmp r1, 0x1
- bne _081037D6
- cmp r2, 0
- beq _08103802
-_081037D6:
- cmp r0, 0x1
- bne _081037E2
- cmp r1, 0
- bne _081037E2
- cmp r2, 0x1
- beq _08103802
-_081037E2:
- cmp r0, 0
- bne _081037EE
- cmp r1, 0
- bne _081037EE
- cmp r2, 0x1
- beq _08103802
-_081037EE:
- cmp r0, 0x1
- bne _081037FA
- cmp r1, 0x1
- bne _081037FA
- cmp r2, 0
- beq _08103802
-_081037FA:
- cmp r0, r1
- bne _08103806
- cmp r0, r2
- bne _08103806
-_08103802:
- movs r0, 0
- b _08103808
-_08103806:
- movs r0, 0x1
-_08103808:
- pop {r1}
- bx r1
- thumb_func_end sub_81037BC
-
- thumb_func_start sub_810380C
-sub_810380C: @ 810380C
- push {lr}
- ldr r1, _08103828 @ =gUnknown_083ECB94
- ldr r0, _0810382C @ =0x02000000
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .align 2, 0
-_08103828: .4byte gUnknown_083ECB94
-_0810382C: .4byte 0x02000000
- thumb_func_end sub_810380C
-
- thumb_func_start sub_8103830
-sub_8103830: @ 8103830
- push {r4-r7,lr}
- movs r6, 0
- ldr r7, _08103868 @ =0x02000000
- ldrh r1, [r7, 0x2E]
- movs r4, 0x2
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x30]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, r1
- bne _081038A0
- movs r4, 0x2
- b _08103876
- .align 2, 0
-_08103868: .4byte 0x02000000
-_0810386C:
- lsls r0, r6, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r6, r0, 16
-_08103876:
- lsls r1, r6, 16
- asrs r1, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0810386C
- cmp r5, 0
- bne _08103896
- cmp r0, 0x1
- beq _0810386C
-_08103896:
- cmp r5, 0x1
- bne _08103900
- cmp r0, 0
- beq _0810386C
- b _08103900
-_081038A0:
- adds r0, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103900
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081038DC
- movs r7, 0x2
-_081038B8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08103900
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _081038B8
-_081038DC:
- movs r6, 0
- movs r7, 0x2
- b _081038E8
-_081038E2:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_081038E8:
- lsls r0, r6, 16
- asrs r4, r0, 16
- subs r1, r7, r4
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _081038E2
-_08103900:
- ldr r0, _0810390C @ =0x02000000
- strh r6, [r0, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810390C: .4byte 0x02000000
- thumb_func_end sub_8103830
-
- thumb_func_start sub_8103910
-sub_8103910: @ 8103910
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r4, _08103978 @ =0x02000000
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _081039A6
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- bne _081039A6
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081039A6
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _081039A6
- movs r5, 0
- b _08103982
- .align 2, 0
-_08103978: .4byte 0x02000000
-_0810397C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_08103982:
- lsls r6, r5, 16
- asrs r5, r6, 16
- cmp r5, 0x4
- bgt _081039A6
- ldr r0, _08103A34 @ =0x02000000
- ldrh r1, [r0, 0x36]
- subs r1, r5
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, r4
- bne _0810397C
- lsrs r6, 16
- str r6, [sp]
-_081039A6:
- ldr r0, _08103A34 @ =0x02000000
- mov r9, r0
-_081039AA:
- movs r5, 0x1
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
-_081039B6:
- mov r3, r9
- ldrh r1, [r3, 0x2E]
- lsls r5, 16
- asrs r4, r5, 16
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrh r1, [r0, 0x30]
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- mov r1, r10
- asrs r0, r1, 16
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103A38
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103A24
- mov r2, r9
- ldrb r1, [r2, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103A38
-_08103A24:
- mov r3, r8
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r0, 16
- mov r8, r0
- b _08103A46
- .align 2, 0
-_08103A34: .4byte 0x02000000
-_08103A38:
- movs r2, 0x80
- lsls r2, 9
- adds r0, r5, r2
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081039B6
-_08103A46:
- mov r3, r8
- cmp r3, 0
- beq _08103A5C
- ldr r1, [sp]
- lsls r0, r1, 16
- movs r2, 0x80
- lsls r2, 9
- adds r0, r2
- lsrs r0, 16
- str r0, [sp]
- b _081039AA
-_08103A5C:
- ldr r0, _08103A74 @ =0x02000000
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r0, 0x32]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103A74: .4byte 0x02000000
- thumb_func_end sub_8103910
-
- thumb_func_start sub_8103A78
-sub_8103A78: @ 8103A78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl sub_8103910
- ldr r4, _08103B10 @ =0x02000000
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08103B20
- ldrh r2, [r4, 0x34]
- movs r3, 0x34
- ldrsh r0, [r4, r3]
- cmp r0, r1
- beq _08103B20
- ldrb r1, [r4, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08103B20
- ldrh r1, [r4, 0x2E]
- subs r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r1, [r4, 0x36]
- ldrh r0, [r4, 0x30]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8103764
- lsls r0, 24
- cmp r0, 0
- beq _08103B20
- movs r1, 0x1
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _08103AE0
- movs r1, 0x3
-_08103AE0:
- movs r3, 0
- lsls r1, 16
- mov r8, r1
- adds r7, r4, 0
-_08103AE8:
- ldrh r2, [r7, 0x32]
- lsls r0, r3, 16
- asrs r5, r0, 16
- adds r2, r5, r2
- mov r3, r8
- asrs r1, r3, 16
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r6, r4
- bne _08103B14
- ldrh r0, [r7, 0x32]
- adds r0, r5, r0
- strh r0, [r7, 0x32]
- b _08103B20
- .align 2, 0
-_08103B10: .4byte 0x02000000
-_08103B14:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _08103AE8
-_08103B20:
- ldr r7, _08103B90 @ =0x02000000
-_08103B22:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103B94
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103B88
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103B94
-_08103B88:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B22
- .align 2, 0
-_08103B90: .4byte 0x02000000
-_08103B94:
- ldr r7, _08103C04 @ =0x02000000
-_08103B96:
- ldrh r0, [r7, 0x2E]
- movs r1, 0x3
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl sub_8102BF8
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r7, 0x30]
- movs r1, 0x2
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x1
- bl sub_8102BF8
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r7, 0x32]
- movs r1, 0x1
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x2
- bl sub_8102BF8
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_81037BC
- lsls r0, 24
- cmp r0, 0
- bne _08103C08
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810378C
- lsls r0, 24
- cmp r0, 0
- beq _08103BFC
- ldrb r1, [r7, 0x4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08103C08
-_08103BFC:
- ldrh r0, [r7, 0x32]
- adds r0, 0x1
- strh r0, [r7, 0x32]
- b _08103B96
- .align 2, 0
-_08103C04: .4byte 0x02000000
-_08103C08:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8103A78
-
- thumb_func_start sub_8103C14
-sub_8103C14: @ 8103C14
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08103C40 @ =sub_8103C48
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103C44 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C40: .4byte sub_8103C48
-_08103C44: .4byte gTasks
- thumb_func_end sub_8103C14
-
- thumb_func_start sub_8103C48
-sub_8103C48: @ 8103C48
- push {r4,lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08103C70 @ =gUnknown_083ECBA0
- ldr r2, _08103C74 @ =gTasks
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r4, 0x8
- ldrsh r2, [r0, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103C70: .4byte gUnknown_083ECBA0
-_08103C74: .4byte gTasks
- thumb_func_end sub_8103C48
-
- thumb_func_start sub_8103C78
-sub_8103C78: @ 8103C78
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08103CA8 @ =gUnknown_083ECBAC
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x73
- str r1, [sp]
- movs r1, 0x62
- movs r2, 0x63
- movs r3, 0x72
- bl sub_81065A8
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CA8: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103C78
-
- thumb_func_start sub_8103CAC
-sub_8103CAC: @ 8103CAC
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _08103CC4
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08103CC4:
- pop {r0}
- bx r0
- thumb_func_end sub_8103CAC
-
- thumb_func_start sub_8103CC8
-sub_8103CC8: @ 8103CC8
- push {r4,lr}
- sub sp, 0x4
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _08103CFC @ =gUnknown_083ECBAC
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x53
- str r1, [sp]
- movs r1, 0x42
- movs r2, 0x43
- movs r3, 0x52
- bl sub_81065A8
- adds r0, r4, 0
- bl DestroyTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103CFC: .4byte gUnknown_083ECBAC
- thumb_func_end sub_8103CC8
-
- thumb_func_start sub_8103D00
-sub_8103D00: @ 8103D00
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D20 @ =gUnknown_083EDD08
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D24 @ =gUnknown_083EDD30
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D20: .4byte gUnknown_083EDD08
-_08103D24: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D00
-
- thumb_func_start sub_8103D28
-sub_8103D28: @ 8103D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103D48 @ =gUnknown_083EDD1C
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- ldr r1, _08103D4C @ =gUnknown_083EDD30
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x2
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08103D48: .4byte gUnknown_083EDD1C
-_08103D4C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103D28
-
- thumb_func_start sub_8103D50
-sub_8103D50: @ 8103D50
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103D84 @ =gUnknown_083EDD3B
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103D7C
- ldr r7, _08103D88 @ =gUnknown_083EDD35
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103D68:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D00
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103D68
-_08103D7C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103D84: .4byte gUnknown_083EDD3B
-_08103D88: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D50
-
- thumb_func_start sub_8103D8C
-sub_8103D8C: @ 8103D8C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- ldr r0, _08103DC0 @ =gUnknown_083EDD3B
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r4, r0
- bcs _08103DB8
- ldr r7, _08103DC4 @ =gUnknown_083EDD35
- adds r6, r0, 0
- lsls r5, r1, 1
-_08103DA4:
- adds r0, r4, r5
- adds r0, r7
- ldrb r0, [r0]
- bl sub_8103D28
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08103DA4
-_08103DB8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DC0: .4byte gUnknown_083EDD3B
-_08103DC4: .4byte gUnknown_083EDD35
- thumb_func_end sub_8103D8C
-
- thumb_func_start sub_8103DC8
-sub_8103DC8: @ 8103DC8
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _08103DF8 @ =gSprites
- ldr r5, _08103DFC @ =0x02000044
-_08103DD0:
- ldr r0, _08103E00 @ =sub_8103EE4
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r4, [r1, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103DD0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08103DF8: .4byte gSprites
-_08103DFC: .4byte 0x02000044
-_08103E00: .4byte sub_8103EE4
- thumb_func_end sub_8103DC8
-
- thumb_func_start sub_8103E04
-sub_8103E04: @ 8103E04
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08103E30 @ =0x02000000
- adds r1, 0x44
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08103E34 @ =gSprites
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x30]
- movs r1, 0x4
- strh r1, [r0, 0x32]
- strh r2, [r0, 0x34]
- strh r2, [r0, 0x36]
- movs r1, 0x2
- strh r1, [r0, 0x38]
- strh r2, [r0, 0x3C]
- bx lr
- .align 2, 0
-_08103E30: .4byte 0x02000000
-_08103E34: .4byte gSprites
- thumb_func_end sub_8103E04
-
- thumb_func_start sub_8103E38
-sub_8103E38: @ 8103E38
- push {r4,r5,lr}
- movs r2, 0
- ldr r4, _08103E60 @ =0x02000044
- ldr r3, _08103E64 @ =gSprites
-_08103E40:
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r3
- movs r5, 0x30
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r5, 0x32
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08103E68
- movs r0, 0
- b _08103E74
- .align 2, 0
-_08103E60: .4byte 0x02000044
-_08103E64: .4byte gSprites
-_08103E68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08103E40
- movs r0, 0x1
-_08103E74:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E38
-
- thumb_func_start sub_8103E7C
-sub_8103E7C: @ 8103E7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08103E94 @ =0x02000044
-_08103E82:
- adds r0, r4, r5
- ldrb r0, [r0]
- bl sub_8103EAC
- lsls r0, 24
- cmp r0, 0
- bne _08103E98
- movs r0, 0
- b _08103EA4
- .align 2, 0
-_08103E94: .4byte 0x02000044
-_08103E98:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08103E82
- movs r0, 0x1
-_08103EA4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8103E7C
-
- thumb_func_start sub_8103EAC
-sub_8103EAC: @ 8103EAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08103EC8 @ =gSprites
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08103ECC
- movs r0, 0x1
- b _08103EDE
- .align 2, 0
-_08103EC8: .4byte gSprites
-_08103ECC:
- ldrh r2, [r1, 0x3C]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08103EDA
- movs r0, 0
- strh r0, [r1, 0x30]
-_08103EDA:
- lsls r0, r2, 24
- lsrs r0, 24
-_08103EDE:
- pop {r1}
- bx r1
- thumb_func_end sub_8103EAC
-
- thumb_func_start sub_8103EE4
-sub_8103EE4: @ 8103EE4
- push {r4-r7,lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F66
- ldrh r0, [r2, 0x34]
- subs r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08103F4E
- movs r0, 0
- strh r0, [r2, 0x3C]
- movs r6, 0x1
- strh r6, [r2, 0x34]
- ldrh r1, [r2, 0x38]
- ldrh r3, [r2, 0x36]
- adds r0, r1, r3
- strh r0, [r2, 0x36]
- movs r4, 0x4
- ldrh r5, [r2, 0x32]
- movs r7, 0x32
- ldrsh r3, [r2, r7]
- cmp r3, 0
- beq _08103F20
- movs r4, 0x8
-_08103F20:
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bgt _08103F38
- strh r6, [r2, 0x3C]
- negs r0, r1
- strh r0, [r2, 0x38]
- cmp r3, 0
- beq _08103F4E
- subs r0, r5, 0x1
- strh r0, [r2, 0x32]
- b _08103F40
-_08103F38:
- cmp r0, r4
- blt _08103F40
- negs r0, r1
- strh r0, [r2, 0x38]
-_08103F40:
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08103F4E
- ldrh r0, [r2, 0x34]
- lsls r0, 1
- strh r0, [r2, 0x34]
-_08103F4E:
- ldr r1, _08103F6C @ =gUnknown_083EDD30
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- adds r0, r1
- ldrb r0, [r0]
- ldrh r3, [r2, 0x36]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r3, 0
- adds r2, r3, 0
- bl MultiplyPaletteRGBComponents
-_08103F66:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F6C: .4byte gUnknown_083EDD30
- thumb_func_end sub_8103EE4
-
- thumb_func_start sub_8103F70
-sub_8103F70: @ 8103F70
- push {r4,lr}
- ldr r4, _08103F98 @ =sub_8103FE8
- adds r0, r4, 0
- movs r1, 0x6
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08103F9C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0xE]
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08103F98: .4byte sub_8103FE8
-_08103F9C: .4byte gTasks
- thumb_func_end sub_8103F70
-
- thumb_func_start sub_8103FA0
-sub_8103FA0: @ 8103FA0
- push {lr}
- ldr r0, _08103FC4 @ =sub_8103FE8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08103FC8 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08103FCC
- movs r0, 0
- b _08103FE0
- .align 2, 0
-_08103FC4: .4byte sub_8103FE8
-_08103FC8: .4byte gTasks
-_08103FCC:
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _08103FE4 @ =gUnknown_083EDDAC
- ldr r0, [r0]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
-_08103FE0:
- pop {r1}
- bx r1
- .align 2, 0
-_08103FE4: .4byte gUnknown_083EDDAC
- thumb_func_end sub_8103FA0
-
- thumb_func_start sub_8103FE8
-sub_8103FE8: @ 8103FE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08104040 @ =gTasks
- adds r2, r1, r0
- ldrh r0, [r2, 0xA]
- subs r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08104026
- movs r0, 0x4
- strh r0, [r2, 0xA]
- ldrh r1, [r2, 0xE]
- ldrh r3, [r2, 0xC]
- adds r0, r1, r3
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08104022
- cmp r0, 0x2
- bne _08104026
-_08104022:
- negs r0, r1
- strh r0, [r2, 0xE]
-_08104026:
- ldr r0, _08104044 @ =gUnknown_083EDDA0
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .align 2, 0
-_08104040: .4byte gTasks
-_08104044: .4byte gUnknown_083EDDA0
- thumb_func_end sub_8103FE8
-
- thumb_func_start sub_8104048
-sub_8104048: @ 8104048
- push {lr}
- ldr r0, _0810405C @ =sub_81040E8
- movs r1, 0x8
- bl CreateTask
- ldr r1, _08104060 @ =0x02000000
- adds r1, 0x3E
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810405C: .4byte sub_81040E8
-_08104060: .4byte 0x02000000
- thumb_func_end sub_8104048
-
- thumb_func_start sub_8104064
-sub_8104064: @ 8104064
- push {r4,lr}
- ldr r0, _08104090 @ =0x02000000
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08104094 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r1, 0x1
- strh r1, [r4, 0x8]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104090: .4byte 0x02000000
-_08104094: .4byte gTasks
- thumb_func_end sub_8104064
-
- thumb_func_start sub_8104098
-sub_8104098: @ 8104098
- push {r4,lr}
- ldr r0, _081040C0 @ =0x02000000
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081040C4 @ =gTasks
- adds r4, r0
- adds r0, r4, 0
- bl sub_810421C
- movs r0, 0x3
- strh r0, [r4, 0x8]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081040C0: .4byte 0x02000000
-_081040C4: .4byte gTasks
- thumb_func_end sub_8104098
-
- thumb_func_start sub_81040C8
-sub_81040C8: @ 81040C8
- ldr r2, _081040E0 @ =gTasks
- ldr r0, _081040E4 @ =0x02000000
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_081040E0: .4byte gTasks
-_081040E4: .4byte 0x02000000
- thumb_func_end sub_81040C8
-
- thumb_func_start sub_81040E8
-sub_81040E8: @ 81040E8
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104110 @ =gUnknown_083ECBB4
- ldr r2, _08104114 @ =gTasks
- 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
-_08104110: .4byte gUnknown_083ECBB4
-_08104114: .4byte gTasks
- thumb_func_end sub_81040E8
-
- thumb_func_start nullsub_68
-nullsub_68: @ 8104118
- bx lr
- thumb_func_end nullsub_68
-
- thumb_func_start sub_810411C
-sub_810411C: @ 810411C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r0, 19
- movs r1, 0xA0
- lsls r1, 13
- adds r0, r1
- asrs r0, 16
- movs r1, 0x14
- bl sub_8105B1C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810411C
-
- thumb_func_start sub_8104144
-sub_8104144: @ 8104144
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _08104174 @ =gSprites
- movs r0, 0xC
- 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 _0810419E
- ldrh r1, [r4, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _08104178
- movs r0, 0x1
- b _0810417E
- .align 2, 0
-_08104174: .4byte gSprites
-_08104178:
- cmp r1, 0x10
- bne _0810417E
- movs r0, 0x2
-_0810417E:
- lsls r1, r2, 16
- asrs r1, 15
- ldr r2, _081041A4 @ =0x0600e800
- adds r1, r2
- adds r1, 0x80
- ldr r2, _081041A8 @ =gUnknown_083ECBC4
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r4, 0xC]
- bl sub_8105B88
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0x26]
-_0810419E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081041A4: .4byte 0x0600e800
-_081041A8: .4byte gUnknown_083ECBC4
- thumb_func_end sub_8104144
-
- thumb_func_start sub_81041AC
-sub_81041AC: @ 81041AC
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0xA]
- adds r0, r1, 0x2
- lsls r0, 16
- lsrs r4, r0, 16
- movs r2, 0
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x1
- bne _081041C6
- movs r2, 0x1
- b _081041CC
-_081041C6:
- cmp r1, 0x10
- bne _081041CC
- movs r2, 0x2
-_081041CC:
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _081041F0
- lsls r0, r4, 16
- asrs r0, 15
- ldr r1, _08104214 @ =0x0600e800
- adds r0, r1
- adds r0, 0x80
- ldr r1, _08104218 @ =gUnknown_083ECBC4
- lsls r2, 2
- adds r1, 0x2
- adds r2, r1
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
-_081041F0:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _08104202
- movs r0, 0
- strh r0, [r3, 0xC]
-_08104202:
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _0810420E
- strh r0, [r3, 0x8]
- strh r0, [r3, 0x26]
-_0810420E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104214: .4byte 0x0600e800
-_08104218: .4byte gUnknown_083ECBC4
- thumb_func_end sub_81041AC
-
- thumb_func_start sub_810421C
-sub_810421C: @ 810421C
- push {lr}
- movs r1, 0x2
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0
-_08104226:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104226
- pop {r0}
- bx r0
- thumb_func_end sub_810421C
-
- thumb_func_start sub_810423C
-sub_810423C: @ 810423C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0x3
- ldr r6, _08104268 @ =0x0600e800
- movs r4, 0
- ldr r0, _0810426C @ =gTasks
- mov r8, r0
- ldr r1, _08104270 @ =0x02000000
- mov r12, r1
- cmp r4, r5
- bge _081042A6
- ldr r7, _08104274 @ =gUnknown_083ECBC4
-_0810425A:
- movs r3, 0
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- bne _08104278
- movs r3, 0x1
- b _0810427E
- .align 2, 0
-_08104268: .4byte 0x0600e800
-_0810426C: .4byte gTasks
-_08104270: .4byte 0x02000000
-_08104274: .4byte gUnknown_083ECBC4
-_08104278:
- cmp r0, 0xF
- bne _0810427E
- movs r3, 0x2
-_0810427E:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _0810425A
-_081042A6:
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- bgt _081042F0
- ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2
-_081042B0:
- movs r3, 0
- asrs r0, r1, 16
- cmp r0, 0
- bne _081042C0
- movs r3, 0x1
- b _081042C6
- .align 2, 0
-_081042BC: .4byte gUnknown_083ECBC4 + 0x2
-_081042C0:
- cmp r0, 0xF
- bne _081042C6
- movs r3, 0x2
-_081042C6:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r1, r6
- adds r1, 0x80
- lsls r0, r3, 2
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- adds r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- lsls r1, r4, 16
- asrs r0, r1, 16
- cmp r0, 0xF
- ble _081042B0
-_081042F0:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r8
- strh r5, [r0, 0xA]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810423C
-
- thumb_func_start sub_810430C
-sub_810430C: @ 810430C
- push {r4,lr}
- ldr r4, _08104328 @ =sub_810434C
- adds r0, r4, 0
- movs r1, 0x7
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104328: .4byte sub_810434C
- thumb_func_end sub_810430C
-
- thumb_func_start sub_810432C
-sub_810432C: @ 810432C
- push {lr}
- ldr r0, _08104340 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104344
- movs r0, 0
- b _08104346
- .align 2, 0
-_08104340: .4byte sub_810434C
-_08104344:
- movs r0, 0x1
-_08104346:
- pop {r1}
- bx r1
- thumb_func_end sub_810432C
-
- thumb_func_start sub_810434C
-sub_810434C: @ 810434C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104374 @ =gUnknown_083ECBD0
- ldr r2, _08104378 @ =gTasks
- 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
-_08104374: .4byte gUnknown_083ECBD0
-_08104378: .4byte gTasks
- thumb_func_end sub_810434C
-
- thumb_func_start sub_810437C
-sub_810437C: @ 810437C
- push {lr}
- ldr r1, _081043DC @ =0x02000000
- movs r2, 0
- strb r2, [r1, 0xA]
- strh r2, [r1, 0x14]
- strh r2, [r1, 0x16]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- movs r1, 0x1E
- strh r1, [r0, 0xC]
- movs r1, 0xA0
- lsls r1, 3
- strh r1, [r0, 0x10]
- ldr r0, _081043E0 @ =gSpriteCoordOffsetX
- strh r2, [r0]
- ldr r0, _081043E4 @ =gSpriteCoordOffsetY
- strh r2, [r0]
- ldr r0, _081043E8 @ =REG_BG1HOFS
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- movs r0, 0x1E
- movs r1, 0
- bl sub_8104A40
- bl sub_81051C0
- bl sub_8105100
- bl sub_81052EC
- bl sub_81053A0
- bl sub_810545C
- bl sub_8102680
- bl StopMapMusic
- movs r0, 0xC4
- lsls r0, 1
- bl PlayNewMapMusic
- pop {r0}
- bx r0
- .align 2, 0
-_081043DC: .4byte 0x02000000
-_081043E0: .4byte gSpriteCoordOffsetX
-_081043E4: .4byte gSpriteCoordOffsetY
-_081043E8: .4byte REG_BG1HOFS
- thumb_func_end sub_810437C
-
- thumb_func_start sub_81043EC
-sub_81043EC: @ 81043EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810445C @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r4, 0xA]
- adds r2, 0x8
- strh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r0, 0xF0
- movs r1, 0xFF
- ands r0, r1
- lsrs r3, r0, 3
- ldr r1, _08104460 @ =REG_BG1HOFS
- ldr r0, _08104464 @ =0x000001ff
- ands r2, r0
- strh r2, [r1]
- adds r2, r3, 0
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r2, r0
- beq _08104438
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bgt _08104438
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 19
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- adds r0, r2, 0
- bl sub_8104A40
-_08104438:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xC7
- ble _0810444A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xE]
-_0810444A:
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810445C: .4byte gSpriteCoordOffsetX
-_08104460: .4byte REG_BG1HOFS
-_08104464: .4byte 0x000001ff
- thumb_func_end sub_81043EC
-
- thumb_func_start sub_8104468
-sub_8104468: @ 8104468
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104492
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105578
- bl sub_81056F0
-_08104492:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104468
-
- thumb_func_start sub_8104498
-sub_8104498: @ 8104498
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r1, _08104534 @ =gUnknown_083ECC1C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _08104538 @ =gUnknown_083ECC20
- movs r2, 0x8
- bl memcpy
- add r6, sp, 0xC
- ldr r1, _0810453C @ =gUnknown_083ECC28
- adds r0, r6, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r7, 0x10]
- subs r0, 0x4
- strh r0, [r7, 0x10]
- lsls r0, 16
- asrs r0, 24
- movs r5, 0x4
- subs r5, r0
- lsls r4, r5, 1
- add r8, r4
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl sub_8105688
- adds r6, r4
- movs r1, 0
- ldrsh r0, [r6, r1]
- bl sub_81057E8
- ldr r0, _08104540 @ =0x02000000
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104544 @ =gSprites
- adds r0, r1
- mov r2, sp
- adds r1, r2, r5
- ldrb r1, [r1]
- bl StartSpriteAnimIfDifferent
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bgt _08104526
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- strh r1, [r7, 0x10]
- movs r0, 0
- strh r0, [r7, 0x12]
-_08104526:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104534: .4byte gUnknown_083ECC1C
-_08104538: .4byte gUnknown_083ECC20
-_0810453C: .4byte gUnknown_083ECC28
-_08104540: .4byte 0x02000000
-_08104544: .4byte gSprites
- thumb_func_end sub_8104498
-
- thumb_func_start sub_8104548
-sub_8104548: @ 8104548
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _0810458A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
- movs r0, 0x2
- bl sub_81057E8
- ldr r0, _08104590 @ =0x02000000
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104594 @ =gSprites
- adds r0, r1
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
-_0810458A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104590: .4byte 0x02000000
-_08104594: .4byte gSprites
- thumb_func_end sub_8104548
-
- thumb_func_start sub_8104598
-sub_8104598: @ 8104598
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x80
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4F
- ble _081045C4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- strh r0, [r4, 0x12]
-_081045C4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104598
-
- thumb_func_start sub_81045CC
-sub_81045CC: @ 81045CC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- ble _08104634
- movs r0, 0
- strh r0, [r4, 0x12]
- ldr r1, _0810460C @ =0x02000000
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _08104610
- ldrb r1, [r1, 0xA]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0810462E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
- .align 2, 0
-_0810460C: .4byte 0x02000000
-_08104610:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0810461E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- b _0810462C
-_0810461E:
- ldrh r0, [r4, 0x14]
- bl sub_81026DC
- lsls r0, 24
- cmp r0, 0
- beq _0810462E
- movs r0, 0xE
-_0810462C:
- strh r0, [r4, 0x8]
-_0810462E:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
-_08104634:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81045CC
-
- thumb_func_start sub_810463C
-sub_810463C: @ 810463C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, _08104660 @ =0x02000000
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r0, 0
- beq _08104664
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D5C
- b _08104688
- .align 2, 0
-_08104660: .4byte 0x02000000
-_08104664:
- movs r0, 0x1
- bl sub_8102C48
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x5]
- cmp r0, r1
- beq _08104692
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 24
- bl sub_8102D28
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- movs r1, 0x14
- bl __modsi3
-_08104688:
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r4, 0x10]
- adds r0, 0x40
- strh r0, [r4, 0x10]
-_08104692:
- lsls r0, r5, 16
- asrs r5, r0, 16
- cmp r5, 0
- bne _081046B4
- movs r0, 0x1
- bl sub_8102C48
- ldr r1, _081046BC @ =0x02000000
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1, 0x5]
- cmp r0, r1
- bne _081046B4
- strh r5, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_081046B4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081046BC: .4byte 0x02000000
- thumb_func_end sub_810463C
-
- thumb_func_start sub_81046C0
-sub_81046C0: @ 81046C0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- movs r7, 0
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _08104758
- bl StopMapMusic
- bl sub_81056C0
- bl sub_8105804
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r5, _08104710 @ =0x02000000
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _0810471C
- movs r0, 0xA0
- strh r0, [r4, 0x10]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104714 @ =gSprites
- adds r0, r1
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldr r0, _08104718 @ =0x00000187
- bl PlayFanfare
- b _08104758
- .align 2, 0
-_08104710: .4byte 0x02000000
-_08104714: .4byte gSprites
-_08104718: .4byte 0x00000187
-_0810471C:
- movs r0, 0xC0
- strh r0, [r4, 0x10]
- adds r6, r5, 0
- adds r6, 0x3F
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08104760 @ =gSprites
- adds r0, r4
- movs r1, 0x4
- bl StartSpriteAnimIfDifferent
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2B
- strb r7, [r0]
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _08104750
- bl sub_8104098
- strb r7, [r5, 0x2]
-_08104750:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
-_08104758:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104760: .4byte gSprites
- thumb_func_end sub_81046C0
-
- thumb_func_start sub_8104764
-sub_8104764: @ 8104764
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0810477C
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0810478C
-_0810477C:
- bl sub_81040C8
- lsls r0, 24
- cmp r0, 0
- bne _0810478C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0810478C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104764
-
- thumb_func_start sub_8104794
-sub_8104794: @ 8104794
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _081047D4 @ =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x8
- strh r0, [r1]
- ldrh r2, [r3, 0xA]
- adds r2, 0x8
- strh r2, [r3, 0xA]
- ldrh r0, [r3, 0xE]
- adds r0, 0x8
- strh r0, [r3, 0xE]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- subs r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- lsrs r4, r0, 3
- ldr r1, _081047D8 @ =REG_BG1HOFS
- ldr r0, _081047DC @ =0x000001ff
- ands r2, r0
- strh r2, [r1]
- ldrh r0, [r3, 0xE]
- lsls r0, 16
- asrs r0, 19
- cmp r0, 0x19
- bgt _081047E0
- adds r0, r4, 0
- bl sub_8104A88
- b _081047E6
- .align 2, 0
-_081047D4: .4byte gSpriteCoordOffsetX
-_081047D8: .4byte REG_BG1HOFS
-_081047DC: .4byte 0x000001ff
-_081047E0:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_081047E6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104794
-
- thumb_func_start sub_81047EC
-sub_81047EC: @ 81047EC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _08104834 @ =0x02000000
- movs r6, 0
- strb r6, [r4, 0xB]
- ldrb r0, [r4, 0x5]
- strb r0, [r4, 0xA]
- ldr r0, _08104838 @ =gSpriteCoordOffsetX
- strh r6, [r0]
- ldr r0, _0810483C @ =REG_BG1HOFS
- strh r6, [r0]
- movs r0, 0x8
- strh r0, [r4, 0x1A]
- bl sub_810514C
- bl sub_81054B8
- bl sub_8105524
- adds r0, r4, 0
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _08104844
- ldr r0, _08104840 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0810485A
- .align 2, 0
-_08104834: .4byte 0x02000000
-_08104838: .4byte gSpriteCoordOffsetX
-_0810483C: .4byte REG_BG1HOFS
-_08104840: .4byte sub_810434C
-_08104844:
- movs r0, 0x4
- bl sub_8104CAC
- bl dp15_jump_random_unknown
- strh r0, [r5, 0xA]
- strh r6, [r5, 0xC]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0810485A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81047EC
-
- thumb_func_start sub_8104860
-sub_8104860: @ 8104860
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0810487C @ =0x02000000
- ldrh r0, [r5, 0x1A]
- lsls r6, r0, 16
- asrs r1, r6, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08104880
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081048A2
- .align 2, 0
-_0810487C: .4byte 0x02000000
-_08104880:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _081048A2
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _081048A2
- asrs r0, r6, 17
- strh r0, [r5, 0x1A]
-_081048A2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8104860
-
- thumb_func_start sub_81048A8
-sub_81048A8: @ 81048A8
- push {lr}
- bl sub_8104E18
- lsls r0, 24
- cmp r0, 0
- beq _081048C2
- ldr r0, _081048C8 @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_081048C2:
- pop {r0}
- bx r0
- .align 2, 0
-_081048C8: .4byte sub_810434C
- thumb_func_end sub_81048A8
-
- thumb_func_start sub_81048CC
-sub_81048CC: @ 81048CC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_81054B8
- bl sub_81056C0
- bl sub_8105804
- bl sub_8105854
- ldr r5, _08104934 @ =gSprites
- ldr r3, _08104938 @ =0x02000000
- adds r0, r3, 0
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x3F
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x5
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- movs r0, 0x4
- strh r0, [r4, 0x10]
- strh r1, [r4, 0x12]
- bl StopMapMusic
- ldr r0, _0810493C @ =0x00000187
- bl PlayFanfare
- movs r0, 0xB2
- bl PlaySE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104934: .4byte gSprites
-_08104938: .4byte 0x02000000
-_0810493C: .4byte 0x00000187
- thumb_func_end sub_81048CC
-
- thumb_func_start sub_8104940
-sub_8104940: @ 8104940
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _081049B8 @ =gSpriteCoordOffsetY
- ldrh r1, [r4, 0x10]
- strh r1, [r0]
- ldr r0, _081049BC @ =REG_BG1VOFS
- strh r1, [r0]
- ldrh r1, [r4, 0x12]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810495E
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
-_0810495E:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- movs r1, 0x1F
- ands r0, r1
- cmp r0, 0
- bne _08104974
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 17
- strh r0, [r4, 0x10]
-_08104974:
- movs r0, 0x10
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081049B0
- bl sub_81058A0
- bl sub_81058C4
- bl sub_8105284
- bl sub_81059E8
- ldr r2, _081049C0 @ =gSprites
- ldr r0, _081049C4 @ =0x02000000
- adds r0, 0x4E
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r5, [r4, 0x12]
-_081049B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081049B8: .4byte gSpriteCoordOffsetY
-_081049BC: .4byte REG_BG1VOFS
-_081049C0: .4byte gSprites
-_081049C4: .4byte 0x02000000
- thumb_func_end sub_8104940
-
- thumb_func_start sub_81049C8
-sub_81049C8: @ 81049C8
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081049F0 @ =gSpriteCoordOffsetY
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081049F4 @ =REG_BG1VOFS
- strh r1, [r0]
- bl sub_8105ACC
- lsls r0, 24
- cmp r0, 0
- beq _081049EA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl sub_8105AEC
-_081049EA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081049F0: .4byte gSpriteCoordOffsetY
-_081049F4: .4byte REG_BG1VOFS
- thumb_func_end sub_81049C8
-
- thumb_func_start sub_81049F8
-sub_81049F8: @ 81049F8
- push {lr}
- ldr r0, _08104A30 @ =gSpriteCoordOffsetX
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08104A34 @ =REG_BG1HOFS
- strh r1, [r0]
- ldr r0, _08104A38 @ =0x02000000
- adds r0, 0x60
- ldrh r0, [r0]
- bl PlayNewMapMusic
- bl sub_810514C
- bl sub_8105554
- bl sub_8105524
- bl sub_81059B8
- ldr r0, _08104A3C @ =sub_810434C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104A30: .4byte gSpriteCoordOffsetX
-_08104A34: .4byte REG_BG1HOFS
-_08104A38: .4byte 0x02000000
-_08104A3C: .4byte sub_810434C
- thumb_func_end sub_81049F8
-
- thumb_func_start sub_8104A40
-sub_8104A40: @ 8104A40
- push {r4-r7,lr}
- movs r3, 0x4
- ldr r7, _08104A80 @ =gReelTimeWindowTilemap
- lsls r1, 16
- asrs r5, r1, 16
- lsls r0, 16
- asrs r4, r0, 16
- ldr r6, _08104A84 @ =0x0600e000
-_08104A50:
- lsls r2, r3, 16
- asrs r2, 16
- subs r1, r2, 0x4
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5, r0
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r0]
- lsls r0, r2, 5
- adds r0, r4
- lsls r0, 1
- adds r0, r6
- strh r1, [r0]
- adds r2, 0x1
- lsls r2, 16
- lsrs r3, r2, 16
- asrs r2, 16
- cmp r2, 0xE
- ble _08104A50
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104A80: .4byte gReelTimeWindowTilemap
-_08104A84: .4byte 0x0600e000
- thumb_func_end sub_8104A40
-
- thumb_func_start sub_8104A88
-sub_8104A88: @ 8104A88
- push {r4,r5,lr}
- movs r2, 0x4
- lsls r0, 16
- asrs r3, r0, 16
- ldr r5, _08104AB4 @ =0x0600e000
- movs r4, 0
-_08104A94:
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r2, r1, 16
- asrs r1, 16
- cmp r1, 0xE
- ble _08104A94
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AB4: .4byte 0x0600e000
- thumb_func_end sub_8104A88
-
- thumb_func_start sub_8104AB8
-sub_8104AB8: @ 8104AB8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08104AE4 @ =sub_8104B0C
- adds r0, r5, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08104AE8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104AE4: .4byte sub_8104B0C
-_08104AE8: .4byte gTasks
- thumb_func_end sub_8104AB8
-
- thumb_func_start sub_8104AEC
-sub_8104AEC: @ 8104AEC
- push {lr}
- ldr r0, _08104B00 @ =sub_8104B0C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _08104B04
- movs r0, 0
- b _08104B06
- .align 2, 0
-_08104B00: .4byte sub_8104B0C
-_08104B04:
- movs r0, 0x1
-_08104B06:
- pop {r1}
- bx r1
- thumb_func_end sub_8104AEC
-
- thumb_func_start sub_8104B0C
-sub_8104B0C: @ 8104B0C
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104B34 @ =gUnknown_083ECC30
- ldr r2, _08104B38 @ =gTasks
- 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
-_08104B34: .4byte gUnknown_083ECC30
-_08104B38: .4byte gTasks
- thumb_func_end sub_8104B0C
-
- thumb_func_start sub_8104B3C
-sub_8104B3C: @ 8104B3C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8104B3C
-
- thumb_func_start sub_8104B60
-sub_8104B60: @ 8104B60
- push {lr}
- adds r2, r0, 0
- ldr r0, _08104B7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08104B76
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_08104B76:
- pop {r0}
- bx r0
- .align 2, 0
-_08104B7C: .4byte gPaletteFade
- thumb_func_end sub_8104B60
-
- thumb_func_start sub_8104B80
-sub_8104B80: @ 8104B80
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8104DA4
- bl sub_81065DC
- ldr r0, _08104BC0 @ =gWindowConfig_81E7144
- bl BasicInitMenuWindow
- ldr r0, _08104BC4 @ =gOtherText_ReelTime
- movs r1, 0xA
- movs r2, 0x20
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BC0: .4byte gWindowConfig_81E7144
-_08104BC4: .4byte gOtherText_ReelTime
- thumb_func_end sub_8104B80
-
- thumb_func_start sub_8104BC8
-sub_8104BC8: @ 8104BC8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _08104BF8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _08104BF0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_08104BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104BF8: .4byte gMain
- thumb_func_end sub_8104BC8
-
- thumb_func_start sub_8104BFC
-sub_8104BFC: @ 8104BFC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl MenuZeroFillScreen
- ldr r0, _08104C3C @ =gWindowConfig_81E7128
- bl BasicInitMenuWindow
- bl sub_81064B8
- ldrb r0, [r4, 0xA]
- bl sub_8104CAC
- ldr r0, _08104C40 @ =0x02000000
- ldrb r0, [r0, 0x2]
- bl sub_810423C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08104C3C: .4byte gWindowConfig_81E7128
-_08104C40: .4byte 0x02000000
- thumb_func_end sub_8104BFC
-
- thumb_func_start sub_8104C44
-sub_8104C44: @ 8104C44
- push {lr}
- ldr r0, _08104C58 @ =sub_8104B0C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- .align 2, 0
-_08104C58: .4byte sub_8104B0C
- thumb_func_end sub_8104C44
-
- thumb_func_start sub_8104C5C
-sub_8104C5C: @ 8104C5C
- push {lr}
- ldr r0, _08104C9C @ =sub_8104E74
- movs r1, 0x3
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08104CA0 @ =0x02000000
- adds r0, 0x3D
- strb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104CA4 @ =gTasks
- adds r0, r1
- ldr r1, _08104CA8 @ =0x0000ffff
- strh r1, [r0, 0xA]
- movs r1, 0x4
- adds r2, r0, 0
- adds r2, 0x8
- movs r3, 0x40
-_08104C86:
- lsls r0, r1, 1
- adds r0, r2, r0
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _08104C86
- pop {r0}
- bx r0
- .align 2, 0
-_08104C9C: .4byte sub_8104E74
-_08104CA0: .4byte 0x02000000
-_08104CA4: .4byte gTasks
-_08104CA8: .4byte 0x0000ffff
- thumb_func_end sub_8104C5C
-
- thumb_func_start sub_8104CAC
-sub_8104CAC: @ 8104CAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8104DA4
- ldr r0, _08104D24 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D28 @ =gTasks
- adds r7, r0, r1
- strh r4, [r7, 0xA]
- movs r6, 0
- ldr r1, _08104D2C @ =gUnknown_083ED048
- lsls r5, r4, 2
- adds r0, r5, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08104D18
- mov r8, r1
-_08104CE0:
- mov r0, r8
- adds r4, r5, r0
- ldr r0, [r4]
- lsls r2, r6, 2
- adds r2, r0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- bl sub_8105BB4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, 0x4
- lsls r2, 1
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r2
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08104CE0
-_08104D18:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104D24: .4byte 0x02000000
-_08104D28: .4byte gTasks
-_08104D2C: .4byte gUnknown_083ED048
- thumb_func_end sub_8104CAC
-
- thumb_func_start sub_8104D30
-sub_8104D30: @ 8104D30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r1
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08104D84 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D88 @ =gTasks
- adds r0, r1
- mov r12, r0
- movs r5, 0x4
- lsls r4, 16
- asrs r6, r4, 16
- lsls r2, 16
- lsls r3, 16
-_08104D5C:
- lsls r0, r5, 1
- mov r1, r12
- adds r1, 0x8
- adds r4, r1, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _08104D8C
- str r6, [sp]
- adds r0, r7, 0
- mov r1, r8
- asrs r2, 16
- asrs r3, 16
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- b _08104D96
- .align 2, 0
-_08104D84: .4byte 0x02000000
-_08104D88: .4byte gTasks
-_08104D8C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104D5C
-_08104D96:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8104D30
-
- thumb_func_start sub_8104DA4
-sub_8104DA4: @ 8104DA4
- push {r4-r6,lr}
- ldr r0, _08104E04 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E08 @ =gTasks
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldr r0, _08104E0C @ =0x0000ffff
- cmp r1, r0
- beq _08104DCE
- ldr r0, _08104E10 @ =gUnknown_083ED064
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08104DCE:
- movs r5, 0x4
- adds r6, r4, 0
- adds r6, 0x8
-_08104DD4:
- lsls r0, r5, 1
- adds r4, r6, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _08104DF4
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08104E14 @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0x40
- strh r0, [r4]
-_08104DF4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08104DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104E04: .4byte 0x02000000
-_08104E08: .4byte gTasks
-_08104E0C: .4byte 0x0000ffff
-_08104E10: .4byte gUnknown_083ED064
-_08104E14: .4byte gSprites
- thumb_func_end sub_8104DA4
-
- thumb_func_start sub_8104E18
-sub_8104E18: @ 8104E18
- push {r4,r5,lr}
- ldr r0, _08104E54 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104E58 @ =gTasks
- adds r0, r1
- movs r2, 0x4
- adds r3, r0, 0
- adds r3, 0x8
- ldr r4, _08104E5C @ =gSprites
-_08104E32:
- lsls r0, r2, 1
- adds r1, r3, r0
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0x40
- beq _08104E60
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r5, 0x3C
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08104E60
- movs r0, 0
- b _08104E6C
- .align 2, 0
-_08104E54: .4byte 0x02000000
-_08104E58: .4byte gTasks
-_08104E5C: .4byte gSprites
-_08104E60:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08104E32
- movs r0, 0x1
-_08104E6C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8104E18
-
- thumb_func_start sub_8104E74
-sub_8104E74: @ 8104E74
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, _08104E9C @ =gUnknown_083ECC54
- ldr r2, _08104EA0 @ =gTasks
- 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
-_08104E9C: .4byte gUnknown_083ECC54
-_08104EA0: .4byte gTasks
- thumb_func_end sub_8104E74
-
- thumb_func_start nullsub_69
-nullsub_69: @ 8104EA4
- bx lr
- thumb_func_end nullsub_69
-
- thumb_func_start sub_8104EA8
-sub_8104EA8: @ 8104EA8
- push {r4-r7,lr}
- movs r6, 0
- movs r0, 0x30
-_08104EAE:
- movs r4, 0
- lsls r5, r0, 16
- lsls r7, r6, 16
-_08104EB4:
- ldr r0, _08104F0C @ =gSpriteTemplate_83ED414
- asrs r1, r5, 16
- movs r2, 0
- movs r3, 0xE
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08104F10 @ =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r1, 0x5]
- strh r6, [r1, 0x2E]
- strh r4, [r1, 0x30]
- ldr r0, _08104F14 @ =0x0000ffff
- strh r0, [r1, 0x34]
- lsls r0, r4, 16
- movs r1, 0xC0
- lsls r1, 13
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x77
- ble _08104EB4
- movs r2, 0x80
- lsls r2, 9
- adds r1, r7, r2
- movs r2, 0xA0
- lsls r2, 14
- adds r0, r5, r2
- lsrs r0, 16
- lsrs r6, r1, 16
- asrs r1, 16
- cmp r1, 0x2
- ble _08104EAE
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F0C: .4byte gSpriteTemplate_83ED414
-_08104F10: .4byte gSprites
-_08104F14: .4byte 0x0000ffff
- thumb_func_end sub_8104EA8
-
- thumb_func_start sub_8104F18
-sub_8104F18: @ 8104F18
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08104F88 @ =0x02000000
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x1C
- adds r1, r0
- ldrh r0, [r5, 0x30]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x32]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x78
- bl __modsi3
- strh r0, [r5, 0x32]
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r1, 1
- adds r4, 0x22
- adds r1, r4
- ldrh r1, [r1]
- adds r1, 0x1C
- adds r0, r1
- strh r0, [r5, 0x22]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0x18
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8102BA4
- lsls r0, 24
- lsrs r0, 24
- bl GetSpriteTileStartByTag
- adds r1, r5, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r5, 0
- bl SetSpriteSheetFrameTileNum
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08104F88: .4byte 0x02000000
- thumb_func_end sub_8104F18
-
- thumb_func_start sub_8104F8C
-sub_8104F8C: @ 8104F8C
- push {r4-r6,lr}
- movs r4, 0xCB
- movs r5, 0x1
- ldr r6, _08104FF0 @ =0x0000270f
-_08104F94:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104F94
- movs r4, 0xEB
- movs r5, 0x1
- ldr r6, _08104FF0 @ =0x0000270f
-_08104FC2:
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r0, r4, 0
- movs r1, 0x17
- movs r2, 0x1
- adds r3, r5, 0
- bl sub_8104FF4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 17
- subs r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- lsrs r5, r0, 16
- asrs r0, 16
- cmp r0, r6
- ble _08104FC2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08104FF0: .4byte 0x0000270f
- thumb_func_end sub_8104F8C
-
- thumb_func_start sub_8104FF4
-sub_8104FF4: @ 8104FF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- adds r4, r3, 0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08105060 @ =gSpriteTemplate_83ED42C
- lsls r5, 16
- asrs r5, 16
- lsls r6, 16
- asrs r6, 16
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0xD
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08105064 @ =gSprites
- adds r2, r0
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x30]
- lsls r4, 16
- asrs r4, 16
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- strh r0, [r2, 0x32]
- ldr r0, _08105068 @ =0x0000ffff
- strh r0, [r2, 0x34]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105060: .4byte gSpriteTemplate_83ED42C
-_08105064: .4byte gSprites
-_08105068: .4byte 0x0000ffff
- thumb_func_end sub_8104FF4
-
- thumb_func_start sub_810506C
-sub_810506C: @ 810506C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _081050C0 @ =0x02000000
- ldrh r2, [r1, 0xC]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0810507E
- ldrh r2, [r1, 0xE]
-_0810507E:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, r2
- beq _081050B8
- strh r2, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- adds r0, r2, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r4, 0x30]
- adds r0, r2, 0
- bl __udivsi3
- lsls r0, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r0, r3
- lsrs r2, r0, 16
- adds r0, r2, 0
- bl GetSpriteTileStartByTag
- adds r1, r4, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r4, 0
- bl SetSpriteSheetFrameTileNum
-_081050B8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081050C0: .4byte 0x02000000
- thumb_func_end sub_810506C
-
- thumb_func_start sub_81050C4
-sub_81050C4: @ 81050C4
- push {lr}
- ldr r0, _081050F4 @ =gSpriteTemplate_83ED444
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0xF
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081050F8 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- movs r2, 0xC
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081050FC @ =gUnknown_083ED704
- bl SetSubspriteTables
- pop {r0}
- bx r0
- .align 2, 0
-_081050F4: .4byte gSpriteTemplate_83ED444
-_081050F8: .4byte gSprites
-_081050FC: .4byte gUnknown_083ED704
- thumb_func_end sub_81050C4
-
- thumb_func_start sub_8105100
-sub_8105100: @ 8105100
- push {lr}
- ldr r0, _08105140 @ =gSpriteTemplate_83ED45C
- movs r1, 0x8C
- lsls r1, 1
- movs r2, 0x50
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08105144 @ =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r3, [r2, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r3, 0x2
- orrs r1, r3
- strb r1, [r2]
- ldr r1, _08105148 @ =0x02000000
- adds r1, 0x3F
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105140: .4byte gSpriteTemplate_83ED45C
-_08105144: .4byte gSprites
-_08105148: .4byte 0x02000000
- thumb_func_end sub_8105100
-
- thumb_func_start sub_810514C
-sub_810514C: @ 810514C
- push {lr}
- ldr r0, _08105168 @ =0x02000000
- adds r0, 0x3F
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810516C @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105168: .4byte 0x02000000
-_0810516C: .4byte gSprites
- thumb_func_end sub_810514C
-
- thumb_func_start sub_8105170
-sub_8105170: @ 8105170
- push {lr}
- adds r2, r0, 0
- movs r0, 0
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _081051B6
- movs r0, 0x8
- strh r0, [r2, 0x24]
- strh r0, [r2, 0x26]
- adds r0, r2, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- beq _081051A4
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B2
- b _081051B6
-_081051A4:
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081051B6
-_081051B2:
- ldr r0, _081051BC @ =0x0000fff8
- strh r0, [r2, 0x26]
-_081051B6:
- pop {r0}
- bx r0
- .align 2, 0
-_081051BC: .4byte 0x0000fff8
- thumb_func_end sub_8105170
-
- thumb_func_start sub_81051C0
-sub_81051C0: @ 81051C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810526C @ =gSpriteTemplate_83ED474
- movs r7, 0xB8
- lsls r7, 1
- adds r1, r7, 0
- movs r2, 0x34
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105270 @ =gSprites
- mov r10, r1
- adds r2, r0, r1
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r3, 0x4
- mov r9, r3
- mov r1, r9
- orrs r0, r1
- strb r0, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r8, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105274 @ =gUnknown_083ED73C
- adds r0, r2, 0
- bl SetSubspriteTables
- ldr r6, _08105278 @ =0x02000000
- adds r0, r6, 0
- adds r0, 0x49
- strb r4, [r0]
- ldr r0, _0810527C @ =gSpriteTemplate_83ED48C
- adds r1, r7, 0
- movs r2, 0x54
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- mov r1, r10
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r3, r9
- orrs r5, r3
- strb r5, [r2, 0x5]
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r8
- orrs r0, r3
- strb r0, [r1]
- ldr r1, _08105280 @ =gUnknown_083ED75C
- adds r0, r2, 0
- bl SetSubspriteTables
- adds r6, 0x4A
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810526C: .4byte gSpriteTemplate_83ED474
-_08105270: .4byte gSprites
-_08105274: .4byte gUnknown_083ED73C
-_08105278: .4byte 0x02000000
-_0810527C: .4byte gSpriteTemplate_83ED48C
-_08105280: .4byte gUnknown_083ED75C
- thumb_func_end sub_81051C0
-
- thumb_func_start sub_8105284
-sub_8105284: @ 8105284
- push {r4,lr}
- ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4
- ldr r1, _081052DC @ =gSpriteCoordOffsetX
- ldrh r2, [r1]
- movs r1, 0xA8
- subs r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x50
- movs r3, 0x7
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081052E0 @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _081052E4 @ =gUnknown_083ED78C
- bl SetSubspriteTables
- ldr r0, _081052E8 @ =0x02000000
- adds r0, 0x42
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081052D8: .4byte gSpriteTemplate_83ED4A4
-_081052DC: .4byte gSpriteCoordOffsetX
-_081052E0: .4byte gSprites
-_081052E4: .4byte gUnknown_083ED78C
-_081052E8: .4byte 0x02000000
- thumb_func_end sub_8105284
-
- thumb_func_start sub_81052EC
-sub_81052EC: @ 81052EC
- push {r4-r7,lr}
- movs r4, 0
- movs r5, 0
- ldr r6, _08105350 @ =0x0200004b
-_081052F4:
- ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105358 @ =gSprites
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r1, r7, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- strh r5, [r3, 0x3C]
- adds r1, r4, r6
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r5, 16
- movs r7, 0xA0
- lsls r7, 13
- adds r0, r7
- lsrs r5, r0, 16
- cmp r4, 0x2
- bls _081052F4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08105350: .4byte 0x0200004b
-_08105354: .4byte gSpriteTemplate_83ED4BC
-_08105358: .4byte gSprites
- thumb_func_end sub_81052EC
-
- thumb_func_start sub_810535C
-sub_810535C: @ 810535C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0810539C @ =0x02000000
- ldrh r0, [r4, 0x3C]
- ldrh r1, [r1, 0x14]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x28
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- adds r1, 0x3B
- strh r1, [r4, 0x22]
- movs r1, 0x14
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- bl sub_8102C48
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810539C: .4byte 0x02000000
- thumb_func_end sub_810535C
-
- thumb_func_start sub_81053A0
-sub_81053A0: @ 81053A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r1, 0xB8
- lsls r1, 1
- ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
- movs r2, 0x64
- movs r3, 0x9
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r7, _08105450 @ =gSprites
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x2
- mov r10, r3
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r2, 0x5]
- ldr r0, _08105454 @ =gUnknown_083ED7B4
- mov r9, r0
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- ldr r6, _08105458 @ =0x02000000
- adds r0, r6, 0
- adds r0, 0x4E
- strb r4, [r0]
- movs r1, 0x90
- lsls r1, 1
- ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
- movs r2, 0x68
- movs r3, 0x4
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r7
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- mov r3, r10
- orrs r0, r3
- strb r0, [r1]
- ldrb r0, [r2, 0x5]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r2, 0x5]
- adds r0, r2, 0
- mov r1, r9
- bl SetSubspriteTables
- adds r6, 0x4F
- strb r4, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810544C: .4byte gSpriteTemplate_83ED4D4
-_08105450: .4byte gSprites
-_08105454: .4byte gUnknown_083ED7B4
-_08105458: .4byte 0x02000000
- thumb_func_end sub_81053A0
-
- thumb_func_start sub_810545C
-sub_810545C: @ 810545C
- push {r4,lr}
- ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC
- movs r1, 0xB8
- lsls r1, 1
- movs r2, 0x4C
- movs r3, 0xB
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _081054AC @ =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, _081054B0 @ =gUnknown_083ED7D4
- bl SetSubspriteTables
- ldr r0, _081054B4 @ =0x02000000
- adds r0, 0x40
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081054A8: .4byte gSpriteTemplate_83ED4EC
-_081054AC: .4byte gSprites
-_081054B0: .4byte gUnknown_083ED7D4
-_081054B4: .4byte 0x02000000
- thumb_func_end sub_810545C
-
- thumb_func_start sub_81054B8
-sub_81054B8: @ 81054B8
- push {r4,r5,lr}
- ldr r4, _08105518 @ =0x02000000
- adds r0, r4, 0
- adds r0, 0x40
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- movs r5, 0
- adds r4, 0x49
-_081054D4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _081054D4
- movs r5, 0
- ldr r4, _08105520 @ =0x0200004b
-_081054F4:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810551C @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081054F4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105518: .4byte 0x02000000
-_0810551C: .4byte gSprites
-_08105520: .4byte 0x0200004b
- thumb_func_end sub_81054B8
-
- thumb_func_start sub_8105524
-sub_8105524: @ 8105524
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810554C @ =0x0200004e
-_0810552A:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105550 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0810552A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810554C: .4byte 0x0200004e
-_08105550: .4byte gSprites
- thumb_func_end sub_8105524
-
- thumb_func_start sub_8105554
-sub_8105554: @ 8105554
- push {lr}
- ldr r0, _08105570 @ =0x02000000
- adds r0, 0x42
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105574 @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_08105570: .4byte 0x02000000
-_08105574: .4byte gSprites
- thumb_func_end sub_8105554
-
- thumb_func_start sub_8105578
-sub_8105578: @ 8105578
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, _0810561C @ =gSpriteTemplate_83ED504
- mov r10, r0
- movs r1, 0x98
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, _08105620 @ =gSprites
- mov r9, r2
- adds r3, r1, r2
- ldrb r2, [r3, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r1, r2
- strb r1, [r3, 0x5]
- adds r5, r3, 0
- adds r5, 0x3F
- ldrb r1, [r5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r5]
- ldr r5, _08105624 @ =0x02000000
- adds r1, r5, 0
- adds r1, 0x50
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x2E]
- ldr r0, _08105628 @ =0x0000ffff
- strh r0, [r3, 0x30]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r3, 0x32]
- movs r6, 0x20
- strh r6, [r3, 0x3C]
- mov r0, r10
- movs r1, 0xB8
- movs r2, 0x20
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- mov r2, r9
- adds r3, r1, r2
- ldrb r1, [r3, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r3, 0x5]
- adds r5, 0x51
- strb r0, [r5]
- movs r0, 0x1
- strh r0, [r3, 0x30]
- subs r0, 0x2
- strh r0, [r3, 0x32]
- strh r6, [r3, 0x3C]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810561C: .4byte gSpriteTemplate_83ED504
-_08105620: .4byte gSprites
-_08105624: .4byte 0x02000000
-_08105628: .4byte 0x0000ffff
- thumb_func_end sub_8105578
-
- thumb_func_start sub_810562C
-sub_810562C: @ 810562C
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r4, [r2, r1]
- cmp r4, 0
- beq _08105650
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x24]
- strh r1, [r2, 0x26]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- b _08105682
-_08105650:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08105682
- ldrh r0, [r2, 0x3C]
- strh r0, [r2, 0x2E]
- strh r4, [r2, 0x34]
-_08105682:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810562C
-
- thumb_func_start sub_8105688
-sub_8105688: @ 8105688
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _081056B8 @ =gSprites
- ldr r3, _081056BC @ =0x02000000
- adds r1, r3, 0
- adds r1, 0x50
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- adds r3, 0x51
- ldrb r2, [r3]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- strh r0, [r1, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081056B8: .4byte gSprites
-_081056BC: .4byte 0x02000000
- thumb_func_end sub_8105688
-
- thumb_func_start sub_81056C0
-sub_81056C0: @ 81056C0
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081056E8 @ =0x02000050
-_081056C6:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081056EC @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _081056C6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081056E8: .4byte 0x02000050
-_081056EC: .4byte gSprites
- thumb_func_end sub_81056C0
-
- thumb_func_start sub_81056F0
-sub_81056F0: @ 81056F0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08105778 @ =gSpriteTemplate_83ED51C
- mov r8, r0
- movs r1, 0x48
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810577C @ =gSprites
- mov r9, r1
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrb r3, [r2, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r3
- movs r6, 0x4
- orrs r1, r6
- strb r1, [r2, 0x5]
- movs r3, 0
- movs r1, 0x1
- strh r1, [r2, 0x2E]
- strh r3, [r2, 0x38]
- movs r1, 0x10
- strh r1, [r2, 0x3A]
- movs r1, 0x8
- strh r1, [r2, 0x3C]
- ldr r5, _08105780 @ =0x02000000
- adds r1, r5, 0
- adds r1, 0x52
- strb r0, [r1]
- mov r0, r8
- movs r1, 0x68
- movs r2, 0x50
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x5]
- ands r4, r2
- orrs r4, r6
- strb r4, [r1, 0x5]
- adds r1, 0x3F
- ldrb r2, [r1]
- movs r3, 0x1
- orrs r2, r3
- strb r2, [r1]
- adds r5, 0x53
- strb r0, [r5]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105778: .4byte gSpriteTemplate_83ED51C
-_0810577C: .4byte gSprites
-_08105780: .4byte 0x02000000
- thumb_func_end sub_81056F0
-
- thumb_func_start sub_8105784
-sub_8105784: @ 8105784
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _081057E0 @ =gUnknown_083ECC58
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081057D6
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bgt _081057D6
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r2, _081057E4 @ =0x01030000
- adds r0, r2
- lsrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- add r1, sp
- ldrb r3, [r1]
- adds r1, r3, 0
- adds r2, r3, 0
- bl MultiplyInvertedPaletteRGBComponents
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- strh r0, [r4, 0x3A]
-_081057D6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081057E0: .4byte gUnknown_083ECC58
-_081057E4: .4byte 0x01030000
- thumb_func_end sub_8105784
-
- thumb_func_start sub_81057E8
-sub_81057E8: @ 81057E8
- ldr r3, _081057FC @ =gSprites
- ldr r1, _08105800 @ =0x02000000
- adds r1, 0x52
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- strh r0, [r1, 0x3C]
- bx lr
- .align 2, 0
-_081057FC: .4byte gSprites
-_08105800: .4byte 0x02000000
- thumb_func_end sub_81057E8
-
- thumb_func_start sub_8105804
-sub_8105804: @ 8105804
- push {r4,r5,lr}
- movs r0, 0x7
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 4
- ldr r1, _08105848 @ =0x01030000
- adds r0, r1
- lsrs r0, 16
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl MultiplyInvertedPaletteRGBComponents
- movs r4, 0
- ldr r5, _0810584C @ =0x02000052
-_08105824:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08105850 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08105824
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105848: .4byte 0x01030000
-_0810584C: .4byte 0x02000052
-_08105850: .4byte gSprites
- thumb_func_end sub_8105804
-
- thumb_func_start sub_8105854
-sub_8105854: @ 8105854
- push {lr}
- ldr r0, _08105888 @ =gSpriteTemplate_83ED534
- movs r1, 0xA8
- movs r2, 0x50
- movs r3, 0x6
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810588C @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1, 0x5]
- ldr r1, _08105890 @ =0x02000000
- adds r1, 0x41
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08105888: .4byte gSpriteTemplate_83ED534
-_0810588C: .4byte gSprites
-_08105890: .4byte 0x02000000
- thumb_func_end sub_8105854
-
- thumb_func_start sub_8105894
-sub_8105894: @ 8105894
- ldr r1, _0810589C @ =gSpriteCoordOffsetY
- ldrh r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_0810589C: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8105894
-
- thumb_func_start sub_81058A0
-sub_81058A0: @ 81058A0
- push {lr}
- ldr r0, _081058BC @ =0x02000000
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081058C0 @ =gSprites
- adds r0, r1
- bl DestroySprite
- pop {r0}
- bx r0
- .align 2, 0
-_081058BC: .4byte 0x02000000
-_081058C0: .4byte gSprites
- thumb_func_end sub_81058A0
-
- thumb_func_start sub_81058C4
-sub_81058C4: @ 81058C4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08105938 @ =gUnknown_083ECC5A
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- movs r4, 0
- ldr r5, _0810593C @ =0x02000054
-_081058D6:
- ldr r0, _08105940 @ =gSpriteCoordOffsetX
- ldrh r0, [r0]
- movs r1, 0x50
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _08105944 @ =gSpriteTemplate_83ED54C
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- ldr r1, _08105948 @ =gSprites
- adds r3, r1
- ldrb r2, [r3, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r1, r6, 0
- ands r2, r1
- movs r1, 0x4
- orrs r2, r1
- strb r2, [r3, 0x5]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- lsls r1, r4, 1
- add r1, sp
- ldrh r1, [r1]
- strh r1, [r3, 0x2E]
- adds r1, r4, r5
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081058D6
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08105938: .4byte gUnknown_083ECC5A
-_0810593C: .4byte 0x02000054
-_08105940: .4byte gSpriteCoordOffsetX
-_08105944: .4byte gSpriteTemplate_83ED54C
-_08105948: .4byte gSprites
- thumb_func_end sub_81058C4
-
- thumb_func_start sub_810594C
-sub_810594C: @ 810594C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- subs r0, 0x2
- movs r4, 0
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r1, 0x6
- bl Sin
- strh r0, [r5, 0x26]
- adds r1, r5, 0
- adds r1, 0x43
- strb r4, [r1]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x7F
- ble _08105986
- movs r0, 0x2
- strb r0, [r1]
-_08105986:
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _081059B0
- adds r3, r5, 0
- adds r3, 0x3F
- ldrb r2, [r3]
- lsls r0, r2, 31
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r5, 0x30]
-_081059B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810594C
-
- thumb_func_start sub_81059B8
-sub_81059B8: @ 81059B8
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081059E0 @ =0x02000054
-_081059BE:
- adds r0, r4, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081059E4 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081059BE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081059E0: .4byte 0x02000054
-_081059E4: .4byte gSprites
- thumb_func_end sub_81059B8
-
- thumb_func_start sub_81059E8
-sub_81059E8: @ 81059E8
- push {r4,lr}
- ldr r0, _08105A2C @ =gSpriteTemplate_83ED564
- movs r1, 0xA8
- movs r2, 0x3C
- movs r3, 0x8
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105A30 @ =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- ldr r0, _08105A34 @ =0x02000000
- adds r0, 0x43
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105A2C: .4byte gSpriteTemplate_83ED564
-_08105A30: .4byte gSprites
-_08105A34: .4byte 0x02000000
- thumb_func_end sub_81059E8
-
- thumb_func_start sub_8105A38
-sub_8105A38: @ 8105A38
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08105A5A
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105AB4
- adds r0, r2, 0x1
- strh r0, [r3, 0x2E]
- b _08105AB4
-_08105A5A:
- cmp r0, 0x1
- bne _08105A96
- 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]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _08105AB4
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0
- strh r0, [r3, 0x32]
- b _08105AB4
-_08105A96:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105AB4
- movs r0, 0x1
- strh r0, [r3, 0x3C]
-_08105AB4:
- ldrh r0, [r3, 0x30]
- movs r1, 0xFF
- ands r1, r0
- adds r1, 0x10
- strh r1, [r3, 0x30]
- lsrs r1, 8
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- pop {r0}
- bx r0
- thumb_func_end sub_8105A38
-
- thumb_func_start sub_8105ACC
-sub_8105ACC: @ 8105ACC
- ldr r2, _08105AE4 @ =gSprites
- ldr r0, _08105AE8 @ =0x02000000
- adds r0, 0x43
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_08105AE4: .4byte gSprites
-_08105AE8: .4byte 0x02000000
- thumb_func_end sub_8105ACC
-
- thumb_func_start sub_8105AEC
-sub_8105AEC: @ 8105AEC
- push {r4,lr}
- ldr r0, _08105B14 @ =0x02000000
- adds r0, 0x43
- ldrb r0, [r0]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105B18 @ =gSprites
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105B14: .4byte 0x02000000
-_08105B18: .4byte gSprites
- thumb_func_end sub_8105AEC
-
- thumb_func_start sub_8105B1C
-sub_8105B1C: @ 8105B1C
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- movs r3, 0xC
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08105B6C @ =gSprites
- 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]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08105B68: .4byte gSpriteTemplate_83ED6CC
-_08105B6C: .4byte gSprites
- thumb_func_end sub_8105B1C
-
- thumb_func_start sub_8105B70
-sub_8105B70: @ 8105B70
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08105B84
- movs r0, 0x1
- strh r0, [r2, 0x3C]
-_08105B84:
- pop {r0}
- bx r0
- thumb_func_end sub_8105B70
-
- thumb_func_start sub_8105B88
-sub_8105B88: @ 8105B88
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08105BB0 @ =gSprites
- adds r4, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08105BB0: .4byte gSprites
- thumb_func_end sub_8105B88
-
- thumb_func_start sub_8105BB4
-sub_8105BB4: @ 8105BB4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08105BF0 @ =gUnknown_083ECF0C
- lsrs r1, 22
- adds r3, r1, r3
- ldr r5, [r3]
- ldr r3, _08105BF4 @ =gUnknown_083ECE7E
- adds r4, r1, r3
- movs r6, 0
- ldrsh r4, [r4, r6]
- adds r3, 0x2
- adds r1, r3
- movs r6, 0
- ldrsh r3, [r1, r6]
- lsls r2, 16
- asrs r2, 16
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8105BF8
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08105BF0: .4byte gUnknown_083ECF0C
-_08105BF4: .4byte gUnknown_083ECE7E
- thumb_func_end sub_8105BB4
-
- thumb_func_start sub_8105BF8
-sub_8105BF8: @ 8105BF8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- ldr r5, [sp, 0x14]
- lsls r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _08105C58 @ =gUnknown_083EDB5C
- lsrs r4, 22
- adds r0, r4, r0
- ldr r0, [r0]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08105C5C @ =gSprites
- adds r2, r0, r1
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
- str r6, [r2, 0x1C]
- strh r5, [r2, 0x3A]
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- ldr r0, _08105C60 @ =gUnknown_083EDBC4
- adds r4, r0
- ldr r1, [r4]
- cmp r1, 0
- beq _08105C50
- adds r0, r2, 0
- bl SetSubspriteTables
-_08105C50:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08105C58: .4byte gUnknown_083EDB5C
-_08105C5C: .4byte gSprites
-_08105C60: .4byte gUnknown_083EDBC4
- thumb_func_end sub_8105BF8
-
- thumb_func_start sub_8105C64
-sub_8105C64: @ 8105C64
- movs r1, 0
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8105C64
-
- thumb_func_start sub_8105C6C
-sub_8105C6C: @ 8105C6C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _08105CE8 @ =gUnknown_083ECC62
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _08105CEC @ =gUnknown_083ECC6A
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _08105CB2
- adds r3, r4, 0
- adds r3, 0x42
- ldrb r2, [r3]
- lsls r0, r2, 26
- lsrs r0, 26
- movs r1, 0x1
- eors r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0
- strh r0, [r4, 0x30]
-_08105CB2:
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x42
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- beq _08105CDE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
-_08105CDE:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08105CE8: .4byte gUnknown_083ECC62
-_08105CEC: .4byte gUnknown_083ECC6A
- thumb_func_end sub_8105C6C
-
- thumb_func_start sub_8105CF0
-sub_8105CF0: @ 8105CF0
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105CF0
-
- thumb_func_start sub_8105D08
-sub_8105D08: @ 8105D08
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D08
-
- thumb_func_start sub_8105D20
-sub_8105D20: @ 8105D20
- push {lr}
- adds r3, r0, 0
- adds r3, 0x3F
- ldrb r1, [r3]
- movs r2, 0x1
- orrs r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- bl sub_8105C6C
- pop {r0}
- bx r0
- thumb_func_end sub_8105D20
-
- thumb_func_start sub_8105D3C
-sub_8105D3C: @ 8105D3C
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08105D70
- cmp r0, 0x1
- bgt _08105D52
- cmp r0, 0
- beq _08105D5C
- b _08105DA0
-_08105D52:
- cmp r0, 0x2
- beq _08105D80
- cmp r0, 0x3
- beq _08105D9C
- b _08105DA0
-_08105D5C:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105DA0
- movs r0, 0xD0
- strh r0, [r2, 0x20]
- b _08105D8E
-_08105D70:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105DA0
- b _08105D8E
-_08105D80:
- ldrh r0, [r2, 0x20]
- adds r0, 0x4
- strh r0, [r2, 0x20]
- lsls r0, 16
- ldr r1, _08105D98 @ =0x010f0000
- cmp r0, r1
- ble _08105DA0
-_08105D8E:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08105DA0
- .align 2, 0
-_08105D98: .4byte 0x010f0000
-_08105D9C:
- movs r0, 0
- strh r0, [r2, 0x3C]
-_08105DA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8105D3C
-
- thumb_func_start sub_8105DA4
-sub_8105DA4: @ 8105DA4
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08105DD8
- cmp r0, 0x1
- bgt _08105DBA
- cmp r0, 0
- beq _08105DC4
- b _08105E02
-_08105DBA:
- cmp r0, 0x2
- beq _08105DE8
- cmp r0, 0x3
- beq _08105DFE
- b _08105E02
-_08105DC4:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- bgt _08105E02
- movs r0, 0xD0
- strh r0, [r1, 0x20]
- b _08105DF6
-_08105DD8:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105E02
- b _08105DF6
-_08105DE8:
- ldrh r0, [r1, 0x20]
- subs r0, 0x4
- strh r0, [r1, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x90
- bgt _08105E02
-_08105DF6:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105E02
-_08105DFE:
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105E02:
- pop {r0}
- bx r0
- thumb_func_end sub_8105DA4
-
- thumb_func_start sub_8105E08
-sub_8105E08: @ 8105E08
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _08105EAE
- lsls r0, 2
- ldr r1, _08105E20 @ =_08105E24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08105E20: .4byte _08105E24
- .align 2, 0
-_08105E24:
- .4byte _08105E3C
- .4byte _08105E52
- .4byte _08105E70
- .4byte _08105E84
- .4byte _08105E94
- .4byte _08105EAA
-_08105E3C:
- ldr r0, _08105E6C @ =0x02000000
- ldrb r1, [r0, 0xA]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08105E52:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08105EAE
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0
- strh r0, [r4, 0x30]
- b _08105EAE
- .align 2, 0
-_08105E6C: .4byte 0x02000000
-_08105E70:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xCF
- ble _08105EAE
- movs r0, 0xD0
- strh r0, [r4, 0x20]
- b _08105EA2
-_08105E84:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- ble _08105EAE
- b _08105EA2
-_08105E94:
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF7
- ble _08105EAE
-_08105EA2:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08105EAE
-_08105EAA:
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08105EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8105E08
-
- thumb_func_start sub_8105EB4
-sub_8105EB4: @ 8105EB4
- push {lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- beq _08105EE2
- cmp r0, 0x1
- bgt _08105ECA
- cmp r0, 0
- beq _08105ED0
- b _08105F50
-_08105ECA:
- cmp r0, 0x2
- beq _08105F00
- b _08105F50
-_08105ED0:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
-_08105EE2:
- ldrh r0, [r3, 0x22]
- adds r0, 0x8
- strh r0, [r3, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- ble _08105F50
- movs r0, 0x70
- strh r0, [r3, 0x22]
- movs r0, 0x10
- strh r0, [r3, 0x30]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- b _08105F50
-_08105F00:
- movs r0, 0x32
- ldrsh r2, [r3, r0]
- cmp r2, 0
- bne _08105F46
- ldrh r0, [r3, 0x22]
- ldrh r1, [r3, 0x30]
- subs r0, r1
- strh r0, [r3, 0x22]
- negs r1, r1
- strh r1, [r3, 0x30]
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08105F46
- lsls r0, r1, 16
- asrs r0, 18
- strh r0, [r3, 0x30]
- strh r2, [r3, 0x34]
- adds r1, r0, 0
- cmp r1, 0
- bne _08105F46
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x3C]
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08105F46:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r3, 0x32]
-_08105F50:
- pop {r0}
- bx r0
- thumb_func_end sub_8105EB4
-
- thumb_func_start sub_8105F54
-sub_8105F54: @ 8105F54
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08105F66
- cmp r0, 0x1
- beq _08105F7C
- b _08105F98
-_08105F66:
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _08105F98
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- b _08105F98
-_08105F7C:
- ldrh r0, [r1, 0x22]
- adds r0, 0x2
- strh r0, [r1, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2F
- ble _08105F98
- movs r0, 0x30
- strh r0, [r1, 0x22]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- movs r0, 0
- strh r0, [r1, 0x3C]
-_08105F98:
- pop {r0}
- bx r0
- thumb_func_end sub_8105F54
-
- thumb_func_start sub_8105F9C
-sub_8105F9C: @ 8105F9C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08105FAE
- cmp r0, 0x1
- beq _08106000
- b _0810604E
-_08105FAE:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x30]
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, _08105FFC @ =REG_MOSAIC
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- b _0810604E
- .align 2, 0
-_08105FFC: .4byte REG_MOSAIC
-_08106000:
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _08106016
- movs r0, 0
- strh r0, [r4, 0x30]
-_08106016:
- ldr r2, _08106054 @ =REG_MOSAIC
- ldrh r1, [r4, 0x30]
- lsls r0, r1, 4
- orrs r0, r1
- lsls r0, 8
- strh r0, [r2]
- ldrh r1, [r4, 0x32]
- movs r0, 0xFF
- ands r0, r1
- adds r0, 0x80
- strh r0, [r4, 0x32]
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0810604E
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0810604E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106054: .4byte REG_MOSAIC
- thumb_func_end sub_8105F9C
-
- thumb_func_start sub_8106058
-sub_8106058: @ 8106058
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- bgt _081060A8
- ldr r1, _081060A4 @ =gUnknown_083EDE10
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081060E4
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r0, 0
- strh r0, [r5, 0x32]
- b _081060E4
- .align 2, 0
-_081060A4: .4byte gUnknown_083EDE10
-_081060A8:
- ldr r1, _081060F8 @ =gUnknown_083EDE10
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- ble _081060E4
- strh r1, [r5, 0x30]
- strh r1, [r5, 0x32]
-_081060E4:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- movs r0, 0
- strh r0, [r5, 0x3C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081060F8: .4byte gUnknown_083EDE10
- thumb_func_end sub_8106058
-
- thumb_func_start sub_81060FC
-sub_81060FC: @ 81060FC
- push {r4-r6,lr}
- sub sp, 0x30
- adds r4, r0, 0
- ldr r1, _08106138 @ =gUnknown_083ECC72
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- add r6, sp, 0x10
- ldr r1, _0810613C @ =gUnknown_083ECC82
- adds r0, r6, 0
- movs r2, 0x10
- bl memcpy
- add r5, sp, 0x20
- ldr r1, _08106140 @ =gUnknown_083ECC92
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08106174
- cmp r0, 0x1
- bgt _08106144
- cmp r0, 0
- beq _0810614A
- b _081061C0
- .align 2, 0
-_08106138: .4byte gUnknown_083ECC72
-_0810613C: .4byte gUnknown_083ECC82
-_08106140: .4byte gUnknown_083ECC92
-_08106144:
- cmp r0, 0x2
- beq _08106188
- b _081061C0
-_0810614A:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r0, [r0]
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_08106174:
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _081061C0
- b _081061BA
-_08106188:
- ldrh r0, [r4, 0x24]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _08106196
- subs r0, 0x4
- b _0810619C
-_08106196:
- cmp r1, 0
- bge _0810619E
- adds r0, 0x4
-_0810619C:
- strh r0, [r4, 0x24]
-_0810619E:
- ldrh r0, [r4, 0x26]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- cmp r1, 0
- ble _081061AC
- subs r0, 0x4
- b _081061B2
-_081061AC:
- cmp r1, 0
- bge _081061B4
- adds r0, 0x4
-_081061B2:
- strh r0, [r4, 0x26]
-_081061B4:
- ldr r0, [r4, 0x24]
- cmp r0, 0
- bne _081061C0
-_081061BA:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
-_081061C0:
- add sp, 0x30
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81060FC
-
- thumb_func_start sub_81061C8
-sub_81061C8: @ 81061C8
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r1, _0810622C @ =gUnknown_083ECCA2
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081061EA
- adds r0, r1, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0xC
- strh r0, [r4, 0x30]
-_081061EA:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08106224
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
-_08106224:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810622C: .4byte gUnknown_083ECCA2
- thumb_func_end sub_81061C8
-
- thumb_func_start sub_8106230
-sub_8106230: @ 8106230
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0810627A
- cmp r0, 0x1
- bgt _08106248
- cmp r0, 0
- beq _08106252
- b _0810634A
-_08106248:
- cmp r0, 0x2
- beq _081062C4
- cmp r0, 0x3
- beq _081062FC
- b _0810634A
-_08106252:
- ldr r2, _081062BC @ =0x02000000
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x2F
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x3F
- strh r0, [r1]
- subs r1, 0x4
- ldr r0, _081062C0 @ =0x00002088
- strh r0, [r1]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0810627A:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xB2
- strh r0, [r5, 0x32]
- movs r1, 0xF0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106296
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106296:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _081062A2
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_081062A2:
- ldr r2, _081062BC @ =0x02000000
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x33
- ble _0810634A
- b _0810633C
- .align 2, 0
-_081062BC: .4byte 0x02000000
-_081062C0: .4byte 0x00002088
-_081062C4:
- ldr r6, _08106354 @ =0x02000000
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0810634A
- ldr r1, _08106358 @ =SpriteCallbackDummy
- movs r4, 0
- str r4, [sp]
- movs r0, 0x5
- movs r2, 0xD0
- movs r3, 0x74
- bl sub_8104D30
- adds r1, r6, 0
- adds r1, 0x58
- ldr r0, _0810635C @ =0x0000c0e0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xD1
- lsls r0, 7
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x2F
- strh r0, [r1]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r4, [r5, 0x30]
-_081062FC:
- ldrh r0, [r5, 0x30]
- adds r2, r0, 0x2
- strh r2, [r5, 0x30]
- adds r0, 0xC2
- strh r0, [r5, 0x32]
- movs r1, 0xE0
- subs r1, r2
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD0
- ble _08106318
- movs r0, 0xD0
- strh r0, [r5, 0x32]
-_08106318:
- movs r1, 0x34
- ldrsh r0, [r5, r1]
- cmp r0, 0xCF
- bgt _08106324
- movs r0, 0xD0
- strh r0, [r5, 0x34]
-_08106324:
- ldr r2, _08106354 @ =0x02000000
- ldrh r0, [r5, 0x32]
- lsls r0, 8
- ldrh r1, [r5, 0x34]
- orrs r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- strh r0, [r1]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0xF
- ble _0810634A
-_0810633C:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- adds r1, r2, 0
- adds r1, 0x5C
- movs r0, 0x3F
- strh r0, [r1]
-_0810634A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08106354: .4byte 0x02000000
-_08106358: .4byte SpriteCallbackDummy
-_0810635C: .4byte 0x0000c0e0
- thumb_func_end sub_8106230
-
- thumb_func_start nullsub_70
-nullsub_70: @ 8106360
- bx lr
- thumb_func_end nullsub_70
-
- thumb_func_start sub_8106364
-sub_8106364: @ 8106364
- ldr r1, _0810636C @ =REG_MOSAIC
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810636C: .4byte REG_MOSAIC
- thumb_func_end sub_8106364
-
- thumb_func_start sub_8106370
-sub_8106370: @ 8106370
- push {r4,lr}
- ldr r0, _08106398 @ =gUnknown_083EDE20
- ldr r4, [r0]
- movs r0, 0x6
- bl IndexOfSpritePaletteTag
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106398: .4byte gUnknown_083EDE20
- thumb_func_end sub_8106370
-
- thumb_func_start sub_810639C
-sub_810639C: @ 810639C
- ldr r2, _081063BC @ =0x02000000
- adds r1, r2, 0
- adds r1, 0x58
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0xA0
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x5C
- movs r1, 0x3F
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_081063BC: .4byte 0x02000000
- thumb_func_end sub_810639C
-
- thumb_func_start sub_81063C0
-sub_81063C0: @ 81063C0
- push {r4,lr}
- bl sub_8106404
- ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
- ldr r4, _081063F4 @ =0x02010000
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _081063F8 @ =gUnknown_083EDE8C
- movs r1, 0xC8
- lsls r1, 6
- adds r4, r1
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _081063FC @ =gUnknown_083EDC2C
- bl LoadSpriteSheets
- ldr r0, _08106400 @ =gSlotMachineSpritePalettes
- bl LoadSpritePalettes
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
-_081063F4: .4byte 0x02010000
-_081063F8: .4byte gUnknown_083EDE8C
-_081063FC: .4byte gUnknown_083EDC2C
-_08106400: .4byte gSlotMachineSpritePalettes
- thumb_func_end sub_81063C0
-
- thumb_func_start sub_8106404
-sub_8106404: @ 8106404
- push {r4,r5,lr}
- ldr r3, _0810643C @ =0x02010000
- movs r2, 0
- ldr r5, _08106440 @ =gUnknown_083EDCDC
- ldr r0, _08106444 @ =gUnknown_083EDCE4
- ldr r4, [r0]
-_08106410:
- movs r1, 0
- adds r2, 0x1
-_08106414:
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r3]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r3, 0x1
- cmp r1, 0x1F
- bls _08106414
- lsls r0, r2, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _08106410
- adds r0, r5, 0
- bl LoadSpriteSheet
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810643C: .4byte 0x02010000
-_08106440: .4byte gUnknown_083EDCDC
-_08106444: .4byte gUnknown_083EDCE4
- thumb_func_end sub_8106404
-
- thumb_func_start sub_8106448
-sub_8106448: @ 8106448
- push {r4-r7,lr}
- ldr r0, _081064A0 @ =gSlotMachine_Gfx
- ldr r4, _081064A4 @ =0x02010000
- adds r1, r4, 0
- bl sub_800D238
- movs r3, 0xC0
- lsls r3, 19
- movs r5, 0xE9
- lsls r5, 5
- ldr r1, _081064A8 @ =0x040000d4
- ldr r6, _081064AC @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08106468:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08106468
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _081064B0 @ =gUnknown_08E95A18
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _081064B4 @ =gUnknown_083EDE24
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081064A0: .4byte gSlotMachine_Gfx
-_081064A4: .4byte 0x02010000
-_081064A8: .4byte 0x040000d4
-_081064AC: .4byte 0x80000800
-_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gUnknown_083EDE24
- thumb_func_end sub_8106448
-
- thumb_func_start sub_81064B8
-sub_81064B8: @ 81064B8
- push {lr}
- ldr r0, _081064D0 @ =gUnknown_08E95AB8
- ldr r1, _081064D4 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- bl sub_81064D8
- pop {r0}
- bx r0
- .align 2, 0
-_081064D0: .4byte gUnknown_08E95AB8
-_081064D4: .4byte 0x0600e800
- thumb_func_end sub_81064B8
-
- thumb_func_start sub_81064D8
-sub_81064D8: @ 81064D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, _0810658C @ =0x0600f000
- movs r3, 0x4
- movs r0, 0xC0
- lsls r0, 1
- mov r12, r0
- movs r1, 0xC0
- lsls r1, 2
- mov r9, r1
- movs r2, 0xA0
- lsls r2, 1
- mov r8, r2
-_081064F6:
- movs r0, 0
- lsls r4, r3, 16
- asrs r5, r4, 16
-_081064FC:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r5, r2
- lsls r1, 1
- adds r1, r6
- mov r7, r8
- adds r3, r1, r7
- ldr r7, _08106590 @ =0x00002051
- adds r0, r7, 0
- strh r0, [r3]
- movs r0, 0xD0
- lsls r0, 2
- adds r3, r1, r0
- ldr r7, _08106594 @ =0x00002851
- adds r0, r7, 0
- strh r0, [r3]
- mov r0, r12
- adds r3, r1, r0
- ldr r7, _08106598 @ =0x00002061
- adds r0, r7, 0
- strh r0, [r3]
- add r1, r9
- ldr r3, _0810659C @ =0x00002861
- adds r0, r3, 0
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x3
- ble _081064FC
- asrs r3, r4, 16
- lsls r1, r3, 1
- adds r1, r6
- mov r5, r12
- adds r2, r1, r5
- adds r7, 0x5D
- adds r0, r7, 0
- strh r0, [r2]
- add r1, r9
- ldr r2, _081065A0 @ =0x000028be
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x7
- ldr r5, _081065A4 @ =0x000020bf
- adds r2, r5, 0
-_08106558:
- lsls r1, r0, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0xB
- ble _08106558
- movs r7, 0xA0
- lsls r7, 11
- adds r0, r4, r7
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _081064F6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810658C: .4byte 0x0600f000
-_08106590: .4byte 0x00002051
-_08106594: .4byte 0x00002851
-_08106598: .4byte 0x00002061
-_0810659C: .4byte 0x00002861
-_081065A0: .4byte 0x000028be
-_081065A4: .4byte 0x000020bf
- thumb_func_end sub_81064D8
-
- thumb_func_start sub_81065A8
-sub_81065A8: @ 81065A8
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- lsls r0, 16
- asrs r0, 15
- ldr r6, _081065D0 @ =0x0600ebc0
- adds r4, r0, r6
- strh r1, [r4]
- ldr r4, _081065D4 @ =0x0600ebc2
- adds r1, r0, r4
- strh r2, [r1]
- adds r6, 0x40
- adds r1, r0, r6
- strh r3, [r1]
- ldr r1, _081065D8 @ =0x0600ec02
- adds r0, r1
- strh r5, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081065D0: .4byte 0x0600ebc0
-_081065D4: .4byte 0x0600ebc2
-_081065D8: .4byte 0x0600ec02
- thumb_func_end sub_81065A8
-
- thumb_func_start sub_81065DC
-sub_81065DC: @ 81065DC
- push {r4,r5,lr}
- ldr r0, _08106624 @ =gUnknown_08E95FB8
- ldr r1, _08106628 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- ldr r5, _0810662C @ =0x0600f000
- movs r1, 0
- movs r4, 0
-_081065F0:
- movs r0, 0
- lsls r3, r1, 16
- asrs r2, r3, 11
-_081065F6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, r1
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _081065F6
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _081065F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08106624: .4byte gUnknown_08E95FB8
-_08106628: .4byte 0x0600e800
-_0810662C: .4byte 0x0600f000
- thumb_func_end sub_81065DC
-
- thumb_func_start sub_8106630
-sub_8106630: @ 8106630
- push {r4-r7,lr}
- ldr r2, _0810665C @ =0x02015de0
- subs r4, r2, 0x2
- subs r5, r2, 0x1
- ldr r3, _08106660 @ =gSaveBlock1
- subs r0, 0x1
- lsls r1, r0, 5
- adds r1, r3
- ldr r3, _08106664 @ =0x00002dfc
- adds r1, r3
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r6,r7}
- stm r2!, {r6,r7}
- strb r0, [r4]
- movs r0, 0
- strb r0, [r5]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810665C: .4byte 0x02015de0
-_08106660: .4byte gSaveBlock1
-_08106664: .4byte 0x00002dfc
- thumb_func_end sub_8106630
-
- thumb_func_start sub_8106668
-sub_8106668: @ 8106668
- push {lr}
- bl sub_8106674
- pop {r0}
- bx r0
- thumb_func_end sub_8106668
-
- thumb_func_start sub_8106674
-sub_8106674: @ 8106674
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08106694 @ =gMain
- ldr r2, _08106698 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bls _08106688
- b _081067E0
-_08106688:
- lsls r0, 2
- ldr r1, _0810669C @ =_081066A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106694: .4byte gMain
-_08106698: .4byte 0x0000043c
-_0810669C: .4byte _081066A0
- .align 2, 0
-_081066A0:
- .4byte _081066B4
- .4byte _081066D8
- .4byte _08106734
- .4byte _0810675C
- .4byte _0810678C
-_081066B4:
- bl remove_some_task
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _081066D0 @ =gUnknown_03005E8C
- ldr r0, _081066D4 @ =0x02015de0
- str r0, [r1]
- movs r0, 0x1
- bl sub_8106A10
- bl sub_81069CC
- b _0810676E
- .align 2, 0
-_081066D0: .4byte gUnknown_03005E8C
-_081066D4: .4byte 0x02015de0
-_081066D8:
- bl ResetPaletteFade
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- movs r5, 0
- ldr r1, _08106724 @ =0x040000d4
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08106728 @ =0x85000400
- movs r7, 0x85
- lsls r7, 24
-_081066F2:
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _081066F2
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetSpriteData
- ldr r1, _0810672C @ =gMain
- ldr r2, _08106730 @ =0x0000043c
- adds r1, r2
- b _08106774
- .align 2, 0
-_08106724: .4byte 0x040000d4
-_08106728: .4byte 0x85000400
-_0810672C: .4byte gMain
-_08106730: .4byte 0x0000043c
-_08106734:
- ldrh r0, [r4, 0x20]
- bl SeedRng
- bl InitKeys
- ldr r0, _08106750 @ =0x02000000
- ldr r1, _08106754 @ =0x00015ddf
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81068FC
- ldr r2, _08106758 @ =0x0000043c
- adds r1, r4, r2
- b _08106774
- .align 2, 0
-_08106750: .4byte 0x02000000
-_08106754: .4byte 0x00015ddf
-_08106758: .4byte 0x0000043c
-_0810675C:
- ldr r1, _0810677C @ =0x02000000
- ldr r2, _08106780 @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8107090
-_0810676E:
- ldr r1, _08106784 @ =gMain
- ldr r0, _08106788 @ =0x0000043c
- adds r1, r0
-_08106774:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081067E0
- .align 2, 0
-_0810677C: .4byte 0x02000000
-_08106780: .4byte 0x00015dde
-_08106784: .4byte gMain
-_08106788: .4byte 0x0000043c
-_0810678C:
- ldr r1, _081067E8 @ =0x02000000
- ldr r2, _081067EC @ =0x00015dde
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8106918
- ldr r0, _081067F0 @ =gUnknown_083F6140
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- movs r1, 0xA0
- lsls r1, 19
- movs r4, 0
- str r4, [sp]
- ldr r0, _081067F4 @ =0x040000d4
- mov r2, sp
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081067F8 @ =0x85000100
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0x2
- bl BeginFastPaletteFade
- ldr r0, _081067FC @ =sub_8106AAC
- bl SetVBlankCallback
- ldr r0, _08106800 @ =gUnknown_03000750
- strb r4, [r0]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106804 @ =sub_8106808
- bl SetMainCallback2
-_081067E0:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081067E8: .4byte 0x02000000
-_081067EC: .4byte 0x00015dde
-_081067F0: .4byte gUnknown_083F6140
-_081067F4: .4byte 0x040000d4
-_081067F8: .4byte 0x85000100
-_081067FC: .4byte sub_8106AAC
-_08106800: .4byte gUnknown_03000750
-_08106804: .4byte sub_8106808
- thumb_func_end sub_8106674
-
- thumb_func_start sub_8106808
-sub_8106808: @ 8106808
- push {lr}
- bl sub_810682C
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8106808
-
- thumb_func_start sub_8106818
-sub_8106818: @ 8106818
- push {lr}
- ldr r0, _08106828 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08106828: .4byte gMain
- thumb_func_end sub_8106818
-
- thumb_func_start sub_810682C
-sub_810682C: @ 810682C
- push {lr}
- sub sp, 0x4
- ldr r3, _08106844 @ =gUnknown_03000750
- ldrb r1, [r3]
- cmp r1, 0x1
- beq _08106880
- cmp r1, 0x1
- bgt _08106848
- cmp r1, 0
- beq _0810684E
- b _081068E6
- .align 2, 0
-_08106844: .4byte gUnknown_03000750
-_08106848:
- cmp r1, 0x2
- beq _081068C0
- b _081068E6
-_0810684E:
- ldr r0, _08106874 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810685E
- movs r0, 0x1
- strb r0, [r3]
-_0810685E:
- ldr r0, _08106878 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _0810687C @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0
- beq _081068E6
- subs r0, 0x1
- b _081068E4
- .align 2, 0
-_08106874: .4byte gPaletteFade
-_08106878: .4byte gUnknown_03000756
-_0810687C: .4byte gUnknown_03000754
-_08106880:
- ldr r0, _081068B4 @ =gMain
- ldrh r2, [r0, 0x2E]
- ands r1, r2
- cmp r1, 0
- bne _08106892
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _081068A4
-_08106892:
- movs r0, 0x2
- strb r0, [r3]
- subs r0, 0x3
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_081068A4:
- ldr r0, _081068B8 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068BC @ =gUnknown_03000754
- movs r0, 0
- b _081068E4
- .align 2, 0
-_081068B4: .4byte gMain
-_081068B8: .4byte gUnknown_03000756
-_081068BC: .4byte gUnknown_03000754
-_081068C0:
- ldr r0, _081068EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081068D2
- ldr r0, _081068F0 @ =sub_8106818
- bl SetMainCallback2
-_081068D2:
- ldr r0, _081068F4 @ =gUnknown_03000756
- ldrb r0, [r0]
- cmp r0, 0
- beq _081068E6
- ldr r1, _081068F8 @ =gUnknown_03000754
- ldrh r0, [r1]
- cmp r0, 0x1D
- bhi _081068E6
- adds r0, 0x1
-_081068E4:
- strh r0, [r1]
-_081068E6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081068EC: .4byte gPaletteFade
-_081068F0: .4byte sub_8106818
-_081068F4: .4byte gUnknown_03000756
-_081068F8: .4byte gUnknown_03000754
- thumb_func_end sub_810682C
-
- thumb_func_start sub_81068FC
-sub_81068FC: @ 81068FC
- push {r4,lr}
- ldr r4, _08106914 @ =gWindowConfig_81E7160
- adds r0, r4, 0
- bl InitMenuWindow
- adds r0, r4, 0
- bl SetUpWindowConfig
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106914: .4byte gWindowConfig_81E7160
- thumb_func_end sub_81068FC
-
- thumb_func_start sub_8106918
-sub_8106918: @ 8106918
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081069BE
- ldr r2, _08106974 @ =gUnknown_03005E40
- ldr r6, _08106978 @ =gUnknown_03005E8C
- ldr r0, [r6]
- ldrb r0, [r0, 0xA]
- cmp r3, 0x7
- bhi _08106988
- ldr r1, _0810697C @ =gUnknown_083F60AC
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08106980 @ =gContestText_ContestWinner
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0x16
- bl StringCopy
- adds r2, r0, 0
- movs r0, 0xFC
- strb r0, [r2]
- movs r0, 0x16
- strb r0, [r2, 0x1]
- adds r2, 0x2
- ldr r1, _08106984 @ =gOtherText_Unknown1
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- movs r1, 0x6
- b _081069AE
- .align 2, 0
-_08106974: .4byte gUnknown_03005E40
-_08106978: .4byte gUnknown_03005E8C
-_0810697C: .4byte gUnknown_083F60AC
-_08106980: .4byte gContestText_ContestWinner
-_08106984: .4byte gOtherText_Unknown1
-_08106988:
- ldr r4, _081069C4 @ =gUnknown_083F60C0
- lsls r5, r0, 3
- adds r0, r5, r4
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r6]
- adds r1, 0xB
- bl StringCopy10
- adds r2, r0, 0
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- bl StringCopy
- movs r1, 0x3
-_081069AE:
- movs r2, 0xE
- ldr r0, _081069C8 @ =gUnknown_03005E40
- lsls r1, 3
- adds r1, 0x1
- lsls r2, 3
- movs r3, 0x1
- bl MenuPrint_PixelCoords
-_081069BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081069C4: .4byte gUnknown_083F60C0
-_081069C8: .4byte gUnknown_03005E40
- thumb_func_end sub_8106918
-
- thumb_func_start sub_81069CC
-sub_81069CC: @ 81069CC
- movs r0, 0x80
- lsls r0, 19
- movs r3, 0
- strh r3, [r0]
- ldr r2, _081069FC @ =0x04000200
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08106A00 @ =REG_BG0CNT
- ldr r2, _08106A04 @ =0x00000c42
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08106A08 @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08106A0C @ =REG_BLDCNT
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- bx lr
- .align 2, 0
-_081069FC: .4byte 0x04000200
-_08106A00: .4byte REG_BG0CNT
-_08106A04: .4byte 0x00000c42
-_08106A08: .4byte 0x00000a45
-_08106A0C: .4byte REG_BLDCNT
- thumb_func_end sub_81069CC
-
- thumb_func_start sub_8106A10
-sub_8106A10: @ 8106A10
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08106A34
- ldr r0, _08106A28 @ =gUnknown_03000756
- strb r1, [r0]
- ldr r0, _08106A2C @ =gUnknown_03000752
- strh r1, [r0]
- ldr r0, _08106A30 @ =gUnknown_03000754
- strh r1, [r0]
- b _08106A46
- .align 2, 0
-_08106A28: .4byte gUnknown_03000756
-_08106A2C: .4byte gUnknown_03000752
-_08106A30: .4byte gUnknown_03000754
-_08106A34:
- ldr r1, _08106A4C @ =gUnknown_03000756
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08106A50 @ =gUnknown_03000752
- movs r0, 0xF
- strh r0, [r1]
- ldr r1, _08106A54 @ =gUnknown_03000754
- movs r0, 0x1E
- strh r0, [r1]
-_08106A46:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A4C: .4byte gUnknown_03000756
-_08106A50: .4byte gUnknown_03000752
-_08106A54: .4byte gUnknown_03000754
- thumb_func_end sub_8106A10
-
- thumb_func_start sub_8106A58
-sub_8106A58: @ 8106A58
- push {lr}
- ldr r0, _08106A68 @ =gUnknown_03000756
- ldrb r1, [r0]
- cmp r1, 0
- bne _08106A70
- ldr r0, _08106A6C @ =REG_MOSAIC
- strh r1, [r0]
- b _08106A92
- .align 2, 0
-_08106A68: .4byte gUnknown_03000756
-_08106A6C: .4byte REG_MOSAIC
-_08106A70:
- ldr r1, _08106A98 @ =REG_BG1CNT
- ldr r2, _08106A9C @ =0x00000a45
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _08106AA0 @ =gUnknown_03000752
- ldr r0, _08106AA4 @ =gUnknown_03000754
- ldrh r1, [r0]
- lsrs r1, 1
- strh r1, [r2]
- ldr r3, _08106AA8 @ =REG_MOSAIC
- lsls r0, r1, 12
- lsls r2, r1, 8
- orrs r0, r2
- lsls r2, r1, 4
- orrs r0, r2
- orrs r0, r1
- strh r0, [r3]
-_08106A92:
- pop {r0}
- bx r0
- .align 2, 0
-_08106A98: .4byte REG_BG1CNT
-_08106A9C: .4byte 0x00000a45
-_08106AA0: .4byte gUnknown_03000752
-_08106AA4: .4byte gUnknown_03000754
-_08106AA8: .4byte REG_MOSAIC
- thumb_func_end sub_8106A58
-
- thumb_func_start sub_8106AAC
-sub_8106AAC: @ 8106AAC
- push {lr}
- bl sub_8106A58
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8106AAC
-
- thumb_func_start sub_8106AC4
-sub_8106AC4: @ 8106AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08106B28 @ =gUnknown_03005E8C
- ldr r0, [r7]
- ldr r1, [r0, 0x4]
- ldr r2, [r0]
- adds r0, r6, 0
- bl species_and_otid_get_pal
- ldr r1, _08106B2C @ =gUnknown_03005E90
- mov r8, r1
- ldr r1, [r1]
- bl LZDecompressVram
- cmp r4, 0
- bne _08106B40
- lsls r0, r6, 3
- ldr r1, _08106B30 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08106B34 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B38 @ =gUnknown_081FAF4C
- ldr r5, [r4, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r2, r8
- ldr r1, [r2]
- ldr r0, _08106B3C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
- b _08106B74
- .align 2, 0
-_08106B28: .4byte gUnknown_03005E8C
-_08106B2C: .4byte gUnknown_03005E90
-_08106B30: .4byte gMonFrontPicTable
-_08106B34: .4byte gMonFrontPicCoords
-_08106B38: .4byte gUnknown_081FAF4C
-_08106B3C: .4byte gUnknown_03005E10
-_08106B40:
- lsls r0, r6, 3
- ldr r1, _08106B80 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08106B84 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08106B88 @ =gUnknown_081FAF4C
- ldr r5, [r4]
- str r5, [sp]
- str r6, [sp, 0x4]
- ldr r4, [r7]
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _08106B8C @ =gUnknown_03005E10
- ldr r2, [r0]
- adds r0, r5, 0
- bl sub_8106B90
-_08106B74:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106B80: .4byte gMonBackPicTable
-_08106B84: .4byte gMonBackPicCoords
-_08106B88: .4byte gUnknown_081FAF4C
-_08106B8C: .4byte gUnknown_03005E10
- thumb_func_end sub_8106AC4
-
- thumb_func_start sub_8106B90
-sub_8106B90: @ 8106B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r10, r0
- mov r9, r1
- str r2, [sp]
- movs r0, 0
-_08106BA4:
- movs r3, 0
- adds r1, r0, 0x1
- str r1, [sp, 0x4]
- lsls r0, 3
- str r0, [sp, 0x8]
-_08106BAE:
- movs r1, 0
- adds r2, r3, 0x1
- mov r8, r2
- ldr r7, [sp, 0x8]
- adds r0, r7, r3
- lsls r0, 5
- mov r12, r0
- lsls r4, r3, 3
-_08106BBE:
- movs r3, 0
- lsls r0, r1, 2
- adds r6, r1, 0x1
- mov r2, r12
- adds r5, r2, r0
- ldr r7, [sp, 0x8]
- adds r0, r7, r1
- lsls r0, 7
- ldr r1, [sp]
- adds r2, r0, r1
-_08106BD2:
- lsrs r0, r3, 1
- adds r0, r5, r0
- add r0, r10
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08106BE6
- lsrs r1, 4
- b _08106BEA
-_08106BE6:
- movs r0, 0xF
- ands r1, r0
-_08106BEA:
- cmp r1, 0
- bne _08106BFC
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- movs r7, 0x80
- lsls r7, 8
- adds r1, r7, 0
- b _08106C08
-_08106BFC:
- adds r0, r4, r3
- lsls r0, 1
- adds r0, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
-_08106C08:
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BD2
- lsls r0, r6, 16
- lsrs r1, r0, 16
- cmp r1, 0x7
- bls _08106BBE
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- cmp r3, 0x7
- bls _08106BAE
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _08106BA4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8106B90
-
- thumb_func_start sub_8106C40
-sub_8106C40: @ 8106C40
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08106C7C @ =gPictureFramePalettes
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- cmp r4, 0x1
- beq _08106C5E
- b _08106DB4
-_08106C5E:
- ldr r0, _08106C80 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106D1C
- lsls r0, 2
- ldr r1, _08106C84 @ =_08106C88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106C7C: .4byte gPictureFramePalettes
-_08106C80: .4byte gUnknown_03005E8C
-_08106C84: .4byte _08106C88
- .align 2, 0
-_08106C88:
- .4byte _08106C9C
- .4byte _08106CB4
- .4byte _08106CCC
- .4byte _08106CE4
- .4byte _08106D08
-_08106C9C:
- ldr r0, _08106CAC @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CB0 @ =gPictureFrameTilemap_0
- b _08106CF0
- .align 2, 0
-_08106CAC: .4byte gPictureFrameTiles_0
-_08106CB0: .4byte gPictureFrameTilemap_0
-_08106CB4:
- ldr r0, _08106CC4 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CC8 @ =gPictureFrameTilemap_1
- b _08106CF0
- .align 2, 0
-_08106CC4: .4byte gPictureFrameTiles_1
-_08106CC8: .4byte gPictureFrameTilemap_1
-_08106CCC:
- ldr r0, _08106CDC @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106CE0 @ =gPictureFrameTilemap_2
- b _08106CF0
- .align 2, 0
-_08106CDC: .4byte gPictureFrameTiles_2
-_08106CE0: .4byte gPictureFrameTilemap_2
-_08106CE4:
- ldr r0, _08106CFC @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D00 @ =gPictureFrameTilemap_3
-_08106CF0:
- ldr r1, _08106D04 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
- b _08106D1C
- .align 2, 0
-_08106CFC: .4byte gPictureFrameTiles_3
-_08106D00: .4byte gPictureFrameTilemap_3
-_08106D04: .4byte gUnknown_03005E10
-_08106D08:
- ldr r0, _08106D98 @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106D9C @ =gPictureFrameTilemap_4
- ldr r1, _08106DA0 @ =gUnknown_03005E10
- ldr r1, [r1]
- bl RLUnCompWram
-_08106D1C:
- movs r1, 0
- ldr r5, _08106DA4 @ =0x06006000
- ldr r0, _08106DA8 @ =0x00001015
- adds r4, r0, 0
-_08106D24:
- movs r3, 0
- lsls r2, r1, 5
-_08106D28:
- adds r0, r2, r3
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08106D28
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _08106D24
- movs r1, 0
- ldr r0, _08106DAC @ =0x0600608c
- mov r12, r0
- ldr r7, _08106DA0 @ =gUnknown_03005E10
-_08106D4C:
- movs r3, 0
- adds r6, r1, 0x1
- lsls r5, r1, 5
- lsls r4, r1, 6
-_08106D54:
- adds r2, r5, r3
- lsls r2, 1
- add r2, r12
- ldr r0, [r7]
- adds r0, r4, r0
- lsls r1, r3, 1
- adds r0, r1
- adds r0, 0x8C
- ldrh r0, [r0]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x11
- bls _08106D54
- lsls r0, r6, 24
- lsrs r1, r0, 24
- cmp r1, 0x9
- bls _08106D4C
- movs r3, 0
- ldr r4, _08106DB0 @ =0x0600608e
- ldr r2, _08106DA0 @ =gUnknown_03005E10
-_08106D80:
- lsls r1, r3, 1
- adds r1, r4
- ldr r0, [r2]
- adds r0, 0x8E
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _08106D80
- b _08106E86
- .align 2, 0
-_08106D98: .4byte gPictureFrameTiles_4
-_08106D9C: .4byte gPictureFrameTilemap_4
-_08106DA0: .4byte gUnknown_03005E10
-_08106DA4: .4byte 0x06006000
-_08106DA8: .4byte 0x00001015
-_08106DAC: .4byte 0x0600608c
-_08106DB0: .4byte 0x0600608e
-_08106DB4:
- cmp r5, 0x7
- bhi _08106DD0
- ldr r0, _08106DC8 @ =gPictureFrameTiles_5
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106DCC @ =gPictureFrameTilemap_5
- b _08106E60
- .align 2, 0
-_08106DC8: .4byte gPictureFrameTiles_5
-_08106DCC: .4byte gPictureFrameTilemap_5
-_08106DD0:
- ldr r0, _08106DF0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _08106E86
- lsls r0, 2
- ldr r1, _08106DF4 @ =_08106DF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106DF0: .4byte gUnknown_03005E8C
-_08106DF4: .4byte _08106DF8
- .align 2, 0
-_08106DF8:
- .4byte _08106E0C
- .4byte _08106E24
- .4byte _08106E3C
- .4byte _08106E54
- .4byte _08106E74
-_08106E0C:
- ldr r0, _08106E1C @ =gPictureFrameTiles_0
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E20 @ =gPictureFrameTilemap_0
- b _08106E60
- .align 2, 0
-_08106E1C: .4byte gPictureFrameTiles_0
-_08106E20: .4byte gPictureFrameTilemap_0
-_08106E24:
- ldr r0, _08106E34 @ =gPictureFrameTiles_1
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E38 @ =gPictureFrameTilemap_1
- b _08106E60
- .align 2, 0
-_08106E34: .4byte gPictureFrameTiles_1
-_08106E38: .4byte gPictureFrameTilemap_1
-_08106E3C:
- ldr r0, _08106E4C @ =gPictureFrameTiles_2
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E50 @ =gPictureFrameTilemap_2
- b _08106E60
- .align 2, 0
-_08106E4C: .4byte gPictureFrameTiles_2
-_08106E50: .4byte gPictureFrameTilemap_2
-_08106E54:
- ldr r0, _08106E68 @ =gPictureFrameTiles_3
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E6C @ =gPictureFrameTilemap_3
-_08106E60:
- ldr r1, _08106E70 @ =0x06006000
- bl RLUnCompVram
- b _08106E86
- .align 2, 0
-_08106E68: .4byte gPictureFrameTiles_3
-_08106E6C: .4byte gPictureFrameTilemap_3
-_08106E70: .4byte 0x06006000
-_08106E74:
- ldr r0, _08106E8C @ =gPictureFrameTiles_4
- movs r1, 0xC0
- lsls r1, 19
- bl RLUnCompVram
- ldr r0, _08106E90 @ =gPictureFrameTilemap_4
- ldr r1, _08106E94 @ =0x06006000
- bl RLUnCompVram
-_08106E86:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08106E8C: .4byte gPictureFrameTiles_4
-_08106E90: .4byte gPictureFrameTilemap_4
-_08106E94: .4byte 0x06006000
- thumb_func_end sub_8106C40
-
- thumb_func_start sub_8106E98
-sub_8106E98: @ 8106E98
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08106ED0 @ =gMain
- ldr r1, _08106ED4 @ =gOamData_83F6138
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4, 0x3C]
- str r2, [r4, 0x40]
- adds r3, r4, 0
- adds r3, 0x40
- ldrh r2, [r3]
- ldr r1, _08106ED8 @ =0xfffffc00
- ands r1, r2
- strh r1, [r3]
- ldrh r1, [r4, 0x3E]
- ldr r0, _08106EDC @ =0xfffffe00
- ands r0, r1
- movs r1, 0x58
- orrs r0, r1
- strh r0, [r4, 0x3E]
- adds r1, r4, 0
- adds r1, 0x3C
- movs r0, 0x18
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08106ED0: .4byte gMain
-_08106ED4: .4byte gOamData_83F6138
-_08106ED8: .4byte 0xfffffc00
-_08106EDC: .4byte 0xfffffe00
- thumb_func_end sub_8106E98
-
- thumb_func_start sub_8106EE0
-sub_8106EE0: @ 8106EE0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _08106EF8
- ldr r0, _08106EF4 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- b _08106F08
- .align 2, 0
-_08106EF4: .4byte gUnknown_03005E8C
-_08106EF8:
- ldr r0, _08106F18 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0, 0xA]
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
-_08106F08:
- cmp r0, 0x4
- bhi _08106F46
- lsls r0, 2
- ldr r1, _08106F1C @ =_08106F20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106F18: .4byte gUnknown_03005E8C
-_08106F1C: .4byte _08106F20
- .align 2, 0
-_08106F20:
- .4byte _08106F34
- .4byte _08106F38
- .4byte _08106F3C
- .4byte _08106F40
- .4byte _08106F44
-_08106F34:
- movs r0, 0x9
- b _08106F46
-_08106F38:
- movs r0, 0xD
- b _08106F46
-_08106F3C:
- movs r0, 0x2
- b _08106F46
-_08106F40:
- movs r0, 0x24
- b _08106F46
-_08106F44:
- movs r0, 0x6
-_08106F46:
- pop {r1}
- bx r1
- thumb_func_end sub_8106EE0
-
- thumb_func_start sub_8106F4C
-sub_8106F4C: @ 8106F4C
- ldr r0, _08106F5C @ =gUnknown_03005E90
- ldr r1, _08106F60 @ =0x02017e00
- str r1, [r0]
- ldr r0, _08106F64 @ =gUnknown_03005E10
- ldr r2, _08106F68 @ =0xffffe000
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_08106F5C: .4byte gUnknown_03005E90
-_08106F60: .4byte 0x02017e00
-_08106F64: .4byte gUnknown_03005E10
-_08106F68: .4byte 0xffffe000
- thumb_func_end sub_8106F4C
-
- thumb_func_start sub_8106F6C
-sub_8106F6C: @ 8106F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08106FAC @ =gUnknown_03005E20
- ldr r0, _08106FB0 @ =gUnknown_03005E10
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r0, _08106FB4 @ =gUnknown_03005E90
- ldr r0, [r0]
- str r0, [r1, 0x8]
- movs r2, 0
- strb r2, [r1, 0x18]
- ldr r0, _08106FB8 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrb r0, [r0]
- strb r0, [r1, 0x1F]
- strb r2, [r1, 0x19]
- strb r2, [r1, 0x1A]
- movs r0, 0x40
- strb r0, [r1, 0x1B]
- strb r0, [r1, 0x1C]
- strb r0, [r1, 0x1D]
- strb r0, [r1, 0x1E]
- subs r0, r3, 0x2
- adds r4, r1, 0
- cmp r0, 0x22
- bhi _08107050
- lsls r0, 2
- ldr r1, _08106FBC @ =_08106FC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08106FAC: .4byte gUnknown_03005E20
-_08106FB0: .4byte gUnknown_03005E10
-_08106FB4: .4byte gUnknown_03005E90
-_08106FB8: .4byte gUnknown_03005E8C
-_08106FBC: .4byte _08106FC0
- .align 2, 0
-_08106FC0:
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _08107050
- .4byte _0810704C
-_0810704C:
- movs r0, 0x3
- b _08107052
-_08107050:
- movs r0, 0x1
-_08107052:
- strh r0, [r4, 0x14]
- movs r0, 0x2
- strh r0, [r4, 0x16]
- strb r3, [r4]
- ldr r0, _08107088 @ =0x06010000
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl sub_80FC7A0
- adds r0, r4, 0
- bl sub_80FDA18
- adds r0, r4, 0
- bl sub_80FD8CC
- ldr r0, _0810708C @ =gUnknown_03005E90
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x80
- lsls r2, 2
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08107088: .4byte 0x06010000
-_0810708C: .4byte gUnknown_03005E90
- thumb_func_end sub_8106F6C
-
- thumb_func_start sub_8107090
-sub_8107090: @ 8107090
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- bl sub_8106F4C
- ldr r0, _081070D0 @ =gUnknown_03005E8C
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- movs r1, 0
- bl sub_8106AC4
- adds r0, r4, 0
- bl sub_8106EE0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8106F6C
- adds r0, r4, 0
- bl sub_8106E98
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8106C40
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081070D0: .4byte gUnknown_03005E8C
- thumb_func_end sub_8107090
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s
new file mode 100644
index 000000000..3737d9ffc
--- /dev/null
+++ b/asm/rotating_gate.s
@@ -0,0 +1,1085 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start GetCurrentMapRotatingGatePuzzleType
+GetCurrentMapRotatingGatePuzzleType: @ 80C799C
+ push {lr}
+ ldr r0, _080C79B0 @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r1, r0
+ bne _080C79B4
+ movs r0, 0x1
+ b _080C79C6
+ .align 2, 0
+_080C79B0: .4byte gSaveBlock1
+_080C79B4:
+ ldr r0, _080C79C0 @ =0x0000081d
+ cmp r1, r0
+ beq _080C79C4
+ movs r0, 0
+ b _080C79C6
+ .align 2, 0
+_080C79C0: .4byte 0x0000081d
+_080C79C4:
+ movs r0, 0x2
+_080C79C6:
+ pop {r1}
+ bx r1
+ thumb_func_end GetCurrentMapRotatingGatePuzzleType
+
+ thumb_func_start sub_80C79CC
+sub_80C79CC: @ 80C79CC
+ push {r4-r6,lr}
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r5, r0, 0
+ movs r3, 0
+ ldr r4, _080C7A00 @ =gUnknown_02038804
+ ldrb r0, [r4]
+ cmp r3, r0
+ bge _080C79F8
+ ldr r6, _080C7A04 @ =gUnknown_02038800
+_080C79E4:
+ adds r2, r5, r3
+ ldr r1, [r6]
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _080C79E4
+_080C79F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7A00: .4byte gUnknown_02038804
+_080C7A04: .4byte gUnknown_02038800
+ thumb_func_end sub_80C79CC
+
+ thumb_func_start sub_80C7A08
+sub_80C7A08: @ 80C7A08
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7A08
+
+ thumb_func_start sub_80C7A24
+sub_80C7A24: @ 80C7A24
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x80
+ lsls r0, 7
+ bl GetVarPointer
+ adds r0, r4
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A24
+
+ thumb_func_start sub_80C7A44
+sub_80C7A44: @ 80C7A44
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0x1
+ bne _080C7A68
+ cmp r1, 0
+ beq _080C7A64
+ subs r0, r1, 0x1
+ lsls r0, 24
+ b _080C7A72
+_080C7A64:
+ movs r1, 0x3
+ b _080C7A74
+_080C7A68:
+ adds r1, 0x1
+ lsls r1, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r1
+_080C7A72:
+ lsrs r1, r0, 24
+_080C7A74:
+ adds r0, r5, 0
+ bl sub_80C7A24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7A44
+
+ thumb_func_start sub_80C7A80
+sub_80C7A80: @ 80C7A80
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0x1
+ beq _080C7A94
+ cmp r0, 0x1
+ ble _080C7AC8
+ cmp r0, 0x2
+ beq _080C7AAC
+ b _080C7AC8
+_080C7A94:
+ ldr r1, _080C7AA0 @ =gUnknown_02038800
+ ldr r0, _080C7AA4 @ =gUnknown_083D2964
+ str r0, [r1]
+ ldr r1, _080C7AA8 @ =gUnknown_02038804
+ movs r0, 0x7
+ b _080C7AB6
+ .align 2, 0
+_080C7AA0: .4byte gUnknown_02038800
+_080C7AA4: .4byte gUnknown_083D2964
+_080C7AA8: .4byte gUnknown_02038804
+_080C7AAC:
+ ldr r1, _080C7ACC @ =gUnknown_02038800
+ ldr r0, _080C7AD0 @ =gUnknown_083D299C
+ str r0, [r1]
+ ldr r1, _080C7AD4 @ =gUnknown_02038804
+ movs r0, 0xE
+_080C7AB6:
+ strb r0, [r1]
+ movs r1, 0
+ ldr r3, _080C7AD8 @ =gUnknown_020387F0
+ movs r2, 0x40
+_080C7ABE:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0xD
+ bls _080C7ABE
+_080C7AC8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7ACC: .4byte gUnknown_02038800
+_080C7AD0: .4byte gUnknown_083D299C
+_080C7AD4: .4byte gUnknown_02038804
+_080C7AD8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7A80
+
+ thumb_func_start sub_80C7ADC
+sub_80C7ADC: @ 80C7ADC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ ldr r2, _080C7B9C @ =gSaveBlock1
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ movs r5, 0
+ ldr r0, _080C7BA0 @ =gUnknown_02038804
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080C7B8C
+ lsls r0, r2, 16
+ asrs r7, r0, 16
+ lsls r0, r3, 16
+ asrs r6, r0, 16
+_080C7B28:
+ ldr r0, _080C7BA4 @ =gUnknown_02038800
+ ldr r0, [r0]
+ lsls r1, r5, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r7, r1
+ bgt _080C7B7E
+ mov r3, r8
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ cmp r6, r1
+ bgt _080C7B7E
+ mov r2, r9
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, r1
+ blt _080C7B7E
+ ldr r0, _080C7BA8 @ =gUnknown_020387F0
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ bne _080C7B7E
+ ldr r3, [sp]
+ lsls r1, r3, 16
+ mov r0, r10
+ lsls r2, r0, 16
+ adds r0, r5, 0
+ asrs r1, 16
+ asrs r2, 16
+ bl sub_80C7BAC
+ strb r0, [r4]
+_080C7B7E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C7BA0 @ =gUnknown_02038804
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080C7B28
+_080C7B8C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7B9C: .4byte gSaveBlock1
+_080C7BA0: .4byte gUnknown_02038804
+_080C7BA4: .4byte gUnknown_02038800
+_080C7BA8: .4byte gUnknown_020387F0
+ thumb_func_end sub_80C7ADC
+
+ thumb_func_start sub_80C7BAC
+sub_80C7BAC: @ 80C7BAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, _080C7BDC @ =gUnknown_02038800
+ lsls r1, r6, 3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080C7BD4
+ cmp r0, 0x4
+ bne _080C7BE4
+_080C7BD4:
+ mov r1, sp
+ ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4
+ b _080C7BE8
+ .align 2, 0
+_080C7BDC: .4byte gUnknown_02038800
+_080C7BE0: .4byte gSpriteTemplate_83D60A4
+_080C7BE4:
+ mov r1, sp
+ ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C
+_080C7BE8:
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r2, sp
+ ldrb r0, [r4, 0x4]
+ movs r3, 0x98
+ lsls r3, 5
+ adds r1, r3, 0
+ adds r0, r1
+ strh r0, [r2]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x94
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080C7C84
+ ldrh r0, [r4]
+ adds r0, 0x7
+ ldrh r1, [r4, 0x2]
+ adds r1, 0x7
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r2, _080C7C80 @ =gSprites
+ adds r4, r2
+ strh r6, [r4, 0x2E]
+ movs r2, 0x3E
+ adds r2, r4
+ mov r12, r2
+ ldrb r2, [r2]
+ movs r3, 0x2
+ orrs r2, r3
+ mov r3, r12
+ strb r2, [r3]
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 16
+ asrs r2, 16
+ adds r0, r2
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ mov r3, r8
+ lsls r2, r3, 16
+ asrs r2, 16
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ bl sub_8060388
+ adds r0, r4, 0
+ bl sub_80C7D14
+ adds r0, r6, 0
+ bl sub_80C7A08
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ adds r0, r5, 0
+ b _080C7C86
+ .align 2, 0
+_080C7C7C: .4byte gSpriteTemplate_83D608C
+_080C7C80: .4byte gSprites
+_080C7C84:
+ movs r0, 0x40
+_080C7C86:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C7BAC
+
+ thumb_func_start sub_80C7C94
+sub_80C7C94: @ 80C7C94
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x30]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r6, 0x32]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ adds r0, r6, 0
+ bl sub_80C7D14
+ cmp r5, 0x1
+ bne _080C7CDA
+ adds r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CCA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CCA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+ b _080C7D08
+_080C7CDA:
+ cmp r5, 0x2
+ bne _080C7D08
+ adds r0, r7, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ beq _080C7CFA
+ adds r0, r4, 0
+ adds r0, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080C7CFA:
+ movs r0, 0x30
+ bl PlaySE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StartSpriteAffineAnim
+_080C7D08:
+ movs r0, 0
+ strh r0, [r6, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C7C94
+
+ thumb_func_start sub_80C7D14
+sub_80C7D14: @ 80C7D14
+ push {r4-r6,lr}
+ mov r12, r0
+ mov r4, r12
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r5, 0x5
+ negs r5, r5
+ ands r5, r0
+ strb r5, [r4]
+ mov r0, r12
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r0, 0x20]
+ adds r1, r2
+ adds r0, 0x28
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX
+ adds r2, r1
+ ldrh r0, [r0]
+ adds r2, r0
+ lsls r2, 16
+ mov r3, r12
+ ldrh r1, [r3, 0x26]
+ ldrh r0, [r3, 0x22]
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r3, _080C7DAC @ =gSpriteCoordOffsetY
+ adds r0, r1
+ ldrh r3, [r3]
+ adds r0, r3
+ lsls r0, 16
+ movs r3, 0x80
+ lsls r3, 15
+ adds r1, r2, r3
+ lsrs r1, 16
+ lsrs r6, r0, 16
+ adds r0, r3
+ lsrs r3, r0, 16
+ asrs r2, 16
+ cmp r2, 0xFF
+ bgt _080C7D7A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7D82
+_080C7D7A:
+ movs r1, 0x4
+ adds r0, r5, 0
+ orrs r0, r1
+ strb r0, [r4]
+_080C7D82:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xAF
+ bgt _080C7D96
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _080C7DA2
+_080C7D96:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080C7DA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DA8: .4byte gSpriteCoordOffsetX
+_080C7DAC: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_80C7D14
+
+ thumb_func_start LoadRotatingGatePics
+LoadRotatingGatePics: @ 80C7DB0
+ push {lr}
+ ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable
+ bl LoadSpriteSheets
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7DBC: .4byte gRotatingGatesGraphicsTable
+ thumb_func_end LoadRotatingGatePics
+
+ thumb_func_start sub_80C7DC0
+sub_80C7DC0: @ 80C7DC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _080C7DF4 @ =gSaveBlock1
+ ldrh r1, [r2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r1, 0x11
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrh r1, [r2, 0x2]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r1, 0xE
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r6, 0
+ b _080C7E66
+ .align 2, 0
+_080C7DF4: .4byte gSaveBlock1
+_080C7DF8:
+ ldr r0, _080C7E7C @ =gUnknown_02038800
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r1, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, _080C7E80 @ =gUnknown_020387F0
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _080C7E64
+ lsls r0, r2, 16
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r2, r0
+ bgt _080C7E44
+ lsls r0, r3, 16
+ mov r2, r8
+ lsls r1, r2, 16
+ asrs r2, r0, 16
+ cmp r0, r1
+ blt _080C7E44
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r2, r0
+ ble _080C7E64
+_080C7E44:
+ ldr r0, _080C7E80 @ =gUnknown_020387F0
+ adds r5, r6, r0
+ ldrb r0, [r5]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7E84 @ =gSprites
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ movs r0, 0x40
+ strb r0, [r5]
+_080C7E64:
+ adds r6, 0x1
+_080C7E66:
+ ldr r0, _080C7E88 @ =gUnknown_02038804
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C7DF8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7E7C: .4byte gUnknown_02038800
+_080C7E80: .4byte gUnknown_020387F0
+_080C7E84: .4byte gSprites
+_080C7E88: .4byte gUnknown_02038804
+ thumb_func_end sub_80C7DC0
+
+ thumb_func_start sub_80C7E8C
+sub_80C7E8C: @ 80C7E8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r1, 0x1
+ bne _080C7EAC
+ ldr r0, _080C7EA8 @ =gUnknown_083D611C
+ mov r10, r0
+ b _080C7EB8
+ .align 2, 0
+_080C7EA8: .4byte gUnknown_083D611C
+_080C7EAC:
+ cmp r1, 0x2
+ beq _080C7EB4
+_080C7EB0:
+ movs r0, 0
+ b _080C7F48
+_080C7EB4:
+ ldr r1, _080C7F58 @ =gUnknown_083D60FC
+ mov r10, r1
+_080C7EB8:
+ adds r0, r4, 0
+ bl sub_80C7A08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r0, _080C7F5C @ =gUnknown_02038800
+ ldr r1, [r0]
+ lsls r0, r4, 3
+ adds r0, r1
+ ldrb r2, [r0, 0x4]
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ movs r3, 0
+ lsls r2, 3
+ str r2, [sp, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+_080C7EE8:
+ movs r6, 0
+ ldr r2, [sp]
+ adds r7, r2, r3
+ lsls r0, r3, 1
+ adds r5, r7, 0
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ ldr r2, _080C7F60 @ =gUnknown_083D613C
+ adds r4, r0, r2
+_080C7EFA:
+ adds r0, r5, 0
+ cmp r5, 0
+ bge _080C7F02
+ adds r0, r7, 0x3
+_080C7F02:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r5, r0
+ lsls r0, 1
+ adds r0, r6
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080C7F38
+ lsls r1, 2
+ add r1, r10
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ add r0, r9
+ ldrb r1, [r1, 0x1]
+ lsls r1, 24
+ asrs r1, 24
+ add r1, r8
+ str r3, [sp, 0x8]
+ bl MapGridIsImpassableAt
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x8]
+ cmp r0, 0x1
+ beq _080C7EB0
+_080C7F38:
+ adds r4, 0x1
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080C7EFA
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C7EE8
+ movs r0, 0x1
+_080C7F48:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7F58: .4byte gUnknown_083D60FC
+_080C7F5C: .4byte gUnknown_02038800
+_080C7F60: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7E8C
+
+ thumb_func_start sub_80C7F64
+sub_80C7F64: @ 80C7F64
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsrs r4, 25
+ movs r0, 0x1
+ ands r5, r0
+ adds r0, r6, 0
+ bl sub_80C7A08
+ subs r4, r0
+ adds r1, r4, 0x4
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080C7F8A
+ adds r0, r4, 0x7
+_080C7F8A:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ ldr r1, _080C7FB0 @ =gUnknown_02038800
+ ldr r2, [r1]
+ lsls r1, r6, 3
+ adds r1, r2
+ ldrb r1, [r1, 0x4]
+ ldr r2, _080C7FB4 @ =gUnknown_083D613C
+ lsls r0, 24
+ asrs r0, 23
+ adds r0, r5
+ lsls r1, 3
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C7FB0: .4byte gUnknown_02038800
+_080C7FB4: .4byte gUnknown_083D613C
+ thumb_func_end sub_80C7F64
+
+ thumb_func_start sub_80C7FB8
+sub_80C7FB8: @ 80C7FB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080C7FE4 @ =gUnknown_020387F0
+ adds r2, r3, r0
+ ldrb r0, [r2]
+ cmp r0, 0x40
+ beq _080C7FDC
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C7FE8 @ =gSprites
+ adds r4, r0
+ strh r1, [r4, 0x30]
+ adds r0, r3, 0
+ bl sub_80C7A08
+ strh r0, [r4, 0x32]
+_080C7FDC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7FE4: .4byte gUnknown_020387F0
+_080C7FE8: .4byte gSprites
+ thumb_func_end sub_80C7FB8
+
+ thumb_func_start sub_80C7FEC
+sub_80C7FEC: @ 80C7FEC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r0, 0x2
+ bne _080C8008
+ ldr r3, _080C8004 @ =gUnknown_083D60BC
+ b _080C802A
+ .align 2, 0
+_080C8004: .4byte gUnknown_083D60BC
+_080C8008:
+ cmp r0, 0x1
+ bne _080C8014
+ ldr r3, _080C8010 @ =gUnknown_083D60CC
+ b _080C802A
+ .align 2, 0
+_080C8010: .4byte gUnknown_083D60CC
+_080C8014:
+ cmp r0, 0x3
+ bne _080C8020
+ ldr r3, _080C801C @ =gUnknown_083D60DC
+ b _080C802A
+ .align 2, 0
+_080C801C: .4byte gUnknown_083D60DC
+_080C8020:
+ cmp r3, 0x4
+ beq _080C8028
+ movs r0, 0xFF
+ b _080C8038
+_080C8028:
+ ldr r3, _080C803C @ =gUnknown_083D60EC
+_080C802A:
+ lsls r0, r2, 16
+ lsls r1, 16
+ asrs r1, 16
+ asrs r0, 14
+ adds r0, r1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+_080C8038:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C803C: .4byte gUnknown_083D60EC
+ thumb_func_end sub_80C7FEC
+
+ thumb_func_start sub_80C8040
+sub_80C8040: @ 80C8040
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C8052
+ bl sub_80C7A80
+ bl sub_80C79CC
+_080C8052:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8040
+
+ thumb_func_start RotatingGatePuzzleCameraUpdate
+RotatingGatePuzzleCameraUpdate: @ 80C8058
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C807A
+ lsls r0, r4, 16
+ asrs r0, 16
+ lsls r1, r5, 16
+ asrs r1, 16
+ bl sub_80C7ADC
+ bl sub_80C7DC0
+_080C807A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end RotatingGatePuzzleCameraUpdate
+
+ thumb_func_start sub_80C8080
+sub_80C8080: @ 80C8080
+ push {lr}
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ beq _080C809A
+ bl LoadRotatingGatePics
+ bl sub_80C7A80
+ movs r0, 0
+ movs r1, 0
+ bl sub_80C7ADC
+_080C809A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8080
+
+ thumb_func_start CheckForRotatingGatePuzzleCollision
+CheckForRotatingGatePuzzleCollision: @ 80C80A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ bl GetCurrentMapRotatingGatePuzzleType
+ cmp r0, 0
+ bne _080C80D4
+ b _080C8172
+_080C80C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7FB8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7A44
+ b _080C8172
+_080C80D4:
+ movs r6, 0
+ ldr r0, _080C8160 @ =gUnknown_02038804
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _080C8172
+ lsls r0, r4, 16
+ asrs r7, r0, 16
+_080C80E2:
+ ldr r0, _080C8164 @ =gUnknown_02038800
+ ldr r1, [r0]
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x7
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ subs r0, r4, 0x2
+ cmp r0, r7
+ bgt _080C8168
+ adds r0, r4, 0x1
+ cmp r7, r0
+ bgt _080C8168
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ subs r1, r3, 0x2
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ cmp r1, r2
+ bgt _080C8168
+ adds r0, r3, 0x1
+ cmp r2, r0
+ bgt _080C8168
+ subs r1, r7, r4
+ adds r1, 0x2
+ subs r2, r3
+ adds r2, 0x2
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, r9
+ bl sub_80C7FEC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080C8168
+ lsrs r5, r0, 4
+ movs r1, 0xF
+ ands r1, r0
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80C7F64
+ cmp r0, 0
+ beq _080C8168
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80C7E8C
+ cmp r0, 0
+ bne _080C80C2
+ movs r0, 0x1
+ b _080C8174
+ .align 2, 0
+_080C8160: .4byte gUnknown_02038804
+_080C8164: .4byte gUnknown_02038800
+_080C8168:
+ adds r6, 0x1
+ ldr r0, _080C8180 @ =gUnknown_02038804
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _080C80E2
+_080C8172:
+ movs r0, 0
+_080C8174:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8180: .4byte gUnknown_02038804
+ thumb_func_end CheckForRotatingGatePuzzleCollision
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
new file mode 100644
index 000000000..75fc532e3
--- /dev/null
+++ b/asm/safari_zone.s
@@ -0,0 +1,544 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start GetSafariZoneFlag
+GetSafariZoneFlag: @ 80C8184
+ push {lr}
+ ldr r0, _080C8194 @ =0x0000082c
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8194: .4byte 0x0000082c
+ thumb_func_end GetSafariZoneFlag
+
+ thumb_func_start SetSafariZoneFlag
+SetSafariZoneFlag: @ 80C8198
+ push {lr}
+ ldr r0, _080C81A4 @ =0x0000082c
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81A4: .4byte 0x0000082c
+ thumb_func_end SetSafariZoneFlag
+
+ thumb_func_start ResetSafariZoneFlag
+ResetSafariZoneFlag: @ 80C81A8
+ push {lr}
+ ldr r0, _080C81B4 @ =0x0000082c
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81B4: .4byte 0x0000082c
+ thumb_func_end ResetSafariZoneFlag
+
+ thumb_func_start sub_80C81B8
+sub_80C81B8: @ 80C81B8
+ push {lr}
+ movs r0, 0x11
+ bl sav12_xor_increment
+ bl SetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C81DC @ =gUnknown_02038808
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _080C81E0 @ =gUnknown_0203880A
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C81DC: .4byte gUnknown_02038808
+_080C81E0: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81B8
+
+ thumb_func_start sub_80C81E4
+sub_80C81E4: @ 80C81E4
+ push {lr}
+ bl ResetSafariZoneFlag
+ bl sub_80C82D8
+ ldr r1, _080C8200 @ =gUnknown_02038808
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080C8204 @ =gUnknown_0203880A
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8200: .4byte gUnknown_02038808
+_080C8204: .4byte gUnknown_0203880A
+ thumb_func_end sub_80C81E4
+
+ thumb_func_start safari_step
+safari_step: @ 80C8208
+ push {lr}
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _080C8224
+ bl sub_80C8508
+ ldr r1, _080C8228 @ =gUnknown_0203880A
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080C822C
+_080C8224:
+ movs r0, 0
+ b _080C8234
+ .align 2, 0
+_080C8228: .4byte gUnknown_0203880A
+_080C822C:
+ ldr r0, _080C8238 @ =gUnknown_081C3448
+ bl ScriptContext1_SetupScript
+ movs r0, 0x1
+_080C8234:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C8238: .4byte gUnknown_081C3448
+ thumb_func_end safari_step
+
+ thumb_func_start sub_80C823C
+sub_80C823C: @ 80C823C
+ push {lr}
+ ldr r0, _080C8248 @ =gUnknown_081C342D
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8248: .4byte gUnknown_081C342D
+ thumb_func_end sub_80C823C
+
+ thumb_func_start sub_80C824C
+sub_80C824C: @ 80C824C
+ push {lr}
+ ldr r0, _080C8260 @ =gUnknown_02038808
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C8268
+ ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8260: .4byte gUnknown_02038808
+_080C8264: .4byte c2_exit_to_overworld_2_switch
+_080C8268:
+ ldr r0, _080C8288 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080C829C
+ ldr r0, _080C828C @ =gUnknown_081C340A
+ bl ScriptContext2_RunNewScript
+ bl warp_in
+ ldr r1, _080C8290 @ =gUnknown_0300485C
+ ldr r0, _080C8294 @ =sub_8080E44
+ str r0, [r1]
+ ldr r0, _080C8298 @ =CB2_LoadMap
+ bl SetMainCallback2
+ b _080C82B0
+ .align 2, 0
+_080C8288: .4byte gUnknown_02024D26
+_080C828C: .4byte gUnknown_081C340A
+_080C8290: .4byte gUnknown_0300485C
+_080C8294: .4byte sub_8080E44
+_080C8298: .4byte CB2_LoadMap
+_080C829C:
+ cmp r0, 0x7
+ bne _080C82B0
+ ldr r0, _080C82B4 @ =gUnknown_081C3459
+ bl ScriptContext1_SetupScript
+ bl ScriptContext1_Stop
+ ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_080C82B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82B4: .4byte gUnknown_081C3459
+_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C824C
+
+ thumb_func_start sub_80C82BC
+sub_80C82BC: @ 80C82BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r1, _080C82D4 @ =gUnknown_0203880C
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82D4: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82BC
+
+ thumb_func_start sub_80C82D8
+sub_80C82D8: @ 80C82D8
+ push {lr}
+ ldr r0, _080C82E8 @ =gUnknown_0203880C
+ movs r1, 0
+ movs r2, 0xA0
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C82E8: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C82D8
+
+ thumb_func_start sub_80C82EC
+sub_80C82EC: @ 80C82EC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ movs r3, 0
+ adds r5, r4, 0
+ ldr r4, _080C8344 @ =gSaveBlock1
+_080C8302:
+ ldr r1, _080C8348 @ =gUnknown_0203880C
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ movs r1, 0x5
+ ldrsb r1, [r4, r1]
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _080C8358
+ mov r0, sp
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ bne _080C8358
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r6, 0
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bne _080C8358
+ ldr r0, _080C834C @ =gScriptResult
+ strh r3, [r0]
+ ldr r1, _080C8350 @ =gUnknown_083F7EB8
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080C8354 @ =gStringVar1
+ bl StringCopy
+ b _080C836A
+ .align 2, 0
+_080C8344: .4byte gSaveBlock1
+_080C8348: .4byte gUnknown_0203880C
+_080C834C: .4byte gScriptResult
+_080C8350: .4byte gUnknown_083F7EB8
+_080C8354: .4byte gStringVar1
+_080C8358:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bls _080C8302
+ ldr r1, _080C8374 @ =gScriptResult
+ ldr r2, _080C8378 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C836A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8374: .4byte gScriptResult
+_080C8378: .4byte 0x0000ffff
+ thumb_func_end sub_80C82EC
+
+ thumb_func_start sub_80C837C
+sub_80C837C: @ 80C837C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ movs r5, 0
+ adds r6, r4, 0
+ ldr r0, _080C83E8 @ =gSaveBlock1
+ movs r7, 0x5
+ ldrsb r7, [r0, r7]
+ mov r4, sp
+ ldr r0, _080C83EC @ =gUnknown_0203880C
+ mov r12, r0
+_080C839C:
+ lsls r0, r5, 4
+ mov r1, r12
+ adds r2, r0, r1
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r7, r0
+ bne _080C83F4
+ ldrh r0, [r4]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4]
+ adds r3, r6, 0
+ ldrh r0, [r3]
+ ldrh r1, [r2, 0x2]
+ subs r0, r1
+ strh r0, [r3]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _080C83C8
+ negs r0, r0
+ strh r0, [r4]
+_080C83C8:
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _080C83D4
+ negs r0, r0
+ strh r0, [r3]
+_080C83D4:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ cmp r0, 0x5
+ bgt _080C83F4
+ ldr r0, _080C83F0 @ =gScriptResult
+ strh r5, [r0]
+ b _080C8406
+ .align 2, 0
+_080C83E8: .4byte gSaveBlock1
+_080C83EC: .4byte gUnknown_0203880C
+_080C83F0: .4byte gScriptResult
+_080C83F4:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9
+ bls _080C839C
+ ldr r1, _080C8410 @ =gScriptResult
+ ldr r2, _080C8414 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+_080C8406:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8410: .4byte gScriptResult
+_080C8414: .4byte 0x0000ffff
+ thumb_func_end sub_80C837C
+
+ thumb_func_start unref_sub_80C8418
+unref_sub_80C8418: @ 80C8418
+ push {lr}
+ bl sub_80C82EC
+ ldr r2, _080C8434 @ =gScriptResult
+ ldrh r1, [r2]
+ ldr r0, _080C8438 @ =0x0000ffff
+ cmp r1, r0
+ beq _080C8440
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C843C @ =gUnknown_02038814
+ adds r0, r1
+ b _080C8442
+ .align 2, 0
+_080C8434: .4byte gScriptResult
+_080C8438: .4byte 0x0000ffff
+_080C843C: .4byte gUnknown_02038814
+_080C8440:
+ movs r0, 0
+_080C8442:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C8418
+
+ thumb_func_start sub_80C8448
+sub_80C8448: @ 80C8448
+ push {lr}
+ bl sub_80C837C
+ ldr r2, _080C8464 @ =gScriptResult
+ ldrh r1, [r2]
+ ldr r0, _080C8468 @ =0x0000ffff
+ cmp r1, r0
+ beq _080C8470
+ adds r0, r1, 0
+ lsls r0, 4
+ ldr r1, _080C846C @ =gUnknown_02038814
+ adds r0, r1
+ b _080C8472
+ .align 2, 0
+_080C8464: .4byte gScriptResult
+_080C8468: .4byte 0x0000ffff
+_080C846C: .4byte gUnknown_02038814
+_080C8470:
+ movs r0, 0
+_080C8472:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C8448
+
+ thumb_func_start sub_80C8478
+sub_80C8478: @ 80C8478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r2, 0
+ ldr r3, _080C84E8 @ =gUnknown_0203880C
+ mov r6, sp
+ adds r6, 0x2
+ ldr r7, _080C84EC @ =gSaveBlock1
+ movs r1, 0x8
+ adds r1, r3
+ mov r9, r1
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r1, r7, r4
+ lsrs r0, 21
+ adds r0, r1
+ mov r8, r0
+_080C84A0:
+ lsls r5, r2, 4
+ adds r4, r5, r3
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C84F0
+ mov r0, sp
+ adds r1, r6, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldrb r0, [r7, 0x5]
+ strb r0, [r4, 0x4]
+ mov r3, r9
+ adds r2, r5, r3
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x64
+ strb r0, [r4, 0x5]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r6]
+ strh r0, [r4, 0x2]
+ b _080C84FA
+ .align 2, 0
+_080C84E8: .4byte gUnknown_0203880C
+_080C84EC: .4byte gSaveBlock1
+_080C84F0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9
+ bls _080C84A0
+_080C84FA:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8478
+
+ thumb_func_start sub_80C8508
+sub_80C8508: @ 80C8508
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C8538 @ =gUnknown_0203880C
+_080C850E:
+ lsls r0, r4, 4
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _080C8528
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8528
+ adds r0, r4, 0
+ bl sub_80C82BC
+_080C8528:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _080C850E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8538: .4byte gUnknown_0203880C
+ thumb_func_end sub_80C8508
+
+ thumb_func_start unref_sub_80C853C
+unref_sub_80C853C: @ 80C853C
+ push {lr}
+ bl sub_80C82EC
+ ldr r3, _080C8564 @ =gScriptResult
+ ldrh r1, [r3]
+ ldr r0, _080C8568 @ =0x0000ffff
+ cmp r1, r0
+ beq _080C8574
+ ldr r0, _080C856C @ =gStringVar2
+ ldr r2, _080C8570 @ =gUnknown_0203880C
+ lsls r1, 4
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x1
+ b _080C8576
+ .align 2, 0
+_080C8564: .4byte gScriptResult
+_080C8568: .4byte 0x0000ffff
+_080C856C: .4byte gStringVar2
+_080C8570: .4byte gUnknown_0203880C
+_080C8574:
+ movs r0, 0
+_080C8576:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80C853C
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/scipt_pokemon_util_80C4BF0.s b/asm/scipt_pokemon_util_80C4BF0.s
new file mode 100644
index 000000000..8d6ea4d45
--- /dev/null
+++ b/asm/scipt_pokemon_util_80C4BF0.s
@@ -0,0 +1,1399 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C4BF0
+sub_80C4BF0: @ 80C4BF0
+ push {r4,lr}
+ ldr r2, _080C4C1C @ =gSaveBlock1
+ ldr r1, _080C4C20 @ =gUnknown_02038570
+ ldrb r3, [r1, 0x15]
+ movs r4, 0x9B
+ lsls r4, 5
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r3, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r3, [r0]
+ adds r1, 0x95
+ ldrb r0, [r1]
+ ldr r1, _080C4C24 @ =0x00001364
+ adds r2, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C1C: .4byte gSaveBlock1
+_080C4C20: .4byte gUnknown_02038570
+_080C4C24: .4byte 0x00001364
+ thumb_func_end sub_80C4BF0
+
+ thumb_func_start sub_80C4C28
+sub_80C4C28: @ 80C4C28
+ push {lr}
+ ldr r0, _080C4C40 @ =gUnknown_0202E8CE
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _080C4C4E
+ cmp r0, 0x1
+ bgt _080C4C44
+ cmp r0, 0
+ beq _080C4C4A
+ b _080C4C56
+ .align 2, 0
+_080C4C40: .4byte gUnknown_0202E8CE
+_080C4C44:
+ cmp r1, 0x2
+ beq _080C4C52
+ b _080C4C56
+_080C4C4A:
+ movs r1, 0x3
+ b _080C4C58
+_080C4C4E:
+ movs r1, 0x4
+ b _080C4C58
+_080C4C52:
+ movs r1, 0x5
+ b _080C4C58
+_080C4C56:
+ movs r1, 0x64
+_080C4C58:
+ ldr r0, _080C4C60 @ =gUnknown_0202E8CC
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4C60: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C28
+
+ thumb_func_start sub_80C4C64
+sub_80C4C64: @ 80C4C64
+ push {lr}
+ bl sub_80C46EC
+ bl sub_80C4740
+ bl sub_80C48F4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4C64
+
+ thumb_func_start sub_80C4C78
+sub_80C4C78: @ 80C4C78
+ push {lr}
+ ldr r0, _080C4C8C @ =gUnknown_0203869C
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C4CB8
+ lsls r0, 2
+ ldr r1, _080C4C90 @ =_080C4C94
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4C8C: .4byte gUnknown_0203869C
+_080C4C90: .4byte _080C4C94
+ .align 2, 0
+_080C4C94:
+ .4byte _080C4CA8
+ .4byte _080C4CAC
+ .4byte _080C4CB0
+ .4byte _080C4CB4
+ .4byte _080C4CB8
+_080C4CA8:
+ movs r0, 0x8
+ b _080C4CBA
+_080C4CAC:
+ movs r0, 0x9
+ b _080C4CBA
+_080C4CB0:
+ movs r0, 0xA
+ b _080C4CBA
+_080C4CB4:
+ movs r0, 0xB
+ b _080C4CBA
+_080C4CB8:
+ movs r0, 0xC
+_080C4CBA:
+ ldr r1, _080C4CD0 @ =gSaveBlock1
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080C4CD4 @ =0x00002e04
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _080C4CDC
+ ldr r0, _080C4CD8 @ =gUnknown_0202E8CC
+ strh r1, [r0]
+ b _080C4CE2
+ .align 2, 0
+_080C4CD0: .4byte gSaveBlock1
+_080C4CD4: .4byte 0x00002e04
+_080C4CD8: .4byte gUnknown_0202E8CC
+_080C4CDC:
+ ldr r1, _080C4CE8 @ =gUnknown_0202E8CC
+ movs r0, 0x1
+ strh r0, [r1]
+_080C4CE2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4CE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4C78
+
+ thumb_func_start sub_80C4CEC
+sub_80C4CEC: @ 80C4CEC
+ push {lr}
+ movs r0, 0xFF
+ bl sub_80B2A7C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4CEC
+
+ thumb_func_start sub_80C4CF8
+sub_80C4CF8: @ 80C4CF8
+ push {lr}
+ ldr r0, _080C4D28 @ =gUnknown_02038690
+ ldr r1, _080C4D2C @ =gUnknown_02038695
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4D40
+ ldr r0, _080C4D30 @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C4D40
+ ldr r1, _080C4D34 @ =gUnknown_02038678
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C4D38 @ =0x0000031f
+ cmp r1, r0
+ ble _080C4D40
+ ldr r1, _080C4D3C @ =gUnknown_0202E8CC
+ movs r0, 0x1
+ b _080C4D44
+ .align 2, 0
+_080C4D28: .4byte gUnknown_02038690
+_080C4D2C: .4byte gUnknown_02038695
+_080C4D30: .4byte gUnknown_0203869E
+_080C4D34: .4byte gUnknown_02038678
+_080C4D38: .4byte 0x0000031f
+_080C4D3C: .4byte gUnknown_0202E8CC
+_080C4D40:
+ ldr r1, _080C4D4C @ =gUnknown_0202E8CC
+ movs r0, 0
+_080C4D44:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4D4C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80C4CF8
+
+ thumb_func_start sub_80C4D50
+sub_80C4D50: @ 80C4D50
+ push {lr}
+ movs r3, 0
+ ldr r0, _080C4D78 @ =gSaveBlock1
+ ldr r1, _080C4D7C @ =0x00002f04
+ adds r2, r0, r1
+ movs r1, 0x4
+_080C4D5C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _080C4D68
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C4D68:
+ adds r2, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080C4D5C
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C4D78: .4byte gSaveBlock1
+_080C4D7C: .4byte 0x00002f04
+ thumb_func_end sub_80C4D50
+
+ thumb_func_start sub_80C4D80
+sub_80C4D80: @ 80C4D80
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080C4EA0 @ =gUnknown_02038670
+ mov r12, r0
+ ldr r1, _080C4EA4 @ =gUnknown_0202E8D0
+ mov r8, r1
+ ldr r2, _080C4EA8 @ =gStringVar1
+ mov r9, r2
+ mov r2, r12
+ mov r1, sp
+ movs r6, 0x3
+_080C4D9E:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080C4D9E
+ movs r6, 0
+_080C4DAE:
+ movs r1, 0x3
+ cmp r1, r6
+ ble _080C4DD8
+_080C4DB4:
+ subs r4, r1, 0x1
+ lsls r0, r4, 1
+ mov r5, sp
+ adds r3, r5, r0
+ lsls r0, r1, 1
+ adds r2, r5, r0
+ ldrh r5, [r3]
+ movs r7, 0
+ ldrsh r1, [r3, r7]
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bge _080C4DD2
+ strh r5, [r2]
+ strh r0, [r3]
+_080C4DD2:
+ adds r1, r4, 0
+ cmp r1, r6
+ bgt _080C4DB4
+_080C4DD8:
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _080C4DAE
+ mov r2, r8
+ ldrh r0, [r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ movs r2, 0
+ movs r7, 0
+ movs r6, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r3, r0, 0
+ mov r1, sp
+_080C4DF6:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _080C4E12
+ lsls r0, r2, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r2, r0, 24
+ mov r5, r8
+ ldrh r5, [r5]
+ cmp r6, r5
+ bne _080C4E12
+ adds r7, r2, 0
+_080C4E12:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080C4DF6
+ movs r6, 0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ asrs r1, r3, 16
+ lsls r2, 24
+ mov r10, r2
+ cmp r0, r1
+ beq _080C4E40
+ adds r2, r1, 0
+ mov r1, sp
+_080C4E30:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E40
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r2
+ bne _080C4E30
+_080C4E40:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r2, r7, 0
+ movs r6, 0
+ asrs r5, r3, 16
+ mov r8, r5
+ mov r1, r12
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r8, r0
+ bne _080C4E60
+ cmp r7, 0x1
+ beq _080C4E78
+_080C4E5A:
+ subs r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4E60:
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _080C4E78
+ lsls r0, r6, 1
+ add r0, r12
+ asrs r1, r3, 16
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r1, r0
+ bne _080C4E60
+ cmp r2, 0x1
+ bne _080C4E5A
+_080C4E78:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl sub_80C4698
+ ldr r0, _080C4EAC @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4EB8
+ ldr r0, _080C4EB0 @ =gStringVar2
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _080C4EB4 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4EC4
+ .align 2, 0
+_080C4EA0: .4byte gUnknown_02038670
+_080C4EA4: .4byte gUnknown_0202E8D0
+_080C4EA8: .4byte gStringVar1
+_080C4EAC: .4byte gUnknown_0203869A
+_080C4EB0: .4byte gStringVar2
+_080C4EB4: .4byte gLinkPlayers + 0x8
+_080C4EB8:
+ ldr r0, _080C4ED8 @ =gStringVar2
+ lsls r1, r6, 6
+ ldr r2, _080C4EDC @ =gUnknown_0203857D
+ adds r1, r2
+ bl sub_80C4674
+_080C4EC4:
+ mov r1, r10
+ asrs r0, r1, 24
+ cmp r0, 0x1
+ beq _080C4ED0
+ cmp r7, r0
+ bne _080C4EE4
+_080C4ED0:
+ ldr r0, _080C4EE0 @ =gUnknown_0202E8D0
+ strh r4, [r0]
+ b _080C4EEA
+ .align 2, 0
+_080C4ED8: .4byte gStringVar2
+_080C4EDC: .4byte gUnknown_0203857D
+_080C4EE0: .4byte gUnknown_0202E8D0
+_080C4EE4:
+ ldr r1, _080C4EFC @ =gUnknown_0202E8D0
+ adds r0, r4, 0x4
+ strh r0, [r1]
+_080C4EEA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4EFC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_80C4D80
+
+ thumb_func_start sub_80C4F00
+sub_80C4F00: @ 80C4F00
+ push {lr}
+ ldr r0, _080C4F0C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F0C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C4F00
+
+ thumb_func_start sub_80C4F10
+sub_80C4F10: @ 80C4F10
+ push {r4-r6,lr}
+ ldr r6, _080C4F54 @ =gUnknown_0203856C
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _080C4F40
+ bl sub_80AAF30
+ ldr r4, _080C4F58 @ =0x02000000
+ ldr r0, _080C4F5C @ =0x00015ddf
+ adds r1, r4, r0
+ movs r5, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C4F60 @ =0x00015dde
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x3
+ bl sub_80B2A7C
+ strb r5, [r6]
+_080C4F40:
+ ldr r0, _080C4F64 @ =sub_8106668
+ bl SetMainCallback2
+ ldr r1, _080C4F68 @ =gMain
+ ldr r0, _080C4F6C @ =sub_80C4F00
+ str r0, [r1, 0x8]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4F54: .4byte gUnknown_0203856C
+_080C4F58: .4byte 0x02000000
+_080C4F5C: .4byte 0x00015ddf
+_080C4F60: .4byte 0x00015dde
+_080C4F64: .4byte sub_8106668
+_080C4F68: .4byte gMain
+_080C4F6C: .4byte sub_80C4F00
+ thumb_func_end sub_80C4F10
+
+ thumb_func_start sub_80C4F70
+sub_80C4F70: @ 80C4F70
+ push {r4,lr}
+ ldr r0, _080C4FA8 @ =0x00004010
+ ldr r4, _080C4FAC @ =gUnknown_02038570
+ ldrb r1, [r4, 0x15]
+ bl VarSet
+ ldr r0, _080C4FB0 @ =0x00004011
+ adds r1, r4, 0
+ adds r1, 0x55
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB4 @ =0x00004012
+ adds r1, r4, 0
+ adds r1, 0x95
+ ldrb r1, [r1]
+ bl VarSet
+ ldr r0, _080C4FB8 @ =0x00004013
+ adds r1, r4, 0
+ adds r1, 0xD5
+ ldrb r1, [r1]
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4FA8: .4byte 0x00004010
+_080C4FAC: .4byte gUnknown_02038570
+_080C4FB0: .4byte 0x00004011
+_080C4FB4: .4byte 0x00004012
+_080C4FB8: .4byte 0x00004013
+ thumb_func_end sub_80C4F70
+
+ thumb_func_start sub_80C4FBC
+sub_80C4FBC: @ 80C4FBC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080C501C @ =gUnknown_02038694
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C5020 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x46
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C5024 @ =gUnknown_02038690
+ ldr r1, _080C5028 @ =gUnknown_02038695
+ ldrb r2, [r1]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C5038
+ ldr r0, _080C502C @ =gUnknown_0203869E
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _080C5038
+ ldr r1, _080C5030 @ =gUnknown_02038678
+ lsls r0, r2, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _080C5034 @ =0x0000031f
+ cmp r1, r0
+ ble _080C5038
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x46
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x1
+ b _080C503A
+ .align 2, 0
+_080C501C: .4byte gUnknown_02038694
+_080C5020: .4byte gPlayerParty
+_080C5024: .4byte gUnknown_02038690
+_080C5028: .4byte gUnknown_02038695
+_080C502C: .4byte gUnknown_0203869E
+_080C5030: .4byte gUnknown_02038678
+_080C5034: .4byte 0x0000031f
+_080C5038:
+ movs r0, 0
+_080C503A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4FBC
+
+ thumb_func_start sub_80C5044
+sub_80C5044: @ 80C5044
+ ldr r0, _080C504C @ =gUnknown_0203856C
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080C504C: .4byte gUnknown_0203856C
+ thumb_func_end sub_80C5044
+
+ thumb_func_start sub_80C5050
+sub_80C5050: @ 80C5050
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r4, _080C513C @ =sub_80C5190
+ adds r0, r4, 0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080C512A
+ movs r0, 0xA
+ mov r10, r0
+ movs r7, 0x3
+ movs r1, 0x3
+ movs r2, 0x13
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r2, _080C5140 @ =gUnknown_02038570
+ ldr r0, _080C5144 @ =gUnknown_0202E8D0
+ ldrh r1, [r0]
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r0, [r0]
+ mov r8, r0
+ adds r2, 0x3C
+ adds r1, r2
+ ldr r1, [r1]
+ mov r9, r1
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C5148 @ =gTasks
+ lsls r5, r0, 2
+ adds r5, r0
+ lsls r5, 3
+ adds r5, r1
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r6, [r5, 0xA]
+ lsls r0, r6, 3
+ ldr r1, _080C514C @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _080C5150 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _080C5154 @ =gUnknown_081FAF4C
+ ldr r3, [r4]
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ mov r4, r8
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ adds r0, r6, 0
+ mov r1, r9
+ mov r2, r8
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C5158 @ =gUnknown_02024E8C
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xC]
+ mov r1, r10
+ strh r1, [r5, 0xE]
+ strh r7, [r5, 0x10]
+ ldr r3, _080C515C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _080C5160 @ =SpriteCallbackDummy
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_080C512A:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C513C: .4byte sub_80C5190
+_080C5140: .4byte gUnknown_02038570
+_080C5144: .4byte gUnknown_0202E8D0
+_080C5148: .4byte gTasks
+_080C514C: .4byte gMonFrontPicTable
+_080C5150: .4byte gMonFrontPicCoords
+_080C5154: .4byte gUnknown_081FAF4C
+_080C5158: .4byte gUnknown_02024E8C
+_080C515C: .4byte gSprites
+_080C5160: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80C5050
+
+ thumb_func_start sub_80C5164
+sub_80C5164: @ 80C5164
+ push {lr}
+ ldr r0, _080C5188 @ =sub_80C5190
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ beq _080C5184
+ ldr r0, _080C518C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C5184:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5188: .4byte sub_80C5190
+_080C518C: .4byte gTasks
+ thumb_func_end sub_80C5164
+
+ thumb_func_start sub_80C5190
+sub_80C5190: @ 80C5190
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C51B4 @ =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C5222
+ cmp r0, 0x1
+ bgt _080C51B8
+ cmp r0, 0
+ beq _080C51F8
+ b _080C5222
+ .align 2, 0
+_080C51B4: .4byte gTasks
+_080C51B8:
+ cmp r0, 0x2
+ beq _080C51C2
+ cmp r0, 0x3
+ beq _080C5204
+ b _080C5222
+_080C51C2:
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C5200 @ =gSprites
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrb r0, [r5, 0x1]
+ lsls r0, 30
+ cmp r0, 0
+ beq _080C51F2
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+_080C51F2:
+ adds r0, r5, 0
+ bl DestroySprite
+_080C51F8:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C5222
+ .align 2, 0
+_080C5200: .4byte gSprites
+_080C5204:
+ ldrb r2, [r4, 0xE]
+ adds r0, r2, 0
+ ldrb r3, [r4, 0x10]
+ adds r1, r3, 0
+ adds r2, 0x9
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl DestroyTask
+_080C5222:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C5190
+
+ thumb_func_start sub_80C5228
+sub_80C5228: @ 80C5228
+ push {r4,lr}
+ ldr r0, _080C5244 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C524C
+ ldr r4, _080C5248 @ =gScriptResult
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _080C5252
+ .align 2, 0
+_080C5244: .4byte gUnknown_0203869A
+_080C5248: .4byte gScriptResult
+_080C524C:
+ ldr r1, _080C5258 @ =gScriptResult
+ movs r0, 0x4
+ strh r0, [r1]
+_080C5252:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5258: .4byte gScriptResult
+ thumb_func_end sub_80C5228
+
+ thumb_func_start sub_80C525C
+sub_80C525C: @ 80C525C
+ push {r4,lr}
+ ldr r0, _080C5280 @ =gUnknown_0203869A
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C5294
+ ldr r2, _080C5284 @ =gUnknown_03005D28
+ ldr r1, [r2]
+ ldr r0, _080C5288 @ =0x41c64e6d
+ muls r0, r1
+ ldr r1, _080C528C @ =0x00006073
+ adds r0, r1
+ str r0, [r2]
+ lsrs r0, 16
+ ldr r4, _080C5290 @ =gScriptResult
+ b _080C529E
+ .align 2, 0
+_080C5280: .4byte gUnknown_0203869A
+_080C5284: .4byte gUnknown_03005D28
+_080C5288: .4byte 0x41c64e6d
+_080C528C: .4byte 0x00006073
+_080C5290: .4byte gScriptResult
+_080C5294:
+ ldr r4, _080C52AC @ =gScriptResult
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+_080C529E:
+ ldrh r1, [r4]
+ bl __umodsi3
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C52AC: .4byte gScriptResult
+ thumb_func_end sub_80C525C
+
+ thumb_func_start sp000_heal_pokemon
+sp000_heal_pokemon: @ 80C52B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080C536C @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcs _080C535C
+ ldr r1, _080C5370 @ =gPlayerParty
+ mov r10, r1
+ mov r6, sp
+_080C52CE:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r1, r0, 16
+ strb r0, [r6]
+ lsrs r1, 24
+ strb r1, [r6, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_080C5304:
+ adds r1, r5, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CalculatePPWithBonus
+ strb r0, [r6]
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080C5304
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ strb r0, [r6, 0x2]
+ strb r0, [r6, 0x3]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ add r0, r10
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _080C536C @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080C52CE
+_080C535C:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C536C: .4byte gPlayerPartyCount
+_080C5370: .4byte gPlayerParty
+ thumb_func_end sp000_heal_pokemon
+
+ thumb_func_start sub_80C5374
+sub_80C5374: @ 80C5374
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x78
+ adds r5, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 16
+ lsrs r0, r4, 16
+ mov r8, r0
+ add r6, sp, 0x14
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r3, 0
+ movs r3, 0x20
+ bl CreateMon
+ add r0, sp, 0x10
+ mov r1, r8
+ strb r1, [r0]
+ lsrs r4, 24
+ strb r4, [r0, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r6, 0
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0x1
+ bgt _080C53E8
+ cmp r4, 0
+ blt _080C53E8
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_080C53E8:
+ adds r0, r4, 0
+ add sp, 0x78
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5374
+
+ thumb_func_start sub_80C53F8
+sub_80C53F8: @ 80C53F8
+ push {lr}
+ sub sp, 0x68
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_8042044
+ add r2, sp, 0x64
+ movs r0, 0x1
+ strb r0, [r2]
+ mov r0, sp
+ movs r1, 0x2D
+ bl SetMonData
+ mov r0, sp
+ bl GiveMonToPlayer
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x68
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C53F8
+
+ thumb_func_start sub_80C5428
+sub_80C5428: @ 80C5428
+ push {lr}
+ bl sub_803DAA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ beq _080C5444
+ cmp r1, 0x1
+ bgt _080C5440
+ cmp r1, 0
+ beq _080C5444
+ b _080C5448
+_080C5440:
+ cmp r1, 0x2
+ bne _080C5448
+_080C5444:
+ ldr r0, _080C544C @ =gScriptResult
+ strh r1, [r0]
+_080C5448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C544C: .4byte gScriptResult
+ thumb_func_end sub_80C5428
+
+ thumb_func_start sub_80C5450
+sub_80C5450: @ 80C5450
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r5, 0
+ movs r7, 0xCE
+ lsls r7, 1
+_080C545C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080C548C @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080C5490
+ cmp r0, r7
+ beq _080C5490
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, r6
+ bne _080C5490
+ movs r0, 0x1
+ b _080C5498
+ .align 2, 0
+_080C548C: .4byte gPlayerParty
+_080C5490:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080C545C
+ movs r0, 0
+_080C5498:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C5450
+
+ thumb_func_start sub_80C54A0
+sub_80C54A0: @ 80C54A0
+ push {r4,lr}
+ movs r0, 0xAF
+ bl sub_80C5450
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bne _080C54C2
+ movs r0, 0xAF
+ bl ItemIdToBerryType
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C54CC @ =gStringVar1
+ bl GetBerryNameByBerryType
+_080C54C2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C54CC: .4byte gStringVar1
+ thumb_func_end sub_80C54A0
+
+ thumb_func_start sub_80C54D0
+sub_80C54D0: @ 80C54D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r7, r2, 16
+ lsrs r6, r7, 16
+ bl ZeroEnemyPartyMons
+ ldr r0, _080C552C @ =gEnemyParty
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x20
+ bl CreateMon
+ cmp r6, 0
+ beq _080C551E
+ add r0, sp, 0x10
+ strb r6, [r0]
+ adds r1, r0, 0
+ lsrs r0, r7, 24
+ strb r0, [r1, 0x1]
+ mov r0, r8
+ movs r1, 0xC
+ add r2, sp, 0x10
+ bl SetMonData
+_080C551E:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C552C: .4byte gEnemyParty
+ thumb_func_end sub_80C54D0
+
+ thumb_func_start sub_80C5530
+sub_80C5530: @ 80C5530
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, 0x6
+ bls _080C554C
+ ldr r0, _080C5560 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080C554C:
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _080C5564 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl SetMonMoveSlot
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5560: .4byte gPlayerPartyCount
+_080C5564: .4byte gPlayerParty
+ thumb_func_end sub_80C5530
+
+ thumb_func_start sub_80C5568
+sub_80C5568: @ 80C5568
+ push {lr}
+ ldr r1, _080C5578 @ =gMain
+ ldr r0, _080C557C @ =sub_80C5580
+ str r0, [r1, 0x8]
+ bl sub_8121E10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5578: .4byte gMain
+_080C557C: .4byte sub_80C5580
+ thumb_func_end sub_80C5568
+
+ thumb_func_start sub_80C5580
+sub_80C5580: @ 80C5580
+ push {lr}
+ ldr r0, _080C5590 @ =gUnknown_02039270
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C5598
+ ldr r0, _080C5594 @ =gScriptResult
+ strh r1, [r0]
+ b _080C559E
+ .align 2, 0
+_080C5590: .4byte gUnknown_02039270
+_080C5594: .4byte gScriptResult
+_080C5598:
+ ldr r1, _080C55A8 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_080C559E:
+ ldr r0, _080C55AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55A8: .4byte gScriptResult
+_080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C5580
+
+ thumb_func_start sub_80C55B0
+sub_80C55B0: @ 80C55B0
+ push {lr}
+ ldr r1, _080C55C0 @ =gMain
+ ldr r0, _080C55C4 @ =sub_80C55C8
+ str r0, [r1, 0x8]
+ bl sub_8121E34
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55C0: .4byte gMain
+_080C55C4: .4byte sub_80C55C8
+ thumb_func_end sub_80C55B0
+
+ thumb_func_start sub_80C55C8
+sub_80C55C8: @ 80C55C8
+ push {r4,lr}
+ ldr r0, _080C55DC @ =gUnknown_02039270
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _080C55E4
+ bl copy_player_party_from_sav1
+ ldr r0, _080C55E0 @ =gScriptResult
+ strh r4, [r0]
+ b _080C55EE
+ .align 2, 0
+_080C55DC: .4byte gUnknown_02039270
+_080C55E0: .4byte gScriptResult
+_080C55E4:
+ bl sub_80C5604
+ ldr r1, _080C55FC @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_080C55EE:
+ ldr r0, _080C5600 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C55FC: .4byte gScriptResult
+_080C5600: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C55C8
+
+ thumb_func_start sub_80C5604
+sub_80C5604: @ 80C5604
+ push {r4-r7,lr}
+ sub sp, 0x134
+ add r0, sp, 0x12C
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _080C5674 @ =0x0500004b
+ mov r1, sp
+ bl CpuSet
+ movs r5, 0
+ movs r7, 0x64
+ ldr r6, _080C5678 @ =gPlayerParty
+ mov r4, sp
+_080C561E:
+ ldr r0, _080C567C @ =gUnknown_02039270
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C5638
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r7
+ adds r1, r6
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+_080C5638:
+ adds r4, 0x64
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C561E
+ add r0, sp, 0x130
+ movs r1, 0
+ str r1, [r0]
+ ldr r4, _080C5678 @ =gPlayerParty
+ ldr r2, _080C5680 @ =0x05000096
+ adds r1, r4, 0
+ bl CpuSet
+ mov r5, sp
+ add r6, sp, 0xC8
+_080C5654:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x64
+ cmp r5, r6
+ ble _080C5654
+ bl CalculatePlayerPartyCount
+ add sp, 0x134
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C5674: .4byte 0x0500004b
+_080C5678: .4byte gPlayerParty
+_080C567C: .4byte gUnknown_02039270
+_080C5680: .4byte 0x05000096
+ thumb_func_end sub_80C5604
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s
new file mode 100644
index 000000000..24d690d1a
--- /dev/null
+++ b/asm/script_pokemon_util_80F99CC.s
@@ -0,0 +1,978 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80F99CC
+sub_80F99CC: @ 80F99CC
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A04 @ =sub_80F9A8C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A08 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ subs r0, 0x3
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A04: .4byte sub_80F9A8C
+_080F9A08: .4byte gTasks
+ thumb_func_end sub_80F99CC
+
+ thumb_func_start sub_80F9A0C
+sub_80F9A0C: @ 80F9A0C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A44 @ =sub_80F9A8C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A48 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ subs r0, 0x4
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A44: .4byte sub_80F9A8C
+_080F9A48: .4byte gTasks
+ thumb_func_end sub_80F9A0C
+
+ thumb_func_start sub_80F9A4C
+sub_80F9A4C: @ 80F9A4C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080F9A84 @ =sub_80F9A8C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080F9A88 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x7
+ strh r0, [r1, 0x8]
+ subs r0, 0x8
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9A84: .4byte sub_80F9A8C
+_080F9A88: .4byte gTasks
+ thumb_func_end sub_80F9A4C
+
+ thumb_func_start sub_80F9A8C
+sub_80F9A8C: @ 80F9A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080F9AC4 @ =gPaletteFade
+ ldrb r1, [r2, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9ABE
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _080F9AC8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r1, 0
+ bl OpenPartyMenu
+ adds r0, r4, 0
+ bl DestroyTask
+_080F9ABE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9AC4: .4byte gPaletteFade
+_080F9AC8: .4byte gTasks
+ thumb_func_end sub_80F9A8C
+
+ thumb_func_start sub_80F9ACC
+sub_80F9ACC: @ 80F9ACC
+ push {r4,r5,lr}
+ ldr r1, _080F9AEC @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9AE2
+ b _080F9BF6
+_080F9AE2:
+ lsls r0, 2
+ ldr r1, _080F9AF0 @ =_080F9AF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9AEC: .4byte 0x0201b000
+_080F9AF0: .4byte _080F9AF4
+ .align 2, 0
+_080F9AF4:
+ .4byte _080F9B14
+ .4byte _080F9B54
+ .4byte _080F9B5A
+ .4byte _080F9B6E
+ .4byte _080F9B98
+ .4byte _080F9B9E
+ .4byte _080F9BB0
+ .4byte _080F9BC8
+_080F9B14:
+ ldr r0, _080F9B3C @ =0x00000266
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9B40 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9B48
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9B44 @ =gPlayerParty
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9BF0
+ .align 2, 0
+_080F9B3C: .4byte 0x00000266
+_080F9B40: .4byte gPlayerPartyCount
+_080F9B44: .4byte gPlayerParty
+_080F9B48:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+_080F9B54:
+ bl sub_806DA98
+ b _080F9BB4
+_080F9B5A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9BBC
+_080F9B6E:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9B94 @ =0x00000266
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9B94: .4byte 0x00000266
+_080F9B98:
+ bl sub_806E334
+ b _080F9BB4
+_080F9B9E:
+ bl sub_806E0C4
+ ldr r1, _080F9BAC @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9BBC
+ .align 2, 0
+_080F9BAC: .4byte 0x0201b000
+_080F9BB0:
+ bl sub_80F9C00
+_080F9BB4:
+ ldr r1, _080F9BC4 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9BBC:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9BF6
+ .align 2, 0
+_080F9BC4: .4byte 0x0201b000
+_080F9BC8:
+ ldr r0, _080F9BEC @ =0x00000266
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9BF0
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9BF8
+ .align 2, 0
+_080F9BEC: .4byte 0x00000266
+_080F9BF0:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9BF6:
+ movs r0, 0
+_080F9BF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9ACC
+
+ thumb_func_start sub_80F9C00
+sub_80F9C00: @ 80F9C00
+ push {r4,lr}
+ movs r4, 0
+ b _080F9C58
+_080F9C06:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9C24 @ =gPlayerParty
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _080F9C52
+ lsls r0, 2
+ ldr r1, _080F9C28 @ =_080F9C2C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9C24: .4byte gPlayerParty
+_080F9C28: .4byte _080F9C2C
+ .align 2, 0
+_080F9C2C:
+ .4byte _080F9C40
+ .4byte _080F9C4A
+ .4byte _080F9C4A
+ .4byte _080F9C40
+ .4byte _080F9C40
+_080F9C40:
+ adds r0, r4, 0
+ movs r1, 0x7E
+ bl sub_806BC3C
+ b _080F9C52
+_080F9C4A:
+ adds r0, r4, 0
+ movs r1, 0x70
+ bl sub_806BC3C
+_080F9C52:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9C58:
+ ldr r0, _080F9C68 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9C06
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9C68: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9C00
+
+ thumb_func_start sub_80F9C6C
+sub_80F9C6C: @ 80F9C6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080F9C94 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9CD8
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9C98
+ cmp r0, 0x2
+ beq _080F9CC0
+ b _080F9CD8
+ .align 2, 0
+_080F9C94: .4byte gPaletteFade
+_080F9C98:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _080F9CB8 @ =gUnknown_02038694
+ strb r0, [r1]
+ ldr r2, _080F9CBC @ =gUnknown_0202E8CC
+ ldrb r0, [r1]
+ strh r0, [r2]
+ adds r0, r4, 0
+ bl sub_8123138
+ b _080F9CD8
+ .align 2, 0
+_080F9CB8: .4byte gUnknown_02038694
+_080F9CBC: .4byte gUnknown_0202E8CC
+_080F9CC0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9CE0 @ =gUnknown_02038694
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080F9CE4 @ =gUnknown_0202E8CC
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8123138
+_080F9CD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9CE0: .4byte gUnknown_02038694
+_080F9CE4: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9C6C
+
+ thumb_func_start sub_80F9CE8
+sub_80F9CE8: @ 80F9CE8
+ push {r4,r5,lr}
+ ldr r1, _080F9D08 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x7
+ bls _080F9CFE
+ b _080F9E12
+_080F9CFE:
+ lsls r0, 2
+ ldr r1, _080F9D0C @ =_080F9D10
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080F9D08: .4byte 0x0201b000
+_080F9D0C: .4byte _080F9D10
+ .align 2, 0
+_080F9D10:
+ .4byte _080F9D30
+ .4byte _080F9D70
+ .4byte _080F9D76
+ .4byte _080F9D8A
+ .4byte _080F9DB4
+ .4byte _080F9DBA
+ .4byte _080F9DCC
+ .4byte _080F9DE4
+_080F9D30:
+ ldr r0, _080F9D58 @ =0x00000266
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _080F9D5C @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _080F9D64
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _080F9D60 @ =gPlayerParty
+ adds r2, r3
+ bl sub_806D90C
+ b _080F9E0C
+ .align 2, 0
+_080F9D58: .4byte 0x00000266
+_080F9D5C: .4byte gPlayerPartyCount
+_080F9D60: .4byte gPlayerParty
+_080F9D64:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+_080F9D70:
+ bl sub_806DA98
+ b _080F9DD0
+_080F9D76:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_806DC34
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _080F9DD8
+_080F9D8A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _080F9DB0 @ =0x00000266
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DB0: .4byte 0x00000266
+_080F9DB4:
+ bl sub_806E334
+ b _080F9DD0
+_080F9DBA:
+ bl sub_806E0C4
+ ldr r1, _080F9DC8 @ =0x0201b000
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _080F9DD8
+ .align 2, 0
+_080F9DC8: .4byte 0x0201b000
+_080F9DCC:
+ bl sub_80F9E1C
+_080F9DD0:
+ ldr r1, _080F9DE0 @ =0x0201b000
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_080F9DD8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080F9E12
+ .align 2, 0
+_080F9DE0: .4byte 0x0201b000
+_080F9DE4:
+ ldr r0, _080F9E08 @ =0x00000266
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080F9E0C
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _080F9E14
+ .align 2, 0
+_080F9E08: .4byte 0x00000266
+_080F9E0C:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9E12:
+ movs r0, 0
+_080F9E14:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80F9CE8
+
+ thumb_func_start sub_80F9E1C
+sub_80F9E1C: @ 80F9E1C
+ push {r4,lr}
+ movs r4, 0
+ b _080F9E52
+_080F9E22:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _080F9E40 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ cmp r0, 0
+ bne _080F9E44
+ adds r0, r4, 0
+ movs r1, 0x9A
+ bl sub_806BC3C
+ b _080F9E4C
+ .align 2, 0
+_080F9E40: .4byte gPlayerParty
+_080F9E44:
+ adds r0, r4, 0
+ movs r1, 0x8C
+ bl sub_806BC3C
+_080F9E4C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080F9E52:
+ ldr r0, _080F9E60 @ =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _080F9E22
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9E60: .4byte gPlayerPartyCount
+ thumb_func_end sub_80F9E1C
+
+ thumb_func_start sub_80F9E64
+sub_80F9E64: @ 80F9E64
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080F9E8C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080F9EE2
+ adds r0, r6, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080F9E90
+ cmp r0, 0x2
+ beq _080F9ED0
+ b _080F9EE2
+ .align 2, 0
+_080F9E8C: .4byte gPaletteFade
+_080F9E90:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080F9EC4 @ =gUnknown_0202E8CC
+ adds r0, r6, 0
+ bl sub_806CA38
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r5, _080F9EC8 @ =gUnknown_0202E8CE
+ ldrh r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9ECC @ =gPlayerParty
+ adds r0, r1
+ bl sub_8040574
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ adds r0, r6, 0
+ bl sub_8123138
+ b _080F9EE2
+ .align 2, 0
+_080F9EC4: .4byte gUnknown_0202E8CC
+_080F9EC8: .4byte gUnknown_0202E8CE
+_080F9ECC: .4byte gPlayerParty
+_080F9ED0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _080F9EE8 @ =gUnknown_0202E8CC
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r6, 0
+ bl sub_8123138
+_080F9EE2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9EE8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80F9E64
+
+ thumb_func_start sub_80F9EEC
+sub_80F9EEC: @ 80F9EEC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080F9F20 @ =gPlayerParty
+ ldr r1, _080F9F24 @ =gUnknown_0202E8CC
+ ldrb r1, [r1]
+ ldr r2, _080F9F28 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080F9F2C @ =c2_exit_to_overworld_2_switch
+ movs r4, 0
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, _080F9F30 @ =0x02018000
+ movs r0, 0x3
+ strb r0, [r1, 0x8]
+ ldr r1, _080F9F34 @ =gUnknown_0300485C
+ ldr r0, _080F9F38 @ =sub_8080990
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F20: .4byte gPlayerParty
+_080F9F24: .4byte gUnknown_0202E8CC
+_080F9F28: .4byte gPlayerPartyCount
+_080F9F2C: .4byte c2_exit_to_overworld_2_switch
+_080F9F30: .4byte 0x02018000
+_080F9F34: .4byte gUnknown_0300485C
+_080F9F38: .4byte sub_8080990
+ thumb_func_end sub_80F9EEC
+
+ thumb_func_start sub_80F9F3C
+sub_80F9F3C: @ 80F9F3C
+ push {r4,r5,lr}
+ ldr r1, _080F9F78 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r5, r1, 0
+_080F9F48:
+ ldr r0, _080F9F7C @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080F9F80 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0xD
+ bl GetMonData
+ cmp r0, 0
+ beq _080F9F66
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_080F9F66:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080F9F48
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9F78: .4byte gScriptResult
+_080F9F7C: .4byte gUnknown_0202E8CC
+_080F9F80: .4byte gPlayerParty
+ thumb_func_end sub_80F9F3C
+
+ thumb_func_start sub_80F9F84
+sub_80F9F84: @ 80F9F84
+ push {r4,r5,lr}
+ ldr r0, _080F9FC4 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, _080F9FC8 @ =gPlayerParty
+ adds r5, r0
+ ldr r0, _080F9FCC @ =gUnknown_0202E8CE
+ ldrh r1, [r0]
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, _080F9FD0 @ =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, _080F9FD4 @ =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _080F9FD8 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080F9FC4: .4byte gUnknown_0202E8CC
+_080F9FC8: .4byte gPlayerParty
+_080F9FCC: .4byte gUnknown_0202E8CE
+_080F9FD0: .4byte gStringVar1
+_080F9FD4: .4byte gStringVar2
+_080F9FD8: .4byte gMoveNames
+ thumb_func_end sub_80F9F84
+
+ thumb_func_start sub_80F9FDC
+sub_80F9FDC: @ 80F9FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0xD
+ str r3, [sp, 0xC]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r7, r5, 0
+ adds r7, 0x11
+ str r7, [sp, 0x10]
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x5
+ str r1, [sp, 0x18]
+ strb r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0x11
+ str r3, [sp, 0x1C]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ add r7, sp, 0x4
+ mov r10, r7
+ strb r0, [r7]
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ mov r6, sp
+ adds r6, 0x6
+ strb r0, [r6]
+ ldr r1, _080FA0D8 @ =gUnknown_08208238
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ lsls r5, 1
+ asrs r2, r5
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r4, 1
+ asrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r6]
+ ldrb r0, [r6]
+ bics r0, r3
+ strb r0, [r6]
+ lsls r2, r4
+ lsls r1, r5
+ adds r2, r1
+ ldrb r0, [r6]
+ orrs r0, r2
+ strb r0, [r6]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r6, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA0D8: .4byte gUnknown_08208238
+ thumb_func_end sub_80F9FDC
+
+ thumb_func_start sub_80FA0DC
+sub_80FA0DC: @ 80FA0DC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080FA13C @ =gUnknown_0202E8CC
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080FA140 @ =gPlayerParty
+ adds r0, r5
+ ldr r4, _080FA144 @ =gUnknown_0202E8CE
+ ldrb r2, [r4]
+ movs r1, 0
+ bl SetMonMoveSlot
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r6
+ adds r0, r5
+ ldrb r1, [r4]
+ bl RemoveMonPPBonus
+ ldrh r4, [r4]
+ cmp r4, 0x2
+ bhi _080FA130
+_080FA10E:
+ ldr r0, _080FA13C @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA140 @ =gPlayerParty
+ adds r0, r1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_80F9FDC
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x2
+ bls _080FA10E
+_080FA130:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA13C: .4byte gUnknown_0202E8CC
+_080FA140: .4byte gPlayerParty
+_080FA144: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_80FA0DC
+
+ thumb_func_start sub_80FA148
+sub_80FA148: @ 80FA148
+ push {r4,lr}
+ ldr r0, _080FA170 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080FA174 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _080FA178 @ =gScriptResult
+ movs r1, 0
+ strh r1, [r4]
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _080FA16A
+ movs r0, 0x1
+ strh r0, [r4]
+_080FA16A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA170: .4byte gUnknown_0202E8CC
+_080FA174: .4byte gPlayerParty
+_080FA178: .4byte gScriptResult
+ thumb_func_end sub_80FA148
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/secret_base.s b/asm/secret_base.s
new file mode 100644
index 000000000..936fd1ece
--- /dev/null
+++ b/asm/secret_base.s
@@ -0,0 +1,4586 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BB4AC
+sub_80BB4AC: @ 80BB4AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ movs r0, 0
+ strb r0, [r3]
+ movs r2, 0
+ adds r4, r3, 0x2
+ movs r5, 0xFF
+_080BB4C4:
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ orrs r1, r5
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x6
+ bls _080BB4C4
+ movs r2, 0
+ adds r5, r3, 0
+ adds r5, 0x12
+ adds r6, r3, 0
+ adds r6, 0x22
+ adds r7, r3, 0
+ adds r7, 0x4C
+ adds r0, r3, 0
+ adds r0, 0x34
+ str r0, [sp]
+ adds r1, r3, 0
+ adds r1, 0x9A
+ str r1, [sp, 0x4]
+ movs r0, 0x7C
+ adds r0, r3
+ mov r10, r0
+ movs r1, 0x88
+ adds r1, r3
+ mov r9, r1
+ movs r0, 0x94
+ adds r0, r3
+ mov r8, r0
+ adds r1, r3, 0
+ adds r1, 0x9
+ movs r4, 0
+_080BB508:
+ adds r0, r1, r2
+ strb r4, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _080BB508
+ movs r0, 0
+ movs r1, 0
+ strh r1, [r3, 0xE]
+ strb r0, [r3, 0x10]
+ strb r0, [r3, 0x11]
+ movs r0, 0
+ strb r0, [r3, 0x1]
+ movs r2, 0
+ adds r4, r5, 0
+ adds r3, r6, 0
+_080BB52A:
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _080BB52A
+ movs r2, 0
+ mov r12, r7
+ movs r5, 0
+_080BB542:
+ movs r1, 0
+ adds r7, r2, 0x1
+ lsls r4, r2, 2
+ lsls r6, r2, 1
+ adds r3, r4, 0
+_080BB54C:
+ adds r0, r3, r1
+ lsls r0, 1
+ add r0, r12
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3
+ bls _080BB54C
+ ldr r1, [sp]
+ adds r0, r1, r4
+ str r5, [r0]
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r2
+ strb r5, [r0]
+ mov r1, r10
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r9
+ adds r0, r1, r6
+ strh r5, [r0]
+ mov r1, r8
+ adds r0, r1, r2
+ strb r5, [r0]
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080BB542
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB4AC
+
+ thumb_func_start sub_80BB594
+sub_80BB594: @ 80BB594
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08
+ adds r0, r1
+ bl sub_80BB4AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB5B0: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BB594
+
+ thumb_func_start sub_80BB5B4
+sub_80BB5B4: @ 80BB5B4
+ push {r4,lr}
+ movs r4, 0
+_080BB5B8:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BB594
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BB5B8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB5B4
+
+ thumb_func_start sub_80BB5D0
+sub_80BB5D0: @ 80BB5D0
+ ldr r0, _080BB5DC @ =gUnknown_020387DC
+ ldr r1, _080BB5E0 @ =gUnknown_0202E8CC
+ ldrh r1, [r1]
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BB5DC: .4byte gUnknown_020387DC
+_080BB5E0: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BB5D0
+
+ thumb_func_start sub_80BB5E4
+sub_80BB5E4: @ 80BB5E4
+ push {r4,lr}
+ ldr r0, _080BB5F4 @ =gScriptResult
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, r0, 0
+ b _080BB5FE
+ .align 2, 0
+_080BB5F4: .4byte gScriptResult
+_080BB5F8:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080BB5FE:
+ cmp r3, 0x13
+ bhi _080BB626
+ ldr r2, _080BB62C @ =gUnknown_020387DC
+ ldr r1, _080BB630 @ =gSaveBlock1
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BB634 @ =0x00001a08
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080BB5F8
+ movs r0, 0x1
+ strh r0, [r4]
+ ldr r0, _080BB638 @ =0x00004054
+ adds r1, r3, 0
+ bl VarSet
+_080BB626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB62C: .4byte gUnknown_020387DC
+_080BB630: .4byte gSaveBlock1
+_080BB634: .4byte 0x00001a08
+_080BB638: .4byte 0x00004054
+ thumb_func_end sub_80BB5E4
+
+ thumb_func_start sub_80BB63C
+sub_80BB63C: @ 80BB63C
+ push {lr}
+ ldr r0, _080BB654 @ =gSaveBlock1
+ ldr r1, _080BB658 @ =0x00001a08
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080BB660
+ ldr r1, _080BB65C @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ b _080BB664
+ .align 2, 0
+_080BB654: .4byte gSaveBlock1
+_080BB658: .4byte 0x00001a08
+_080BB65C: .4byte gScriptResult
+_080BB660:
+ ldr r0, _080BB668 @ =gScriptResult
+ strh r1, [r0]
+_080BB664:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB668: .4byte gScriptResult
+ thumb_func_end sub_80BB63C
+
+ thumb_func_start sub_80BB66C
+sub_80BB66C: @ 80BB66C
+ 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
+ adds r1, r0, 0
+ ldr r2, _080BB6A4 @ =0x00000fff
+ adds r0, r2, 0
+ ands r1, r0
+ adds r0, r1, 0
+ subs r0, 0x90
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6A8
+ movs r0, 0x1
+ b _080BB702
+ .align 2, 0
+_080BB6A4: .4byte 0x00000fff
+_080BB6A8:
+ adds r0, r1, 0
+ subs r0, 0x92
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6B8
+ movs r0, 0x2
+ b _080BB702
+_080BB6B8:
+ adds r0, r1, 0
+ subs r0, 0x9A
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6C8
+ movs r0, 0x3
+ b _080BB702
+_080BB6C8:
+ adds r0, r1, 0
+ subs r0, 0x94
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080BB6D8
+ movs r0, 0x4
+ b _080BB702
+_080BB6D8:
+ adds r0, r1, 0
+ subs r0, 0x96
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB6EC
+ cmp r1, 0x9C
+ beq _080BB6EC
+ cmp r1, 0x9D
+ bne _080BB6F0
+_080BB6EC:
+ movs r0, 0x5
+ b _080BB702
+_080BB6F0:
+ adds r0, r1, 0
+ subs r0, 0x98
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BB700
+ movs r0, 0
+ b _080BB702
+_080BB700:
+ movs r0, 0x6
+_080BB702:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB66C
+
+ thumb_func_start sub_80BB70C
+sub_80BB70C: @ 80BB70C
+ push {r4,lr}
+ ldr r4, _080BB720 @ =gUnknown_0202E8D2
+ bl sub_80BB66C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB720: .4byte gUnknown_0202E8D2
+ thumb_func_end sub_80BB70C
+
+ thumb_func_start unref_sub_80BB724
+unref_sub_80BB724: @ 80BB724
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ movs r2, 0
+ ldr r6, _080BB748 @ =0x00000fff
+ lsrs r3, r1, 24
+ ldr r5, _080BB74C @ =0x000001ff
+_080BB732:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, r3
+ bne _080BB750
+ lsls r0, r2, 16
+ asrs r0, 16
+ b _080BB75E
+ .align 2, 0
+_080BB748: .4byte 0x00000fff
+_080BB74C: .4byte 0x000001ff
+_080BB750:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bls _080BB732
+ movs r0, 0x1
+ negs r0, r0
+_080BB75E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_80BB724
+
+ thumb_func_start sub_80BB764
+sub_80BB764: @ 80BB764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ movs r0, 0
+ mov r12, r0
+ ldr r1, _080BB7C8 @ =gMapHeader
+ ldr r0, [r1]
+ ldr r3, [r0, 0x4]
+ cmp r12, r3
+ bge _080BB7EE
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r3, [sp]
+_080BB78E:
+ movs r2, 0
+ mov r1, r12
+ lsls r7, r1, 16
+ ldr r0, [sp, 0x4]
+ cmp r2, r0
+ bge _080BB7DC
+ ldr r0, _080BB7C8 @ =gMapHeader
+ ldr r1, [r0]
+ asrs r0, r7, 16
+ ldr r4, [r1]
+ adds r6, r0, 0
+ muls r6, r4
+ ldr r5, [r1, 0xC]
+_080BB7A8:
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ adds r0, r6, r3
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080BB7CC @ =0x000003ff
+ ands r0, r1
+ cmp r0, r8
+ bne _080BB7D0
+ mov r1, r9
+ strh r2, [r1]
+ mov r1, r12
+ mov r0, r10
+ strh r1, [r0]
+ b _080BB7EE
+ .align 2, 0
+_080BB7C8: .4byte gMapHeader
+_080BB7CC: .4byte 0x000003ff
+_080BB7D0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ blt _080BB7A8
+_080BB7DC:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r7, r1
+ lsrs r1, r0, 16
+ mov r12, r1
+ asrs r0, 16
+ ldr r1, [sp]
+ cmp r0, r1
+ blt _080BB78E
+_080BB7EE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB764
+
+ thumb_func_start sub_80BB800
+sub_80BB800: @ 80BB800
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ 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 MapGridGetMetatileIdAt
+ movs r5, 0
+ mov r12, r4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r1, _080BB84C @ =gUnknown_083D1358
+ mov r8, r1
+ adds r7, r0, 0
+ mov r4, sp
+ mov r6, r12
+_080BB834:
+ ldr r0, _080BB84C @ =gUnknown_083D1358
+ lsls r1, r5, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _080BB850
+ movs r3, 0
+ ldrsh r0, [r4, r3]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r2, 0x2]
+ b _080BB878
+ .align 2, 0
+_080BB84C: .4byte gUnknown_083D1358
+_080BB850:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB834
+ movs r5, 0
+ mov r4, sp
+ mov r6, r12
+_080BB860:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x2]
+ asrs r0, r7, 16
+ cmp r1, r0
+ bne _080BB892
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ ldrh r3, [r3]
+_080BB878:
+ movs r5, 0xC0
+ lsls r5, 4
+ adds r2, r5, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r6, r2]
+ bl CurrentMapDrawMetatileAt
+ b _080BB89C
+_080BB892:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x6
+ bls _080BB860
+_080BB89C:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB800
+
+ thumb_func_start sub_80BB8A8
+sub_80BB8A8: @ 80BB8A8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BB8AE:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BB8BA
+ adds r0, r1, 0
+ b _080BB8C6
+_080BB8BA:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _080BB8AE
+ movs r0, 0x7
+_080BB8C6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BB8A8
+
+ thumb_func_start sub_80BB8CC
+sub_80BB8CC: @ 80BB8CC
+ push {r4-r6,lr}
+ ldr r2, _080BB948 @ =gSaveBlock1
+ ldr r0, _080BB94C @ =gUnknown_020387DC
+ ldrb r1, [r0]
+ ldr r3, _080BB950 @ =0x00001a08
+ adds r0, r2, r3
+ strb r1, [r0]
+ movs r3, 0
+ ldr r0, _080BB954 @ =0x00001a11
+ adds r2, r0
+ ldr r4, _080BB958 @ =gSaveBlock2 + 0xA
+_080BB8E2:
+ adds r1, r3, r2
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080BB8E2
+ ldr r0, _080BB95C @ =0x00004054
+ movs r1, 0
+ bl VarSet
+ ldr r6, _080BB960 @ =gSaveBlock2
+ adds r0, r6, 0
+ bl sub_80BB8A8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A
+ adds r0, r5, 0
+ movs r1, 0xFF
+ movs r2, 0x7
+ bl memset
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl StringCopyN
+ ldrb r0, [r6, 0x8]
+ subs r5, 0x1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r5]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r0, _080BB968 @ =0x00004026
+ ldr r1, _080BB96C @ =gMapHeader
+ ldrb r1, [r1, 0x14]
+ bl VarSet
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB948: .4byte gSaveBlock1
+_080BB94C: .4byte gUnknown_020387DC
+_080BB950: .4byte 0x00001a08
+_080BB954: .4byte 0x00001a11
+_080BB958: .4byte gSaveBlock2 + 0xA
+_080BB95C: .4byte 0x00004054
+_080BB960: .4byte gSaveBlock2
+_080BB964: .4byte gSaveBlock1 + 0x1A0A
+_080BB968: .4byte 0x00004026
+_080BB96C: .4byte gMapHeader
+ thumb_func_end sub_80BB8CC
+
+ thumb_func_start sub_80BB970
+sub_80BB970: @ 80BB970
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r2, 0
+ b _080BBA06
+_080BB978:
+ ldr r0, [r5, 0x10]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x5]
+ adds r7, r2, 0x1
+ cmp r0, 0x8
+ bne _080BBA02
+ movs r2, 0
+ ldr r4, _080BB9E0 @ =gSaveBlock1
+ adds r6, r1, 0
+_080BB990:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BB9E4 @ =0x00001a08
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, [r3, 0x8]
+ cmp r1, r0
+ bne _080BB9F8
+ ldrh r0, [r3]
+ adds r0, 0x7
+ ldrh r1, [r3, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r3, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+_080BB9B6:
+ ldr r0, _080BB9E8 @ =gUnknown_083D1358
+ lsls r1, r3, 2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _080BB9EC
+ ldr r1, [r5, 0x10]
+ adds r1, r6, r1
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r2, 0x2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BBA02
+ .align 2, 0
+_080BB9E0: .4byte gSaveBlock1
+_080BB9E4: .4byte 0x00001a08
+_080BB9E8: .4byte gUnknown_083D1358
+_080BB9EC:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x6
+ bls _080BB9B6
+ b _080BBA02
+_080BB9F8:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _080BB990
+_080BBA02:
+ lsls r0, r7, 16
+ lsrs r2, r0, 16
+_080BBA06:
+ ldrb r0, [r5, 0x3]
+ cmp r2, r0
+ bcc _080BB978
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB970
+
+ thumb_func_start sub_80BBA14
+sub_80BBA14: @ 80BBA14
+ push {lr}
+ ldr r0, _080BBA40 @ =gUnknown_020387DC
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r2, _080BBA44 @ =gUnknown_083D1374
+ lsls r0, 26
+ asrs r0, 24
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, 0x1
+ adds r0, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0x19
+ bl warp1_set_2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBA40: .4byte gUnknown_020387DC
+_080BBA44: .4byte gUnknown_083D1374
+ thumb_func_end sub_80BBA14
+
+ thumb_func_start sub_80BBA48
+sub_80BBA48: @ 80BBA48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BBA6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080BBA7C
+ cmp r0, 0x1
+ bgt _080BBA70
+ cmp r0, 0
+ beq _080BBA76
+ b _080BBAD0
+ .align 2, 0
+_080BBA6C: .4byte gTasks
+_080BBA70:
+ cmp r0, 0x2
+ beq _080BBA94
+ b _080BBAD0
+_080BBA76:
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+_080BBA7C:
+ ldr r0, _080BBA90 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBAD0
+ movs r0, 0x2
+ strh r0, [r2, 0x8]
+ b _080BBAD0
+ .align 2, 0
+_080BBA90: .4byte gPaletteFade
+_080BBA94:
+ ldr r0, _080BBAD8 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _080BBADC @ =gSaveBlock1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BBAE0 @ =0x00001a18
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _080BBAB6
+ adds r0, 0x1
+ strb r0, [r1]
+_080BBAB6:
+ bl sub_80BBA14
+ bl warp_in
+ ldr r0, _080BBAE4 @ =gUnknown_0300485C
+ ldr r1, _080BBAE8 @ =sub_8080990
+ str r1, [r0]
+ ldr r0, _080BBAEC @ =CB2_LoadMap
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBAD0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBAD8: .4byte 0x00004054
+_080BBADC: .4byte gSaveBlock1
+_080BBAE0: .4byte 0x00001a18
+_080BBAE4: .4byte gUnknown_0300485C
+_080BBAE8: .4byte sub_8080990
+_080BBAEC: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBA48
+
+ thumb_func_start sub_80BBAF0
+sub_80BBAF0: @ 80BBAF0
+ push {lr}
+ ldr r0, _080BBB1C @ =sub_80BBA48
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, _080BBB20 @ =gSaveBlock1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB1C: .4byte sub_80BBA48
+_080BBB20: .4byte gSaveBlock1
+ thumb_func_end sub_80BBAF0
+
+ thumb_func_start sub_80BBB24
+sub_80BBB24: @ 80BBB24
+ push {lr}
+ ldr r0, _080BBB40 @ =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ bne _080BBB48
+ ldr r0, _080BBB44 @ =0x00004097
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BBB48
+ movs r0, 0
+ b _080BBB4A
+ .align 2, 0
+_080BBB40: .4byte gMapHeader
+_080BBB44: .4byte 0x00004097
+_080BBB48:
+ movs r0, 0x1
+_080BBB4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BBB24
+
+ thumb_func_start sub_80BBB50
+sub_80BBB50: @ 80BBB50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080BBB88 @ =gPlayerAvatar
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BBB8C @ =gMapObjects
+ adds r0, r1
+ movs r1, 0x2
+ bl FieldObjectTurn
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBB80
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_080BBB80:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBB88: .4byte gPlayerAvatar
+_080BBB8C: .4byte gMapObjects
+ thumb_func_end sub_80BBB50
+
+ thumb_func_start sub_80BBB90
+sub_80BBB90: @ 80BBB90
+ push {r4,lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl HideMapNamePopUpWindow
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ movs r2, 0xE2
+ lsls r2, 4
+ bl MapGridSetMetatileIdAt
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r0, 0x7
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r1, 0x7
+ bl CurrentMapDrawMetatileAt
+ bl pal_fill_black
+ ldr r0, _080BBBE8 @ =sub_80BBB50
+ movs r1, 0
+ bl CreateTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBBE8: .4byte sub_80BBB50
+ thumb_func_end sub_80BBB90
+
+ thumb_func_start sub_80BBBEC
+sub_80BBBEC: @ 80BBBEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BBC5C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BBC52
+ ldr r0, _080BBC60 @ =gUnknown_020387DC
+ ldrb r0, [r0]
+ movs r1, 0xA
+ bl __udivsi3
+ ldr r1, _080BBC64 @ =gSaveBlock1
+ movs r5, 0x4
+ ldrsb r5, [r1, r5]
+ ldrb r1, [r1, 0x5]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ ldr r4, _080BBC68 @ =gUnknown_083D1374
+ lsls r0, 26
+ asrs r0, 24
+ adds r3, r0, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ adds r0, 0x3
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ adds r0, r5, 0
+ bl warp1_set
+ bl warp_in
+ ldr r1, _080BBC6C @ =gUnknown_0300485C
+ ldr r0, _080BBC70 @ =sub_80BBB90
+ str r0, [r1]
+ ldr r0, _080BBC74 @ =CB2_LoadMap
+ bl SetMainCallback2
+ adds r0, r6, 0
+ bl DestroyTask
+_080BBC52:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBC5C: .4byte gPaletteFade
+_080BBC60: .4byte gUnknown_020387DC
+_080BBC64: .4byte gSaveBlock1
+_080BBC68: .4byte gUnknown_083D1374
+_080BBC6C: .4byte gUnknown_0300485C
+_080BBC70: .4byte sub_80BBB90
+_080BBC74: .4byte CB2_LoadMap
+ thumb_func_end sub_80BBBEC
+
+ thumb_func_start sub_80BBC78
+sub_80BBC78: @ 80BBC78
+ push {lr}
+ ldr r0, _080BBCA0 @ =sub_80BBBEC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BBCA4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBCA0: .4byte sub_80BBBEC
+_080BBCA4: .4byte gTasks
+ thumb_func_end sub_80BBC78
+
+ thumb_func_start CurrentMapIsSecretBase
+CurrentMapIsSecretBase: @ 80BBCA8
+ push {lr}
+ ldr r1, _080BBCC0 @ =gSaveBlock1
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x19
+ bne _080BBCC4
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0x17
+ bhi _080BBCC4
+ movs r0, 0x1
+ b _080BBCC6
+ .align 2, 0
+_080BBCC0: .4byte gSaveBlock1
+_080BBCC4:
+ movs r0, 0
+_080BBCC6:
+ pop {r1}
+ bx r1
+ thumb_func_end CurrentMapIsSecretBase
+
+ thumb_func_start sub_80BBCCC
+sub_80BBCCC: @ 80BBCCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BBDBC
+ ldr r0, _080BBD70 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ ldr r6, _080BBD74 @ =gSaveBlock1
+ mov r4, sp
+ ldr r0, _080BBD78 @ =0x00001a2a
+ adds r7, r6, r0
+_080BBCFC:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ ldrh r1, [r4]
+ adds r2, r0, r1
+ ldr r1, _080BBD7C @ =0x00001a1a
+ adds r0, r6, r1
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x77
+ bhi _080BBD3A
+ ldr r0, _080BBD80 @ =gDecorations
+ ldrb r3, [r1]
+ lsls r1, r3, 5
+ adds r1, r0
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x4
+ beq _080BBD3A
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ lsrs r0, r2, 4
+ adds r0, 0x7
+ movs r1, 0xF
+ ands r1, r2
+ adds r1, 0x7
+ adds r2, r3, 0
+ bl sub_80FF394
+_080BBD3A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4]
+ cmp r0, 0xF
+ bls _080BBCFC
+ cmp r5, 0
+ beq _080BBD88
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBD84 @ =0x00000e21
+ bl MapGridSetMetatileIdAt
+ b _080BBDBC
+ .align 2, 0
+_080BBD70: .4byte 0x00004054
+_080BBD74: .4byte gSaveBlock1
+_080BBD78: .4byte 0x00001a2a
+_080BBD7C: .4byte 0x00001a1a
+_080BBD80: .4byte gDecorations
+_080BBD84: .4byte 0x00000e21
+_080BBD88:
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080BBDBC
+ ldr r0, _080BBDC8 @ =0x00004089
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080BBDBC
+ mov r4, sp
+ adds r4, 0x2
+ movs r2, 0x88
+ lsls r2, 2
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80BB764
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x7
+ ldr r2, _080BBDCC @ =0x00000e0a
+ bl MapGridSetMetatileIdAt
+_080BBDBC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBDC8: .4byte 0x00004089
+_080BBDCC: .4byte 0x00000e0a
+ thumb_func_end sub_80BBCCC
+
+ thumb_func_start sub_80BBDD0
+sub_80BBDD0: @ 80BBDD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080BBE00 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl CurrentMapIsSecretBase
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BBE08
+ ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688
+ str r0, [sp, 0x4]
+ adds r0, 0xC
+ str r0, [sp, 0x8]
+ movs r1, 0xC
+ str r1, [sp, 0xC]
+ b _080BBE1E
+ .align 2, 0
+_080BBE00: .4byte 0x00004054
+_080BBE04: .4byte gSaveBlock1 + 0x2688
+_080BBE08:
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 5
+ ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A
+ adds r2, r1, r0
+ str r2, [sp, 0x4]
+ adds r0, 0x10
+ adds r1, r0
+ str r1, [sp, 0x8]
+ movs r3, 0x10
+ str r3, [sp, 0xC]
+_080BBE1E:
+ movs r6, 0
+ ldr r4, [sp, 0xC]
+ cmp r6, r4
+ bcc _080BBE28
+ b _080BBF6C
+_080BBE28:
+ ldr r5, _080BBF80 @ =gSaveBlock1
+ mov r10, r5
+_080BBE2C:
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ mov r9, r0
+ adds r2, r6, 0x1
+ str r2, [sp, 0x10]
+ cmp r1, 0
+ bne _080BBE3E
+ b _080BBF5E
+_080BBE3E:
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r3, _080BBF84 @ =gDecorations
+ adds r0, r3
+ ldrb r0, [r0, 0x11]
+ cmp r0, 0x4
+ beq _080BBE4E
+ b _080BBF5E
+_080BBE4E:
+ movs r5, 0
+ ldr r0, _080BBF88 @ =gMapHeader
+ ldr r2, [r0, 0x4]
+ ldrb r3, [r2]
+ mov r8, r0
+ cmp r5, r3
+ bcs _080BBE8E
+ ldr r0, [r2, 0x4]
+ ldrh r1, [r0, 0x14]
+ ldr r4, _080BBF8C @ =gUnknown_0202E8CC
+ ldrh r0, [r4]
+ adds r0, 0xAE
+ adds r7, r4, 0
+ cmp r1, r0
+ beq _080BBE8E
+ adds r4, r2, 0
+ adds r2, r3, 0
+_080BBE70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r2
+ bcs _080BBE8E
+ ldr r1, [r4, 0x4]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x14]
+ ldrh r0, [r7]
+ adds r0, 0xAE
+ cmp r1, r0
+ bne _080BBE70
+_080BBE8E:
+ mov r1, r8
+ ldr r0, [r1, 0x4]
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080BBF5E
+ ldr r7, _080BBF90 @ =gUnknown_0202E8D0
+ ldr r2, [sp, 0x8]
+ adds r1, r2, r6
+ ldrb r0, [r1]
+ lsrs r0, 4
+ strh r0, [r7]
+ ldr r6, _080BBF94 @ =gUnknown_0202E8D2
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ strh r0, [r6]
+ ldrh r0, [r7]
+ adds r0, 0x7
+ ldrh r1, [r6]
+ adds r1, 0x7
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80572D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BBEDA
+ adds r0, r4, 0
+ bl sub_80572EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BBF5E
+_080BBEDA:
+ mov r3, r8
+ ldr r0, [r3, 0x4]
+ ldr r1, [r0, 0x4]
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 3
+ adds r1, r4, r1
+ ldr r5, _080BBF98 @ =0x00003f20
+ adds r0, r5, 0
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ ldr r1, _080BBF9C @ =gScriptResult
+ strh r0, [r1]
+ ldrh r0, [r1]
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 5
+ ldr r3, _080BBFA0 @ =gDecorations + 0x1C
+ adds r1, r3
+ ldr r1, [r1]
+ ldrh r1, [r1]
+ bl VarSet
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ ldr r0, [r0, 0x4]
+ adds r4, r0
+ ldrb r0, [r4]
+ ldr r1, _080BBF9C @ =gScriptResult
+ strh r0, [r1]
+ ldr r2, _080BBF8C @ =gUnknown_0202E8CC
+ ldrh r0, [r2]
+ adds r0, 0xAE
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagReset
+ ldr r3, _080BBF9C @ =gScriptResult
+ ldrb r0, [r3]
+ mov r4, r10
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ bl show_sprite
+ ldr r5, _080BBF9C @ =gScriptResult
+ ldrb r0, [r5]
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ ldrsh r3, [r7, r4]
+ movs r5, 0
+ ldrsh r4, [r6, r5]
+ str r4, [sp]
+ bl sub_805C0F8
+ ldr r1, _080BBF9C @ =gScriptResult
+ ldrb r0, [r1]
+ mov r2, r10
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805C78C
+ ldr r3, _080BBF8C @ =gUnknown_0202E8CC
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_080BBF5E:
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ ldr r5, [sp, 0xC]
+ cmp r6, r5
+ bcs _080BBF6C
+ b _080BBE2C
+_080BBF6C:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBF7C: .4byte gSaveBlock1 + 0x1A1A
+_080BBF80: .4byte gSaveBlock1
+_080BBF84: .4byte gDecorations
+_080BBF88: .4byte gMapHeader
+_080BBF8C: .4byte gUnknown_0202E8CC
+_080BBF90: .4byte gUnknown_0202E8D0
+_080BBF94: .4byte gUnknown_0202E8D2
+_080BBF98: .4byte 0x00003f20
+_080BBF9C: .4byte gScriptResult
+_080BBFA0: .4byte gDecorations + 0x1C
+ thumb_func_end sub_80BBDD0
+
+ thumb_func_start sub_80BBFA4
+sub_80BBFA4: @ 80BBFA4
+ push {r4,r5,lr}
+ ldr r0, _080BBFCC @ =0x00004054
+ bl VarGet
+ ldr r5, _080BBFD0 @ =0x0000401f
+ ldr r4, _080BBFD4 @ =gUnknown_083D13EC
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl VarSet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BBFCC: .4byte 0x00004054
+_080BBFD0: .4byte 0x0000401f
+_080BBFD4: .4byte gUnknown_083D13EC
+ thumb_func_end sub_80BBFA4
+
+ thumb_func_start sub_80BBFD8
+sub_80BBFD8: @ 80BBFD8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r3, 0
+ ldrb r0, [r4, 0x3]
+ cmp r3, r0
+ bge _080BC030
+ ldr r6, _080BC01C @ =gUnknown_020387DC
+_080BBFE8:
+ lsls r3, 16
+ asrs r1, r3, 16
+ ldr r2, [r4, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x8
+ bne _080BC020
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x7
+ cmp r1, r0
+ bne _080BC020
+ ldr r0, [r2, 0x8]
+ strb r0, [r6]
+ b _080BC030
+ .align 2, 0
+_080BC01C: .4byte gUnknown_020387DC
+_080BC020:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ blt _080BBFE8
+_080BC030:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BBFD8
+
+ thumb_func_start sub_80BC038
+sub_80BC038: @ 80BC038
+ push {lr}
+ bl sub_80BBFD8
+ bl sub_80BB5E4
+ ldr r0, _080BC04C @ =gUnknown_081A2E14
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC04C: .4byte gUnknown_081A2E14
+ thumb_func_end sub_80BC038
+
+ thumb_func_start sub_80BC050
+sub_80BC050: @ 80BC050
+ push {lr}
+ bl sub_80BB5D0
+ bl sub_80BB5E4
+ ldr r0, _080BC068 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BC06C
+ movs r0, 0x1
+ b _080BC06E
+ .align 2, 0
+_080BC068: .4byte gScriptResult
+_080BC06C:
+ movs r0, 0
+_080BC06E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC050
+
+ thumb_func_start sub_80BC074
+sub_80BC074: @ 80BC074
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080BC098 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BC0AC
+ cmp r0, 0x1
+ bgt _080BC09C
+ cmp r0, 0
+ beq _080BC0A2
+ b _080BC0E4
+ .align 2, 0
+_080BC098: .4byte gTasks
+_080BC09C:
+ cmp r0, 0x2
+ beq _080BC0C4
+ b _080BC0E4
+_080BC0A2:
+ bl ScriptContext2_Enable
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+_080BC0AC:
+ ldr r0, _080BC0C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BC0E4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080BC0E4
+ .align 2, 0
+_080BC0C0: .4byte gPaletteFade
+_080BC0C4:
+ movs r0, 0x7E
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ bl warp_in
+ ldr r0, _080BC0EC @ =gUnknown_0300485C
+ ldr r1, _080BC0F0 @ =mapldr_default
+ str r1, [r0]
+ ldr r0, _080BC0F4 @ =CB2_LoadMap
+ bl SetMainCallback2
+ bl ScriptContext2_Disable
+ adds r0, r5, 0
+ bl DestroyTask
+_080BC0E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC0EC: .4byte gUnknown_0300485C
+_080BC0F0: .4byte mapldr_default
+_080BC0F4: .4byte CB2_LoadMap
+ thumb_func_end sub_80BC074
+
+ thumb_func_start sub_80BC0F8
+sub_80BC0F8: @ 80BC0F8
+ push {lr}
+ ldr r0, _080BC110 @ =sub_80BC074
+ movs r1, 0
+ bl CreateTask
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC110: .4byte sub_80BC074
+ thumb_func_end sub_80BC0F8
+
+ thumb_func_start sub_80BC114
+sub_80BC114: @ 80BC114
+ push {lr}
+ ldr r0, _080BC12C @ =gSaveBlock1
+ ldr r1, _080BC130 @ =0x00001a08
+ adds r0, r1
+ ldr r1, _080BC134 @ =gUnknown_020387DC
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BC13C
+ ldr r1, _080BC138 @ =gScriptResult
+ movs r0, 0x1
+ b _080BC140
+ .align 2, 0
+_080BC12C: .4byte gSaveBlock1
+_080BC130: .4byte 0x00001a08
+_080BC134: .4byte gUnknown_020387DC
+_080BC138: .4byte gScriptResult
+_080BC13C:
+ ldr r1, _080BC148 @ =gScriptResult
+ movs r0, 0
+_080BC140:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC148: .4byte gScriptResult
+ thumb_func_end sub_80BC114
+
+ thumb_func_start sub_80BC14C
+sub_80BC14C: @ 80BC14C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r5, _080BC174 @ =gSaveBlock1
+ ldr r4, _080BC178 @ =0x00001a08
+_080BC158:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BC17C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BC18A
+ .align 2, 0
+_080BC174: .4byte gSaveBlock1
+_080BC178: .4byte 0x00001a08
+_080BC17C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC158
+ movs r0, 0
+_080BC18A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC14C
+
+ thumb_func_start sub_80BC190
+sub_80BC190: @ 80BC190
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 5
+ ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, _080BC1CC @ =gOtherText_PlayersBase
+ adds r0, r5, 0
+ bl StringAppend
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
+_080BC1CC: .4byte gOtherText_PlayersBase
+ thumb_func_end sub_80BC190
+
+ thumb_func_start GetSecretBaseMapName
+GetSecretBaseMapName: @ 80BC1D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ ldr r6, _080BC214 @ =gUnknown_020387DC
+ ldr r5, _080BC218 @ =gSaveBlock1
+ ldr r4, _080BC21C @ =0x00004054
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r5
+ ldr r0, _080BC220 @ =0x00001a08
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r6]
+ adds r0, r4, 0
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_80BC190
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BC214: .4byte gUnknown_020387DC
+_080BC218: .4byte gSaveBlock1
+_080BC21C: .4byte 0x00004054
+_080BC220: .4byte 0x00001a08
+ thumb_func_end GetSecretBaseMapName
+
+ thumb_func_start sub_80BC224
+sub_80BC224: @ 80BC224
+ push {r4,r5,lr}
+ ldr r0, _080BC25C @ =0x00004054
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A
+ adds r4, r0
+ ldr r5, _080BC264 @ =gStringVar1
+ adds r0, r4, 0
+ bl sub_80BB8A8
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringCopyN
+ movs r1, 0xFF
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC25C: .4byte 0x00004054
+_080BC260: .4byte gSaveBlock1 + 0x1A0A
+_080BC264: .4byte gStringVar1
+ thumb_func_end sub_80BC224
+
+ thumb_func_start sub_80BC268
+sub_80BC268: @ 80BC268
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BC288 @ =gSaveBlock1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC28C @ =0x00001a09
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 6
+ cmp r0, 0
+ bne _080BC290
+ movs r0, 0
+ b _080BC292
+ .align 2, 0
+_080BC288: .4byte gSaveBlock1
+_080BC28C: .4byte 0x00001a09
+_080BC290:
+ movs r0, 0x1
+_080BC292:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC268
+
+ thumb_func_start sub_80BC298
+sub_80BC298: @ 80BC298
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x1A
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1B
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1C
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1D
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1E
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x1F
+ bl GetMonData
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC298
+
+ thumb_func_start sub_80BC300
+sub_80BC300: @ 80BC300
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ mov r9, r6
+_080BC314:
+ movs r4, 0
+ lsls r3, r6, 2
+ lsls r2, r6, 1
+ ldr r7, _080BC424 @ =gPlayerParty
+ adds r1, r6, 0x1
+ str r1, [sp]
+ adds r1, r3, 0
+_080BC322:
+ adds r0, r1, r4
+ lsls r0, 1
+ ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54
+ adds r0, r5, r0
+ mov r5, r9
+ strh r5, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _080BC322
+ ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84
+ adds r0, r1, r2
+ strh r5, [r0]
+ ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90
+ adds r0, r5, r2
+ mov r1, r9
+ strh r1, [r0]
+ ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C
+ adds r0, r2, r6
+ mov r5, r9
+ strb r5, [r0]
+ ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
+ adds r0, r1, r3
+ mov r2, r9
+ str r2, [r0]
+ ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2
+ adds r0, r3, r6
+ strb r2, [r0]
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ adds r4, r5, r7
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080BC408
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080BC408
+ movs r4, 0
+ mov r0, r10
+ lsls r0, 2
+ mov r8, r0
+ mov r1, r10
+ lsls r7, r1, 1
+ adds r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r2, _080BC424 @ =gPlayerParty
+_080BC38E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, r2
+ str r2, [sp, 0x8]
+ bl GetMonData
+ mov r3, r8
+ adds r1, r3, r4
+ lsls r1, 1
+ ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54
+ adds r1, r3, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r4, 0x3
+ bls _080BC38E
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ ldr r0, _080BC424 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84
+ adds r1, r5, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90
+ adds r1, r2, r7
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C
+ add r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C
+ add r1, r8
+ str r0, [r1]
+ adds r0, r4, 0
+ bl sub_80BC298
+ ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2
+ add r1, r10
+ strb r0, [r1]
+ ldr r3, [sp, 0x4]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ mov r10, r0
+_080BC408:
+ ldr r5, [sp]
+ lsls r0, r5, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _080BC314
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC424: .4byte gPlayerParty
+_080BC428: .4byte gSaveBlock1 + 0x1A54
+_080BC42C: .4byte gSaveBlock1 + 0x1A84
+_080BC430: .4byte gSaveBlock1 + 0x1A90
+_080BC434: .4byte gSaveBlock1 + 0x1A9C
+_080BC438: .4byte gSaveBlock1 + 0x1A3C
+_080BC43C: .4byte gSaveBlock1 + 0x1AA2
+ thumb_func_end sub_80BC300
+
+ thumb_func_start sub_80BC440
+sub_80BC440: @ 80BC440
+ push {r4,r5,lr}
+ ldr r4, _080BC45C @ =gSaveBlock1
+ ldr r0, _080BC460 @ =0x00001a16
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ bl sub_80BC0F8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC45C: .4byte gSaveBlock1
+_080BC460: .4byte 0x00001a16
+ thumb_func_end sub_80BC440
+
+ thumb_func_start sub_80BC464
+sub_80BC464: @ 80BC464
+ push {lr}
+ movs r0, 0x14
+ bl sav12_xor_increment
+ bl sub_80BC440
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC464
+
+ thumb_func_start sub_80BC474
+sub_80BC474: @ 80BC474
+ push {r4-r7,lr}
+ ldr r0, _080BC4CC @ =gMapHeader
+ ldr r4, [r0, 0x4]
+ movs r6, 0
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcs _080BC504
+ ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08
+_080BC484:
+ ldr r2, [r4, 0x10]
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x5]
+ adds r7, r1, 0
+ cmp r0, 0x8
+ bne _080BC4F8
+ ldrb r1, [r3]
+ ldr r0, [r2, 0x8]
+ cmp r1, r0
+ bne _080BC4F8
+ ldrh r0, [r2]
+ adds r0, 0x7
+ ldrh r1, [r2, 0x2]
+ adds r1, 0x7
+ bl MapGridGetMetatileIdAt
+ movs r1, 0
+ ldr r5, _080BC4D4 @ =gUnknown_083D1358
+ lsls r0, 16
+ asrs r2, r0, 16
+_080BC4B2:
+ lsls r0, r1, 2
+ adds r3, r0, r5
+ ldrh r0, [r3, 0x2]
+ cmp r0, r2
+ beq _080BC4D8
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x6
+ bls _080BC4B2
+_080BC4C6:
+ bl DrawWholeMapView
+ b _080BC504
+ .align 2, 0
+_080BC4CC: .4byte gMapHeader
+_080BC4D0: .4byte gSaveBlock1 + 0x1A08
+_080BC4D4: .4byte gUnknown_083D1358
+_080BC4D8:
+ ldr r0, [r4, 0x10]
+ adds r1, r7, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x2]
+ adds r1, 0x7
+ ldrh r3, [r3]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r2, r3
+ bl MapGridSetMetatileIdAt
+ b _080BC4C6
+_080BC4F8:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r4, 0x3]
+ cmp r6, r0
+ bcc _080BC484
+_080BC504:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC474
+
+ thumb_func_start sub_80BC50C
+sub_80BC50C: @ 80BC50C
+ push {r4,r5,lr}
+ bl sub_80BC474
+ movs r0, 0x14
+ bl sav12_xor_increment
+ ldr r4, _080BC530 @ =gSaveBlock1
+ ldr r0, _080BC534 @ =0x00001a16
+ adds r4, r0
+ ldrh r5, [r4]
+ movs r0, 0
+ bl sub_80BB594
+ strh r5, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC530: .4byte gSaveBlock1
+_080BC534: .4byte 0x00001a16
+ thumb_func_end sub_80BC50C
+
+ thumb_func_start sub_80BC538
+sub_80BC538: @ 80BC538
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0x1
+_080BC53E:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC554
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC554:
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BC53E
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC538
+
+ thumb_func_start sub_80BC56C
+sub_80BC56C: @ 80BC56C
+ push {lr}
+ ldr r0, _080BC58C @ =gUnknown_020387DC
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _080BC594
+ ldr r0, _080BC590 @ =gScriptResult
+ strh r1, [r0]
+ b _080BC5B2
+ .align 2, 0
+_080BC58C: .4byte gUnknown_020387DC
+_080BC590: .4byte gScriptResult
+_080BC594:
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080BC5AC
+ ldr r1, _080BC5A8 @ =gScriptResult
+ movs r0, 0x2
+ b _080BC5B0
+ .align 2, 0
+_080BC5A8: .4byte gScriptResult
+_080BC5AC:
+ ldr r1, _080BC5B8 @ =gScriptResult
+ movs r0, 0
+_080BC5B0:
+ strh r0, [r1]
+_080BC5B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5B8: .4byte gScriptResult
+ thumb_func_end sub_80BC56C
+
+ thumb_func_start sub_80BC5BC
+sub_80BC5BC: @ 80BC5BC
+ push {lr}
+ ldr r0, _080BC5F8 @ =gUnknown_020387DC
+ ldrb r0, [r0]
+ bl sub_80BC14C
+ ldr r2, _080BC5FC @ =gSaveBlock1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BC600 @ =0x00001a09
+ adds r1, r0
+ ldrb r3, [r1]
+ lsrs r2, r3, 6
+ movs r0, 0x1
+ eors r2, r0
+ lsls r2, 6
+ movs r0, 0x3F
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r0, 0x86
+ lsls r0, 1
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC5F8: .4byte gUnknown_020387DC
+_080BC5FC: .4byte gSaveBlock1
+_080BC600: .4byte 0x00001a09
+ thumb_func_end sub_80BC5BC
+
+ thumb_func_start sub_80BC604
+sub_80BC604: @ 80BC604
+ push {lr}
+ ldr r0, _080BC614 @ =sub_80FE264
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC614: .4byte sub_80FE264
+ thumb_func_end sub_80BC604
+
+ thumb_func_start sub_80BC618
+sub_80BC618: @ 80BC618
+ push {lr}
+ ldr r0, _080BC628 @ =sub_80BC62C
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC628: .4byte sub_80BC62C
+ thumb_func_end sub_80BC618
+
+ thumb_func_start sub_80BC62C
+sub_80BC62C: @ 80BC62C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl ScriptContext2_Enable
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC688 @ =gTasks + 0x8
+ adds r4, r0, r1
+ bl sub_80BC538
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080BC694
+ cmp r1, 0x7
+ ble _080BC65E
+ movs r0, 0x7
+_080BC65E:
+ strh r0, [r4, 0x6]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ ldr r1, _080BC68C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC690 @ =sub_80BC824
+ str r1, [r0]
+ b _080BC6A0
+ .align 2, 0
+_080BC688: .4byte gTasks + 0x8
+_080BC68C: .4byte gTasks
+_080BC690: .4byte sub_80BC824
+_080BC694:
+ ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry
+ ldr r2, _080BC6AC @ =sub_80BCC54
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_080BC6A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC6A8: .4byte gSecretBaseText_NoRegistry
+_080BC6AC: .4byte sub_80BCC54
+ thumb_func_end sub_80BC62C
+
+ thumb_func_start sub_80BC6B0
+sub_80BC6B0: @ 80BC6B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BC6D8 @ =gTasks + 0x8
+ adds r1, r0
+ mov r8, r1
+ movs r4, 0
+ movs r6, 0
+ movs r5, 0x1
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r6, r0
+ bne _080BC6DC
+ movs r4, 0x1
+ b _080BC706
+ .align 2, 0
+_080BC6D8: .4byte gTasks + 0x8
+_080BC6DC:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC6F0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BC6F0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bhi _080BC706
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r4, r0
+ bne _080BC6DC
+ adds r4, r5, 0
+_080BC706:
+ adds r5, r4, 0
+ cmp r5, 0x13
+ bhi _080BC75A
+ ldr r7, _080BC7A0 @ =gStringVar1
+_080BC70E:
+ adds r0, r5, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC750
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_80BC190
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r7, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x8
+ beq _080BC75A
+_080BC750:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BC70E
+_080BC75A:
+ cmp r6, 0x7
+ bhi _080BC7A8
+ lsls r3, r6, 1
+ adds r4, r3, 0x2
+ lsls r4, 24
+ lsrs r4, 24
+ adds r3, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x12
+ adds r1, r4, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080BC7A4 @ =gUnknownText_Exit
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl MenuPrint
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r6, 0x7
+ beq _080BC7B2
+ lsls r1, r6, 25
+ movs r0, 0x80
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0x12
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ b _080BC7B2
+ .align 2, 0
+_080BC7A0: .4byte gStringVar1
+_080BC7A4: .4byte gUnknownText_Exit
+_080BC7A8:
+ movs r0, 0x1
+ movs r1, 0xBC
+ movs r2, 0x98
+ bl sub_80F953C
+_080BC7B2:
+ mov r1, r8
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080BC7C4
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ b _080BC7CE
+_080BC7C4:
+ movs r0, 0
+ movs r1, 0xBC
+ movs r2, 0x8
+ bl sub_80F953C
+_080BC7CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC6B0
+
+ thumb_func_start sub_80BC7D8
+sub_80BC7D8: @ 80BC7D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BC820 @ =gTasks + 0x8
+ adds r4, r0
+ movs r0, 0x11
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldrb r3, [r4, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC820: .4byte gTasks + 0x8
+ thumb_func_end sub_80BC7D8
+
+ thumb_func_start sub_80BC824
+sub_80BC824: @ 80BC824
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080BC858 @ =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r2, _080BC85C @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC874
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080BC860
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _080BC8B6
+ .align 2, 0
+_080BC858: .4byte gTasks + 0x8
+_080BC85C: .4byte gMain
+_080BC860:
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ b _080BC8A4
+_080BC874:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC8C2
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080BC8AE
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+_080BC8A4:
+ strh r0, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_80BC6B0
+ b _080BC940
+_080BC8AE:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_080BC8B6:
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x2]
+ b _080BC940
+_080BC8C2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC91C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080BC8FC
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_80BCC54
+ b _080BC940
+_080BC8FC:
+ bl sub_8072DEC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BC948
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl sub_80BC980
+ b _080BC940
+_080BC91C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BC940
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_80BCC54
+_080BC940:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC824
+
+ thumb_func_start sub_80BC948
+sub_80BC948: @ 80BC948
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0x1
+_080BC952:
+ adds r0, r4, 0
+ bl sub_80BC268
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BC96E
+ cmp r6, r5
+ bne _080BC968
+ adds r0, r4, 0
+ b _080BC97A
+_080BC968:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080BC96E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _080BC952
+ movs r0, 0
+_080BC97A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BC948
+
+ thumb_func_start sub_80BC980
+sub_80BC980: @ 80BC980
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r3, _080BC9D8 @ =gUnknown_083D13D4
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x2
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x2
+ bl InitMenu
+ ldr r1, _080BC9DC @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BC9E0 @ =sub_80BC9E4
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BC9D8: .4byte gUnknown_083D13D4
+_080BC9DC: .4byte gTasks
+_080BC9E0: .4byte sub_80BC9E4
+ thumb_func_end sub_80BC980
+
+ thumb_func_start sub_80BC9E4
+sub_80BC9E4: @ 80BC9E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _080BCA14 @ =gMain
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA18
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080BCA7C
+ .align 2, 0
+_080BCA14: .4byte gMain
+_080BCA18:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA3A
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080BCA7C
+_080BCA3A:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _080BCA64 @ =gUnknown_083D13D4
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 21
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _080BCA7C
+ .align 2, 0
+_080BCA64: .4byte gUnknown_083D13D4
+_080BCA68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BCA7C
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_80BCBF8
+_080BCA7C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BC9E4
+
+ thumb_func_start sub_80BCA84
+sub_80BCA84: @ 80BCA84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, _080BCAD8 @ =gTasks + 0x8
+ adds r4, r0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _080BCADC @ =gStringVar1
+ ldrb r1, [r4, 0x8]
+ bl sub_80BC190
+ ldr r4, _080BCAE0 @ =gStringVar4
+ ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _080BCAE8 @ =sub_80BCAEC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCAD8: .4byte gTasks + 0x8
+_080BCADC: .4byte gStringVar1
+_080BCAE0: .4byte gStringVar4
+_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry
+_080BCAE8: .4byte sub_80BCAEC
+ thumb_func_end sub_80BCA84
+
+ thumb_func_start sub_80BCAEC
+sub_80BCAEC: @ 80BCAEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _080BCB0C @ =gUnknown_083D13E4
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB0C: .4byte gUnknown_083D13E4
+ thumb_func_end sub_80BCAEC
+
+ thumb_func_start sub_80BCB10
+sub_80BCB10: @ 80BCB10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _080BCB80 @ =gTasks + 0x8
+ adds r4, r6, r7
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r2, _080BCB84 @ =gSaveBlock1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r2
+ ldr r1, _080BCB88 @ =0x00001a09
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ ldrh r1, [r4, 0x4]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _080BCB5C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x4]
+_080BCB5C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bgt _080BCB6A
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+_080BCB6A:
+ adds r0, r5, 0
+ bl sub_80BC7D8
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _080BCB8C @ =sub_80BC824
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCB80: .4byte gTasks + 0x8
+_080BCB84: .4byte gSaveBlock1
+_080BCB88: .4byte 0x00001a09
+_080BCB8C: .4byte sub_80BC824
+ thumb_func_end sub_80BCB10
+
+ thumb_func_start sub_80BCB90
+sub_80BCB90: @ 80BCB90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted
+ ldr r2, _080BCBBC @ =sub_80BCB10
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBB8: .4byte gOtherText_RegisteredDataDeleted
+_080BCBBC: .4byte sub_80BCB10
+ thumb_func_end sub_80BCB90
+
+ thumb_func_start sub_80BCBC0
+sub_80BCBC0: @ 80BCBC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80BC7D8
+ ldr r1, _080BCBF0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BCBF4 @ =sub_80BC824
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCBF0: .4byte gTasks
+_080BCBF4: .4byte sub_80BC824
+ thumb_func_end sub_80BCBC0
+
+ thumb_func_start sub_80BCBF8
+sub_80BCBF8: @ 80BCBF8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, _080BCC4C @ =gTasks + 0x8
+ adds r0, r4, r5
+ ldrb r3, [r0, 0x6]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r0, 0x2]
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x12
+ movs r2, 0x2
+ bl InitMenu
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x5
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ subs r5, 0x8
+ adds r4, r5
+ ldr r0, _080BCC50 @ =sub_80BC824
+ str r0, [r4]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCC4C: .4byte gTasks + 0x8
+_080BCC50: .4byte sub_80BC824
+ thumb_func_end sub_80BCBF8
+
+ thumb_func_start sub_80BCC54
+sub_80BCC54: @ 80BCC54
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080BCC84 @ =0x00004054
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ cmp r4, 0
+ bne _080BCC8C
+ ldr r0, _080BCC88 @ =gUnknown_0815F399
+ bl ScriptContext1_SetupScript
+ b _080BCC92
+ .align 2, 0
+_080BCC84: .4byte 0x00004054
+_080BCC88: .4byte gUnknown_0815F399
+_080BCC8C:
+ ldr r0, _080BCCA0 @ =gUnknown_0815F49A
+ bl ScriptContext1_SetupScript
+_080BCC92:
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCCA0: .4byte gUnknown_0815F49A
+ thumb_func_end sub_80BCC54
+
+ thumb_func_start sub_80BCCA4
+sub_80BCCA4: @ 80BCCA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BCCDC @ =gSaveBlock1
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r1
+ ldr r1, _080BCCE0 @ =0x00001a11
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ movs r1, 0x5
+ bl __umodsi3
+ ldr r1, _080BCCE4 @ =0x00001a09
+ adds r4, r1
+ ldrb r2, [r4]
+ lsls r2, 27
+ lsrs r2, 31
+ lsls r1, r2, 2
+ adds r1, r2
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCCDC: .4byte gSaveBlock1
+_080BCCE0: .4byte 0x00001a11
+_080BCCE4: .4byte 0x00001a09
+ thumb_func_end sub_80BCCA4
+
+ thumb_func_start sub_80BCCE8
+sub_80BCCE8: @ 80BCCE8
+ push {lr}
+ ldr r0, _080BCD08 @ =0x00004054
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ bne _080BCD10
+ ldr r0, _080BCD0C @ =UnknownString_81A1BB2
+ b _080BCD72
+ .align 2, 0
+_080BCD08: .4byte 0x00004054
+_080BCD0C: .4byte UnknownString_81A1BB2
+_080BCD10:
+ cmp r0, 0x1
+ bne _080BCD1C
+ ldr r0, _080BCD18 @ =UnknownString_81A1F67
+ b _080BCD72
+ .align 2, 0
+_080BCD18: .4byte UnknownString_81A1F67
+_080BCD1C:
+ cmp r0, 0x2
+ bne _080BCD28
+ ldr r0, _080BCD24 @ =UnknownString_81A2254
+ b _080BCD72
+ .align 2, 0
+_080BCD24: .4byte UnknownString_81A2254
+_080BCD28:
+ cmp r0, 0x3
+ bne _080BCD34
+ ldr r0, _080BCD30 @ =UnknownString_81A25C3
+ b _080BCD72
+ .align 2, 0
+_080BCD30: .4byte UnknownString_81A25C3
+_080BCD34:
+ cmp r0, 0x4
+ bne _080BCD40
+ ldr r0, _080BCD3C @ =UnknownString_81A2925
+ b _080BCD72
+ .align 2, 0
+_080BCD3C: .4byte UnknownString_81A2925
+_080BCD40:
+ cmp r0, 0x5
+ bne _080BCD4C
+ ldr r0, _080BCD48 @ =UnknownString_81A1D74
+ b _080BCD72
+ .align 2, 0
+_080BCD48: .4byte UnknownString_81A1D74
+_080BCD4C:
+ cmp r0, 0x6
+ bne _080BCD58
+ ldr r0, _080BCD54 @ =UnknownString_81A20C9
+ b _080BCD72
+ .align 2, 0
+_080BCD54: .4byte UnknownString_81A20C9
+_080BCD58:
+ cmp r0, 0x7
+ bne _080BCD64
+ ldr r0, _080BCD60 @ =UnknownString_81A2439
+ b _080BCD72
+ .align 2, 0
+_080BCD60: .4byte UnknownString_81A2439
+_080BCD64:
+ cmp r1, 0x8
+ beq _080BCD70
+ ldr r0, _080BCD6C @ =UnknownString_81A2B2A
+ b _080BCD72
+ .align 2, 0
+_080BCD6C: .4byte UnknownString_81A2B2A
+_080BCD70:
+ ldr r0, _080BCD78 @ =UnknownString_81A2754
+_080BCD72:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BCD78: .4byte UnknownString_81A2754
+ thumb_func_end sub_80BCCE8
+
+ thumb_func_start unref_sub_80BCD7C
+unref_sub_80BCD7C: @ 80BCD7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ ldr r7, _080BCDFC @ =gSaveBlock1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 5
+ ldr r0, _080BCE00 @ =0x00001a3c
+ adds r0, r7
+ mov r10, r0
+ ldr r1, _080BCE04 @ =0x00001a54
+ adds r1, r7
+ mov r9, r1
+ ldr r2, _080BCE08 @ =0x00001a84
+ adds r2, r7
+ mov r8, r2
+ ldr r0, _080BCE0C @ =0x00000115
+ mov r12, r0
+_080BCDAA:
+ lsls r4, r5, 2
+ adds r0, r4, r6
+ add r0, r10
+ adds r3, r5, 0x1
+ str r3, [r0]
+ lsls r0, r5, 3
+ adds r0, r6
+ add r0, r9
+ strh r3, [r0]
+ lsls r1, r5, 1
+ adds r1, r6
+ mov r2, r8
+ adds r0, r1, r2
+ mov r2, r12
+ strh r2, [r0]
+ ldr r2, _080BCE10 @ =0x00001a90
+ adds r0, r7, r2
+ adds r1, r0
+ strh r3, [r1]
+ adds r2, r5, r6
+ ldr r1, _080BCE14 @ =0x00001a9c
+ adds r0, r7, r1
+ adds r0, r2, r0
+ adds r1, r5, 0x5
+ strb r1, [r0]
+ ldr r1, _080BCE18 @ =0x00001aa2
+ adds r0, r7, r1
+ adds r2, r0
+ adds r4, r5
+ strb r4, [r2]
+ lsls r3, 16
+ lsrs r5, r3, 16
+ cmp r5, 0
+ beq _080BCDAA
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCDFC: .4byte gSaveBlock1
+_080BCE00: .4byte 0x00001a3c
+_080BCE04: .4byte 0x00001a54
+_080BCE08: .4byte 0x00001a84
+_080BCE0C: .4byte 0x00000115
+_080BCE10: .4byte 0x00001a90
+_080BCE14: .4byte 0x00001a9c
+_080BCE18: .4byte 0x00001aa2
+ thumb_func_end unref_sub_80BCD7C
+
+ thumb_func_start sub_80BCE1C
+sub_80BCE1C: @ 80BCE1C
+ push {r4,lr}
+ ldr r0, _080BCE44 @ =0x00004054
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x1
+ bl sub_810FB10
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08
+ adds r0, r1
+ bl CreateSecretBaseEnemyParty
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE44: .4byte 0x00004054
+_080BCE48: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BCE1C
+
+ thumb_func_start sub_80BCE4C
+sub_80BCE4C: @ 80BCE4C
+ push {lr}
+ ldr r0, _080BCE80 @ =0x00004054
+ bl VarGet
+ ldr r2, _080BCE84 @ =gSaveBlock1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 5
+ adds r1, r2
+ ldr r0, _080BCE88 @ =gScriptResult
+ ldrb r0, [r0]
+ ldr r2, _080BCE8C @ =0x00001a09
+ adds r1, r2
+ movs r2, 0x1
+ ands r2, r0
+ lsls r2, 5
+ ldrb r3, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCE80: .4byte 0x00004054
+_080BCE84: .4byte gSaveBlock1
+_080BCE88: .4byte gScriptResult
+_080BCE8C: .4byte 0x00001a09
+ thumb_func_end sub_80BCE4C
+
+ thumb_func_start sub_80BCE90
+sub_80BCE90: @ 80BCE90
+ push {r4-r7,lr}
+ ldr r0, _080BCF04 @ =0x00004054
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080BCF08 @ =0x000008c2
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BCED4
+ movs r3, 0
+ ldr r7, _080BCF0C @ =gSaveBlock1
+ ldr r4, _080BCF10 @ =0x00001a09
+ movs r6, 0x21
+ negs r6, r6
+_080BCEB2:
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 5
+ adds r1, r7
+ adds r1, r4
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x13
+ bls _080BCEB2
+ ldr r0, _080BCF08 @ =0x000008c2
+ bl FlagSet
+_080BCED4:
+ ldr r4, _080BCF14 @ =gUnknown_0202E8CC
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80BCCA4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r2, _080BCF18 @ =gScriptResult
+ ldr r1, _080BCF0C @ =gSaveBlock1
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, _080BCF10 @ =0x00001a09
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 31
+ strh r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BCF04: .4byte 0x00004054
+_080BCF08: .4byte 0x000008c2
+_080BCF0C: .4byte gSaveBlock1
+_080BCF10: .4byte 0x00001a09
+_080BCF14: .4byte gUnknown_0202E8CC
+_080BCF18: .4byte gScriptResult
+ thumb_func_end sub_80BCE90
+
+ thumb_func_start sub_80BCF1C
+sub_80BCF1C: @ 80BCF1C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080BCF40 @ =gTasks + 0x8
+ adds r4, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080BCF54
+ cmp r0, 0x1
+ bgt _080BCF44
+ cmp r0, 0
+ beq _080BCF4A
+ b _080BD02C
+ .align 2, 0
+_080BCF40: .4byte gTasks + 0x8
+_080BCF44:
+ cmp r0, 0x2
+ beq _080BD01C
+ b _080BD02C
+_080BCF4A:
+ adds r0, r4, 0x4
+ adds r1, r4, 0x6
+ bl PlayerGetDestCoords
+ b _080BD028
+_080BCF54:
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _080BCF7C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _080BD02C
+_080BCF7C:
+ strh r2, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8057350
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFA8
+ bl sub_80C6C90
+ b _080BD02C
+_080BCFA8:
+ adds r0, r4, 0
+ bl sub_8057314
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFD8
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, sp
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ movs r3, 0
+ ldrsh r2, [r5, r3]
+ bl sub_80C68A4
+ b _080BD02C
+_080BCFD8:
+ adds r0, r4, 0
+ bl sub_8057328
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BCFF6
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl sub_80C6A54
+ b _080BD02C
+_080BCFF6:
+ adds r0, r4, 0
+ bl sub_805733C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD02C
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80C6C30
+ b _080BD02C
+_080BD01C:
+ ldrb r0, [r4, 0x8]
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD02C
+_080BD028:
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+_080BD02C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BCF1C
+
+ thumb_func_start sub_80BD034
+sub_80BD034: @ 80BD034
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BD064 @ =gSaveBlock1
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 5
+ adds r4, r2
+ ldr r2, _080BD068 @ =0x00001a08
+ adds r0, r4, r2
+ movs r2, 0xA0
+ bl memcpy
+ ldr r0, _080BD06C @ =0x00001a09
+ adds r4, r0
+ ldrb r1, [r4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD064: .4byte gSaveBlock1
+_080BD068: .4byte 0x00001a08
+_080BD06C: .4byte 0x00001a09
+ thumb_func_end sub_80BD034
+
+ thumb_func_start sub_80BD070
+sub_80BD070: @ 80BD070
+ push {r4,lr}
+ movs r2, 0
+ adds r4, r0, 0
+ adds r4, 0x9
+ adds r3, r1, 0
+ adds r3, 0x9
+_080BD07C:
+ adds r0, r4, r2
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD08C
+ movs r0, 0
+ b _080BD098
+_080BD08C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD07C
+ movs r0, 0x1
+_080BD098:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD070
+
+ thumb_func_start sub_80BD0A0
+sub_80BD0A0: @ 80BD0A0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r3, 0
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ beq _080BD0E2
+_080BD0B4:
+ adds r2, r6, 0x2
+ adds r0, r2, r3
+ adds r4, r5, 0x2
+ adds r1, r4, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080BD0C8
+ movs r0, 0
+ b _080BD0E4
+_080BD0C8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x6
+ bhi _080BD0E2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD0B4
+_080BD0E2:
+ movs r0, 0x1
+_080BD0E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0A0
+
+ thumb_func_start sub_80BD0EC
+sub_80BD0EC: @ 80BD0EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldrb r2, [r4, 0x1]
+ movs r0, 0x10
+ adds r1, r0, 0
+ ands r1, r2
+ ldrb r2, [r5, 0x1]
+ ands r0, r2
+ cmp r1, r0
+ bne _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD070
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD0A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD122
+ movs r0, 0x1
+ b _080BD124
+_080BD122:
+ movs r0, 0
+_080BD124:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD0EC
+
+ thumb_func_start sub_80BD12C
+sub_80BD12C: @ 80BD12C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r4, _080BD150 @ =gSaveBlock1
+ ldr r3, _080BD154 @ =0x00001a08
+_080BD138:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BD158
+ adds r0, r1, 0
+ b _080BD168
+ .align 2, 0
+_080BD150: .4byte gSaveBlock1
+_080BD154: .4byte 0x00001a08
+_080BD158:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD138
+ movs r0, 0x1
+ negs r0, r0
+_080BD168:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD12C
+
+ thumb_func_start sub_80BD170
+sub_80BD170: @ 80BD170
+ push {r4,lr}
+ movs r2, 0x1
+ ldr r4, _080BD194 @ =gSaveBlock1
+ ldr r3, _080BD198 @ =0x00001a08
+_080BD178:
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD19C
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _080BD1AA
+ .align 2, 0
+_080BD194: .4byte gSaveBlock1
+_080BD198: .4byte 0x00001a08
+_080BD19C:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD178
+ movs r0, 0
+_080BD1AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD170
+
+ thumb_func_start sub_80BD1B0
+sub_80BD1B0: @ 80BD1B0
+ push {r4,lr}
+ movs r3, 0x1
+ ldr r4, _080BD1DC @ =gSaveBlock1
+_080BD1B6:
+ lsls r2, r3, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 5
+ adds r0, r4
+ ldr r1, _080BD1E0 @ =0x00001a09
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r0, r1, 6
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _080BD1E4
+ lsls r0, r3, 24
+ lsrs r0, 24
+ b _080BD1F4
+ .align 2, 0
+_080BD1DC: .4byte gSaveBlock1
+_080BD1E0: .4byte 0x00001a09
+_080BD1E4:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r2, r1
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080BD1B6
+ movs r0, 0
+_080BD1F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1B0
+
+ thumb_func_start sub_80BD1FC
+sub_80BD1FC: @ 80BD1FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD278
+ ldrb r0, [r5]
+ bl sub_80BD12C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ beq _080BD278
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _080BD254
+ ldr r0, _080BD24C @ =gSaveBlock1
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 5
+ adds r1, r0
+ ldr r0, _080BD250 @ =0x00001a09
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ beq _080BD278
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD246
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080BD278
+_080BD246:
+ lsls r4, 24
+ lsrs r4, 24
+ b _080BD26C
+ .align 2, 0
+_080BD24C: .4byte gSaveBlock1
+_080BD250: .4byte 0x00001a09
+_080BD254:
+ bl sub_80BD170
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BD26C
+ bl sub_80BD1B0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080BD278
+_080BD26C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80BD034
+ adds r0, r4, 0
+ b _080BD27A
+_080BD278:
+ movs r0, 0
+_080BD27A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD1FC
+
+ thumb_func_start sub_80BD280
+sub_80BD280: @ 80BD280
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xA0
+ ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08
+ mov r8, r0
+ movs r2, 0x1
+_080BD290:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r9, r1
+ cmp r5, 0x13
+ bhi _080BD30C
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 5
+ mov r1, r8
+ adds r6, r0, r1
+ movs r7, 0xC0
+_080BD2A8:
+ ldrb r0, [r6, 0x1]
+ adds r3, r7, 0
+ ands r3, r0
+ cmp r3, 0
+ bne _080BD2C6
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x40
+ beq _080BD2DE
+_080BD2C6:
+ cmp r3, 0x80
+ bne _080BD302
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 5
+ add r0, r8
+ ldrb r1, [r0, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0x80
+ beq _080BD302
+_080BD2DE:
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r4, r5
+ lsls r4, 5
+ add r4, r8
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0xA0
+ bl memcpy
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0xA0
+ bl memcpy
+_080BD302:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD2A8
+_080BD30C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bls _080BD290
+ add sp, 0xA0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD324: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD280
+
+ thumb_func_start sub_80BD328
+sub_80BD328: @ 80BD328
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r4, 0x1
+_080BD332:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 5
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x1]
+ lsrs r0, 6
+ cmp r0, r5
+ bne _080BD348
+ adds r0, r1, 0
+ bl sub_80BD1FC
+_080BD348:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _080BD332
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD328
+
+ thumb_func_start sub_80BD358
+sub_80BD358: @ 80BD358
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080BD372
+ ldrb r0, [r5, 0x1]
+ lsls r0, 27
+ ldr r1, _080BD378 @ =gSaveBlock2
+ lsrs r0, 31
+ adds r4, r1, 0
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ beq _080BD37C
+_080BD372:
+ movs r0, 0
+ b _080BD3D4
+ .align 2, 0
+_080BD378: .4byte gSaveBlock2
+_080BD37C:
+ movs r2, 0
+ adds r3, r5, 0
+ adds r3, 0x9
+ adds r6, r4, 0
+ adds r6, 0xA
+_080BD386:
+ adds r0, r3, r2
+ adds r1, r2, r6
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080BD386
+ movs r2, 0
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080BD3D2
+_080BD3AA:
+ adds r3, r5, 0x2
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BD372
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x6
+ bhi _080BD3D2
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BD3AA
+_080BD3D2:
+ movs r0, 0x1
+_080BD3D4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD358
+
+ thumb_func_start sub_80BD3DC
+sub_80BD3DC: @ 80BD3DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ mov r9, r1
+ mov r8, r2
+ movs r5, 0
+ movs r6, 0
+_080BD3F0:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD41A
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r10
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD41A
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ orrs r5, r0
+_080BD41A:
+ movs r7, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD448
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD448
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD448:
+ movs r7, 0x4
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ bne _080BD476
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ bl sub_80BD358
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD476
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ orrs r5, r7
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080BD476:
+ cmp r5, 0x7
+ beq _080BD484
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x13
+ bls _080BD3F0
+_080BD484:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD3DC
+
+ thumb_func_start sub_80BD494
+sub_80BD494: @ 80BD494
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r5, 0
+_080BD4A4:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD4FE
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80BD0EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BD4FE
+ cmp r7, 0
+ bne _080BD4D0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4D0:
+ ldrh r0, [r6, 0xE]
+ ldrh r3, [r4, 0xE]
+ cmp r0, r3
+ bls _080BD4E0
+ adds r0, r4, 0
+ bl sub_80BB4AC
+ b _080BD508
+_080BD4E0:
+ ldrb r0, [r6, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x10
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ adds r0, r6, 0
+ bl sub_80BB4AC
+ movs r0, 0x1
+ b _080BD50A
+_080BD4FE:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD4A4
+_080BD508:
+ movs r0, 0
+_080BD50A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD494
+
+ thumb_func_start sub_80BD514
+sub_80BD514: @ 80BD514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r6, r3, 0
+ movs r5, 0x1
+_080BD526:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ mov r1, r9
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD578
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _080BD54E
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+_080BD54E:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD578
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD578:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD526
+ movs r5, 0
+_080BD584:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 5
+ adds r4, r0, r7
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _080BD5B8
+ ldrb r0, [r4, 0x1]
+ movs r2, 0x21
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ mov r1, r8
+ adds r2, r5, 0
+ bl sub_80BD494
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD5B8
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5B8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD584
+ movs r5, 0
+ movs r0, 0x21
+ negs r0, r0
+ adds r7, r0, 0
+_080BD5CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r4, r0, 5
+ mov r2, r8
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5EA
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80BD494
+_080BD5EA:
+ adds r1, r4, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080BD5F8
+ ldrb r0, [r1, 0x1]
+ ands r0, r7
+ strb r0, [r1, 0x1]
+_080BD5F8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _080BD5CA
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BD514
+
+ thumb_func_start sub_80BD610
+sub_80BD610: @ 80BD610
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ bl sub_80BD3DC
+ ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_80BD514
+ adds r0, r4, 0
+ bl sub_80BD1FC
+ adds r0, r5, 0
+ bl sub_80BD1FC
+ adds r0, r6, 0
+ bl sub_80BD1FC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80BD328
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80BD328
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_80BD328
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD670: .4byte gSaveBlock1 + 0x1A08
+ thumb_func_end sub_80BD610
+
+ thumb_func_start sub_80BD674
+sub_80BD674: @ 80BD674
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0x60
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BD68C
+ b _080BD790
+_080BD68C:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080BD69E
+ cmp r0, 0x3
+ beq _080BD6BA
+ b _080BD6C8
+_080BD69E:
+ lsls r4, r5, 1
+ adds r0, r6, r4
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ adds r4, r5
+ adds r4, r6, r4
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ b _080BD6C8
+_080BD6BA:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+_080BD6C8:
+ cmp r7, 0x1
+ beq _080BD6F0
+ cmp r7, 0x1
+ bgt _080BD6D6
+ cmp r7, 0
+ beq _080BD6E0
+ b _080BD71C
+_080BD6D6:
+ cmp r7, 0x2
+ beq _080BD700
+ cmp r7, 0x3
+ beq _080BD710
+ b _080BD71C
+_080BD6E0:
+ adds r0, r6, r5
+ lsls r2, r5, 1
+ adds r1, r6, r2
+ adds r2, r5
+ adds r2, r6, r2
+ bl sub_80BD610
+ b _080BD71C
+_080BD6F0:
+ lsls r1, r5, 1
+ adds r0, r6, r1
+ adds r1, r5
+ adds r1, r6, r1
+ adds r2, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD700:
+ lsls r0, r5, 1
+ adds r0, r5
+ adds r0, r6, r0
+ adds r2, r6, r5
+ adds r1, r6, 0
+ bl sub_80BD610
+ b _080BD71C
+_080BD710:
+ adds r1, r6, r5
+ lsls r2, r5, 1
+ adds r2, r6, r2
+ adds r0, r6, 0
+ bl sub_80BD610
+_080BD71C:
+ movs r3, 0x1
+ ldr r6, _080BD798 @ =gSaveBlock1
+ movs r5, 0x10
+ negs r5, r5
+ ldr r4, _080BD79C @ =0x00001a09
+_080BD726:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r6
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ cmp r0, 0x1
+ bne _080BD746
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ ands r0, r5
+ strb r0, [r2]
+_080BD746:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD726
+ bl sub_80BD280
+ movs r3, 0x1
+ ldr r4, _080BD798 @ =gSaveBlock1
+ ldr r6, _080BD79C @ =0x00001a09
+ adds r7, r4, 0
+ movs r5, 0x3F
+_080BD75E:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r4
+ adds r2, r0, r6
+ ldrb r1, [r2]
+ lsrs r0, r1, 6
+ cmp r0, 0x2
+ bne _080BD776
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2]
+_080BD776:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x13
+ bls _080BD75E
+ ldr r0, _080BD7A0 @ =0x00001a16
+ adds r2, r7, r0
+ ldrh r1, [r2]
+ ldr r0, _080BD7A4 @ =0x0000ffff
+ cmp r1, r0
+ beq _080BD790
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_080BD790:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD798: .4byte gSaveBlock1
+_080BD79C: .4byte 0x00001a09
+_080BD7A0: .4byte 0x00001a16
+_080BD7A4: .4byte 0x0000ffff
+ thumb_func_end sub_80BD674
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
new file mode 100644
index 000000000..48aca5d96
--- /dev/null
+++ b/asm/slot_machine.s
@@ -0,0 +1,10469 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81018A0
+sub_81018A0: @ 81018A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81019B0
+ ldr r0, _081018B4 @ =sub_81018B8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081018B4: .4byte sub_81018B8
+ thumb_func_end sub_81018A0
+
+ thumb_func_start sub_81018B8
+sub_81018B8: @ 81018B8
+ push {lr}
+ ldr r0, _081018D0 @ =gMain
+ ldr r1, _081018D4 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _0810194A
+ lsls r0, 2
+ ldr r1, _081018D8 @ =_081018DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081018D0: .4byte gMain
+_081018D4: .4byte 0x0000043c
+_081018D8: .4byte _081018DC
+ .align 2, 0
+_081018DC:
+ .4byte _081018F8
+ .4byte _08101902
+ .4byte _08101908
+ .4byte _08101912
+ .4byte _08101918
+ .4byte _0810191E
+ .4byte _08101938
+_081018F8:
+ bl sub_8101A28
+ bl sub_8101BA4
+ b _08101922
+_08101902:
+ bl sub_8101A8C
+ b _08101922
+_08101908:
+ bl sub_8101AE0
+ bl sub_8101B04
+ b _08101922
+_08101912:
+ bl sub_8101C84
+ b _08101922
+_08101918:
+ bl sub_8101CA0
+ b _08101922
+_0810191E:
+ bl sub_8101CC0
+_08101922:
+ ldr r1, _08101930 @ =gMain
+ ldr r0, _08101934 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810194A
+ .align 2, 0
+_08101930: .4byte gMain
+_08101934: .4byte 0x0000043c
+_08101938:
+ bl sub_8101CD4
+ bl sub_8101CEC
+ bl sub_8101A44
+ ldr r0, _08101950 @ =sub_8101954
+ bl SetMainCallback2
+_0810194A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101950: .4byte sub_8101954
+ thumb_func_end sub_81018B8
+
+ thumb_func_start sub_8101954
+sub_8101954: @ 8101954
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101954
+
+ thumb_func_start sub_810196C
+sub_810196C: @ 810196C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _081019A8 @ =REG_WIN0H
+ ldr r2, _081019AC @ =0x02000000
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ adds r0, r2, 0
+ adds r0, 0x5C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r0, r2, 0
+ adds r0, 0x5E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019A8: .4byte REG_WIN0H
+_081019AC: .4byte 0x02000000
+ thumb_func_end sub_810196C
+
+ thumb_func_start sub_81019B0
+sub_81019B0: @ 81019B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081019E4 @ =nullsub_67
+ movs r1, 0xFF
+ bl CreateTask
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081019E8 @ =gTasks
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ adds r0, 0xA
+ adds r1, r5, 0
+ bl StoreWordInTwoHalfwords
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019E4: .4byte nullsub_67
+_081019E8: .4byte gTasks
+ thumb_func_end sub_81019B0
+
+ thumb_func_start sub_81019EC
+sub_81019EC: @ 81019EC
+ push {lr}
+ ldr r0, _08101A18 @ =nullsub_67
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ ldr r0, _08101A1C @ =gTasks
+ adds r2, r0
+ ldr r1, _08101A20 @ =0x02000000
+ ldrh r0, [r2, 0x8]
+ strb r0, [r1, 0x1]
+ adds r2, 0xA
+ adds r1, 0x64
+ adds r0, r2, 0
+ bl LoadWordFromTwoHalfwords
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A18: .4byte nullsub_67
+_08101A1C: .4byte gTasks
+_08101A20: .4byte 0x02000000
+ thumb_func_end sub_81019EC
+
+ thumb_func_start nullsub_67
+nullsub_67: @ 8101A24
+ bx lr
+ thumb_func_end nullsub_67
+
+ thumb_func_start sub_8101A28
+sub_8101A28: @ 8101A28
+ push {lr}
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101A28
+
+ thumb_func_start sub_8101A44
+sub_8101A44: @ 8101A44
+ push {r4,lr}
+ ldr r0, _08101A7C @ =sub_810196C
+ bl SetVBlankCallback
+ ldr r3, _08101A80 @ =0x04000208
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08101A84 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08101A88 @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101A7C: .4byte sub_810196C
+_08101A80: .4byte 0x04000208
+_08101A84: .4byte 0x04000200
+_08101A88: .4byte REG_DISPSTAT
+ thumb_func_end sub_8101A44
+
+ thumb_func_start sub_8101A8C
+sub_8101A8C: @ 8101A8C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0x80
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08101AD8 @ =0x040000d4
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08101ADC @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08101AAA:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _08101AAA
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101AD8: .4byte 0x040000d4
+_08101ADC: .4byte 0x81000800
+ thumb_func_end sub_8101A8C
+
+ thumb_func_start sub_8101AE0
+sub_8101AE0: @ 8101AE0
+ sub sp, 0x4
+ movs r2, 0xE0
+ lsls r2, 19
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08101AFC @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _08101B00 @ =0x81000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08101AFC: .4byte 0x040000d4
+_08101B00: .4byte 0x81000200
+ thumb_func_end sub_8101AE0
+
+ thumb_func_start sub_8101B04
+sub_8101B04: @ 8101B04
+ push {r4,r5,lr}
+ ldr r5, _08101B70 @ =REG_BG0CNT
+ movs r1, 0
+ strh r1, [r5]
+ ldr r2, _08101B74 @ =REG_BG1CNT
+ strh r1, [r2]
+ ldr r3, _08101B78 @ =REG_BG2CNT
+ strh r1, [r3]
+ ldr r4, _08101B7C @ =REG_BG3CNT
+ strh r1, [r4]
+ ldr r0, _08101B80 @ =REG_BG0HOFS
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B84 @ =0x00001f08
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r1, _08101B88 @ =0x00001c01
+ adds r0, r1, 0
+ strh r0, [r2]
+ ldr r2, _08101B8C @ =0x00001d02
+ adds r0, r2, 0
+ strh r0, [r3]
+ ldr r1, _08101B90 @ =0x00001e02
+ adds r0, r1, 0
+ strh r0, [r4]
+ ldr r0, _08101B94 @ =REG_WININ
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08101B98 @ =REG_BLDCNT
+ ldr r2, _08101B9C @ =0x00001048
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08101BA0 @ =0x00000809
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B70: .4byte REG_BG0CNT
+_08101B74: .4byte REG_BG1CNT
+_08101B78: .4byte REG_BG2CNT
+_08101B7C: .4byte REG_BG3CNT
+_08101B80: .4byte REG_BG0HOFS
+_08101B84: .4byte 0x00001f08
+_08101B88: .4byte 0x00001c01
+_08101B8C: .4byte 0x00001d02
+_08101B90: .4byte 0x00001e02
+_08101B94: .4byte REG_WININ
+_08101B98: .4byte REG_BLDCNT
+_08101B9C: .4byte 0x00001048
+_08101BA0: .4byte 0x00000809
+ thumb_func_end sub_8101B04
+
+ thumb_func_start sub_8101BA4
+sub_8101BA4: @ 8101BA4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_81019EC
+ ldr r5, _08101C74 @ =0x02000000
+ movs r4, 0
+ strb r4, [r5]
+ strb r4, [r5, 0x2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ strb r1, [r5, 0x3]
+ strb r4, [r5, 0x4]
+ movs r0, 0
+ strh r4, [r5, 0x8]
+ strb r0, [r5, 0xA]
+ strb r0, [r5, 0xB]
+ ldr r0, _08101C78 @ =gSaveBlock1
+ ldr r1, _08101C7C @ =0x00000494
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0xC]
+ strh r4, [r5, 0xE]
+ strh r4, [r5, 0x10]
+ strh r4, [r5, 0x12]
+ strh r4, [r5, 0x18]
+ movs r0, 0x8
+ strh r0, [r5, 0x1A]
+ adds r1, r5, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl GetCurrentMapMusic
+ adds r1, r5, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r7, 0
+ adds r6, r5, 0
+ ldr r2, _08101C80 @ =gUnknown_083ECCF8
+ mov r9, r2
+ movs r0, 0x1C
+ adds r0, r6
+ mov r8, r0
+_08101C14:
+ lsls r5, r7, 1
+ adds r0, r6, 0
+ adds r0, 0x22
+ adds r0, r5, r0
+ movs r1, 0
+ strh r1, [r0]
+ adds r4, r6, 0
+ adds r4, 0x28
+ adds r4, r5, r4
+ ldrb r0, [r6, 0x3]
+ lsls r0, 1
+ lsls r1, r7, 2
+ adds r0, r1
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x15
+ bl __modsi3
+ strh r0, [r4]
+ add r5, r8
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ movs r2, 0xFC
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r5]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r1, r2, 0
+ bl __modsi3
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08101C14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C74: .4byte 0x02000000
+_08101C78: .4byte gSaveBlock1
+_08101C7C: .4byte 0x00000494
+_08101C80: .4byte gUnknown_083ECCF8
+ thumb_func_end sub_8101BA4
+
+ thumb_func_start sub_8101C84
+sub_8101C84: @ 8101C84
+ push {r4,lr}
+ ldr r4, _08101C9C @ =gWindowConfig_81E7128
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C9C: .4byte gWindowConfig_81E7128
+ thumb_func_end sub_8101C84
+
+ thumb_func_start sub_8101CA0
+sub_8101CA0: @ 8101CA0
+ push {lr}
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ ldr r1, _08101CBC @ =gOamLimit
+ movs r0, 0x80
+ strb r0, [r1]
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101CBC: .4byte gOamLimit
+ thumb_func_end sub_8101CA0
+
+ thumb_func_start sub_8101CC0
+sub_8101CC0: @ 8101CC0
+ push {lr}
+ bl sub_8106448
+ bl sub_81064B8
+ bl sub_81063C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CC0
+
+ thumb_func_start sub_8101CD4
+sub_8101CD4: @ 8101CD4
+ push {lr}
+ bl sub_8104EA8
+ bl sub_8104F8C
+ bl sub_8103DC8
+ bl sub_81050C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CD4
+
+ thumb_func_start sub_8101CEC
+sub_8101CEC: @ 8101CEC
+ push {lr}
+ bl sub_8104048
+ bl sub_8102DA8
+ bl sub_8104C5C
+ bl sub_8101D04
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101CEC
+
+ thumb_func_start sub_8101D04
+sub_8101D04: @ 8101D04
+ push {r4,lr}
+ ldr r4, _08101D20 @ =sub_8101D24
+ adds r0, r4, 0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D20: .4byte sub_8101D24
+ thumb_func_end sub_8101D04
+
+ thumb_func_start sub_8101D24
+sub_8101D24: @ 8101D24
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08101D50 @ =gUnknown_083ECAAC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r6, _08101D54 @ =0x02000000
+ ldr r5, _08101D58 @ =gTasks
+_08101D36:
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r4, r5
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101D36
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D50: .4byte gUnknown_083ECAAC
+_08101D54: .4byte 0x02000000
+_08101D58: .4byte gTasks
+ thumb_func_end sub_8101D24
+
+ thumb_func_start sub_8101D5C
+sub_8101D5C: @ 8101D5C
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r4, _08101D88 @ =0x02000000
+ ldrb r0, [r4, 0x2]
+ bl sub_810423C
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101D88: .4byte 0x02000000
+ thumb_func_end sub_8101D5C
+
+ thumb_func_start sub_8101D8C
+sub_8101D8C: @ 8101D8C
+ push {lr}
+ ldr r0, _08101DA8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08101DA2
+ ldr r1, _08101DAC @ =0x02000000
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08101DA2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101DA8: .4byte gPaletteFade
+_08101DAC: .4byte 0x02000000
+ thumb_func_end sub_8101D8C
+
+ thumb_func_start sub_8101DB0
+sub_8101DB0: @ 8101DB0
+ push {lr}
+ ldr r2, _08101DD8 @ =0x02000000
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ strh r0, [r2, 0x12]
+ strh r0, [r2, 0x18]
+ ldrb r1, [r2, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r2, 0x4]
+ movs r0, 0x4
+ strb r0, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _08101DDC
+ movs r0, 0x19
+ strb r0, [r2]
+ b _08101DEC
+ .align 2, 0
+_08101DD8: .4byte 0x02000000
+_08101DDC:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _08101DEC
+ movs r0, 0x3
+ strb r0, [r2]
+ movs r0, 0x4
+ bl sub_8104CAC
+_08101DEC:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101DB0
+
+ thumb_func_start sub_8101DF4
+sub_8101DF4: @ 8101DF4
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101E06
+ ldr r1, _08101E0C @ =0x02000000
+ movs r0, 0x4
+ strb r0, [r1]
+_08101E06:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E0C: .4byte 0x02000000
+ thumb_func_end sub_8101DF4
+
+ thumb_func_start sub_8101E10
+sub_8101E10: @ 8101E10
+ push {lr}
+ movs r0, 0
+ bl sub_8104CAC
+ ldr r2, _08101E34 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r2]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08101E38 @ =0x0000270e
+ cmp r1, r0
+ ble _08101E2C
+ movs r0, 0x17
+ strb r0, [r2]
+_08101E2C:
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101E34: .4byte 0x02000000
+_08101E38: .4byte 0x0000270e
+ thumb_func_end sub_8101E10
+
+ thumb_func_start sub_8101E3C
+sub_8101E3C: @ 8101E3C
+ push {r4,lr}
+ ldr r0, _08101E58 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08101E60
+ movs r0, 0
+ bl sub_8104AB8
+ ldr r1, _08101E5C @ =0x02000000
+ movs r0, 0x8
+ strb r0, [r1]
+ b _08101F1A
+ .align 2, 0
+_08101E58: .4byte gMain
+_08101E5C: .4byte 0x02000000
+_08101E60:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EC2
+ ldr r2, _08101EB8 @ =0x02000000
+ movs r1, 0xC
+ ldrsh r0, [r2, r1]
+ subs r0, 0x3
+ movs r3, 0x12
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ cmp r0, 0
+ blt _08101EBC
+ ldrh r4, [r2, 0x12]
+ adds r0, r1, 0
+ cmp r0, 0x2
+ bgt _08101E9C
+_08101E84:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8103D50
+ lsls r0, r4, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101E84
+_08101E9C:
+ ldr r1, _08101EB8 @ =0x02000000
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x3
+ ldrh r3, [r1, 0x12]
+ adds r0, r3
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0x9
+ strb r0, [r1]
+ movs r0, 0x5F
+ bl PlaySE
+ b _08101F1A
+ .align 2, 0
+_08101EB8: .4byte 0x02000000
+_08101EBC:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _08101F1A
+_08101EC2:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08101EEC
+ ldr r4, _08101F24 @ =0x02000000
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08101EEC
+ movs r0, 0x5F
+ bl PlaySE
+ ldrb r0, [r4, 0x12]
+ bl sub_8103D50
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+_08101EEC:
+ ldr r0, _08101F24 @ =0x02000000
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ ldr r2, _08101F28 @ =gMain
+ adds r3, r0, 0
+ cmp r1, 0x2
+ bgt _08101F08
+ cmp r1, 0
+ beq _08101F0C
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F0C
+_08101F08:
+ movs r0, 0x9
+ strb r0, [r3]
+_08101F0C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F1A
+ movs r0, 0x15
+ strb r0, [r3]
+_08101F1A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F24: .4byte 0x02000000
+_08101F28: .4byte gMain
+ thumb_func_end sub_8101E3C
+
+ thumb_func_start sub_8101F2C
+sub_8101F2C: @ 8101F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101F2C
+
+ thumb_func_start sub_8101F44
+sub_8101F44: @ 8101F44
+ push {lr}
+ ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins
+ bl sub_8101F2C
+ ldr r1, _08101F5C @ =0x02000000
+ movs r0, 0x7
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F58: .4byte gOtherText_DontHaveThreeCoins
+_08101F5C: .4byte 0x02000000
+ thumb_func_end sub_8101F44
+
+ thumb_func_start sub_8101F60
+sub_8101F60: @ 8101F60
+ push {lr}
+ ldr r0, _08101F80 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08101F78
+ bl MenuZeroFillScreen
+ ldr r1, _08101F84 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F78:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101F80: .4byte gMain
+_08101F84: .4byte 0x02000000
+ thumb_func_end sub_8101F60
+
+ thumb_func_start sub_8101F88
+sub_8101F88: @ 8101F88
+ push {lr}
+ bl sub_8104AEC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08101F9A
+ ldr r1, _08101FA0 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1]
+_08101F9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08101FA0: .4byte 0x02000000
+ thumb_func_end sub_8101F88
+
+ thumb_func_start sub_8101FA4
+sub_8101FA4: @ 8101FA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8102484
+ bl sub_8104DA4
+ movs r0, 0
+ bl sub_8102DEC
+ movs r0, 0x1
+ bl sub_8102DEC
+ movs r0, 0x2
+ bl sub_8102DEC
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r4, _08101FDC @ =0x02000000
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08101FE0
+ bl sub_810430C
+ movs r0, 0xA
+ b _08101FE8
+ .align 2, 0
+_08101FDC: .4byte 0x02000000
+_08101FE0:
+ movs r0, 0x1
+ bl sub_8104CAC
+ movs r0, 0xB
+_08101FE8:
+ strb r0, [r4]
+ ldr r4, _08102004 @ =0x02000000
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08101FFC
+ bl dp15_jump_random_unknown
+ strh r0, [r4, 0x1A]
+_08101FFC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102004: .4byte 0x02000000
+ thumb_func_end sub_8101FA4
+
+ thumb_func_start sub_8102008
+sub_8102008: @ 8102008
+ push {lr}
+ bl sub_810432C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102028
+ movs r0, 0x1
+ bl sub_8104CAC
+ ldr r1, _08102030 @ =0x02000000
+ ldrb r2, [r1, 0x4]
+ movs r0, 0xDF
+ ands r0, r2
+ strb r0, [r1, 0x4]
+ movs r0, 0xB
+ strb r0, [r1]
+_08102028:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102030: .4byte 0x02000000
+ thumb_func_end sub_8102008
+
+ thumb_func_start sub_8102034
+sub_8102034: @ 8102034
+ push {lr}
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _0810204E
+ bl sub_81024F0
+ ldr r1, _08102054 @ =0x02000000
+ movs r0, 0xC
+ strb r0, [r1]
+_0810204E:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102054: .4byte 0x02000000
+ thumb_func_end sub_8102034
+
+ thumb_func_start sub_8102058
+sub_8102058: @ 8102058
+ push {r4,lr}
+ ldr r0, _08102088 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810207E
+ movs r0, 0x18
+ bl PlaySE
+ ldr r4, _0810208C @ =0x02000000
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E1C
+ ldrb r0, [r4, 0x18]
+ bl sub_8103C14
+ movs r0, 0xD
+ strb r0, [r4]
+_0810207E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102088: .4byte gMain
+_0810208C: .4byte 0x02000000
+ thumb_func_end sub_8102058
+
+ thumb_func_start sub_8102090
+sub_8102090: @ 8102090
+ push {r4,lr}
+ ldr r4, _081020BC @ =0x02000000
+ ldrb r0, [r4, 0x18]
+ bl sub_8102E40
+ lsls r0, 24
+ cmp r0, 0
+ bne _081020C0
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r1, 0xC
+ strb r1, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081020B6
+ movs r0, 0xE
+ strb r0, [r4]
+_081020B6:
+ movs r0, 0x1
+ b _081020C2
+ .align 2, 0
+_081020BC: .4byte 0x02000000
+_081020C0:
+ movs r0, 0
+_081020C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102090
+
+ thumb_func_start sub_81020C8
+sub_81020C8: @ 81020C8
+ push {r4,lr}
+ ldr r4, _08102128 @ =0x02000000
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ strb r0, [r4, 0x4]
+ bl sub_81027A0
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _081020E8
+ subs r0, 0x1
+ strb r0, [r4, 0xA]
+ ldrb r0, [r4, 0xB]
+ adds r0, 0x1
+ strb r0, [r4, 0xB]
+_081020E8:
+ ldrh r0, [r4, 0x8]
+ cmp r0, 0
+ beq _081021B4
+ movs r0, 0xF
+ strb r0, [r4]
+ bl sub_8102A24
+ bl sub_8103F70
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xE]
+ subs r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0810210C
+ movs r0, 0
+ strh r0, [r4, 0x10]
+_0810210C:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102130
+ ldr r0, _0810212C @ =0x00000185
+ bl PlayFanfare
+ movs r0, 0x6
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102128: .4byte 0x02000000
+_0810212C: .4byte 0x00000185
+_08102130:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810214C
+ ldr r0, _08102148 @ =0x00000185
+ bl PlayFanfare
+ movs r0, 0x5
+ bl sub_8104CAC
+ b _0810215A
+ .align 2, 0
+_08102148: .4byte 0x00000185
+_0810214C:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0x2
+ bl sub_8104CAC
+_0810215A:
+ ldr r1, _081021B0 @ =0x02000000
+ ldrh r3, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 1
+ ands r0, r3
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08102192
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ strb r1, [r2, 0xA]
+ strb r1, [r2, 0xB]
+ strb r1, [r2, 0x3]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _08102192
+ movs r0, 0x1
+ strb r0, [r2, 0x3]
+_08102192:
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081021D2
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0xF
+ bhi _081021D2
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r2, 0x2]
+ bl sub_8104064
+ b _081021D2
+ .align 2, 0
+_081021B0: .4byte 0x02000000
+_081021B4:
+ movs r0, 0x3
+ bl sub_8104CAC
+ movs r0, 0x14
+ strb r0, [r4]
+ ldrh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _081021DC @ =0x0000270f
+ cmp r0, r1
+ ble _081021D2
+ strh r1, [r4, 0x10]
+_081021D2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021DC: .4byte 0x0000270f
+ thumb_func_end sub_81020C8
+
+ thumb_func_start sub_81021E0
+sub_81021E0: @ 81021E0
+ push {lr}
+ bl sub_8102A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _081021F2
+ ldr r1, _081021F8 @ =0x02000000
+ movs r0, 0x10
+ strb r0, [r1]
+_081021F2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081021F8: .4byte 0x02000000
+ thumb_func_end sub_81021E0
+
+ thumb_func_start sub_81021FC
+sub_81021FC: @ 81021FC
+ push {r4,lr}
+ bl sub_8103FA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102256
+ ldr r4, _08102260 @ =0x02000000
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0xC0
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102220
+ movs r0, 0x1C
+ bl sav12_xor_increment
+_08102220:
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08102236
+ movs r0, 0
+ strh r0, [r4, 0x18]
+ movs r0, 0x9
+ strb r0, [r4]
+_08102236:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08102242
+ movs r0, 0x11
+ strb r0, [r4]
+_08102242:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102256
+ cmp r2, 0
+ beq _08102256
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102256:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102260: .4byte 0x02000000
+ thumb_func_end sub_81021FC
+
+ thumb_func_start sub_8102264
+sub_8102264: @ 8102264
+ push {r4,lr}
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102294
+ ldr r4, _0810229C @ =0x02000000
+ movs r0, 0x13
+ strb r0, [r4]
+ ldrh r1, [r4, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x9
+ strb r0, [r4]
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _08102294
+ movs r0, 0x4
+ bl sub_8104CAC
+ movs r0, 0x12
+ strb r0, [r4]
+_08102294:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810229C: .4byte 0x02000000
+ thumb_func_end sub_8102264
+
+ thumb_func_start sub_81022A0
+sub_81022A0: @ 81022A0
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081022C0
+ ldr r2, _081022C8 @ =0x02000000
+ movs r0, 0x13
+ strb r0, [r2]
+ ldrh r1, [r2, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081022C0
+ movs r0, 0x9
+ strb r0, [r2]
+_081022C0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022C8: .4byte 0x02000000
+ thumb_func_end sub_81022A0
+
+ thumb_func_start sub_81022CC
+sub_81022CC: @ 81022CC
+ push {lr}
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r1, _081022EC @ =0x02000000
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081022EC: .4byte 0x02000000
+ thumb_func_end sub_81022CC
+
+ thumb_func_start sub_81022F0
+sub_81022F0: @ 81022F0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0810230C
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ ldr r1, _08102314 @ =0x02000000
+ movs r0, 0x13
+ strb r0, [r1]
+_0810230C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102314: .4byte 0x02000000
+ thumb_func_end sub_81022F0
+
+ thumb_func_start sub_8102318
+sub_8102318: @ 8102318
+ push {lr}
+ ldr r0, _0810233C @ =gOtherText_QuitGamePrompt
+ bl sub_8101F2C
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ bl sub_814AB84
+ ldr r1, _08102340 @ =0x02000000
+ movs r0, 0x16
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810233C: .4byte gOtherText_QuitGamePrompt
+_08102340: .4byte 0x02000000
+ thumb_func_end sub_8102318
+
+ thumb_func_start sub_8102344
+sub_8102344: @ 8102344
+ push {lr}
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0810237C
+ bl MenuZeroFillScreen
+ movs r0, 0
+ bl sub_8103D8C
+ movs r0, 0x1
+ bl sub_8103D8C
+ movs r0, 0x2
+ bl sub_8103D8C
+ ldr r0, _08102378 @ =0x02000000
+ ldrh r1, [r0, 0x12]
+ ldrh r2, [r0, 0xC]
+ adds r1, r2
+ strh r1, [r0, 0xC]
+ movs r1, 0x1B
+ strb r1, [r0]
+ b _08102392
+ .align 2, 0
+_08102378: .4byte 0x02000000
+_0810237C:
+ cmp r1, 0x1
+ beq _08102388
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08102392
+_08102388:
+ bl MenuZeroFillScreen
+ ldr r1, _08102398 @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1]
+_08102392:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102398: .4byte 0x02000000
+ thumb_func_end sub_8102344
+
+ thumb_func_start sub_810239C
+sub_810239C: @ 810239C
+ push {lr}
+ ldr r0, _081023B0 @ =gOtherText_MaxCoins
+ bl sub_8101F2C
+ ldr r1, _081023B4 @ =0x02000000
+ movs r0, 0x18
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023B0: .4byte gOtherText_MaxCoins
+_081023B4: .4byte 0x02000000
+ thumb_func_end sub_810239C
+
+ thumb_func_start sub_81023B8
+sub_81023B8: @ 81023B8
+ push {lr}
+ ldr r0, _081023D8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081023D0
+ bl MenuZeroFillScreen
+ ldr r1, _081023DC @ =0x02000000
+ movs r0, 0x5
+ strb r0, [r1]
+_081023D0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023D8: .4byte gMain
+_081023DC: .4byte 0x02000000
+ thumb_func_end sub_81023B8
+
+ thumb_func_start sub_81023E0
+sub_81023E0: @ 81023E0
+ push {lr}
+ ldr r0, _081023F4 @ =gOtherText_OutOfCoins
+ bl sub_8101F2C
+ ldr r1, _081023F8 @ =0x02000000
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081023F4: .4byte gOtherText_OutOfCoins
+_081023F8: .4byte 0x02000000
+ thumb_func_end sub_81023E0
+
+ thumb_func_start sub_81023FC
+sub_81023FC: @ 81023FC
+ push {lr}
+ ldr r0, _0810241C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08102414
+ bl MenuZeroFillScreen
+ ldr r1, _08102420 @ =0x02000000
+ movs r0, 0x1B
+ strb r0, [r1]
+_08102414:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810241C: .4byte gMain
+_08102420: .4byte 0x02000000
+ thumb_func_end sub_81023FC
+
+ thumb_func_start sub_8102424
+sub_8102424: @ 8102424
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08102454 @ =gSaveBlock1
+ ldr r4, _08102458 @ =0x02000000
+ ldrh r1, [r4, 0xC]
+ ldr r2, _0810245C @ =0x00000494
+ adds r0, r2
+ movs r2, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102454: .4byte gSaveBlock1
+_08102458: .4byte 0x02000000
+_0810245C: .4byte 0x00000494
+ thumb_func_end sub_8102424
+
+ thumb_func_start sub_8102460
+sub_8102460: @ 8102460
+ push {lr}
+ ldr r0, _0810247C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08102476
+ ldr r0, _08102480 @ =0x02000000
+ ldr r0, [r0, 0x64]
+ bl SetMainCallback2
+_08102476:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810247C: .4byte gPaletteFade
+_08102480: .4byte 0x02000000
+ thumb_func_end sub_8102460
+
+ thumb_func_start sub_8102484
+sub_8102484: @ 8102484
+ push {r4,lr}
+ ldr r4, _081024E4 @ =0x02000000
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _081024DC
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ bne _081024DC
+ bl sub_8102540
+ lsls r0, 24
+ cmp r0, 0
+ beq _081024C0
+ bl sub_8102578
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ beq _081024C0
+ ldr r1, _081024E8 @ =gUnknown_083ECE42
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ orrs r0, r1
+ strb r0, [r4, 0x4]
+ cmp r3, 0x1
+ bne _081024DC
+_081024C0:
+ bl sub_81025BC
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x5
+ beq _081024DC
+ ldr r2, _081024E4 @ =0x02000000
+ ldr r1, _081024EC @ =gUnknown_083ECE48
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+_081024DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081024E4: .4byte 0x02000000
+_081024E8: .4byte gUnknown_083ECE42
+_081024EC: .4byte gUnknown_083ECE48
+ thumb_func_end sub_8102484
+
+ thumb_func_start sub_81024F0
+sub_81024F0: @ 81024F0
+ push {lr}
+ ldr r1, _08102508 @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08102502
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_08102502:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102508: .4byte 0x02000000
+ thumb_func_end sub_81024F0
+
+ thumb_func_start sub_810250C
+sub_810250C: @ 810250C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0
+ movs r3, 0x1
+ ldr r4, _08102528 @ =gUnknown_083ECE3A
+_08102518:
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0810252C
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ b _0810253A
+ .align 2, 0
+_08102528: .4byte gUnknown_083ECE3A
+_0810252C:
+ lsrs r1, 1
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _08102518
+ movs r0, 0
+_0810253A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810250C
+
+ thumb_func_start sub_8102540
+sub_8102540: @ 8102540
+ push {r4,lr}
+ bl Random
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08102568 @ =gUnknown_083ECD04
+ ldr r1, _0810256C @ =0x02000000
+ movs r3, 0x12
+ ldrsh r2, [r1, r3]
+ ldrb r3, [r1, 0x1]
+ lsls r1, r3, 1
+ adds r1, r3
+ subs r1, 0x1
+ adds r2, r1
+ adds r2, r4
+ ldrb r1, [r2]
+ cmp r1, r0
+ bhi _08102570
+ movs r0, 0
+ b _08102572
+ .align 2, 0
+_08102568: .4byte gUnknown_083ECD04
+_0810256C: .4byte 0x02000000
+_08102570:
+ movs r0, 0x1
+_08102572:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102540
+
+ thumb_func_start sub_8102578
+sub_8102578: @ 8102578
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _081025B4 @ =gUnknown_083ECD16
+_0810257E:
+ bl Random
+ movs r2, 0xFF
+ ldr r3, _081025B8 @ =0x02000000
+ lsls r1, r5, 16
+ asrs r4, r1, 16
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 1
+ ldrb r3, [r3, 0x1]
+ adds r1, r3
+ adds r1, r6
+ ldrb r1, [r1]
+ ands r2, r0
+ cmp r1, r2
+ bgt _081025AA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0810257E
+_081025AA:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081025B4: .4byte gUnknown_083ECD16
+_081025B8: .4byte 0x02000000
+ thumb_func_end sub_8102578
+
+ thumb_func_start sub_81025BC
+sub_81025BC: @ 81025BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08102600 @ =gUnknown_083ECD28
+ mov r8, r0
+ ldr r5, _08102604 @ =0x02000000
+ movs r7, 0x80
+ lsls r7, 17
+_081025CE:
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ lsls r2, r6, 16
+ asrs r1, r2, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldrb r3, [r5, 0x1]
+ adds r0, r3
+ add r0, r8
+ ldrb r3, [r0]
+ cmp r1, 0
+ bne _08102608
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102608
+ adds r3, 0xA
+ asrs r0, r7, 16
+ cmp r3, r0
+ ble _08102622
+ adds r3, r0, 0
+ b _08102622
+ .align 2, 0
+_08102600: .4byte gUnknown_083ECD28
+_08102604: .4byte 0x02000000
+_08102608:
+ asrs r0, r2, 16
+ cmp r0, 0x4
+ bne _08102622
+ ldrb r0, [r5, 0x3]
+ cmp r0, 0x1
+ bne _08102622
+ lsls r0, r3, 16
+ ldr r1, _08102648 @ =0xfff60000
+ adds r0, r1
+ lsrs r3, r0, 16
+ cmp r0, 0
+ bge _08102622
+ movs r3, 0
+_08102622:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r4
+ bgt _08102638
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081025CE
+_08102638:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102648: .4byte 0xfff60000
+ thumb_func_end sub_81025BC
+
+ thumb_func_start sub_810264C
+sub_810264C: @ 810264C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _08102660 @ =0x02000000
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _08102668
+ ldr r0, _08102664 @ =gUnknown_083ECDAC
+ b _0810266A
+ .align 2, 0
+_08102660: .4byte 0x02000000
+_08102664: .4byte gUnknown_083ECDAC
+_08102668:
+ ldr r0, _0810267C @ =gUnknown_083ECD46
+_0810266A:
+ lsls r1, r2, 4
+ adds r1, r2
+ ldrb r3, [r3, 0x2]
+ adds r1, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810267C: .4byte gUnknown_083ECD46
+ thumb_func_end sub_810264C
+
+ thumb_func_start sub_8102680
+sub_8102680: @ 8102680
+ push {r4-r6,lr}
+ ldr r1, _081026A4 @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _081026D2
+ movs r6, 0x5
+ b _081026AE
+ .align 2, 0
+_081026A4: .4byte 0x02000000
+_081026A8:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081026AE:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ ble _081026CE
+ bl Random
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_810264C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _081026A8
+_081026CE:
+ ldr r0, _081026D8 @ =0x02000000
+ strb r6, [r0, 0x5]
+_081026D2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081026D8: .4byte 0x02000000
+ thumb_func_end sub_8102680
+
+ thumb_func_start sub_81026DC
+sub_81026DC: @ 81026DC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r0, _081026FC @ =gUnknown_083ECE12
+ lsls r4, 1
+ adds r4, r0
+ ldrh r4, [r4]
+ cmp r1, r4
+ bcc _08102700
+ movs r0, 0
+ b _08102702
+ .align 2, 0
+_081026FC: .4byte gUnknown_083ECE12
+_08102700:
+ movs r0, 0x1
+_08102702:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81026DC
+
+ thumb_func_start dp15_jump_random_unknown
+dp15_jump_random_unknown: @ 8102708
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _0810271C @ =0x02000000
+ movs r2, 0x10
+ ldrsh r1, [r0, r2]
+ ldr r0, _08102720 @ =0x0000012b
+ cmp r1, r0
+ ble _08102724
+ movs r4, 0x4
+ b _0810273A
+ .align 2, 0
+_0810271C: .4byte 0x02000000
+_08102720: .4byte 0x0000012b
+_08102724:
+ cmp r1, 0xF9
+ ble _0810272C
+ movs r4, 0x3
+ b _0810273A
+_0810272C:
+ cmp r1, 0xC7
+ ble _08102734
+ movs r4, 0x2
+ b _0810273A
+_08102734:
+ cmp r1, 0x95
+ ble _0810273A
+ movs r4, 0x1
+_0810273A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r5, _0810275C @ =gUnknown_083ECE1C
+ lsls r4, 2
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08102760
+ movs r0, 0x4
+ b _0810279A
+ .align 2, 0
+_0810275C: .4byte gUnknown_083ECE1C
+_08102760:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ adds r2, r5, 0x2
+ adds r2, r4, r2
+ ldr r3, _08102790 @ =gUnknown_083ECE30
+ ldr r1, _08102794 @ =0x02000000
+ ldrb r1, [r1, 0xB]
+ lsls r1, 1
+ adds r1, r3
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ adds r1, r2
+ lsls r1, 24
+ cmp r0, r1
+ bcc _08102798
+ movs r0, 0x8
+ b _0810279A
+ .align 2, 0
+_08102790: .4byte gUnknown_083ECE30
+_08102794: .4byte 0x02000000
+_08102798:
+ movs r0, 0x2
+_0810279A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end dp15_jump_random_unknown
+
+ thumb_func_start sub_81027A0
+sub_81027A0: @ 81027A0
+ push {r4,lr}
+ ldr r4, _081027CC @ =0x02000000
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ bl sub_81027D0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _081027B8
+ bl sub_8102840
+_081027B8:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ ble _081027C4
+ bl sub_810290C
+_081027C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081027CC: .4byte 0x02000000
+ thumb_func_end sub_81027A0
+
+ thumb_func_start sub_81027D0
+sub_81027D0: @ 81027D0
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8102BA4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810282E
+ ldr r2, _08102834 @ =0x02000000
+ ldr r0, _08102838 @ =gUnknown_083ECE6C
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _0810283C @ =gUnknown_083ECE5A
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ bl sub_8103E04
+_0810282E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102834: .4byte 0x02000000
+_08102838: .4byte gUnknown_083ECE6C
+_0810283C: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_81027D0
+
+ thumb_func_start sub_8102840
+sub_8102840: @ 8102840
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _0810289E
+ cmp r1, 0
+ bne _0810287C
+ movs r1, 0x1
+_0810287C:
+ ldr r2, _08102900 @ =0x02000000
+ ldr r0, _08102904 @ =gUnknown_083ECE6C
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908 @ =gUnknown_083ECE5A
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x1
+ bl sub_8103E04
+_0810289E:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081028FA
+ cmp r1, 0
+ bne _081028D8
+ movs r1, 0x1
+_081028D8:
+ ldr r2, _08102900 @ =0x02000000
+ ldr r0, _08102904 @ =gUnknown_083ECE6C
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _08102908 @ =gUnknown_083ECE5A
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ movs r0, 0x2
+ bl sub_8103E04
+_081028FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102900: .4byte 0x02000000
+_08102904: .4byte gUnknown_083ECE6C
+_08102908: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_8102840
+
+ thumb_func_start sub_810290C
+sub_810290C: @ 810290C
+ push {r4,r5,lr}
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _08102968
+ cmp r1, 0
+ beq _08102962
+ ldr r2, _081029C8 @ =0x02000000
+ ldr r0, _081029CC @ =gUnknown_083ECE6C
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0 @ =gUnknown_083ECE5A
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_08102962:
+ movs r0, 0x3
+ bl sub_8103E04
+_08102968:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81029D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9
+ beq _081029C2
+ cmp r1, 0
+ beq _081029BC
+ ldr r2, _081029C8 @ =0x02000000
+ ldr r0, _081029CC @ =gUnknown_083ECE6C
+ lsls r1, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ ldrh r3, [r2, 0xE]
+ adds r0, r3
+ strh r0, [r2, 0xE]
+ ldr r0, _081029D0 @ =gUnknown_083ECE5A
+ adds r1, r0
+ ldrh r0, [r2, 0x8]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+_081029BC:
+ movs r0, 0x4
+ bl sub_8103E04
+_081029C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081029C8: .4byte 0x02000000
+_081029CC: .4byte gUnknown_083ECE6C
+_081029D0: .4byte gUnknown_083ECE5A
+ thumb_func_end sub_810290C
+
+ thumb_func_start sub_81029D4
+sub_81029D4: @ 81029D4
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r3, r1
+ bne _081029F8
+ cmp r3, r2
+ bne _081029F8
+ ldr r0, _081029F4 @ =gUnknown_083ECE52
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ b _08102A1E
+ .align 2, 0
+_081029F4: .4byte gUnknown_083ECE52
+_081029F8:
+ cmp r3, 0
+ bne _08102A04
+ cmp r1, 0
+ bne _08102A04
+ cmp r2, 0x1
+ beq _08102A10
+_08102A04:
+ cmp r3, 0x1
+ bne _08102A14
+ cmp r1, 0x1
+ bne _08102A14
+ cmp r2, 0
+ bne _08102A14
+_08102A10:
+ movs r0, 0x6
+ b _08102A1E
+_08102A14:
+ cmp r3, 0x4
+ beq _08102A1C
+ movs r0, 0x9
+ b _08102A1E
+_08102A1C:
+ movs r0, 0
+_08102A1E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81029D4
+
+ thumb_func_start sub_8102A24
+sub_8102A24: @ 8102A24
+ push {r4,lr}
+ ldr r4, _08102A40 @ =sub_8102A64
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A40: .4byte sub_8102A64
+ thumb_func_end sub_8102A24
+
+ thumb_func_start sub_8102A44
+sub_8102A44: @ 8102A44
+ push {lr}
+ ldr r0, _08102A58 @ =sub_8102A64
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08102A5C
+ movs r0, 0
+ b _08102A5E
+ .align 2, 0
+_08102A58: .4byte sub_8102A64
+_08102A5C:
+ movs r0, 0x1
+_08102A5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A44
+
+ thumb_func_start sub_8102A64
+sub_8102A64: @ 8102A64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102A94 @ =gUnknown_083ECB20
+ ldr r2, _08102A98 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102A76:
+ 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 _08102A76
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102A94: .4byte gUnknown_083ECB20
+_08102A98: .4byte gTasks
+ thumb_func_end sub_8102A64
+
+ thumb_func_start sub_8102A9C
+sub_8102A9C: @ 8102A9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8103E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AC8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, _08102AC4 @ =0x02000000
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102AC8
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _08102ACA
+ .align 2, 0
+_08102AC4: .4byte 0x02000000
+_08102AC8:
+ movs r0, 0
+_08102ACA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102A9C
+
+ thumb_func_start sub_8102AD0
+sub_8102AD0: @ 8102AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08102B22
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102AF6
+ movs r0, 0x15
+ bl PlaySE
+_08102AF6:
+ ldr r2, _08102B70 @ =0x02000000
+ ldrh r0, [r2, 0xE]
+ subs r0, 0x1
+ strh r0, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _08102B74 @ =0x0000270e
+ cmp r1, r0
+ bgt _08102B0E
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xC]
+_08102B0E:
+ movs r0, 0x8
+ strh r0, [r4, 0xA]
+ ldr r0, _08102B78 @ =gMain
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B22
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+_08102B22:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B58
+ ldr r0, _08102B78 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08102B58
+ movs r0, 0x15
+ bl PlaySE
+ ldr r1, _08102B70 @ =0x02000000
+ ldrh r0, [r1, 0xE]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _08102B7C @ =0x0000270f
+ cmp r0, r2
+ ble _08102B54
+ strh r2, [r1, 0xC]
+_08102B54:
+ movs r0, 0
+ strh r0, [r1, 0xE]
+_08102B58:
+ ldr r0, _08102B70 @ =0x02000000
+ movs r1, 0xE
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08102B68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08102B68:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102B70: .4byte 0x02000000
+_08102B74: .4byte 0x0000270e
+_08102B78: .4byte gMain
+_08102B7C: .4byte 0x0000270f
+ thumb_func_end sub_8102AD0
+
+ thumb_func_start sub_8102B80
+sub_8102B80: @ 8102B80
+ push {lr}
+ bl sub_8103E7C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08102B9A
+ ldr r0, _08102BA0 @ =sub_8102A64
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_08102B9A:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BA0: .4byte sub_8102A64
+ thumb_func_end sub_8102B80
+
+ thumb_func_start sub_8102BA4
+sub_8102BA4: @ 8102BA4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _08102BF0 @ =0x02000000
+ lsls r2, r4, 1
+ adds r0, 0x28
+ adds r2, r0
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r1
+ movs r1, 0x15
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102BD4
+ adds r0, 0x15
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102BD4:
+ ldr r2, _08102BF4 @ =gUnknown_083ECCB2
+ lsls r1, 16
+ asrs r1, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r4
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102BF0: .4byte 0x02000000
+_08102BF4: .4byte gUnknown_083ECCB2
+ thumb_func_end sub_8102BA4
+
+ thumb_func_start sub_8102BF8
+sub_8102BF8: @ 8102BF8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r6, 0
+ ldr r0, _08102C40 @ =0x02000000
+ lsls r1, r5, 1
+ adds r0, 0x1C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08102C20
+ ldr r6, _08102C44 @ =0x0000ffff
+_08102C20:
+ lsls r1, r4, 16
+ asrs r1, 16
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C40: .4byte 0x02000000
+_08102C44: .4byte 0x0000ffff
+ thumb_func_end sub_8102BF8
+
+ thumb_func_start sub_8102C48
+sub_8102C48: @ 8102C48
+ push {lr}
+ ldr r1, _08102C7C @ =0x02000000
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0
+ adds r0, r1, 0
+ movs r1, 0x6
+ bl __modsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08102C6E
+ adds r0, 0x6
+ lsls r0, 16
+ lsrs r1, r0, 16
+_08102C6E:
+ ldr r0, _08102C80 @ =gUnknown_083ECCF1
+ lsls r1, 16
+ asrs r1, 16
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102C7C: .4byte 0x02000000
+_08102C80: .4byte gUnknown_083ECCF1
+ thumb_func_end sub_8102C48
+
+ thumb_func_start sub_8102C84
+sub_8102C84: @ 8102C84
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ ldr r6, _08102CC8 @ =0x02000000
+ lsrs r5, 23
+ adds r4, r6, 0
+ adds r4, 0x1C
+ adds r4, r5, r4
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r0, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0xFC
+ lsls r1, 1
+ bl __modsi3
+ strh r0, [r4]
+ adds r6, 0x28
+ adds r5, r6
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl __divsi3
+ movs r1, 0x15
+ subs r1, r0
+ strh r1, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102CC8: .4byte 0x02000000
+ thumb_func_end sub_8102C84
+
+ thumb_func_start sub_8102CCC
+sub_8102CCC: @ 8102CCC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ ldr r0, _08102D24 @ =0x02000000
+ lsls r1, r6, 1
+ adds r0, 0x1C
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D18
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D00
+ lsrs r4, r2, 16
+_08102D00:
+ lsls r1, r4, 16
+ asrs r1, 16
+ adds r0, r6, 0
+ bl sub_8102C84
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D18:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102D24: .4byte 0x02000000
+ thumb_func_end sub_8102CCC
+
+ thumb_func_start sub_8102D28
+sub_8102D28: @ 8102D28
+ push {r4,lr}
+ ldr r4, _08102D58 @ =0x02000000
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x14]
+ adds r0, r1
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r4, 0x14]
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl __divsi3
+ movs r1, 0x6
+ subs r1, r0
+ strh r1, [r4, 0x16]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102D58: .4byte 0x02000000
+ thumb_func_end sub_8102D28
+
+ thumb_func_start sub_8102D5C
+sub_8102D5C: @ 8102D5C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _08102DA4 @ =0x02000000
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, r0, 16
+ asrs r1, r2, 16
+ cmp r1, 0
+ beq _08102D9A
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r1, r0
+ bge _08102D84
+ lsrs r4, r2, 16
+_08102D84:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+_08102D9A:
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102DA4: .4byte 0x02000000
+ thumb_func_end sub_8102D5C
+
+ thumb_func_start sub_8102DA8
+sub_8102DA8: @ 8102DA8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r5, _08102DE0 @ =sub_8102E68
+ ldr r7, _08102DE4 @ =gTasks
+ ldr r6, _08102DE8 @ =0x0200003a
+_08102DB2:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ strh r4, [r1, 0x26]
+ adds r1, r4, r6
+ strb r0, [r1]
+ bl _call_via_r5
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08102DB2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102DE0: .4byte sub_8102E68
+_08102DE4: .4byte gTasks
+_08102DE8: .4byte 0x0200003a
+ thumb_func_end sub_8102DA8
+
+ thumb_func_start sub_8102DEC
+sub_8102DEC: @ 8102DEC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08102E14 @ =gTasks
+ ldr r1, _08102E18 @ =0x02000000
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r2, [r0]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ strh r2, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_08102E14: .4byte gTasks
+_08102E18: .4byte 0x02000000
+ thumb_func_end sub_8102DEC
+
+ thumb_func_start sub_8102E1C
+sub_8102E1C: @ 8102E1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E38 @ =gTasks
+ ldr r1, _08102E3C @ =0x02000000
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_08102E38: .4byte gTasks
+_08102E3C: .4byte 0x02000000
+ thumb_func_end sub_8102E1C
+
+ thumb_func_start sub_8102E40
+sub_8102E40: @ 8102E40
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08102E60 @ =gTasks
+ ldr r1, _08102E64 @ =0x02000000
+ adds r1, 0x3A
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08102E60: .4byte gTasks
+_08102E64: .4byte 0x02000000
+ thumb_func_end sub_8102E40
+
+ thumb_func_start sub_8102E68
+sub_8102E68: @ 8102E68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102E98 @ =gUnknown_083ECB2C
+ ldr r2, _08102E9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_08102E7A:
+ 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 _08102E7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102E98: .4byte gUnknown_083ECB2C
+_08102E9C: .4byte gTasks
+ thumb_func_end sub_8102E68
+
+ thumb_func_start sub_8102EA0
+sub_8102EA0: @ 8102EA0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8102EA0
+
+ thumb_func_start sub_8102EA4
+sub_8102EA4: @ 8102EA4
+ push {lr}
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08102EBC @ =0x02000000
+ movs r2, 0x1A
+ ldrsh r1, [r1, r2]
+ bl sub_8102C84
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102EBC: .4byte 0x02000000
+ thumb_func_end sub_8102EA4
+
+ thumb_func_start sub_8102EC0
+sub_8102EC0: @ 8102EC0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x8]
+ ldr r3, _08102F40 @ =0x02000000
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x34
+ adds r0, r1
+ strh r2, [r0]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x2E
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r0, [r3, 0xA]
+ cmp r0, 0
+ bne _08102F28
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08102F12
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0
+ beq _08102F12
+ ldr r1, _08102F44 @ =gUnknown_083ECB40
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102F28
+_08102F12:
+ ldr r1, _08102F40 @ =0x02000000
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldr r1, _08102F48 @ =gUnknown_083ECB4C
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08102F28:
+ ldr r0, _08102F40 @ =0x02000000
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ adds r0, 0x2E
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08102F40: .4byte 0x02000000
+_08102F44: .4byte gUnknown_083ECB40
+_08102F48: .4byte gUnknown_083ECB4C
+ thumb_func_end sub_8102EC0
+
+ thumb_func_start sub_8102F4C
+sub_8102F4C: @ 8102F4C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r1, _08102F8C @ =gUnknown_083ECB58
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ ldr r5, _08102F90 @ =0x02000000
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r6, r0, 1
+ adds r7, r5, 0
+ adds r7, 0x1C
+ adds r0, r6, r7
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ beq _08102F94
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0x1A
+ ldrsh r1, [r5, r6]
+ bl sub_8102CCC
+ b _08102FC8
+ .align 2, 0
+_08102F8C: .4byte gUnknown_083ECB58
+_08102F90: .4byte 0x02000000
+_08102F94:
+ adds r0, r5, 0
+ adds r0, 0x2E
+ adds r1, r6, r0
+ ldrh r3, [r1]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ beq _08102FCC
+ subs r0, r3, 0x1
+ strh r0, [r1]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x1A
+ ldrsh r1, [r5, r2]
+ bl sub_8102C84
+ movs r6, 0x26
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x18
+ bl __modsi3
+_08102FC8:
+ lsls r0, 16
+ lsrs r2, r0, 16
+_08102FCC:
+ cmp r2, 0
+ bne _08102FF8
+ ldr r1, _08103004 @ =0x02000000
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r1, 0x2E
+ adds r0, r1
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ cmp r1, 0
+ bne _08102FF8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+_08102FF8:
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103004: .4byte 0x02000000
+ thumb_func_end sub_8102F4C
+
+ thumb_func_start sub_8103008
+sub_8103008: @ 8103008
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, _08103058 @ =0x02000000
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r4, r1, 0
+ adds r4, 0x22
+ adds r0, r4
+ ldrh r1, [r2, 0xA]
+ strh r1, [r0]
+ ldrh r0, [r2, 0xA]
+ negs r3, r0
+ strh r3, [r2, 0xA]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08103038
+ lsls r0, r3, 16
+ asrs r0, 17
+ strh r0, [r2, 0xA]
+_08103038:
+ movs r0, 0xA
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ bne _0810304E
+ strh r3, [r2, 0x8]
+ strh r3, [r2, 0x24]
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+_0810304E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103058: .4byte 0x02000000
+ thumb_func_end sub_8103008
+
+ thumb_func_start sub_810305C
+sub_810305C: @ 810305C
+ push {r4,r5,lr}
+ ldr r4, _0810309C @ =0x02000000
+ ldrb r0, [r4, 0x4]
+ bl sub_810250C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, r3, 0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0xC0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810307A
+ movs r5, 0
+ movs r3, 0x1
+_0810307A:
+ ldr r1, _081030A0 @ =gUnknown_083ECB64
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r3, 0
+ bl _call_via_r2
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810309C: .4byte 0x02000000
+_081030A0: .4byte gUnknown_083ECB64
+ thumb_func_end sub_810305C
+
+ thumb_func_start sub_81030A4
+sub_81030A4: @ 81030A4
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 16
+ asrs r3, 16
+ movs r0, 0
+ adds r1, r3, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, r4
+ beq _081030CC
+ cmp r0, r5
+ bne _081030D8
+_081030CC:
+ ldr r0, _081030D4 @ =0x02000000
+ strb r1, [r0, 0x7]
+ movs r0, 0x1
+ b _081030DA
+ .align 2, 0
+_081030D4: .4byte 0x02000000
+_081030D8:
+ movs r0, 0
+_081030DA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030A4
+
+ thumb_func_start sub_81030E0
+sub_81030E0: @ 81030E0
+ push {r4,lr}
+ movs r1, 0x1
+ lsls r0, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x2
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _08103128
+ movs r1, 0x3
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0810312C
+_08103128:
+ movs r0, 0x1
+ b _0810312E
+_0810312C:
+ movs r0, 0
+_0810312E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81030E0
+
+ thumb_func_start sub_8103134
+sub_8103134: @ 8103134
+ push {lr}
+ ldr r0, _08103148 @ =0x02000000
+ ldrb r1, [r0, 0x4]
+ movs r0, 0xC2
+ ands r0, r1
+ cmp r0, 0
+ bne _0810314C
+ movs r0, 0
+ b _0810314E
+ .align 2, 0
+_08103148: .4byte 0x02000000
+_0810314C:
+ movs r0, 0x1
+_0810314E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103134
+
+ thumb_func_start sub_8103154
+sub_8103154: @ 8103154
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r5, 0
+ movs r0, 0x2
+ mov r9, r0
+ ldr r6, _08103194 @ =0x02000000
+_0810316E:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r1, r9
+ subs r0, r1, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103198
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r5, [r6, 0x2E]
+ movs r0, 0x1
+ b _081031A6
+ .align 2, 0
+_08103194: .4byte 0x02000000
+_08103198:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810316E
+ movs r0, 0
+_081031A6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103154
+
+ thumb_func_start sub_81031B4
+sub_81031B4: @ 81031B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ bl sub_8103134
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _081031E2
+ movs r0, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810321E
+_081031E2:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r5, _0810320C @ =0x02000000
+ movs r7, 0
+_081031EA:
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103210
+ mov r0, r8
+ strh r0, [r5, 0x34]
+ strh r7, [r5, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+ .align 2, 0
+_0810320C: .4byte 0x02000000
+_08103210:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081031EA
+_0810321E:
+ movs r0, 0x1
+ mov r8, r0
+ adds r7, r6, 0
+ ldr r6, _0810326C @ =0x02000000
+_08103226:
+ mov r1, r8
+ lsls r5, r1, 16
+ cmp r7, 0
+ bne _0810323A
+ asrs r0, r5, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081032A0
+_0810323A:
+ movs r0, 0x1
+ asrs r4, r5, 16
+ subs r0, r4
+ lsls r0, 16
+ asrs r0, 16
+ mov r1, r10
+ mov r2, r9
+ bl sub_81030A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081032A0
+ cmp r4, 0x1
+ bne _08103270
+ cmp r7, 0
+ bne _08103266
+ movs r0, 0x3
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103270
+_08103266:
+ movs r0, 0x3
+ strh r0, [r6, 0x34]
+ b _0810329A
+ .align 2, 0
+_0810326C: .4byte 0x02000000
+_08103270:
+ asrs r0, r5, 16
+ cmp r0, 0x3
+ bgt _08103294
+ adds r4, r0, 0x1
+ cmp r7, 0
+ bne _0810328A
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103294
+_0810328A:
+ movs r0, 0x2
+ strh r0, [r6, 0x34]
+ strh r4, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_08103294:
+ movs r0, 0x1
+ strh r0, [r6, 0x34]
+ mov r0, r8
+_0810329A:
+ strh r0, [r6, 0x2E]
+ movs r0, 0x1
+ b _081032B2
+_081032A0:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r5, r1
+ lsrs r1, r0, 16
+ mov r8, r1
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103226
+ movs r0, 0
+_081032B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81031B4
+
+ thumb_func_start sub_81032C0
+sub_81032C0: @ 81032C0
+ push {lr}
+ ldr r1, _081032E0 @ =gUnknown_083ECB70
+ ldr r0, _081032E4 @ =0x02000000
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081032E0: .4byte gUnknown_083ECB70
+_081032E4: .4byte 0x02000000
+ thumb_func_end sub_81032C0
+
+ thumb_func_start sub_81032E8
+sub_81032E8: @ 81032E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08103320 @ =0x02000000
+ movs r6, 0
+ ldrh r1, [r0, 0x34]
+ mov r8, r1
+ movs r1, 0x34
+ ldrsh r7, [r0, r1]
+ adds r5, r0, 0
+_081032FC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5, 0x7]
+ cmp r0, r1
+ bne _08103324
+ mov r0, r8
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ movs r0, 0x1
+ b _08103332
+ .align 2, 0
+_08103320: .4byte 0x02000000
+_08103324:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081032FC
+ movs r0, 0
+_08103332:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81032E8
+
+ thumb_func_start sub_810333C
+sub_810333C: @ 810333C
+ push {r4-r7,lr}
+ bl sub_81032E8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810339A
+ ldr r1, _0810338C @ =0x02000000
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _08103396
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ ble _08103396
+ cmp r0, 0x4
+ beq _08103396
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_08103364:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103364
+ b _08103396
+ .align 2, 0
+_0810338C: .4byte 0x02000000
+_08103390:
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+_08103396:
+ movs r0, 0x1
+ b _081033D2
+_0810339A:
+ ldr r1, _081033D8 @ =0x02000000
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _081033D0
+ movs r5, 0
+ movs r7, 0x2
+ adds r6, r1, 0
+_081033AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x7]
+ cmp r0, r1
+ beq _08103390
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081033AA
+_081033D0:
+ movs r0, 0
+_081033D2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081033D8: .4byte 0x02000000
+ thumb_func_end sub_810333C
+
+ thumb_func_start sub_81033DC
+sub_81033DC: @ 81033DC
+ push {r4,lr}
+ ldr r0, _08103414 @ =0x02000000
+ ldrb r3, [r0, 0x7]
+ adds r4, r3, 0
+ ldrb r2, [r0, 0x4]
+ movs r1, 0x40
+ ands r1, r2
+ cmp r1, 0
+ beq _081033F6
+ movs r3, 0
+ cmp r4, 0
+ bne _081033F6
+ movs r3, 0x1
+_081033F6:
+ ldr r1, _08103418 @ =gUnknown_083ECB7C
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103414: .4byte 0x02000000
+_08103418: .4byte gUnknown_083ECB7C
+ thumb_func_end sub_81033DC
+
+ thumb_func_start sub_810341C
+sub_810341C: @ 810341C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0810345C @ =0x02000000
+ movs r5, 0
+ ldrh r1, [r0, 0x36]
+ mov r8, r1
+ movs r1, 0x36
+ ldrsh r7, [r0, r1]
+ adds r6, r0, 0
+_08103438:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bne _08103460
+ mov r0, r8
+ strh r0, [r6, 0x38]
+ strh r5, [r6, 0x32]
+ movs r0, 0x1
+ b _0810346E
+ .align 2, 0
+_0810345C: .4byte 0x02000000
+_08103460:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103438
+ movs r0, 0
+_0810346E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810341C
+
+ thumb_func_start sub_810347C
+sub_810347C: @ 810347C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _081034A0 @ =0x02000000
+ movs r2, 0x34
+ ldrsh r1, [r0, r2]
+ movs r2, 0x36
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _081034B4
+ adds r0, r6, 0
+ bl sub_810341C
+ lsls r0, 24
+ lsrs r0, 24
+ b _081034EA
+ .align 2, 0
+_081034A0: .4byte 0x02000000
+_081034A4:
+ ldr r0, _081034B0 @ =0x02000000
+ strh r5, [r0, 0x32]
+ mov r1, r8
+ strh r1, [r0, 0x38]
+ movs r0, 0x1
+ b _081034EA
+ .align 2, 0
+_081034B0: .4byte 0x02000000
+_081034B4:
+ movs r2, 0x1
+ mov r8, r2
+ cmp r1, 0x1
+ bne _081034C0
+ movs r0, 0x3
+ mov r8, r0
+_081034C0:
+ movs r5, 0
+ mov r7, r8
+_081034C4:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _081034A4
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081034C4
+ movs r0, 0
+_081034EA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810347C
+
+ thumb_func_start sub_81034F4
+sub_81034F4: @ 81034F4
+ push {r4,r5,lr}
+ movs r5, 0
+ b _08103500
+_081034FA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103500:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_81030E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081034FA
+ ldr r0, _0810351C @ =0x02000000
+ strh r5, [r0, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810351C: .4byte 0x02000000
+ thumb_func_end sub_81034F4
+
+ thumb_func_start sub_8103520
+sub_8103520: @ 8103520
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0810352E
+ movs r0, 0x1
+ b _08103538
+_0810352E:
+ cmp r0, 0x1
+ beq _08103536
+ movs r0, 0
+ b _0810353C
+_08103536:
+ movs r0, 0
+_08103538:
+ strb r0, [r1]
+ movs r0, 0x1
+_0810353C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103520
+
+ thumb_func_start sub_8103540
+sub_8103540: @ 8103540
+ push {lr}
+ ldr r1, _0810355C @ =gUnknown_083ECB88
+ ldr r0, _08103560 @ =0x02000000
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810355C: .4byte gUnknown_083ECB88
+_08103560: .4byte 0x02000000
+ thumb_func_end sub_8103540
+
+ thumb_func_start sub_8103564
+sub_8103564: @ 8103564
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, _081035D0 @ =0x02000000
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081035E0
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081035E0
+ ldrh r0, [r4, 0x2E]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _081035E0
+ movs r5, 0
+ mov r7, sp
+ movs r0, 0x2
+ mov r8, r0
+ adds r6, r4, 0
+_081035AA:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ mov r0, r8
+ subs r1, r0, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081035D4
+ movs r0, 0x2
+ strh r0, [r6, 0x36]
+ strh r5, [r6, 0x30]
+ b _081035E0
+ .align 2, 0
+_081035D0: .4byte 0x02000000
+_081035D4:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081035AA
+_081035E0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103564
+
+ thumb_func_start j5_08111E84
+j5_08111E84: @ 81035EC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _08103650 @ =0x02000000
+ ldrh r2, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08103660
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103660
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103660
+ movs r6, 0
+ mov r7, sp
+ adds r5, r4, 0
+_0810362A:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _08103654
+ ldrh r0, [r5, 0x34]
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _08103660
+ .align 2, 0
+_08103650: .4byte 0x02000000
+_08103654:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810362A
+_08103660:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end j5_08111E84
+
+ thumb_func_start sub_8103668
+sub_8103668: @ 8103668
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r4, _0810368C @ =0x02000000
+ ldrh r3, [r4, 0x34]
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ cmp r2, 0
+ beq _0810375A
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810375A
+ cmp r2, 0x2
+ bne _081036AE
+ bl j5_08111E84
+ b _0810375A
+ .align 2, 0
+_0810368C: .4byte 0x02000000
+_08103690:
+ ldr r0, _0810369C @ =0x02000000
+ movs r1, 0
+ strh r6, [r0, 0x36]
+ strh r1, [r0, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810369C: .4byte 0x02000000
+_081036A0:
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ adds r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_081036AA:
+ movs r0, 0x3
+ b _08103736
+_081036AE:
+ ldrh r1, [r4, 0x2E]
+ subs r1, r3, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_8103520
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810375A
+ movs r6, 0x2
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ bne _081036D8
+ movs r6, 0x3
+_081036D8:
+ movs r5, 0
+ mov r7, sp
+_081036DC:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ beq _08103690
+ lsls r1, r5, 16
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ ble _081036DC
+ movs r6, 0x1
+ mov r7, sp
+ ldr r5, _0810373C @ =0x02000000
+_0810370E:
+ ldrh r1, [r5, 0x34]
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ ldrb r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _0810374E
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08103740
+ cmp r4, 0x2
+ ble _081036A0
+_08103736:
+ strh r0, [r5, 0x36]
+ strh r6, [r5, 0x30]
+ b _0810375A
+ .align 2, 0
+_0810373C: .4byte 0x02000000
+_08103740:
+ cmp r4, 0x2
+ ble _081036AA
+ movs r0, 0x2
+ strh r0, [r5, 0x36]
+ subs r0, r4, 0x1
+ strh r0, [r5, 0x30]
+ b _0810375A
+_0810374E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0810370E
+_0810375A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103668
+
+ thumb_func_start sub_8103764
+sub_8103764: @ 8103764
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _08103778
+ cmp r1, 0x1
+ beq _08103780
+_08103778:
+ cmp r0, 0x1
+ bne _08103784
+ cmp r2, 0
+ bne _08103784
+_08103780:
+ movs r0, 0x1
+ b _08103786
+_08103784:
+ movs r0, 0
+_08103786:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103764
+
+ thumb_func_start sub_810378C
+sub_810378C: @ 810378C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037A6
+ cmp r1, 0x1
+ bne _081037A6
+ cmp r2, 0
+ beq _081037B2
+_081037A6:
+ cmp r0, 0x1
+ bne _081037B6
+ cmp r1, 0
+ bne _081037B6
+ cmp r2, 0x1
+ bne _081037B6
+_081037B2:
+ movs r0, 0x1
+ b _081037B8
+_081037B6:
+ movs r0, 0
+_081037B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810378C
+
+ thumb_func_start sub_81037BC
+sub_81037BC: @ 81037BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0
+ bne _081037D6
+ cmp r1, 0x1
+ bne _081037D6
+ cmp r2, 0
+ beq _08103802
+_081037D6:
+ cmp r0, 0x1
+ bne _081037E2
+ cmp r1, 0
+ bne _081037E2
+ cmp r2, 0x1
+ beq _08103802
+_081037E2:
+ cmp r0, 0
+ bne _081037EE
+ cmp r1, 0
+ bne _081037EE
+ cmp r2, 0x1
+ beq _08103802
+_081037EE:
+ cmp r0, 0x1
+ bne _081037FA
+ cmp r1, 0x1
+ bne _081037FA
+ cmp r2, 0
+ beq _08103802
+_081037FA:
+ cmp r0, r1
+ bne _08103806
+ cmp r0, r2
+ bne _08103806
+_08103802:
+ movs r0, 0
+ b _08103808
+_08103806:
+ movs r0, 0x1
+_08103808:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81037BC
+
+ thumb_func_start sub_810380C
+sub_810380C: @ 810380C
+ push {lr}
+ ldr r1, _08103828 @ =gUnknown_083ECB94
+ ldr r0, _0810382C @ =0x02000000
+ movs r2, 0x12
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103828: .4byte gUnknown_083ECB94
+_0810382C: .4byte 0x02000000
+ thumb_func_end sub_810380C
+
+ thumb_func_start sub_8103830
+sub_8103830: @ 8103830
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r7, _08103868 @ =0x02000000
+ ldrh r1, [r7, 0x2E]
+ movs r4, 0x2
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x30]
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, r1
+ bne _081038A0
+ movs r4, 0x2
+ b _08103876
+ .align 2, 0
+_08103868: .4byte 0x02000000
+_0810386C:
+ lsls r0, r6, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r6, r0, 16
+_08103876:
+ lsls r1, r6, 16
+ asrs r1, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0810386C
+ cmp r5, 0
+ bne _08103896
+ cmp r0, 0x1
+ beq _0810386C
+_08103896:
+ cmp r5, 0x1
+ bne _08103900
+ cmp r0, 0
+ beq _0810386C
+ b _08103900
+_081038A0:
+ adds r0, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103900
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081038DC
+ movs r7, 0x2
+_081038B8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08103900
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081038B8
+_081038DC:
+ movs r6, 0
+ movs r7, 0x2
+ b _081038E8
+_081038E2:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_081038E8:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ subs r1, r7, r4
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _081038E2
+_08103900:
+ ldr r0, _0810390C @ =0x02000000
+ strh r6, [r0, 0x32]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810390C: .4byte 0x02000000
+ thumb_func_end sub_8103830
+
+ thumb_func_start sub_8103910
+sub_8103910: @ 8103910
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _08103978 @ =0x02000000
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _081039A6
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ bne _081039A6
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081039A6
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _081039A6
+ movs r5, 0
+ b _08103982
+ .align 2, 0
+_08103978: .4byte 0x02000000
+_0810397C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_08103982:
+ lsls r6, r5, 16
+ asrs r5, r6, 16
+ cmp r5, 0x4
+ bgt _081039A6
+ ldr r0, _08103A34 @ =0x02000000
+ ldrh r1, [r0, 0x36]
+ subs r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r7, r4
+ bne _0810397C
+ lsrs r6, 16
+ str r6, [sp]
+_081039A6:
+ ldr r0, _08103A34 @ =0x02000000
+ mov r9, r0
+_081039AA:
+ movs r5, 0x1
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp]
+ lsls r2, 16
+ mov r10, r2
+_081039B6:
+ mov r3, r9
+ ldrh r1, [r3, 0x2E]
+ lsls r5, 16
+ asrs r4, r5, 16
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r9
+ ldrh r1, [r0, 0x30]
+ subs r1, r4, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r1, r10
+ asrs r0, r1, 16
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103A38
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103A24
+ mov r2, r9
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103A38
+_08103A24:
+ mov r3, r8
+ lsls r0, r3, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ mov r8, r0
+ b _08103A46
+ .align 2, 0
+_08103A34: .4byte 0x02000000
+_08103A38:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r5, r2
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081039B6
+_08103A46:
+ mov r3, r8
+ cmp r3, 0
+ beq _08103A5C
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r0, 16
+ str r0, [sp]
+ b _081039AA
+_08103A5C:
+ ldr r0, _08103A74 @ =0x02000000
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r0, 0x32]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103A74: .4byte 0x02000000
+ thumb_func_end sub_8103910
+
+ thumb_func_start sub_8103A78
+sub_8103A78: @ 8103A78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_8103910
+ ldr r4, _08103B10 @ =0x02000000
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08103B20
+ ldrh r2, [r4, 0x34]
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ beq _08103B20
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08103B20
+ ldrh r1, [r4, 0x2E]
+ subs r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x30]
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8103764
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B20
+ movs r1, 0x1
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bne _08103AE0
+ movs r1, 0x3
+_08103AE0:
+ movs r3, 0
+ lsls r1, 16
+ mov r8, r1
+ adds r7, r4, 0
+_08103AE8:
+ ldrh r2, [r7, 0x32]
+ lsls r0, r3, 16
+ asrs r5, r0, 16
+ adds r2, r5, r2
+ mov r3, r8
+ asrs r1, r3, 16
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r6, r4
+ bne _08103B14
+ ldrh r0, [r7, 0x32]
+ adds r0, r5, r0
+ strh r0, [r7, 0x32]
+ b _08103B20
+ .align 2, 0
+_08103B10: .4byte 0x02000000
+_08103B14:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _08103AE8
+_08103B20:
+ ldr r7, _08103B90 @ =0x02000000
+_08103B22:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103B94
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103B88
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103B94
+_08103B88:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B22
+ .align 2, 0
+_08103B90: .4byte 0x02000000
+_08103B94:
+ ldr r7, _08103C04 @ =0x02000000
+_08103B96:
+ ldrh r0, [r7, 0x2E]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r7, 0x30]
+ movs r1, 0x2
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x1
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r7, 0x32]
+ movs r1, 0x1
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x2
+ bl sub_8102BF8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81037BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103C08
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810378C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08103BFC
+ ldrb r1, [r7, 0x4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08103C08
+_08103BFC:
+ ldrh r0, [r7, 0x32]
+ adds r0, 0x1
+ strh r0, [r7, 0x32]
+ b _08103B96
+ .align 2, 0
+_08103C04: .4byte 0x02000000
+_08103C08:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103A78
+
+ thumb_func_start sub_8103C14
+sub_8103C14: @ 8103C14
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08103C40 @ =sub_8103C48
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103C44 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x26]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C40: .4byte sub_8103C48
+_08103C44: .4byte gTasks
+ thumb_func_end sub_8103C14
+
+ thumb_func_start sub_8103C48
+sub_8103C48: @ 8103C48
+ push {r4,lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08103C70 @ =gUnknown_083ECBA0
+ ldr r2, _08103C74 @ =gTasks
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r4, 0x8
+ ldrsh r2, [r0, r4]
+ lsls r2, 2
+ adds r2, r3
+ ldr r2, [r2]
+ bl _call_via_r2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103C70: .4byte gUnknown_083ECBA0
+_08103C74: .4byte gTasks
+ thumb_func_end sub_8103C48
+
+ thumb_func_start sub_8103C78
+sub_8103C78: @ 8103C78
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _08103CA8 @ =gUnknown_083ECBAC
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x73
+ str r1, [sp]
+ movs r1, 0x62
+ movs r2, 0x63
+ movs r3, 0x72
+ bl sub_81065A8
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CA8: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103C78
+
+ thumb_func_start sub_8103CAC
+sub_8103CAC: @ 8103CAC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _08103CC4
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08103CC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8103CAC
+
+ thumb_func_start sub_8103CC8
+sub_8103CC8: @ 8103CC8
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _08103CFC @ =gUnknown_083ECBAC
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x53
+ str r1, [sp]
+ movs r1, 0x42
+ movs r2, 0x43
+ movs r3, 0x52
+ bl sub_81065A8
+ adds r0, r4, 0
+ bl DestroyTask
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103CFC: .4byte gUnknown_083ECBAC
+ thumb_func_end sub_8103CC8
+
+ thumb_func_start sub_8103D00
+sub_8103D00: @ 8103D00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D20 @ =gUnknown_083EDD08
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D24 @ =gUnknown_083EDD30
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D20: .4byte gUnknown_083EDD08
+_08103D24: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D00
+
+ thumb_func_start sub_8103D28
+sub_8103D28: @ 8103D28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103D48 @ =gUnknown_083EDD1C
+ lsls r1, r0, 2
+ adds r1, r2
+ ldr r2, [r1]
+ ldr r1, _08103D4C @ =gUnknown_083EDD30
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x2
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D48: .4byte gUnknown_083EDD1C
+_08103D4C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103D28
+
+ thumb_func_start sub_8103D50
+sub_8103D50: @ 8103D50
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103D84 @ =gUnknown_083EDD3B
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103D7C
+ ldr r7, _08103D88 @ =gUnknown_083EDD35
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103D68:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D00
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103D68
+_08103D7C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103D84: .4byte gUnknown_083EDD3B
+_08103D88: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D50
+
+ thumb_func_start sub_8103D8C
+sub_8103D8C: @ 8103D8C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ ldr r0, _08103DC0 @ =gUnknown_083EDD3B
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _08103DB8
+ ldr r7, _08103DC4 @ =gUnknown_083EDD35
+ adds r6, r0, 0
+ lsls r5, r1, 1
+_08103DA4:
+ adds r0, r4, r5
+ adds r0, r7
+ ldrb r0, [r0]
+ bl sub_8103D28
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08103DA4
+_08103DB8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DC0: .4byte gUnknown_083EDD3B
+_08103DC4: .4byte gUnknown_083EDD35
+ thumb_func_end sub_8103D8C
+
+ thumb_func_start sub_8103DC8
+sub_8103DC8: @ 8103DC8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _08103DF8 @ =gSprites
+ ldr r5, _08103DFC @ =0x02000044
+_08103DD0:
+ ldr r0, _08103E00 @ =sub_8103EE4
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ strh r4, [r1, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103DD0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103DF8: .4byte gSprites
+_08103DFC: .4byte 0x02000044
+_08103E00: .4byte sub_8103EE4
+ thumb_func_end sub_8103DC8
+
+ thumb_func_start sub_8103E04
+sub_8103E04: @ 8103E04
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08103E30 @ =0x02000000
+ adds r1, 0x44
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08103E34 @ =gSprites
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x30]
+ movs r1, 0x4
+ strh r1, [r0, 0x32]
+ strh r2, [r0, 0x34]
+ strh r2, [r0, 0x36]
+ movs r1, 0x2
+ strh r1, [r0, 0x38]
+ strh r2, [r0, 0x3C]
+ bx lr
+ .align 2, 0
+_08103E30: .4byte 0x02000000
+_08103E34: .4byte gSprites
+ thumb_func_end sub_8103E04
+
+ thumb_func_start sub_8103E38
+sub_8103E38: @ 8103E38
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r4, _08103E60 @ =0x02000044
+ ldr r3, _08103E64 @ =gSprites
+_08103E40:
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r3
+ movs r5, 0x30
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r5, 0x32
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08103E68
+ movs r0, 0
+ b _08103E74
+ .align 2, 0
+_08103E60: .4byte 0x02000044
+_08103E64: .4byte gSprites
+_08103E68:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _08103E40
+ movs r0, 0x1
+_08103E74:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E38
+
+ thumb_func_start sub_8103E7C
+sub_8103E7C: @ 8103E7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08103E94 @ =0x02000044
+_08103E82:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ bl sub_8103EAC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08103E98
+ movs r0, 0
+ b _08103EA4
+ .align 2, 0
+_08103E94: .4byte 0x02000044
+_08103E98:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08103E82
+ movs r0, 0x1
+_08103EA4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103E7C
+
+ thumb_func_start sub_8103EAC
+sub_8103EAC: @ 8103EAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08103EC8 @ =gSprites
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08103ECC
+ movs r0, 0x1
+ b _08103EDE
+ .align 2, 0
+_08103EC8: .4byte gSprites
+_08103ECC:
+ ldrh r2, [r1, 0x3C]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08103EDA
+ movs r0, 0
+ strh r0, [r1, 0x30]
+_08103EDA:
+ lsls r0, r2, 24
+ lsrs r0, 24
+_08103EDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8103EAC
+
+ thumb_func_start sub_8103EE4
+sub_8103EE4: @ 8103EE4
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F66
+ ldrh r0, [r2, 0x34]
+ subs r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08103F4E
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ movs r6, 0x1
+ strh r6, [r2, 0x34]
+ ldrh r1, [r2, 0x38]
+ ldrh r3, [r2, 0x36]
+ adds r0, r1, r3
+ strh r0, [r2, 0x36]
+ movs r4, 0x4
+ ldrh r5, [r2, 0x32]
+ movs r7, 0x32
+ ldrsh r3, [r2, r7]
+ cmp r3, 0
+ beq _08103F20
+ movs r4, 0x8
+_08103F20:
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bgt _08103F38
+ strh r6, [r2, 0x3C]
+ negs r0, r1
+ strh r0, [r2, 0x38]
+ cmp r3, 0
+ beq _08103F4E
+ subs r0, r5, 0x1
+ strh r0, [r2, 0x32]
+ b _08103F40
+_08103F38:
+ cmp r0, r4
+ blt _08103F40
+ negs r0, r1
+ strh r0, [r2, 0x38]
+_08103F40:
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08103F4E
+ ldrh r0, [r2, 0x34]
+ lsls r0, 1
+ strh r0, [r2, 0x34]
+_08103F4E:
+ ldr r1, _08103F6C @ =gUnknown_083EDD30
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrh r3, [r2, 0x36]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl MultiplyPaletteRGBComponents
+_08103F66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F6C: .4byte gUnknown_083EDD30
+ thumb_func_end sub_8103EE4
+
+ thumb_func_start sub_8103F70
+sub_8103F70: @ 8103F70
+ push {r4,lr}
+ ldr r4, _08103F98 @ =sub_8103FE8
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08103F9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0xE]
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08103F98: .4byte sub_8103FE8
+_08103F9C: .4byte gTasks
+ thumb_func_end sub_8103F70
+
+ thumb_func_start sub_8103FA0
+sub_8103FA0: @ 8103FA0
+ push {lr}
+ ldr r0, _08103FC4 @ =sub_8103FE8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08103FC8 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08103FCC
+ movs r0, 0
+ b _08103FE0
+ .align 2, 0
+_08103FC4: .4byte sub_8103FE8
+_08103FC8: .4byte gTasks
+_08103FCC:
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _08103FE4 @ =gUnknown_083EDDAC
+ ldr r0, [r0]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x1
+_08103FE0:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08103FE4: .4byte gUnknown_083EDDAC
+ thumb_func_end sub_8103FA0
+
+ thumb_func_start sub_8103FE8
+sub_8103FE8: @ 8103FE8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08104040 @ =gTasks
+ adds r2, r1, r0
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08104026
+ movs r0, 0x4
+ strh r0, [r2, 0xA]
+ ldrh r1, [r2, 0xE]
+ ldrh r3, [r2, 0xC]
+ adds r0, r1, r3
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _08104022
+ cmp r0, 0x2
+ bne _08104026
+_08104022:
+ negs r0, r1
+ strh r0, [r2, 0xE]
+_08104026:
+ ldr r0, _08104044 @ =gUnknown_083EDDA0
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104040: .4byte gTasks
+_08104044: .4byte gUnknown_083EDDA0
+ thumb_func_end sub_8103FE8
+
+ thumb_func_start sub_8104048
+sub_8104048: @ 8104048
+ push {lr}
+ ldr r0, _0810405C @ =sub_81040E8
+ movs r1, 0x8
+ bl CreateTask
+ ldr r1, _08104060 @ =0x02000000
+ adds r1, 0x3E
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810405C: .4byte sub_81040E8
+_08104060: .4byte 0x02000000
+ thumb_func_end sub_8104048
+
+ thumb_func_start sub_8104064
+sub_8104064: @ 8104064
+ push {r4,lr}
+ ldr r0, _08104090 @ =0x02000000
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _08104094 @ =gTasks
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r1, 0x1
+ strh r1, [r4, 0x8]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104090: .4byte 0x02000000
+_08104094: .4byte gTasks
+ thumb_func_end sub_8104064
+
+ thumb_func_start sub_8104098
+sub_8104098: @ 8104098
+ push {r4,lr}
+ ldr r0, _081040C0 @ =0x02000000
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081040C4 @ =gTasks
+ adds r4, r0
+ adds r0, r4, 0
+ bl sub_810421C
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081040C0: .4byte 0x02000000
+_081040C4: .4byte gTasks
+ thumb_func_end sub_8104098
+
+ thumb_func_start sub_81040C8
+sub_81040C8: @ 81040C8
+ ldr r2, _081040E0 @ =gTasks
+ ldr r0, _081040E4 @ =0x02000000
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_081040E0: .4byte gTasks
+_081040E4: .4byte 0x02000000
+ thumb_func_end sub_81040C8
+
+ thumb_func_start sub_81040E8
+sub_81040E8: @ 81040E8
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104110 @ =gUnknown_083ECBB4
+ ldr r2, _08104114 @ =gTasks
+ 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
+_08104110: .4byte gUnknown_083ECBB4
+_08104114: .4byte gTasks
+ thumb_func_end sub_81040E8
+
+ thumb_func_start nullsub_68
+nullsub_68: @ 8104118
+ bx lr
+ thumb_func_end nullsub_68
+
+ thumb_func_start sub_810411C
+sub_810411C: @ 810411C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r0, 19
+ movs r1, 0xA0
+ lsls r1, 13
+ adds r0, r1
+ asrs r0, 16
+ movs r1, 0x14
+ bl sub_8105B1C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810411C
+
+ thumb_func_start sub_8104144
+sub_8104144: @ 8104144
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _08104174 @ =gSprites
+ movs r0, 0xC
+ 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 _0810419E
+ ldrh r1, [r4, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _08104178
+ movs r0, 0x1
+ b _0810417E
+ .align 2, 0
+_08104174: .4byte gSprites
+_08104178:
+ cmp r1, 0x10
+ bne _0810417E
+ movs r0, 0x2
+_0810417E:
+ lsls r1, r2, 16
+ asrs r1, 15
+ ldr r2, _081041A4 @ =0x0600e800
+ adds r1, r2
+ adds r1, 0x80
+ ldr r2, _081041A8 @ =gUnknown_083ECBC4
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r4, 0xC]
+ bl sub_8105B88
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0x26]
+_0810419E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081041A4: .4byte 0x0600e800
+_081041A8: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_8104144
+
+ thumb_func_start sub_81041AC
+sub_81041AC: @ 81041AC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0xA]
+ adds r0, r1, 0x2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x1
+ bne _081041C6
+ movs r2, 0x1
+ b _081041CC
+_081041C6:
+ cmp r1, 0x10
+ bne _081041CC
+ movs r2, 0x2
+_081041CC:
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _081041F0
+ lsls r0, r4, 16
+ asrs r0, 15
+ ldr r1, _08104214 @ =0x0600e800
+ adds r0, r1
+ adds r0, 0x80
+ ldr r1, _08104218 @ =gUnknown_083ECBC4
+ lsls r2, 2
+ adds r1, 0x2
+ adds r2, r1
+ ldrh r1, [r2]
+ strh r1, [r0]
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+_081041F0:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _08104202
+ movs r0, 0
+ strh r0, [r3, 0xC]
+_08104202:
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _0810420E
+ strh r0, [r3, 0x8]
+ strh r0, [r3, 0x26]
+_0810420E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104214: .4byte 0x0600e800
+_08104218: .4byte gUnknown_083ECBC4
+ thumb_func_end sub_81041AC
+
+ thumb_func_start sub_810421C
+sub_810421C: @ 810421C
+ push {lr}
+ movs r1, 0x2
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0
+_08104226:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104226
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810421C
+
+ thumb_func_start sub_810423C
+sub_810423C: @ 810423C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0x3
+ ldr r6, _08104268 @ =0x0600e800
+ movs r4, 0
+ ldr r0, _0810426C @ =gTasks
+ mov r8, r0
+ ldr r1, _08104270 @ =0x02000000
+ mov r12, r1
+ cmp r4, r5
+ bge _081042A6
+ ldr r7, _08104274 @ =gUnknown_083ECBC4
+_0810425A:
+ movs r3, 0
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _08104278
+ movs r3, 0x1
+ b _0810427E
+ .align 2, 0
+_08104268: .4byte 0x0600e800
+_0810426C: .4byte gTasks
+_08104270: .4byte 0x02000000
+_08104274: .4byte gUnknown_083ECBC4
+_08104278:
+ cmp r0, 0xF
+ bne _0810427E
+ movs r3, 0x2
+_0810427E:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, r5
+ blt _0810425A
+_081042A6:
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ bgt _081042F0
+ ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2
+_081042B0:
+ movs r3, 0
+ asrs r0, r1, 16
+ cmp r0, 0
+ bne _081042C0
+ movs r3, 0x1
+ b _081042C6
+ .align 2, 0
+_081042BC: .4byte gUnknown_083ECBC4 + 0x2
+_081042C0:
+ cmp r0, 0xF
+ bne _081042C6
+ movs r3, 0x2
+_081042C6:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r1, r6
+ adds r1, 0x80
+ lsls r0, r3, 2
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r1, r4, 16
+ asrs r0, r1, 16
+ cmp r0, 0xF
+ ble _081042B0
+_081042F0:
+ mov r0, r12
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r8
+ strh r5, [r0, 0xA]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810423C
+
+ thumb_func_start sub_810430C
+sub_810430C: @ 810430C
+ push {r4,lr}
+ ldr r4, _08104328 @ =sub_810434C
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl _call_via_r4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104328: .4byte sub_810434C
+ thumb_func_end sub_810430C
+
+ thumb_func_start sub_810432C
+sub_810432C: @ 810432C
+ push {lr}
+ ldr r0, _08104340 @ =sub_810434C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104344
+ movs r0, 0
+ b _08104346
+ .align 2, 0
+_08104340: .4byte sub_810434C
+_08104344:
+ movs r0, 0x1
+_08104346:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810432C
+
+ thumb_func_start sub_810434C
+sub_810434C: @ 810434C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104374 @ =gUnknown_083ECBD0
+ ldr r2, _08104378 @ =gTasks
+ 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
+_08104374: .4byte gUnknown_083ECBD0
+_08104378: .4byte gTasks
+ thumb_func_end sub_810434C
+
+ thumb_func_start sub_810437C
+sub_810437C: @ 810437C
+ push {lr}
+ ldr r1, _081043DC @ =0x02000000
+ movs r2, 0
+ strb r2, [r1, 0xA]
+ strh r2, [r1, 0x14]
+ strh r2, [r1, 0x16]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ movs r1, 0x1E
+ strh r1, [r0, 0xC]
+ movs r1, 0xA0
+ lsls r1, 3
+ strh r1, [r0, 0x10]
+ ldr r0, _081043E0 @ =gSpriteCoordOffsetX
+ strh r2, [r0]
+ ldr r0, _081043E4 @ =gSpriteCoordOffsetY
+ strh r2, [r0]
+ ldr r0, _081043E8 @ =REG_BG1HOFS
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ movs r0, 0x1E
+ movs r1, 0
+ bl sub_8104A40
+ bl sub_81051C0
+ bl sub_8105100
+ bl sub_81052EC
+ bl sub_81053A0
+ bl sub_810545C
+ bl sub_8102680
+ bl StopMapMusic
+ movs r0, 0xC4
+ lsls r0, 1
+ bl PlayNewMapMusic
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081043DC: .4byte 0x02000000
+_081043E0: .4byte gSpriteCoordOffsetX
+_081043E4: .4byte gSpriteCoordOffsetY
+_081043E8: .4byte REG_BG1HOFS
+ thumb_func_end sub_810437C
+
+ thumb_func_start sub_81043EC
+sub_81043EC: @ 81043EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810445C @ =gSpriteCoordOffsetX
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r4, 0xA]
+ adds r2, 0x8
+ strh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r0, 0xF0
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r3, r0, 3
+ ldr r1, _08104460 @ =REG_BG1HOFS
+ ldr r0, _08104464 @ =0x000001ff
+ ands r2, r0
+ strh r2, [r1]
+ adds r2, r3, 0
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r2, r0
+ beq _08104438
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bgt _08104438
+ strh r3, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 19
+ strh r0, [r4, 0xE]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ adds r0, r2, 0
+ bl sub_8104A40
+_08104438:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC7
+ ble _0810444A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xE]
+_0810444A:
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810445C: .4byte gSpriteCoordOffsetX
+_08104460: .4byte REG_BG1HOFS
+_08104464: .4byte 0x000001ff
+ thumb_func_end sub_81043EC
+
+ thumb_func_start sub_8104468
+sub_8104468: @ 8104468
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104492
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105578
+ bl sub_81056F0
+_08104492:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104468
+
+ thumb_func_start sub_8104498
+sub_8104498: @ 8104498
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ ldr r1, _08104534 @ =gUnknown_083ECC1C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _08104538 @ =gUnknown_083ECC20
+ movs r2, 0x8
+ bl memcpy
+ add r6, sp, 0xC
+ ldr r1, _0810453C @ =gUnknown_083ECC28
+ adds r0, r6, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r7, 0x10]
+ subs r0, 0x4
+ strh r0, [r7, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ movs r5, 0x4
+ subs r5, r0
+ lsls r4, r5, 1
+ add r8, r4
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bl sub_8105688
+ adds r6, r4
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ bl sub_81057E8
+ ldr r0, _08104540 @ =0x02000000
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104544 @ =gSprites
+ adds r0, r1
+ mov r2, sp
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ bl StartSpriteAnimIfDifferent
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ movs r1, 0x80
+ lsls r1, 1
+ cmp r0, r1
+ bgt _08104526
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ strh r1, [r7, 0x10]
+ movs r0, 0
+ strh r0, [r7, 0x12]
+_08104526:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104534: .4byte gUnknown_083ECC1C
+_08104538: .4byte gUnknown_083ECC20
+_0810453C: .4byte gUnknown_083ECC28
+_08104540: .4byte 0x02000000
+_08104544: .4byte gSprites
+ thumb_func_end sub_8104498
+
+ thumb_func_start sub_8104548
+sub_8104548: @ 8104548
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _0810458A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ movs r0, 0x2
+ bl sub_81057E8
+ ldr r0, _08104590 @ =0x02000000
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104594 @ =gSprites
+ adds r0, r1
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+_0810458A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104590: .4byte 0x02000000
+_08104594: .4byte gSprites
+ thumb_func_end sub_8104548
+
+ thumb_func_start sub_8104598
+sub_8104598: @ 8104598
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x80
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4F
+ ble _081045C4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ strh r0, [r4, 0x12]
+_081045C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104598
+
+ thumb_func_start sub_81045CC
+sub_81045CC: @ 81045CC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _08104634
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldr r1, _0810460C @ =0x02000000
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0
+ beq _08104610
+ ldrb r1, [r1, 0xA]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0810462E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+ .align 2, 0
+_0810460C: .4byte 0x02000000
+_08104610:
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3
+ ble _0810461E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ b _0810462C
+_0810461E:
+ ldrh r0, [r4, 0x14]
+ bl sub_81026DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810462E
+ movs r0, 0xE
+_0810462C:
+ strh r0, [r4, 0x8]
+_0810462E:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+_08104634:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81045CC
+
+ thumb_func_start sub_810463C
+sub_810463C: @ 810463C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r6, _08104660 @ =0x02000000
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r0, 0
+ beq _08104664
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D5C
+ b _08104688
+ .align 2, 0
+_08104660: .4byte 0x02000000
+_08104664:
+ movs r0, 0x1
+ bl sub_8102C48
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x5]
+ cmp r0, r1
+ beq _08104692
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_8102D28
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ movs r1, 0x14
+ bl __modsi3
+_08104688:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x40
+ strh r0, [r4, 0x10]
+_08104692:
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ bne _081046B4
+ movs r0, 0x1
+ bl sub_8102C48
+ ldr r1, _081046BC @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1, 0x5]
+ cmp r0, r1
+ bne _081046B4
+ strh r5, [r4, 0x10]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_081046B4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081046BC: .4byte 0x02000000
+ thumb_func_end sub_810463C
+
+ thumb_func_start sub_81046C0
+sub_81046C0: @ 81046C0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ movs r7, 0
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3B
+ ble _08104758
+ bl StopMapMusic
+ bl sub_81056C0
+ bl sub_8105804
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r5, _08104710 @ =0x02000000
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0
+ bne _0810471C
+ movs r0, 0xA0
+ strh r0, [r4, 0x10]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104714 @ =gSprites
+ adds r0, r1
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldr r0, _08104718 @ =0x00000187
+ bl PlayFanfare
+ b _08104758
+ .align 2, 0
+_08104710: .4byte 0x02000000
+_08104714: .4byte gSprites
+_08104718: .4byte 0x00000187
+_0810471C:
+ movs r0, 0xC0
+ strh r0, [r4, 0x10]
+ adds r6, r5, 0
+ adds r6, 0x3F
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08104760 @ =gSprites
+ adds r0, r4
+ movs r1, 0x4
+ bl StartSpriteAnimIfDifferent
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2B
+ strb r7, [r0]
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _08104750
+ bl sub_8104098
+ strb r7, [r5, 0x2]
+_08104750:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+_08104758:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104760: .4byte gSprites
+ thumb_func_end sub_81046C0
+
+ thumb_func_start sub_8104764
+sub_8104764: @ 8104764
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0810477C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0810478C
+_0810477C:
+ bl sub_81040C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810478C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0810478C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104764
+
+ thumb_func_start sub_8104794
+sub_8104794: @ 8104794
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, _081047D4 @ =gSpriteCoordOffsetX
+ ldrh r0, [r1]
+ subs r0, 0x8
+ strh r0, [r1]
+ ldrh r2, [r3, 0xA]
+ adds r2, 0x8
+ strh r2, [r3, 0xA]
+ ldrh r0, [r3, 0xE]
+ adds r0, 0x8
+ strh r0, [r3, 0xE]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ subs r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ lsrs r4, r0, 3
+ ldr r1, _081047D8 @ =REG_BG1HOFS
+ ldr r0, _081047DC @ =0x000001ff
+ ands r2, r0
+ strh r2, [r1]
+ ldrh r0, [r3, 0xE]
+ lsls r0, 16
+ asrs r0, 19
+ cmp r0, 0x19
+ bgt _081047E0
+ adds r0, r4, 0
+ bl sub_8104A88
+ b _081047E6
+ .align 2, 0
+_081047D4: .4byte gSpriteCoordOffsetX
+_081047D8: .4byte REG_BG1HOFS
+_081047DC: .4byte 0x000001ff
+_081047E0:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_081047E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104794
+
+ thumb_func_start sub_81047EC
+sub_81047EC: @ 81047EC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _08104834 @ =0x02000000
+ movs r6, 0
+ strb r6, [r4, 0xB]
+ ldrb r0, [r4, 0x5]
+ strb r0, [r4, 0xA]
+ ldr r0, _08104838 @ =gSpriteCoordOffsetX
+ strh r6, [r0]
+ ldr r0, _0810483C @ =REG_BG1HOFS
+ strh r6, [r0]
+ movs r0, 0x8
+ strh r0, [r4, 0x1A]
+ bl sub_810514C
+ bl sub_81054B8
+ bl sub_8105524
+ adds r0, r4, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _08104844
+ ldr r0, _08104840 @ =sub_810434C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _0810485A
+ .align 2, 0
+_08104834: .4byte 0x02000000
+_08104838: .4byte gSpriteCoordOffsetX
+_0810483C: .4byte REG_BG1HOFS
+_08104840: .4byte sub_810434C
+_08104844:
+ movs r0, 0x4
+ bl sub_8104CAC
+ bl dp15_jump_random_unknown
+ strh r0, [r5, 0xA]
+ strh r6, [r5, 0xC]
+ strh r6, [r5, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_0810485A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81047EC
+
+ thumb_func_start sub_8104860
+sub_8104860: @ 8104860
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0810487C @ =0x02000000
+ ldrh r0, [r5, 0x1A]
+ lsls r6, r0, 16
+ asrs r1, r6, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08104880
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081048A2
+ .align 2, 0
+_0810487C: .4byte 0x02000000
+_08104880:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081048A2
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _081048A2
+ asrs r0, r6, 17
+ strh r0, [r5, 0x1A]
+_081048A2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104860
+
+ thumb_func_start sub_81048A8
+sub_81048A8: @ 81048A8
+ push {lr}
+ bl sub_8104E18
+ lsls r0, 24
+ cmp r0, 0
+ beq _081048C2
+ ldr r0, _081048C8 @ =sub_810434C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_081048C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081048C8: .4byte sub_810434C
+ thumb_func_end sub_81048A8
+
+ thumb_func_start sub_81048CC
+sub_81048CC: @ 81048CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_81054B8
+ bl sub_81056C0
+ bl sub_8105804
+ bl sub_8105854
+ ldr r5, _08104934 @ =gSprites
+ ldr r3, _08104938 @ =0x02000000
+ adds r0, r3, 0
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x5
+ bl StartSpriteAnimIfDifferent
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ movs r0, 0x4
+ strh r0, [r4, 0x10]
+ strh r1, [r4, 0x12]
+ bl StopMapMusic
+ ldr r0, _0810493C @ =0x00000187
+ bl PlayFanfare
+ movs r0, 0xB2
+ bl PlaySE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104934: .4byte gSprites
+_08104938: .4byte 0x02000000
+_0810493C: .4byte 0x00000187
+ thumb_func_end sub_81048CC
+
+ thumb_func_start sub_8104940
+sub_8104940: @ 8104940
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _081049B8 @ =gSpriteCoordOffsetY
+ ldrh r1, [r4, 0x10]
+ strh r1, [r0]
+ ldr r0, _081049BC @ =REG_BG1VOFS
+ strh r1, [r0]
+ ldrh r1, [r4, 0x12]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810495E
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+_0810495E:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ movs r1, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ bne _08104974
+ ldrh r0, [r4, 0x10]
+ lsls r0, 16
+ asrs r0, 17
+ strh r0, [r4, 0x10]
+_08104974:
+ movs r0, 0x10
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _081049B0
+ bl sub_81058A0
+ bl sub_81058C4
+ bl sub_8105284
+ bl sub_81059E8
+ ldr r2, _081049C0 @ =gSprites
+ ldr r0, _081049C4 @ =0x02000000
+ adds r0, 0x4E
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0x12]
+_081049B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049B8: .4byte gSpriteCoordOffsetY
+_081049BC: .4byte REG_BG1VOFS
+_081049C0: .4byte gSprites
+_081049C4: .4byte 0x02000000
+ thumb_func_end sub_8104940
+
+ thumb_func_start sub_81049C8
+sub_81049C8: @ 81049C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081049F0 @ =gSpriteCoordOffsetY
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _081049F4 @ =REG_BG1VOFS
+ strh r1, [r0]
+ bl sub_8105ACC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081049EA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl sub_8105AEC
+_081049EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081049F0: .4byte gSpriteCoordOffsetY
+_081049F4: .4byte REG_BG1VOFS
+ thumb_func_end sub_81049C8
+
+ thumb_func_start sub_81049F8
+sub_81049F8: @ 81049F8
+ push {lr}
+ ldr r0, _08104A30 @ =gSpriteCoordOffsetX
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08104A34 @ =REG_BG1HOFS
+ strh r1, [r0]
+ ldr r0, _08104A38 @ =0x02000000
+ adds r0, 0x60
+ ldrh r0, [r0]
+ bl PlayNewMapMusic
+ bl sub_810514C
+ bl sub_8105554
+ bl sub_8105524
+ bl sub_81059B8
+ ldr r0, _08104A3C @ =sub_810434C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A30: .4byte gSpriteCoordOffsetX
+_08104A34: .4byte REG_BG1HOFS
+_08104A38: .4byte 0x02000000
+_08104A3C: .4byte sub_810434C
+ thumb_func_end sub_81049F8
+
+ thumb_func_start sub_8104A40
+sub_8104A40: @ 8104A40
+ push {r4-r7,lr}
+ movs r3, 0x4
+ ldr r7, _08104A80 @ =gReelTimeWindowTilemap
+ lsls r1, 16
+ asrs r5, r1, 16
+ lsls r0, 16
+ asrs r4, r0, 16
+ ldr r6, _08104A84 @ =0x0600e000
+_08104A50:
+ lsls r2, r3, 16
+ asrs r2, 16
+ subs r1, r2, 0x4
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5, r0
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r0]
+ lsls r0, r2, 5
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r6
+ strh r1, [r0]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r3, r2, 16
+ asrs r2, 16
+ cmp r2, 0xE
+ ble _08104A50
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104A80: .4byte gReelTimeWindowTilemap
+_08104A84: .4byte 0x0600e000
+ thumb_func_end sub_8104A40
+
+ thumb_func_start sub_8104A88
+sub_8104A88: @ 8104A88
+ push {r4,r5,lr}
+ movs r2, 0x4
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r5, _08104AB4 @ =0x0600e000
+ movs r4, 0
+_08104A94:
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r2, r1, 16
+ asrs r1, 16
+ cmp r1, 0xE
+ ble _08104A94
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AB4: .4byte 0x0600e000
+ thumb_func_end sub_8104A88
+
+ thumb_func_start sub_8104AB8
+sub_8104AB8: @ 8104AB8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08104AE4 @ =sub_8104B0C
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08104AE8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ bl _call_via_r5
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104AE4: .4byte sub_8104B0C
+_08104AE8: .4byte gTasks
+ thumb_func_end sub_8104AB8
+
+ thumb_func_start sub_8104AEC
+sub_8104AEC: @ 8104AEC
+ push {lr}
+ ldr r0, _08104B00 @ =sub_8104B0C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _08104B04
+ movs r0, 0
+ b _08104B06
+ .align 2, 0
+_08104B00: .4byte sub_8104B0C
+_08104B04:
+ movs r0, 0x1
+_08104B06:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104AEC
+
+ thumb_func_start sub_8104B0C
+sub_8104B0C: @ 8104B0C
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104B34 @ =gUnknown_083ECC30
+ ldr r2, _08104B38 @ =gTasks
+ 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
+_08104B34: .4byte gUnknown_083ECC30
+_08104B38: .4byte gTasks
+ thumb_func_end sub_8104B0C
+
+ thumb_func_start sub_8104B3C
+sub_8104B3C: @ 8104B3C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104B3C
+
+ thumb_func_start sub_8104B60
+sub_8104B60: @ 8104B60
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08104B7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08104B76
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_08104B76:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104B7C: .4byte gPaletteFade
+ thumb_func_end sub_8104B60
+
+ thumb_func_start sub_8104B80
+sub_8104B80: @ 8104B80
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8104DA4
+ bl sub_81065DC
+ ldr r0, _08104BC0 @ =gWindowConfig_81E7144
+ bl BasicInitMenuWindow
+ ldr r0, _08104BC4 @ =gOtherText_ReelTime
+ movs r1, 0xA
+ movs r2, 0x20
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BC0: .4byte gWindowConfig_81E7144
+_08104BC4: .4byte gOtherText_ReelTime
+ thumb_func_end sub_8104B80
+
+ thumb_func_start sub_8104BC8
+sub_8104BC8: @ 8104BC8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _08104BF8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _08104BF0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08104BF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104BF8: .4byte gMain
+ thumb_func_end sub_8104BC8
+
+ thumb_func_start sub_8104BFC
+sub_8104BFC: @ 8104BFC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl MenuZeroFillScreen
+ ldr r0, _08104C3C @ =gWindowConfig_81E7128
+ bl BasicInitMenuWindow
+ bl sub_81064B8
+ ldrb r0, [r4, 0xA]
+ bl sub_8104CAC
+ ldr r0, _08104C40 @ =0x02000000
+ ldrb r0, [r0, 0x2]
+ bl sub_810423C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C3C: .4byte gWindowConfig_81E7128
+_08104C40: .4byte 0x02000000
+ thumb_func_end sub_8104BFC
+
+ thumb_func_start sub_8104C44
+sub_8104C44: @ 8104C44
+ push {lr}
+ ldr r0, _08104C58 @ =sub_8104B0C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C58: .4byte sub_8104B0C
+ thumb_func_end sub_8104C44
+
+ thumb_func_start sub_8104C5C
+sub_8104C5C: @ 8104C5C
+ push {lr}
+ ldr r0, _08104C9C @ =sub_8104E74
+ movs r1, 0x3
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08104CA0 @ =0x02000000
+ adds r0, 0x3D
+ strb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104CA4 @ =gTasks
+ adds r0, r1
+ ldr r1, _08104CA8 @ =0x0000ffff
+ strh r1, [r0, 0xA]
+ movs r1, 0x4
+ adds r2, r0, 0
+ adds r2, 0x8
+ movs r3, 0x40
+_08104C86:
+ lsls r0, r1, 1
+ adds r0, r2, r0
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _08104C86
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104C9C: .4byte sub_8104E74
+_08104CA0: .4byte 0x02000000
+_08104CA4: .4byte gTasks
+_08104CA8: .4byte 0x0000ffff
+ thumb_func_end sub_8104C5C
+
+ thumb_func_start sub_8104CAC
+sub_8104CAC: @ 8104CAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8104DA4
+ ldr r0, _08104D24 @ =0x02000000
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D28 @ =gTasks
+ adds r7, r0, r1
+ strh r4, [r7, 0xA]
+ movs r6, 0
+ ldr r1, _08104D2C @ =gUnknown_083ED048
+ lsls r5, r4, 2
+ adds r0, r5, r1
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08104D18
+ mov r8, r1
+_08104CE0:
+ mov r0, r8
+ adds r4, r5, r0
+ ldr r0, [r4]
+ lsls r2, r6, 2
+ adds r2, r0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ bl sub_8105BB4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r6, 0x4
+ lsls r2, 1
+ adds r1, r7, 0
+ adds r1, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, [r4]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08104CE0
+_08104D18:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104D24: .4byte 0x02000000
+_08104D28: .4byte gTasks
+_08104D2C: .4byte gUnknown_083ED048
+ thumb_func_end sub_8104CAC
+
+ thumb_func_start sub_8104D30
+sub_8104D30: @ 8104D30
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r1
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08104D84 @ =0x02000000
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104D88 @ =gTasks
+ adds r0, r1
+ mov r12, r0
+ movs r5, 0x4
+ lsls r4, 16
+ asrs r6, r4, 16
+ lsls r2, 16
+ lsls r3, 16
+_08104D5C:
+ lsls r0, r5, 1
+ mov r1, r12
+ adds r1, 0x8
+ adds r4, r1, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ bne _08104D8C
+ str r6, [sp]
+ adds r0, r7, 0
+ mov r1, r8
+ asrs r2, 16
+ asrs r3, 16
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _08104D96
+ .align 2, 0
+_08104D84: .4byte 0x02000000
+_08104D88: .4byte gTasks
+_08104D8C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104D5C
+_08104D96:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8104D30
+
+ thumb_func_start sub_8104DA4
+sub_8104DA4: @ 8104DA4
+ push {r4-r6,lr}
+ ldr r0, _08104E04 @ =0x02000000
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E08 @ =gTasks
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldr r0, _08104E0C @ =0x0000ffff
+ cmp r1, r0
+ beq _08104DCE
+ ldr r0, _08104E10 @ =gUnknown_083ED064
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08104DCE:
+ movs r5, 0x4
+ adds r6, r4, 0
+ adds r6, 0x8
+_08104DD4:
+ lsls r0, r5, 1
+ adds r4, r6, r0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ beq _08104DF4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08104E14 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x40
+ strh r0, [r4]
+_08104DF4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08104DD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104E04: .4byte 0x02000000
+_08104E08: .4byte gTasks
+_08104E0C: .4byte 0x0000ffff
+_08104E10: .4byte gUnknown_083ED064
+_08104E14: .4byte gSprites
+ thumb_func_end sub_8104DA4
+
+ thumb_func_start sub_8104E18
+sub_8104E18: @ 8104E18
+ push {r4,r5,lr}
+ ldr r0, _08104E54 @ =0x02000000
+ adds r0, 0x3D
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08104E58 @ =gTasks
+ adds r0, r1
+ movs r2, 0x4
+ adds r3, r0, 0
+ adds r3, 0x8
+ ldr r4, _08104E5C @ =gSprites
+_08104E32:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0x40
+ beq _08104E60
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r5, 0x3C
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08104E60
+ movs r0, 0
+ b _08104E6C
+ .align 2, 0
+_08104E54: .4byte 0x02000000
+_08104E58: .4byte gTasks
+_08104E5C: .4byte gSprites
+_08104E60:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _08104E32
+ movs r0, 0x1
+_08104E6C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8104E18
+
+ thumb_func_start sub_8104E74
+sub_8104E74: @ 8104E74
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _08104E9C @ =gUnknown_083ECC54
+ ldr r2, _08104EA0 @ =gTasks
+ 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
+_08104E9C: .4byte gUnknown_083ECC54
+_08104EA0: .4byte gTasks
+ thumb_func_end sub_8104E74
+
+ thumb_func_start nullsub_69
+nullsub_69: @ 8104EA4
+ bx lr
+ thumb_func_end nullsub_69
+
+ thumb_func_start sub_8104EA8
+sub_8104EA8: @ 8104EA8
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r0, 0x30
+_08104EAE:
+ movs r4, 0
+ lsls r5, r0, 16
+ lsls r7, r6, 16
+_08104EB4:
+ ldr r0, _08104F0C @ =gSpriteTemplate_83ED414
+ asrs r1, r5, 16
+ movs r2, 0
+ movs r3, 0xE
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08104F10 @ =gSprites
+ adds r1, r0
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ strh r6, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ ldr r0, _08104F14 @ =0x0000ffff
+ strh r0, [r1, 0x34]
+ lsls r0, r4, 16
+ movs r1, 0xC0
+ lsls r1, 13
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ ble _08104EB4
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r7, r2
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r0, r5, r2
+ lsrs r0, 16
+ lsrs r6, r1, 16
+ asrs r1, 16
+ cmp r1, 0x2
+ ble _08104EAE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F0C: .4byte gSpriteTemplate_83ED414
+_08104F10: .4byte gSprites
+_08104F14: .4byte 0x0000ffff
+ thumb_func_end sub_8104EA8
+
+ thumb_func_start sub_8104F18
+sub_8104F18: @ 8104F18
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08104F88 @ =0x02000000
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r1, r0
+ ldrh r0, [r5, 0x30]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x78
+ bl __modsi3
+ strh r0, [r5, 0x32]
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r1, 1
+ adds r4, 0x22
+ adds r1, r4
+ ldrh r1, [r1]
+ adds r1, 0x1C
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0x18
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8102BA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetSpriteTileStartByTag
+ adds r1, r5, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl SetSpriteSheetFrameTileNum
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104F88: .4byte 0x02000000
+ thumb_func_end sub_8104F18
+
+ thumb_func_start sub_8104F8C
+sub_8104F8C: @ 8104F8C
+ push {r4-r6,lr}
+ movs r4, 0xCB
+ movs r5, 0x1
+ ldr r6, _08104FF0 @ =0x0000270f
+_08104F94:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104F94
+ movs r4, 0xEB
+ movs r5, 0x1
+ ldr r6, _08104FF0 @ =0x0000270f
+_08104FC2:
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x17
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl sub_8104FF4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 17
+ subs r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r5, r0, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _08104FC2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08104FF0: .4byte 0x0000270f
+ thumb_func_end sub_8104F8C
+
+ thumb_func_start sub_8104FF4
+sub_8104FF4: @ 8104FF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08105060 @ =gSpriteTemplate_83ED42C
+ lsls r5, 16
+ asrs r5, 16
+ lsls r6, 16
+ asrs r6, 16
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xD
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08105064 @ =gSprites
+ adds r2, r0
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ mov r0, r8
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x30]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 1
+ strh r0, [r2, 0x32]
+ ldr r0, _08105068 @ =0x0000ffff
+ strh r0, [r2, 0x34]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105060: .4byte gSpriteTemplate_83ED42C
+_08105064: .4byte gSprites
+_08105068: .4byte 0x0000ffff
+ thumb_func_end sub_8104FF4
+
+ thumb_func_start sub_810506C
+sub_810506C: @ 810506C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _081050C0 @ =0x02000000
+ ldrh r2, [r1, 0xC]
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0810507E
+ ldrh r2, [r1, 0xE]
+_0810507E:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, r2
+ beq _081050B8
+ strh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ adds r0, r2, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r1, [r4, 0x30]
+ adds r0, r2, 0
+ bl __udivsi3
+ lsls r0, 16
+ movs r3, 0xE0
+ lsls r3, 11
+ adds r0, r3
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ bl GetSpriteTileStartByTag
+ adds r1, r4, 0
+ adds r1, 0x40
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl SetSpriteSheetFrameTileNum
+_081050B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050C0: .4byte 0x02000000
+ thumb_func_end sub_810506C
+
+ thumb_func_start sub_81050C4
+sub_81050C4: @ 81050C4
+ push {lr}
+ ldr r0, _081050F4 @ =gSpriteTemplate_83ED444
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0xF
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081050F8 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xC
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081050FC @ =gUnknown_083ED704
+ bl SetSubspriteTables
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081050F4: .4byte gSpriteTemplate_83ED444
+_081050F8: .4byte gSprites
+_081050FC: .4byte gUnknown_083ED704
+ thumb_func_end sub_81050C4
+
+ thumb_func_start sub_8105100
+sub_8105100: @ 8105100
+ push {lr}
+ ldr r0, _08105140 @ =gSpriteTemplate_83ED45C
+ movs r1, 0x8C
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08105144 @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r3, 0x2
+ orrs r1, r3
+ strb r1, [r2]
+ ldr r1, _08105148 @ =0x02000000
+ adds r1, 0x3F
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105140: .4byte gSpriteTemplate_83ED45C
+_08105144: .4byte gSprites
+_08105148: .4byte 0x02000000
+ thumb_func_end sub_8105100
+
+ thumb_func_start sub_810514C
+sub_810514C: @ 810514C
+ push {lr}
+ ldr r0, _08105168 @ =0x02000000
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810516C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105168: .4byte 0x02000000
+_0810516C: .4byte gSprites
+ thumb_func_end sub_810514C
+
+ thumb_func_start sub_8105170
+sub_8105170: @ 8105170
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _081051B6
+ movs r0, 0x8
+ strh r0, [r2, 0x24]
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081051A4
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B2
+ b _081051B6
+_081051A4:
+ adds r0, r2, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _081051B6
+_081051B2:
+ ldr r0, _081051BC @ =0x0000fff8
+ strh r0, [r2, 0x26]
+_081051B6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081051BC: .4byte 0x0000fff8
+ thumb_func_end sub_8105170
+
+ thumb_func_start sub_81051C0
+sub_81051C0: @ 81051C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810526C @ =gSpriteTemplate_83ED474
+ movs r7, 0xB8
+ lsls r7, 1
+ adds r1, r7, 0
+ movs r2, 0x34
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105270 @ =gSprites
+ mov r10, r1
+ adds r2, r0, r1
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r3, 0x4
+ mov r9, r3
+ mov r1, r9
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r8, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105274 @ =gUnknown_083ED73C
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ ldr r6, _08105278 @ =0x02000000
+ adds r0, r6, 0
+ adds r0, 0x49
+ strb r4, [r0]
+ ldr r0, _0810527C @ =gSpriteTemplate_83ED48C
+ adds r1, r7, 0
+ movs r2, 0x54
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ mov r1, r10
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r3, r9
+ orrs r5, r3
+ strb r5, [r2, 0x5]
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, _08105280 @ =gUnknown_083ED75C
+ adds r0, r2, 0
+ bl SetSubspriteTables
+ adds r6, 0x4A
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810526C: .4byte gSpriteTemplate_83ED474
+_08105270: .4byte gSprites
+_08105274: .4byte gUnknown_083ED73C
+_08105278: .4byte 0x02000000
+_0810527C: .4byte gSpriteTemplate_83ED48C
+_08105280: .4byte gUnknown_083ED75C
+ thumb_func_end sub_81051C0
+
+ thumb_func_start sub_8105284
+sub_8105284: @ 8105284
+ push {r4,lr}
+ ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4
+ ldr r1, _081052DC @ =gSpriteCoordOffsetX
+ ldrh r2, [r1]
+ movs r1, 0xA8
+ subs r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x50
+ movs r3, 0x7
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081052E0 @ =gSprites
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _081052E4 @ =gUnknown_083ED78C
+ bl SetSubspriteTables
+ ldr r0, _081052E8 @ =0x02000000
+ adds r0, 0x42
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081052D8: .4byte gSpriteTemplate_83ED4A4
+_081052DC: .4byte gSpriteCoordOffsetX
+_081052E0: .4byte gSprites
+_081052E4: .4byte gUnknown_083ED78C
+_081052E8: .4byte 0x02000000
+ thumb_func_end sub_8105284
+
+ thumb_func_start sub_81052EC
+sub_81052EC: @ 81052EC
+ push {r4-r7,lr}
+ movs r4, 0
+ movs r5, 0
+ ldr r6, _08105350 @ =0x0200004b
+_081052F4:
+ ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105358 @ =gSprites
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r1, r7, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ strh r5, [r3, 0x3C]
+ adds r1, r4, r6
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r5, 16
+ movs r7, 0xA0
+ lsls r7, 13
+ adds r0, r7
+ lsrs r5, r0, 16
+ cmp r4, 0x2
+ bls _081052F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105350: .4byte 0x0200004b
+_08105354: .4byte gSpriteTemplate_83ED4BC
+_08105358: .4byte gSprites
+ thumb_func_end sub_81052EC
+
+ thumb_func_start sub_810535C
+sub_810535C: @ 810535C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0810539C @ =0x02000000
+ ldrh r0, [r4, 0x3C]
+ ldrh r1, [r1, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x28
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ adds r1, 0x3B
+ strh r1, [r4, 0x22]
+ movs r1, 0x14
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8102C48
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnimIfDifferent
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810539C: .4byte 0x02000000
+ thumb_func_end sub_810535C
+
+ thumb_func_start sub_81053A0
+sub_81053A0: @ 81053A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r1, 0xB8
+ lsls r1, 1
+ ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
+ movs r2, 0x64
+ movs r3, 0x9
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r7, _08105450 @ =gSprites
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x2
+ mov r10, r3
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r1, [r2, 0x5]
+ movs r5, 0xD
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+ ldr r0, _08105454 @ =gUnknown_083ED7B4
+ mov r9, r0
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ ldr r6, _08105458 @ =0x02000000
+ adds r0, r6, 0
+ adds r0, 0x4E
+ strb r4, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4
+ movs r2, 0x68
+ movs r3, 0x4
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r7
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r10
+ orrs r0, r3
+ strb r0, [r1]
+ ldrb r0, [r2, 0x5]
+ ands r5, r0
+ mov r0, r8
+ orrs r5, r0
+ strb r5, [r2, 0x5]
+ adds r0, r2, 0
+ mov r1, r9
+ bl SetSubspriteTables
+ adds r6, 0x4F
+ strb r4, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810544C: .4byte gSpriteTemplate_83ED4D4
+_08105450: .4byte gSprites
+_08105454: .4byte gUnknown_083ED7B4
+_08105458: .4byte 0x02000000
+ thumb_func_end sub_81053A0
+
+ thumb_func_start sub_810545C
+sub_810545C: @ 810545C
+ push {r4,lr}
+ ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC
+ movs r1, 0xB8
+ lsls r1, 1
+ movs r2, 0x4C
+ movs r3, 0xB
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _081054AC @ =gSprites
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, _081054B0 @ =gUnknown_083ED7D4
+ bl SetSubspriteTables
+ ldr r0, _081054B4 @ =0x02000000
+ adds r0, 0x40
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081054A8: .4byte gSpriteTemplate_83ED4EC
+_081054AC: .4byte gSprites
+_081054B0: .4byte gUnknown_083ED7D4
+_081054B4: .4byte 0x02000000
+ thumb_func_end sub_810545C
+
+ thumb_func_start sub_81054B8
+sub_81054B8: @ 81054B8
+ push {r4,r5,lr}
+ ldr r4, _08105518 @ =0x02000000
+ adds r0, r4, 0
+ adds r0, 0x40
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ movs r5, 0
+ adds r4, 0x49
+_081054D4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _081054D4
+ movs r5, 0
+ ldr r4, _08105520 @ =0x0200004b
+_081054F4:
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810551C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081054F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105518: .4byte 0x02000000
+_0810551C: .4byte gSprites
+_08105520: .4byte 0x0200004b
+ thumb_func_end sub_81054B8
+
+ thumb_func_start sub_8105524
+sub_8105524: @ 8105524
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810554C @ =0x0200004e
+_0810552A:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105550 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0810552A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810554C: .4byte 0x0200004e
+_08105550: .4byte gSprites
+ thumb_func_end sub_8105524
+
+ thumb_func_start sub_8105554
+sub_8105554: @ 8105554
+ push {lr}
+ ldr r0, _08105570 @ =0x02000000
+ adds r0, 0x42
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105574 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105570: .4byte 0x02000000
+_08105574: .4byte gSprites
+ thumb_func_end sub_8105554
+
+ thumb_func_start sub_8105578
+sub_8105578: @ 8105578
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldr r0, _0810561C @ =gSpriteTemplate_83ED504
+ mov r10, r0
+ movs r1, 0x98
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08105620 @ =gSprites
+ mov r9, r2
+ adds r3, r1, r2
+ ldrb r2, [r3, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ movs r2, 0x4
+ mov r8, r2
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r3, 0x5]
+ adds r5, r3, 0
+ adds r5, 0x3F
+ ldrb r1, [r5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r5]
+ ldr r5, _08105624 @ =0x02000000
+ adds r1, r5, 0
+ adds r1, 0x50
+ strb r0, [r1]
+ movs r0, 0x8
+ strh r0, [r3, 0x2E]
+ ldr r0, _08105628 @ =0x0000ffff
+ strh r0, [r3, 0x30]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r3, 0x32]
+ movs r6, 0x20
+ strh r6, [r3, 0x3C]
+ mov r0, r10
+ movs r1, 0xB8
+ movs r2, 0x20
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ mov r2, r9
+ adds r3, r1, r2
+ ldrb r1, [r3, 0x5]
+ ands r4, r1
+ mov r1, r8
+ orrs r4, r1
+ strb r4, [r3, 0x5]
+ adds r5, 0x51
+ strb r0, [r5]
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+ subs r0, 0x2
+ strh r0, [r3, 0x32]
+ strh r6, [r3, 0x3C]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810561C: .4byte gSpriteTemplate_83ED504
+_08105620: .4byte gSprites
+_08105624: .4byte 0x02000000
+_08105628: .4byte 0x0000ffff
+ thumb_func_end sub_8105578
+
+ thumb_func_start sub_810562C
+sub_810562C: @ 810562C
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r4, [r2, r1]
+ cmp r4, 0
+ beq _08105650
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ b _08105682
+_08105650:
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08105682
+ ldrh r0, [r2, 0x3C]
+ strh r0, [r2, 0x2E]
+ strh r4, [r2, 0x34]
+_08105682:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810562C
+
+ thumb_func_start sub_8105688
+sub_8105688: @ 8105688
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _081056B8 @ =gSprites
+ ldr r3, _081056BC @ =0x02000000
+ adds r1, r3, 0
+ adds r1, 0x50
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ adds r3, 0x51
+ ldrb r2, [r3]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r0, [r1, 0x3C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056B8: .4byte gSprites
+_081056BC: .4byte 0x02000000
+ thumb_func_end sub_8105688
+
+ thumb_func_start sub_81056C0
+sub_81056C0: @ 81056C0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081056E8 @ =0x02000050
+_081056C6:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081056EC @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _081056C6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081056E8: .4byte 0x02000050
+_081056EC: .4byte gSprites
+ thumb_func_end sub_81056C0
+
+ thumb_func_start sub_81056F0
+sub_81056F0: @ 81056F0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08105778 @ =gSpriteTemplate_83ED51C
+ mov r8, r0
+ movs r1, 0x48
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810577C @ =gSprites
+ mov r9, r1
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ add r2, r9
+ ldrb r3, [r2, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r3
+ movs r6, 0x4
+ orrs r1, r6
+ strb r1, [r2, 0x5]
+ movs r3, 0
+ movs r1, 0x1
+ strh r1, [r2, 0x2E]
+ strh r3, [r2, 0x38]
+ movs r1, 0x10
+ strh r1, [r2, 0x3A]
+ movs r1, 0x8
+ strh r1, [r2, 0x3C]
+ ldr r5, _08105780 @ =0x02000000
+ adds r1, r5, 0
+ adds r1, 0x52
+ strb r0, [r1]
+ mov r0, r8
+ movs r1, 0x68
+ movs r2, 0x50
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r2, [r1, 0x5]
+ ands r4, r2
+ orrs r4, r6
+ strb r4, [r1, 0x5]
+ adds r1, 0x3F
+ ldrb r2, [r1]
+ movs r3, 0x1
+ orrs r2, r3
+ strb r2, [r1]
+ adds r5, 0x53
+ strb r0, [r5]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105778: .4byte gSpriteTemplate_83ED51C
+_0810577C: .4byte gSprites
+_08105780: .4byte 0x02000000
+ thumb_func_end sub_81056F0
+
+ thumb_func_start sub_8105784
+sub_8105784: @ 8105784
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _081057E0 @ =gUnknown_083ECC58
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081057D6
+ ldrh r0, [r4, 0x3A]
+ subs r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _081057D6
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r2, _081057E4 @ =0x01030000
+ adds r0, r2
+ lsrs r0, 16
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ add r1, sp
+ ldrb r3, [r1]
+ adds r1, r3, 0
+ adds r2, r3, 0
+ bl MultiplyInvertedPaletteRGBComponents
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ strh r0, [r4, 0x3A]
+_081057D6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081057E0: .4byte gUnknown_083ECC58
+_081057E4: .4byte 0x01030000
+ thumb_func_end sub_8105784
+
+ thumb_func_start sub_81057E8
+sub_81057E8: @ 81057E8
+ ldr r3, _081057FC @ =gSprites
+ ldr r1, _08105800 @ =0x02000000
+ adds r1, 0x52
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ strh r0, [r1, 0x3C]
+ bx lr
+ .align 2, 0
+_081057FC: .4byte gSprites
+_08105800: .4byte 0x02000000
+ thumb_func_end sub_81057E8
+
+ thumb_func_start sub_8105804
+sub_8105804: @ 8105804
+ push {r4,r5,lr}
+ movs r0, 0x7
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 4
+ ldr r1, _08105848 @ =0x01030000
+ adds r0, r1
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl MultiplyInvertedPaletteRGBComponents
+ movs r4, 0
+ ldr r5, _0810584C @ =0x02000052
+_08105824:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08105850 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08105824
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105848: .4byte 0x01030000
+_0810584C: .4byte 0x02000052
+_08105850: .4byte gSprites
+ thumb_func_end sub_8105804
+
+ thumb_func_start sub_8105854
+sub_8105854: @ 8105854
+ push {lr}
+ ldr r0, _08105888 @ =gSpriteTemplate_83ED534
+ movs r1, 0xA8
+ movs r2, 0x50
+ movs r3, 0x6
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810588C @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ ldr r1, _08105890 @ =0x02000000
+ adds r1, 0x41
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105888: .4byte gSpriteTemplate_83ED534
+_0810588C: .4byte gSprites
+_08105890: .4byte 0x02000000
+ thumb_func_end sub_8105854
+
+ thumb_func_start sub_8105894
+sub_8105894: @ 8105894
+ ldr r1, _0810589C @ =gSpriteCoordOffsetY
+ ldrh r1, [r1]
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_0810589C: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8105894
+
+ thumb_func_start sub_81058A0
+sub_81058A0: @ 81058A0
+ push {lr}
+ ldr r0, _081058BC @ =0x02000000
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081058C0 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081058BC: .4byte 0x02000000
+_081058C0: .4byte gSprites
+ thumb_func_end sub_81058A0
+
+ thumb_func_start sub_81058C4
+sub_81058C4: @ 81058C4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _08105938 @ =gUnknown_083ECC5A
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ movs r4, 0
+ ldr r5, _0810593C @ =0x02000054
+_081058D6:
+ ldr r0, _08105940 @ =gSpriteCoordOffsetX
+ ldrh r0, [r0]
+ movs r1, 0x50
+ subs r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _08105944 @ =gSpriteTemplate_83ED54C
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ ldr r1, _08105948 @ =gSprites
+ adds r3, r1
+ ldrb r2, [r3, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r1, r6, 0
+ ands r2, r1
+ movs r1, 0x4
+ orrs r2, r1
+ strb r2, [r3, 0x5]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ lsls r1, r4, 1
+ add r1, sp
+ ldrh r1, [r1]
+ strh r1, [r3, 0x2E]
+ adds r1, r4, r5
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081058D6
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105938: .4byte gUnknown_083ECC5A
+_0810593C: .4byte 0x02000054
+_08105940: .4byte gSpriteCoordOffsetX
+_08105944: .4byte gSpriteTemplate_83ED54C
+_08105948: .4byte gSprites
+ thumb_func_end sub_81058C4
+
+ thumb_func_start sub_810594C
+sub_810594C: @ 810594C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x2
+ movs r4, 0
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ movs r1, 0x6
+ bl Sin
+ strh r0, [r5, 0x26]
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r4, [r1]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x7F
+ ble _08105986
+ movs r0, 0x2
+ strb r0, [r1]
+_08105986:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _081059B0
+ adds r3, r5, 0
+ adds r3, 0x3F
+ ldrb r2, [r3]
+ lsls r0, r2, 31
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+_081059B0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810594C
+
+ thumb_func_start sub_81059B8
+sub_81059B8: @ 81059B8
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081059E0 @ =0x02000054
+_081059BE:
+ adds r0, r4, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081059E4 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081059BE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081059E0: .4byte 0x02000054
+_081059E4: .4byte gSprites
+ thumb_func_end sub_81059B8
+
+ thumb_func_start sub_81059E8
+sub_81059E8: @ 81059E8
+ push {r4,lr}
+ ldr r0, _08105A2C @ =gSpriteTemplate_83ED564
+ movs r1, 0xA8
+ movs r2, 0x3C
+ movs r3, 0x8
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105A30 @ =gSprites
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ ldr r0, _08105A34 @ =0x02000000
+ adds r0, 0x43
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105A2C: .4byte gSpriteTemplate_83ED564
+_08105A30: .4byte gSprites
+_08105A34: .4byte 0x02000000
+ thumb_func_end sub_81059E8
+
+ thumb_func_start sub_8105A38
+sub_8105A38: @ 8105A38
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08105A5A
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105AB4
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105AB4
+_08105A5A:
+ cmp r0, 0x1
+ bne _08105A96
+ 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]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _08105AB4
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ movs r0, 0
+ strh r0, [r3, 0x32]
+ b _08105AB4
+_08105A96:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105AB4
+ movs r0, 0x1
+ strh r0, [r3, 0x3C]
+_08105AB4:
+ ldrh r0, [r3, 0x30]
+ movs r1, 0xFF
+ ands r1, r0
+ adds r1, 0x10
+ strh r1, [r3, 0x30]
+ lsrs r1, 8
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105A38
+
+ thumb_func_start sub_8105ACC
+sub_8105ACC: @ 8105ACC
+ ldr r2, _08105AE4 @ =gSprites
+ ldr r0, _08105AE8 @ =0x02000000
+ adds r0, 0x43
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .align 2, 0
+_08105AE4: .4byte gSprites
+_08105AE8: .4byte 0x02000000
+ thumb_func_end sub_8105ACC
+
+ thumb_func_start sub_8105AEC
+sub_8105AEC: @ 8105AEC
+ push {r4,lr}
+ ldr r0, _08105B14 @ =0x02000000
+ adds r0, 0x43
+ ldrb r0, [r0]
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105B18 @ =gSprites
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105B14: .4byte 0x02000000
+_08105B18: .4byte gSprites
+ thumb_func_end sub_8105AEC
+
+ thumb_func_start sub_8105B1C
+sub_8105B1C: @ 8105B1C
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC
+ lsls r3, 16
+ asrs r3, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r3, 0
+ movs r3, 0xC
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08105B6C @ =gSprites
+ 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]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105B68: .4byte gSpriteTemplate_83ED6CC
+_08105B6C: .4byte gSprites
+ thumb_func_end sub_8105B1C
+
+ thumb_func_start sub_8105B70
+sub_8105B70: @ 8105B70
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08105B84
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+_08105B84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105B70
+
+ thumb_func_start sub_8105B88
+sub_8105B88: @ 8105B88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08105BB0 @ =gSprites
+ adds r4, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105BB0: .4byte gSprites
+ thumb_func_end sub_8105B88
+
+ thumb_func_start sub_8105BB4
+sub_8105BB4: @ 8105BB4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08105BF0 @ =gUnknown_083ECF0C
+ lsrs r1, 22
+ adds r3, r1, r3
+ ldr r5, [r3]
+ ldr r3, _08105BF4 @ =gUnknown_083ECE7E
+ adds r4, r1, r3
+ movs r6, 0
+ ldrsh r4, [r4, r6]
+ adds r3, 0x2
+ adds r1, r3
+ movs r6, 0
+ ldrsh r3, [r1, r6]
+ lsls r2, 16
+ asrs r2, 16
+ str r2, [sp]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8105BF8
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105BF0: .4byte gUnknown_083ECF0C
+_08105BF4: .4byte gUnknown_083ECE7E
+ thumb_func_end sub_8105BB4
+
+ thumb_func_start sub_8105BF8
+sub_8105BF8: @ 8105BF8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ ldr r5, [sp, 0x14]
+ lsls r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _08105C58 @ =gUnknown_083EDB5C
+ lsrs r4, 22
+ adds r0, r4, r0
+ ldr r0, [r0]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08105C5C @ =gSprites
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ str r6, [r2, 0x1C]
+ strh r5, [r2, 0x3A]
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ ldr r0, _08105C60 @ =gUnknown_083EDBC4
+ adds r4, r0
+ ldr r1, [r4]
+ cmp r1, 0
+ beq _08105C50
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_08105C50:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08105C58: .4byte gUnknown_083EDB5C
+_08105C5C: .4byte gSprites
+_08105C60: .4byte gUnknown_083EDBC4
+ thumb_func_end sub_8105BF8
+
+ thumb_func_start sub_8105C64
+sub_8105C64: @ 8105C64
+ movs r1, 0
+ strh r1, [r0, 0x3C]
+ bx lr
+ thumb_func_end sub_8105C64
+
+ thumb_func_start sub_8105C6C
+sub_8105C6C: @ 8105C6C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _08105CE8 @ =gUnknown_083ECC62
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _08105CEC @ =gUnknown_083ECC6A
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _08105CB2
+ adds r3, r4, 0
+ adds r3, 0x42
+ ldrb r2, [r3]
+ lsls r0, r2, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ eors r1, r0
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08105CB2:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x42
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ beq _08105CDE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+_08105CDE:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08105CE8: .4byte gUnknown_083ECC62
+_08105CEC: .4byte gUnknown_083ECC6A
+ thumb_func_end sub_8105C6C
+
+ thumb_func_start sub_8105CF0
+sub_8105CF0: @ 8105CF0
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105CF0
+
+ thumb_func_start sub_8105D08
+sub_8105D08: @ 8105D08
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D08
+
+ thumb_func_start sub_8105D20
+sub_8105D20: @ 8105D20
+ push {lr}
+ adds r3, r0, 0
+ adds r3, 0x3F
+ ldrb r1, [r3]
+ movs r2, 0x1
+ orrs r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ bl sub_8105C6C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D20
+
+ thumb_func_start sub_8105D3C
+sub_8105D3C: @ 8105D3C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08105D70
+ cmp r0, 0x1
+ bgt _08105D52
+ cmp r0, 0
+ beq _08105D5C
+ b _08105DA0
+_08105D52:
+ cmp r0, 0x2
+ beq _08105D80
+ cmp r0, 0x3
+ beq _08105D9C
+ b _08105DA0
+_08105D5C:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105DA0
+ movs r0, 0xD0
+ strh r0, [r2, 0x20]
+ b _08105D8E
+_08105D70:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105DA0
+ b _08105D8E
+_08105D80:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ ldr r1, _08105D98 @ =0x010f0000
+ cmp r0, r1
+ ble _08105DA0
+_08105D8E:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08105DA0
+ .align 2, 0
+_08105D98: .4byte 0x010f0000
+_08105D9C:
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+_08105DA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105D3C
+
+ thumb_func_start sub_8105DA4
+sub_8105DA4: @ 8105DA4
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _08105DD8
+ cmp r0, 0x1
+ bgt _08105DBA
+ cmp r0, 0
+ beq _08105DC4
+ b _08105E02
+_08105DBA:
+ cmp r0, 0x2
+ beq _08105DE8
+ cmp r0, 0x3
+ beq _08105DFE
+ b _08105E02
+_08105DC4:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ bgt _08105E02
+ movs r0, 0xD0
+ strh r0, [r1, 0x20]
+ b _08105DF6
+_08105DD8:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105E02
+ b _08105DF6
+_08105DE8:
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x4
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x90
+ bgt _08105E02
+_08105DF6:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105E02
+_08105DFE:
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105E02:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105DA4
+
+ thumb_func_start sub_8105E08
+sub_8105E08: @ 8105E08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _08105EAE
+ lsls r0, 2
+ ldr r1, _08105E20 @ =_08105E24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08105E20: .4byte _08105E24
+ .align 2, 0
+_08105E24:
+ .4byte _08105E3C
+ .4byte _08105E52
+ .4byte _08105E70
+ .4byte _08105E84
+ .4byte _08105E94
+ .4byte _08105EAA
+_08105E3C:
+ ldr r0, _08105E6C @ =0x02000000
+ ldrb r1, [r0, 0xA]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08105E52:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08105EAE
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _08105EAE
+ .align 2, 0
+_08105E6C: .4byte 0x02000000
+_08105E70:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xCF
+ ble _08105EAE
+ movs r0, 0xD0
+ strh r0, [r4, 0x20]
+ b _08105EA2
+_08105E84:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ ble _08105EAE
+ b _08105EA2
+_08105E94:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF7
+ ble _08105EAE
+_08105EA2:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08105EAE
+_08105EAA:
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08105EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105E08
+
+ thumb_func_start sub_8105EB4
+sub_8105EB4: @ 8105EB4
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ beq _08105EE2
+ cmp r0, 0x1
+ bgt _08105ECA
+ cmp r0, 0
+ beq _08105ED0
+ b _08105F50
+_08105ECA:
+ cmp r0, 0x2
+ beq _08105F00
+ b _08105F50
+_08105ED0:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_08105EE2:
+ ldrh r0, [r3, 0x22]
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ ble _08105F50
+ movs r0, 0x70
+ strh r0, [r3, 0x22]
+ movs r0, 0x10
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ b _08105F50
+_08105F00:
+ movs r0, 0x32
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x22]
+ ldrh r1, [r3, 0x30]
+ subs r0, r1
+ strh r0, [r3, 0x22]
+ negs r1, r1
+ strh r1, [r3, 0x30]
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08105F46
+ lsls r0, r1, 16
+ asrs r0, 18
+ strh r0, [r3, 0x30]
+ strh r2, [r3, 0x34]
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08105F46
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r1, [r3, 0x3C]
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08105F46:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ strh r0, [r3, 0x32]
+_08105F50:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105EB4
+
+ thumb_func_start sub_8105F54
+sub_8105F54: @ 8105F54
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08105F66
+ cmp r0, 0x1
+ beq _08105F7C
+ b _08105F98
+_08105F66:
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _08105F98
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ b _08105F98
+_08105F7C:
+ ldrh r0, [r1, 0x22]
+ adds r0, 0x2
+ strh r0, [r1, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2F
+ ble _08105F98
+ movs r0, 0x30
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ movs r0, 0
+ strh r0, [r1, 0x3C]
+_08105F98:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8105F54
+
+ thumb_func_start sub_8105F9C
+sub_8105F9C: @ 8105F9C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08105FAE
+ cmp r0, 0x1
+ beq _08106000
+ b _0810604E
+_08105FAE:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x30]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, _08105FFC @ =REG_MOSAIC
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ b _0810604E
+ .align 2, 0
+_08105FFC: .4byte REG_MOSAIC
+_08106000:
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08106016
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08106016:
+ ldr r2, _08106054 @ =REG_MOSAIC
+ ldrh r1, [r4, 0x30]
+ lsls r0, r1, 4
+ orrs r0, r1
+ lsls r0, 8
+ strh r0, [r2]
+ ldrh r1, [r4, 0x32]
+ movs r0, 0xFF
+ ands r0, r1
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _0810604E
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_0810604E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106054: .4byte REG_MOSAIC
+ thumb_func_end sub_8105F9C
+
+ thumb_func_start sub_8106058
+sub_8106058: @ 8106058
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ bgt _081060A8
+ ldr r1, _081060A4 @ =gUnknown_083EDE10
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _081060E4
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ b _081060E4
+ .align 2, 0
+_081060A4: .4byte gUnknown_083EDE10
+_081060A8:
+ ldr r1, _081060F8 @ =gUnknown_083EDE10
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ ble _081060E4
+ strh r1, [r5, 0x30]
+ strh r1, [r5, 0x32]
+_081060E4:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0
+ strh r0, [r5, 0x3C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081060F8: .4byte gUnknown_083EDE10
+ thumb_func_end sub_8106058
+
+ thumb_func_start sub_81060FC
+sub_81060FC: @ 81060FC
+ push {r4-r6,lr}
+ sub sp, 0x30
+ adds r4, r0, 0
+ ldr r1, _08106138 @ =gUnknown_083ECC72
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ add r6, sp, 0x10
+ ldr r1, _0810613C @ =gUnknown_083ECC82
+ adds r0, r6, 0
+ movs r2, 0x10
+ bl memcpy
+ add r5, sp, 0x20
+ ldr r1, _08106140 @ =gUnknown_083ECC92
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08106174
+ cmp r0, 0x1
+ bgt _08106144
+ cmp r0, 0
+ beq _0810614A
+ b _081061C0
+ .align 2, 0
+_08106138: .4byte gUnknown_083ECC72
+_0810613C: .4byte gUnknown_083ECC82
+_08106140: .4byte gUnknown_083ECC92
+_08106144:
+ cmp r0, 0x2
+ beq _08106188
+ b _081061C0
+_0810614A:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_08106174:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _081061C0
+ b _081061BA
+_08106188:
+ ldrh r0, [r4, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _08106196
+ subs r0, 0x4
+ b _0810619C
+_08106196:
+ cmp r1, 0
+ bge _0810619E
+ adds r0, 0x4
+_0810619C:
+ strh r0, [r4, 0x24]
+_0810619E:
+ ldrh r0, [r4, 0x26]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ ble _081061AC
+ subs r0, 0x4
+ b _081061B2
+_081061AC:
+ cmp r1, 0
+ bge _081061B4
+ adds r0, 0x4
+_081061B2:
+ strh r0, [r4, 0x26]
+_081061B4:
+ ldr r0, [r4, 0x24]
+ cmp r0, 0
+ bne _081061C0
+_081061BA:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+_081061C0:
+ add sp, 0x30
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81060FC
+
+ thumb_func_start sub_81061C8
+sub_81061C8: @ 81061C8
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r1, _0810622C @ =gUnknown_083ECCA2
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081061EA
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC
+ strh r0, [r4, 0x30]
+_081061EA:
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08106224
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+_08106224:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810622C: .4byte gUnknown_083ECCA2
+ thumb_func_end sub_81061C8
+
+ thumb_func_start sub_8106230
+sub_8106230: @ 8106230
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0810627A
+ cmp r0, 0x1
+ bgt _08106248
+ cmp r0, 0
+ beq _08106252
+ b _0810634A
+_08106248:
+ cmp r0, 0x2
+ beq _081062C4
+ cmp r0, 0x3
+ beq _081062FC
+ b _0810634A
+_08106252:
+ ldr r2, _081062BC @ =0x02000000
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x2F
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3F
+ strh r0, [r1]
+ subs r1, 0x4
+ ldr r0, _081062C0 @ =0x00002088
+ strh r0, [r1]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0810627A:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xB2
+ strh r0, [r5, 0x32]
+ movs r1, 0xF0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106296
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106296:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _081062A2
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_081062A2:
+ ldr r2, _081062BC @ =0x02000000
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x33
+ ble _0810634A
+ b _0810633C
+ .align 2, 0
+_081062BC: .4byte 0x02000000
+_081062C0: .4byte 0x00002088
+_081062C4:
+ ldr r6, _08106354 @ =0x02000000
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0810634A
+ ldr r1, _08106358 @ =SpriteCallbackDummy
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x5
+ movs r2, 0xD0
+ movs r3, 0x74
+ bl sub_8104D30
+ adds r1, r6, 0
+ adds r1, 0x58
+ ldr r0, _0810635C @ =0x0000c0e0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xD1
+ lsls r0, 7
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2F
+ strh r0, [r1]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ strh r4, [r5, 0x30]
+_081062FC:
+ ldrh r0, [r5, 0x30]
+ adds r2, r0, 0x2
+ strh r2, [r5, 0x30]
+ adds r0, 0xC2
+ strh r0, [r5, 0x32]
+ movs r1, 0xE0
+ subs r1, r2
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD0
+ ble _08106318
+ movs r0, 0xD0
+ strh r0, [r5, 0x32]
+_08106318:
+ movs r1, 0x34
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xCF
+ bgt _08106324
+ movs r0, 0xD0
+ strh r0, [r5, 0x34]
+_08106324:
+ ldr r2, _08106354 @ =0x02000000
+ ldrh r0, [r5, 0x32]
+ lsls r0, 8
+ ldrh r1, [r5, 0x34]
+ orrs r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0xF
+ ble _0810634A
+_0810633C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ movs r0, 0x3F
+ strh r0, [r1]
+_0810634A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106354: .4byte 0x02000000
+_08106358: .4byte SpriteCallbackDummy
+_0810635C: .4byte 0x0000c0e0
+ thumb_func_end sub_8106230
+
+ thumb_func_start nullsub_70
+nullsub_70: @ 8106360
+ bx lr
+ thumb_func_end nullsub_70
+
+ thumb_func_start sub_8106364
+sub_8106364: @ 8106364
+ ldr r1, _0810636C @ =REG_MOSAIC
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810636C: .4byte REG_MOSAIC
+ thumb_func_end sub_8106364
+
+ thumb_func_start sub_8106370
+sub_8106370: @ 8106370
+ push {r4,lr}
+ ldr r0, _08106398 @ =gUnknown_083EDE20
+ ldr r4, [r0]
+ movs r0, 0x6
+ bl IndexOfSpritePaletteTag
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 17
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106398: .4byte gUnknown_083EDE20
+ thumb_func_end sub_8106370
+
+ thumb_func_start sub_810639C
+sub_810639C: @ 810639C
+ ldr r2, _081063BC @ =0x02000000
+ adds r1, r2, 0
+ adds r1, 0x58
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r1, 0x3F
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_081063BC: .4byte 0x02000000
+ thumb_func_end sub_810639C
+
+ thumb_func_start sub_81063C0
+sub_81063C0: @ 81063C0
+ push {r4,lr}
+ bl sub_8106404
+ ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
+ ldr r4, _081063F4 @ =0x02010000
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063F8 @ =gUnknown_083EDE8C
+ movs r1, 0xC8
+ lsls r1, 6
+ adds r4, r1
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _081063FC @ =gUnknown_083EDC2C
+ bl LoadSpriteSheets
+ ldr r0, _08106400 @ =gSlotMachineSpritePalettes
+ bl LoadSpritePalettes
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081063F0: .4byte gSlotMachineReelTimeLights_Gfx
+_081063F4: .4byte 0x02010000
+_081063F8: .4byte gUnknown_083EDE8C
+_081063FC: .4byte gUnknown_083EDC2C
+_08106400: .4byte gSlotMachineSpritePalettes
+ thumb_func_end sub_81063C0
+
+ thumb_func_start sub_8106404
+sub_8106404: @ 8106404
+ push {r4,r5,lr}
+ ldr r3, _0810643C @ =0x02010000
+ movs r2, 0
+ ldr r5, _08106440 @ =gUnknown_083EDCDC
+ ldr r0, _08106444 @ =gUnknown_083EDCE4
+ ldr r4, [r0]
+_08106410:
+ movs r1, 0
+ adds r2, 0x1
+_08106414:
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, 0x1
+ cmp r1, 0x1F
+ bls _08106414
+ lsls r0, r2, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3F
+ bls _08106410
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810643C: .4byte 0x02010000
+_08106440: .4byte gUnknown_083EDCDC
+_08106444: .4byte gUnknown_083EDCE4
+ thumb_func_end sub_8106404
+
+ thumb_func_start sub_8106448
+sub_8106448: @ 8106448
+ push {r4-r7,lr}
+ ldr r0, _081064A0 @ =gSlotMachine_Gfx
+ ldr r4, _081064A4 @ =0x02010000
+ adds r1, r4, 0
+ bl sub_800D238
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r5, 0xE9
+ lsls r5, 5
+ ldr r1, _081064A8 @ =0x040000d4
+ ldr r6, _081064AC @ =0x80000800
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_08106468:
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r4, r2
+ adds r3, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _08106468
+ str r4, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _081064B0 @ =gUnknown_08E95A18
+ movs r1, 0
+ movs r2, 0xA0
+ bl LoadPalette
+ ldr r0, _081064B4 @ =gUnknown_083EDE24
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064A0: .4byte gSlotMachine_Gfx
+_081064A4: .4byte 0x02010000
+_081064A8: .4byte 0x040000d4
+_081064AC: .4byte 0x80000800
+_081064B0: .4byte gUnknown_08E95A18
+_081064B4: .4byte gUnknown_083EDE24
+ thumb_func_end sub_8106448
+
+ thumb_func_start sub_81064B8
+sub_81064B8: @ 81064B8
+ push {lr}
+ ldr r0, _081064D0 @ =gUnknown_08E95AB8
+ ldr r1, _081064D4 @ =0x0600e800
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ bl sub_81064D8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081064D0: .4byte gUnknown_08E95AB8
+_081064D4: .4byte 0x0600e800
+ thumb_func_end sub_81064B8
+
+ thumb_func_start sub_81064D8
+sub_81064D8: @ 81064D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r6, _0810658C @ =0x0600f000
+ movs r3, 0x4
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r12, r0
+ movs r1, 0xC0
+ lsls r1, 2
+ mov r9, r1
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r8, r2
+_081064F6:
+ movs r0, 0
+ lsls r4, r3, 16
+ asrs r5, r4, 16
+_081064FC:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r5, r2
+ lsls r1, 1
+ adds r1, r6
+ mov r7, r8
+ adds r3, r1, r7
+ ldr r7, _08106590 @ =0x00002051
+ adds r0, r7, 0
+ strh r0, [r3]
+ movs r0, 0xD0
+ lsls r0, 2
+ adds r3, r1, r0
+ ldr r7, _08106594 @ =0x00002851
+ adds r0, r7, 0
+ strh r0, [r3]
+ mov r0, r12
+ adds r3, r1, r0
+ ldr r7, _08106598 @ =0x00002061
+ adds r0, r7, 0
+ strh r0, [r3]
+ add r1, r9
+ ldr r3, _0810659C @ =0x00002861
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x3
+ ble _081064FC
+ asrs r3, r4, 16
+ lsls r1, r3, 1
+ adds r1, r6
+ mov r5, r12
+ adds r2, r1, r5
+ adds r7, 0x5D
+ adds r0, r7, 0
+ strh r0, [r2]
+ add r1, r9
+ ldr r2, _081065A0 @ =0x000028be
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x7
+ ldr r5, _081065A4 @ =0x000020bf
+ adds r2, r5, 0
+_08106558:
+ lsls r1, r0, 16
+ asrs r1, 16
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0xB
+ ble _08106558
+ movs r7, 0xA0
+ lsls r7, 11
+ adds r0, r4, r7
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ ble _081064F6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810658C: .4byte 0x0600f000
+_08106590: .4byte 0x00002051
+_08106594: .4byte 0x00002851
+_08106598: .4byte 0x00002061
+_0810659C: .4byte 0x00002861
+_081065A0: .4byte 0x000028be
+_081065A4: .4byte 0x000020bf
+ thumb_func_end sub_81064D8
+
+ thumb_func_start sub_81065A8
+sub_81065A8: @ 81065A8
+ push {r4-r6,lr}
+ ldr r5, [sp, 0x10]
+ lsls r0, 16
+ asrs r0, 15
+ ldr r6, _081065D0 @ =0x0600ebc0
+ adds r4, r0, r6
+ strh r1, [r4]
+ ldr r4, _081065D4 @ =0x0600ebc2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r6, 0x40
+ adds r1, r0, r6
+ strh r3, [r1]
+ ldr r1, _081065D8 @ =0x0600ec02
+ adds r0, r1
+ strh r5, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081065D0: .4byte 0x0600ebc0
+_081065D4: .4byte 0x0600ebc2
+_081065D8: .4byte 0x0600ec02
+ thumb_func_end sub_81065A8
+
+ thumb_func_start sub_81065DC
+sub_81065DC: @ 81065DC
+ push {r4,r5,lr}
+ ldr r0, _08106624 @ =gUnknown_08E95FB8
+ ldr r1, _08106628 @ =0x0600e800
+ movs r2, 0xA0
+ lsls r2, 2
+ bl CpuSet
+ ldr r5, _0810662C @ =0x0600f000
+ movs r1, 0
+ movs r4, 0
+_081065F0:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r2, r3, 11
+_081065F6:
+ lsls r1, r0, 16
+ asrs r1, 16
+ adds r0, r2, r1
+ lsls r0, 1
+ adds r0, r5
+ strh r4, [r0]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ asrs r1, 16
+ cmp r1, 0x1D
+ ble _081065F6
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _081065F0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08106624: .4byte gUnknown_08E95FB8
+_08106628: .4byte 0x0600e800
+_0810662C: .4byte 0x0600f000
+ thumb_func_end sub_81065DC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
new file mode 100644
index 000000000..22a8c3410
--- /dev/null
+++ b/asm/sound_check_menu.s
@@ -0,0 +1,2444 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BA0A8
+sub_80BA0A8: @ 80BA0A8
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA0A8
+
+ thumb_func_start sub_80BA0C0
+sub_80BA0C0: @ 80BA0C0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, _080BA0E8 @ =gUnknown_020387B0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BA0E2
+ bl m4aSoundMain
+ bl m4aSoundMain
+ bl m4aSoundMain
+_080BA0E2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA0E8: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA0C0
+
+ thumb_func_start unref_sub_80BA0EC
+unref_sub_80BA0EC: @ 80BA0EC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _080BA20C @ =REG_BG2CNT
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x10
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r0, 0x6
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ ldr r1, _080BA210 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA214 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA218 @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080BA21C @ =0x81000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
+ bl SetUpWindowConfig
+ ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BA228 @ =REG_WIN0H
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ subs r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ ldr r1, _080BA22C @ =REG_WININ
+ ldr r2, _080BA230 @ =0x00001111
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x31
+ strh r0, [r1]
+ adds r1, 0x6
+ movs r0, 0xE1
+ strh r0, [r1]
+ ldr r0, _080BA234 @ =REG_BLDALPHA
+ strh r4, [r0]
+ adds r1, 0x4
+ movs r0, 0x7
+ strh r0, [r1]
+ ldr r1, _080BA238 @ =0x04000200
+ movs r2, 0x1
+ strh r2, [r1]
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r2, _080BA23C @ =REG_DISPSTAT
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080BA240 @ =sub_80BA0C0
+ bl SetVBlankCallback
+ ldr r0, _080BA244 @ =sub_80BA0A8
+ bl SetMainCallback2
+ ldr r1, _080BA248 @ =0x00007140
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _080BA24C @ =sub_80BA258
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080BA250 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r4, [r1, 0xE]
+ ldr r0, _080BA254 @ =gUnknown_020387B0
+ strb r5, [r0]
+ strh r4, [r1, 0xE]
+ bl m4aSoundInit
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA20C: .4byte REG_BG2CNT
+_080BA210: .4byte 0x040000d4
+_080BA214: .4byte 0x8100c000
+_080BA218: .4byte 0x85000100
+_080BA21C: .4byte 0x81000200
+_080BA220: .4byte gWindowConfig_81E6C3C
+_080BA224: .4byte gWindowConfig_81E6CE4
+_080BA228: .4byte REG_WIN0H
+_080BA22C: .4byte REG_WININ
+_080BA230: .4byte 0x00001111
+_080BA234: .4byte REG_BLDALPHA
+_080BA238: .4byte 0x04000200
+_080BA23C: .4byte REG_DISPSTAT
+_080BA240: .4byte sub_80BA0C0
+_080BA244: .4byte sub_80BA0A8
+_080BA248: .4byte 0x00007140
+_080BA24C: .4byte sub_80BA258
+_080BA250: .4byte gTasks
+_080BA254: .4byte gUnknown_020387B0
+ thumb_func_end unref_sub_80BA0EC
+
+ thumb_func_start sub_80BA258
+sub_80BA258: @ 80BA258
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
+ mov r0, sp
+ movs r2, 0x9
+ bl memcpy
+ add r7, sp, 0xC
+ ldr r1, _080BA358 @ =gDebugText_BGM
+ adds r0, r7, 0
+ movs r2, 0x4
+ bl memcpy
+ add r0, sp, 0x10
+ mov r8, r0
+ ldr r1, _080BA35C @ =gDebugText_SE
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x14
+ ldr r1, _080BA360 @ =gUnknown_083D02D9
+ adds r0, r5, 0
+ movs r2, 0xD
+ bl memcpy
+ add r4, sp, 0x24
+ ldr r1, _080BA364 @ =gDebugText_UpDown
+ adds r0, r4, 0
+ movs r2, 0xC
+ bl memcpy
+ add r6, sp, 0x30
+ ldr r1, _080BA368 @ =gDebugText_DriverTest
+ adds r0, r6, 0
+ movs r2, 0xE
+ bl memcpy
+ ldr r0, _080BA36C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA344
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x1B
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0x5
+ movs r2, 0x1B
+ movs r3, 0xA
+ bl MenuDrawTextWindow
+ movs r0, 0x2
+ movs r1, 0xC
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x4
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x4
+ movs r2, 0x6
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0x6
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x4
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0xE
+ movs r2, 0xD
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0xE
+ movs r2, 0x12
+ bl MenuPrint
+ ldr r1, _080BA370 @ =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA374 @ =sub_80BA384
+ str r1, [r0]
+ ldr r1, _080BA378 @ =REG_WIN0H
+ ldr r2, _080BA37C @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA380 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BA344:
+ add sp, 0x40
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA354: .4byte gDebugText_SoundCheckJap
+_080BA358: .4byte gDebugText_BGM
+_080BA35C: .4byte gDebugText_SE
+_080BA360: .4byte gUnknown_083D02D9
+_080BA364: .4byte gDebugText_UpDown
+_080BA368: .4byte gDebugText_DriverTest
+_080BA36C: .4byte gPaletteFade
+_080BA370: .4byte gTasks
+_080BA374: .4byte sub_80BA384
+_080BA378: .4byte REG_WIN0H
+_080BA37C: .4byte 0x000011df
+_080BA380: .4byte 0x0000011f
+ thumb_func_end sub_80BA258
+
+ thumb_func_start sub_80BA384
+sub_80BA384: @ 80BA384
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080BA3EC @ =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x8]
+ bl sub_80BA6B8
+ ldr r1, _080BA3F0 @ =0x0000015d
+ adds r0, r1, 0
+ ldrh r2, [r4, 0xA]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ movs r2, 0x8
+ bl sub_80BA700
+ ldr r1, _080BA3F4 @ =gBGMNames
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0x8
+ bl sub_80BA79C
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x7
+ movs r2, 0xF
+ bl sub_80BA700
+ ldr r1, _080BA3F8 @ =gSENames
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xB
+ movs r2, 0xF
+ bl sub_80BA79C
+ ldr r0, _080BA3FC @ =Task_HandleMainMenuInput
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA3EC: .4byte gTasks
+_080BA3F0: .4byte 0x0000015d
+_080BA3F4: .4byte gBGMNames
+_080BA3F8: .4byte gSENames
+_080BA3FC: .4byte Task_HandleMainMenuInput
+ thumb_func_end sub_80BA384
+
+ thumb_func_start sub_80BA400
+sub_80BA400: @ 80BA400
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r2, _080BA428 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA434
+ ldr r0, _080BA42C @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA430 @ =sub_80BA800
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA428: .4byte gMain
+_080BA42C: .4byte gTasks
+_080BA430: .4byte sub_80BA800
+_080BA434:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA458
+ ldr r0, _080BA450 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA454 @ =sub_80BAF84
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA450: .4byte gTasks
+_080BA454: .4byte sub_80BAF84
+_080BA458:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA478
+ ldr r0, _080BA470 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA474 @ =sub_80BB25C
+ str r0, [r1]
+ b _080BA64C
+ .align 2, 0
+_080BA470: .4byte gTasks
+_080BA474: .4byte sub_80BB25C
+_080BA478:
+ movs r6, 0x1
+ movs r5, 0x1
+ ands r5, r1
+ cmp r5, 0
+ beq _080BA538
+ ldr r0, _080BA4AC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r5, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080BA4D0
+ movs r2, 0x10
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA4BA
+ movs r3, 0xC
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA4B0
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ b _080BA4C4
+ .align 2, 0
+_080BA4AC: .4byte gTasks
+_080BA4B0:
+ ldrh r0, [r5, 0x10]
+ bl m4aSongNumStop
+ strh r4, [r5, 0x10]
+ b _080BA64C
+_080BA4BA:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ cmp r0, 0
+ bne _080BA4C4
+ b _080BA64C
+_080BA4C4:
+ ldrh r0, [r5, 0xC]
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xC]
+ strh r0, [r5, 0x10]
+ b _080BA64C
+_080BA4D0:
+ ldrh r1, [r5, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _080BA514
+ movs r3, 0xA
+ ldrsh r4, [r5, r3]
+ cmp r4, 0
+ beq _080BA500
+ ldr r0, _080BA4FC @ =0x0000015d
+ adds r4, r0, 0
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ ldrh r1, [r5, 0xA]
+ adds r4, r1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ b _080BA528
+ .align 2, 0
+_080BA4FC: .4byte 0x0000015d
+_080BA500:
+ ldr r2, _080BA510 @ =0x0000015d
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ bl m4aSongNumStop
+ strh r4, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA510: .4byte 0x0000015d
+_080BA514:
+ ldrh r1, [r5, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ bne _080BA520
+ b _080BA64C
+_080BA520:
+ ldr r4, _080BA534 @ =0x0000015d
+ adds r0, r1, r4
+ lsls r0, 16
+ lsrs r0, 16
+_080BA528:
+ bl m4aSongNumStart
+ ldrh r0, [r5, 0xA]
+ strh r0, [r5, 0xE]
+ b _080BA64C
+ .align 2, 0
+_080BA534: .4byte 0x0000015d
+_080BA538:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA570
+ movs r0, 0x5
+ bl m4aSongNumStart
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _080BA568 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BA56C @ =sub_80BA68C
+ str r1, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA568: .4byte gTasks
+_080BA56C: .4byte sub_80BA68C
+_080BA570:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA582
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA59C
+_080BA582:
+ ldr r0, _080BA598 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ eors r0, r6
+ strh r0, [r1, 0x8]
+_080BA592:
+ movs r0, 0x1
+ b _080BA64E
+ .align 2, 0
+_080BA598: .4byte gTasks
+_080BA59C:
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BA5EA
+ ldr r0, _080BA5CC @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080BA5D6
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080BA5D0
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA5CC: .4byte gTasks
+_080BA5D0:
+ movs r0, 0xF7
+ strh r0, [r1, 0xC]
+ b _080BA592
+_080BA5D6:
+ ldrh r2, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ ble _080BA5E4
+ subs r0, r2, 0x1
+ b _080BA5E6
+_080BA5E4:
+ movs r0, 0x75
+_080BA5E6:
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA5EA:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BA630
+ ldr r1, _080BA614 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r1, r0]
+ cmp r2, 0
+ beq _080BA61C
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0xF6
+ bgt _080BA618
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _080BA592
+ .align 2, 0
+_080BA614: .4byte gTasks
+_080BA618:
+ strh r3, [r1, 0xC]
+ b _080BA592
+_080BA61C:
+ ldrh r3, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x74
+ bgt _080BA62C
+ adds r0, r3, 0x1
+ strh r0, [r1, 0xA]
+ b _080BA592
+_080BA62C:
+ strh r2, [r1, 0xA]
+ b _080BA592
+_080BA630:
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080BA648
+ ldr r0, _080BA644 @ =gUnknown_020387B0
+ strb r6, [r0]
+ b _080BA64C
+ .align 2, 0
+_080BA644: .4byte gUnknown_020387B0
+_080BA648:
+ ldr r0, _080BA658 @ =gUnknown_020387B0
+ strb r1, [r0]
+_080BA64C:
+ movs r0, 0
+_080BA64E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BA658: .4byte gUnknown_020387B0
+ thumb_func_end sub_80BA400
+
+ thumb_func_start Task_HandleMainMenuInput
+Task_HandleMainMenuInput: @ 80BA65C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80BA400
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BA67C
+ ldr r0, _080BA684 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080BA688 @ =sub_80BA384
+ str r0, [r1]
+_080BA67C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA684: .4byte gTasks
+_080BA688: .4byte sub_80BA384
+ thumb_func_end Task_HandleMainMenuInput
+
+ thumb_func_start sub_80BA68C
+sub_80BA68C: @ 80BA68C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080BA6B0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080BA6AA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
+ bl SetMainCallback2
+_080BA6AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6B0: .4byte gPaletteFade
+_080BA6B4: .4byte CB2_InitTitleScreen
+ thumb_func_end sub_80BA68C
+
+ thumb_func_start sub_80BA6B8
+sub_80BA6B8: @ 80BA6B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA6C6
+ cmp r0, 0x1
+ beq _080BA6E0
+_080BA6C6:
+ ldr r1, _080BA6D4 @ =REG_WIN1H
+ ldr r2, _080BA6D8 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6DC @ =0x00002957
+ b _080BA6EC
+ .align 2, 0
+_080BA6D4: .4byte REG_WIN1H
+_080BA6D8: .4byte 0x000011df
+_080BA6DC: .4byte 0x00002957
+_080BA6E0:
+ ldr r1, _080BA6F4 @ =REG_WIN1H
+ ldr r2, _080BA6F8 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BA6FC @ =0x0000618f
+_080BA6EC:
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA6F4: .4byte REG_WIN1H
+_080BA6F8: .4byte 0x000011df
+_080BA6FC: .4byte 0x0000618f
+ thumb_func_end sub_80BA6B8
+
+ thumb_func_start sub_80BA700
+sub_80BA700: @ 80BA700
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r1, 0
+ movs r2, 0
+_080BA714:
+ mov r3, sp
+ adds r0, r3, r1
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _080BA714
+ mov r1, sp
+ movs r0, 0xB0
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ movs r4, 0
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080BA748
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r4, 0x1
+_080BA748:
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080BA766
+ cmp r4, 0
+ beq _080BA76C
+_080BA766:
+ mov r1, sp
+ adds r0, 0xA1
+ strb r0, [r1, 0x1]
+_080BA76C:
+ mov r4, sp
+ adds r0, r5, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r0, 0xA1
+ strb r0, [r4, 0x2]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA700
+
+ thumb_func_start sub_80BA79C
+sub_80BA79C: @ 80BA79C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r3, 0
+ movs r1, 0
+_080BA7AE:
+ mov r2, sp
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bls _080BA7AE
+ mov r0, sp
+ movs r1, 0xFF
+ strb r1, [r0, 0xA]
+ movs r3, 0
+ ldrb r0, [r4]
+ lsls r2, r6, 24
+ lsls r5, 24
+ cmp r0, 0xFF
+ beq _080BA7EC
+_080BA7D0:
+ mov r0, sp
+ adds r1, r0, r3
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080BA7EC
+ cmp r3, 0x9
+ bls _080BA7D0
+_080BA7EC:
+ lsrs r1, r2, 24
+ lsrs r2, r5, 24
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BA79C
+
+ thumb_func_start sub_80BA800
+sub_80BA800: @ 80BA800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xCC
+ lsls r0, 24
+ str r0, [sp, 0xB0]
+ lsrs r2, r0, 24
+ str r2, [sp, 0xAC]
+ ldr r1, _080BA9E8 @ =gUnknown_083D0312
+ mov r0, sp
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0xB4]
+ ldr r1, _080BA9EC @ =gUnknown_083D031C
+ movs r2, 0xB
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x18
+ str r2, [sp, 0xB8]
+ ldr r1, _080BA9F0 @ =gDebugText_Voice
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x24
+ str r0, [sp, 0xBC]
+ ldr r1, _080BA9F4 @ =gDebugText_Volume
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x30
+ str r2, [sp, 0xC0]
+ ldr r1, _080BA9F8 @ =gDebugText_Panpot
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ mov r0, sp
+ adds r0, 0x3C
+ str r0, [sp, 0xC4]
+ ldr r1, _080BA9FC @ =gDebugText_Pitch
+ movs r2, 0xA
+ bl memcpy
+ mov r2, sp
+ adds r2, 0x48
+ str r2, [sp, 0xC8]
+ ldr r1, _080BAA00 @ =gDebugText_Length
+ adds r0, r2, 0
+ movs r2, 0xA
+ bl memcpy
+ add r4, sp, 0x54
+ ldr r1, _080BAA04 @ =gDebugText_Release
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ add r7, sp, 0x60
+ ldr r1, _080BAA08 @ =gDebugText_Progress
+ adds r0, r7, 0
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x6C
+ mov r10, r0
+ ldr r1, _080BAA0C @ =gDebugText_Chorus
+ movs r2, 0xA
+ bl memcpy
+ add r2, sp, 0x78
+ mov r9, r2
+ ldr r1, _080BAA10 @ =gDebugText_Priority
+ mov r0, r9
+ movs r2, 0xA
+ bl memcpy
+ add r0, sp, 0x84
+ mov r8, r0
+ ldr r1, _080BAA14 @ =gUnknown_083D0381
+ movs r2, 0x9
+ bl memcpy
+ add r6, sp, 0x90
+ ldr r1, _080BAA18 @ =gUnknown_083D038A
+ adds r0, r6, 0
+ movs r2, 0x9
+ bl memcpy
+ add r5, sp, 0x9C
+ ldr r1, _080BAA1C @ =gUnknown_083D0393
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x13
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, [sp, 0xB4]
+ movs r1, 0x13
+ movs r2, 0x2
+ bl MenuPrint
+ ldr r0, [sp, 0xB8]
+ movs r1, 0x2
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, [sp, 0xBC]
+ movs r1, 0x2
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r0, [sp, 0xC0]
+ movs r1, 0x2
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r0, [sp, 0xC4]
+ movs r1, 0x2
+ movs r2, 0x7
+ bl MenuPrint
+ ldr r0, [sp, 0xC8]
+ movs r1, 0x2
+ movs r2, 0x9
+ bl MenuPrint
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xB
+ bl MenuPrint
+ adds r0, r7, 0
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ mov r0, r10
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ mov r0, r9
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ mov r0, r8
+ movs r1, 0x13
+ movs r2, 0x10
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x13
+ movs r2, 0xE
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x13
+ movs r2, 0xC
+ bl MenuPrint
+ ldr r1, _080BAA20 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, _080BAA24 @ =gUnknown_020387B3
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080BAA28 @ =gUnknown_020387B1
+ strb r1, [r0]
+ ldr r0, _080BAA2C @ =gUnknown_020387B2
+ strb r1, [r0]
+ ldr r0, _080BAA30 @ =gUnknown_03005D30
+ movs r2, 0
+ str r2, [r0]
+ ldr r0, _080BAA34 @ =gUnknown_020387D8
+ strb r2, [r0]
+ ldr r1, _080BAA38 @ =gUnknown_020387D9
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080BAA3C @ =gUnknown_020387B4
+ str r2, [r0]
+ movs r1, 0x78
+ str r1, [r0, 0x4]
+ str r2, [r0, 0x8]
+ movs r1, 0xF0
+ lsls r1, 6
+ str r1, [r0, 0xC]
+ movs r1, 0xB4
+ str r1, [r0, 0x10]
+ str r2, [r0, 0x18]
+ str r2, [r0, 0x14]
+ str r2, [r0, 0x1C]
+ movs r1, 0x2
+ str r1, [r0, 0x20]
+ bl sub_80BAD5C
+ movs r0, 0
+ movs r1, 0
+ bl sub_80BAE10
+ ldr r1, _080BAA40 @ =gTasks
+ ldr r2, [sp, 0xAC]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAA44 @ =sub_80BAA48
+ str r1, [r0]
+ add sp, 0xCC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BA9E8: .4byte gUnknown_083D0312
+_080BA9EC: .4byte gUnknown_083D031C
+_080BA9F0: .4byte gDebugText_Voice
+_080BA9F4: .4byte gDebugText_Volume
+_080BA9F8: .4byte gDebugText_Panpot
+_080BA9FC: .4byte gDebugText_Pitch
+_080BAA00: .4byte gDebugText_Length
+_080BAA04: .4byte gDebugText_Release
+_080BAA08: .4byte gDebugText_Progress
+_080BAA0C: .4byte gDebugText_Chorus
+_080BAA10: .4byte gDebugText_Priority
+_080BAA14: .4byte gUnknown_083D0381
+_080BAA18: .4byte gUnknown_083D038A
+_080BAA1C: .4byte gUnknown_083D0393
+_080BAA20: .4byte REG_WIN0H
+_080BAA24: .4byte gUnknown_020387B3
+_080BAA28: .4byte gUnknown_020387B1
+_080BAA2C: .4byte gUnknown_020387B2
+_080BAA30: .4byte gUnknown_03005D30
+_080BAA34: .4byte gUnknown_020387D8
+_080BAA38: .4byte gUnknown_020387D9
+_080BAA3C: .4byte gUnknown_020387B4
+_080BAA40: .4byte gTasks
+_080BAA44: .4byte sub_80BAA48
+ thumb_func_end sub_80BA800
+
+ thumb_func_start sub_80BAA48
+sub_80BAA48: @ 80BAA48
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080BAA90 @ =gMain
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAAA8
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BAA94 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BAA98 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BAA9C @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BAAA0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BAAA4 @ =sub_80BA258
+ str r1, [r0]
+ b _080BACC6
+ .align 2, 0
+_080BAA90: .4byte gMain
+_080BAA94: .4byte 0x00007140
+_080BAA98: .4byte 0x000011df
+_080BAA9C: .4byte 0x0000011f
+_080BAAA0: .4byte gTasks
+_080BAAA4: .4byte sub_80BA258
+_080BAAA8:
+ ldrh r1, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ beq _080BAAD0
+ ldr r1, _080BAACC @ =gUnknown_020387B3
+ ldrb r2, [r1]
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080BAAEA
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080BAAEA
+ .align 2, 0
+_080BAACC: .4byte gUnknown_020387B3
+_080BAAD0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAAF8
+ ldr r1, _080BAAF4 @ =gUnknown_020387B3
+ ldrb r2, [r1]
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x8
+ ble _080BAAEA
+ strb r3, [r1]
+_080BAAEA:
+ ldrb r1, [r1]
+ adds r0, r2, 0
+ bl sub_80BAE10
+ b _080BACC6
+ .align 2, 0
+_080BAAF4: .4byte gUnknown_020387B3
+_080BAAF8:
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB14
+ ldr r0, _080BAB10 @ =gUnknown_020387D8
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ bl sub_80BAD5C
+ b _080BACC6
+ .align 2, 0
+_080BAB10: .4byte gUnknown_020387D8
+_080BAB14:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ beq _080BAB38
+ ldr r4, _080BAB34 @ =gUnknown_020387D9
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ bl sub_80BAD5C
+ ldrb r0, [r4]
+ bl SetPokemonCryStereo
+ b _080BACC6
+ .align 2, 0
+_080BAB34: .4byte gUnknown_020387D9
+_080BAB38:
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB46
+ movs r0, 0xA
+ b _080BAB6E
+_080BAB46:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB56
+ movs r0, 0xA
+ negs r0, r0
+ b _080BAB6E
+_080BAB56:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB64
+ movs r0, 0x1
+ negs r0, r0
+ b _080BAB6E
+_080BAB64:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BAB78
+ movs r0, 0x1
+_080BAB6E:
+ bl sub_80BACDC
+ bl sub_80BAD5C
+ b _080BACC6
+_080BAB78:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _080BAB82
+ b _080BACA2
+_080BAB82:
+ ldr r4, _080BABE4 @ =gUnknown_020387B4
+ ldrb r0, [r4, 0x4]
+ bl SetPokemonCryVolume
+ movs r0, 0x8
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryPanpot
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ bl SetPokemonCryPitch
+ ldrh r0, [r4, 0x10]
+ bl SetPokemonCryLength
+ ldr r0, [r4, 0x18]
+ bl SetPokemonCryProgress
+ ldrb r0, [r4, 0x14]
+ bl SetPokemonCryRelease
+ movs r0, 0x1C
+ ldrsb r0, [r4, r0]
+ bl SetPokemonCryChorus
+ ldr r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl SetPokemonCryPriority
+ ldr r4, [r4]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _080BABC8
+ adds r0, 0x7F
+_080BABC8:
+ asrs r2, r0, 7
+ lsls r0, r2, 7
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BAC1C
+ cmp r0, 0x1
+ bgt _080BABE8
+ cmp r0, 0
+ beq _080BABF2
+ b _080BACA2
+ .align 2, 0
+_080BABE4: .4byte gUnknown_020387B4
+_080BABE8:
+ cmp r0, 0x2
+ beq _080BAC48
+ cmp r0, 0x3
+ beq _080BAC74
+ b _080BACA2
+_080BABF2:
+ ldr r0, _080BAC04 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC0C
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC08 @ =voicegroup_84537C0
+ b _080BAC98
+ .align 2, 0
+_080BAC04: .4byte gUnknown_020387D8
+_080BAC08: .4byte voicegroup_84537C0
+_080BAC0C:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC18 @ =voicegroup_8452590
+ b _080BAC98
+ .align 2, 0
+_080BAC18: .4byte voicegroup_8452590
+_080BAC1C:
+ ldr r0, _080BAC30 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC38
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC34 @ =voicegroup_8453DC0
+ b _080BAC98
+ .align 2, 0
+_080BAC30: .4byte gUnknown_020387D8
+_080BAC34: .4byte voicegroup_8453DC0
+_080BAC38:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC44 @ =voicegroup_8452B90
+ b _080BAC98
+ .align 2, 0
+_080BAC44: .4byte voicegroup_8452B90
+_080BAC48:
+ ldr r0, _080BAC5C @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC64
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC60 @ =voicegroup_84543C0
+ b _080BAC98
+ .align 2, 0
+_080BAC5C: .4byte gUnknown_020387D8
+_080BAC60: .4byte voicegroup_84543C0
+_080BAC64:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC70 @ =voicegroup_8453190
+ b _080BAC98
+ .align 2, 0
+_080BAC70: .4byte voicegroup_8453190
+_080BAC74:
+ ldr r0, _080BAC88 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BAC90
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BAC8C @ =voicegroup_84549C0
+ b _080BAC98
+ .align 2, 0
+_080BAC88: .4byte gUnknown_020387D8
+_080BAC8C: .4byte voicegroup_84549C0
+_080BAC90:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BACCC @ =voicegroup_8453790
+_080BAC98:
+ adds r0, r1
+ bl SetPokemonCryTone
+ ldr r1, _080BACD0 @ =gUnknown_03005D30
+ str r0, [r1]
+_080BACA2:
+ ldr r0, _080BACD0 @ =gUnknown_03005D30
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080BACC6
+ ldr r5, _080BACD4 @ =gUnknown_020387B1
+ bl IsPokemonCryPlaying
+ strb r0, [r5]
+ ldr r4, _080BACD8 @ =gUnknown_020387B2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r4]
+ cmp r0, r2
+ beq _080BACC2
+ bl sub_80BAD5C
+_080BACC2:
+ ldrb r0, [r5]
+ strb r0, [r4]
+_080BACC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BACCC: .4byte voicegroup_8453790
+_080BACD0: .4byte gUnknown_03005D30
+_080BACD4: .4byte gUnknown_020387B1
+_080BACD8: .4byte gUnknown_020387B2
+ thumb_func_end sub_80BAA48
+
+ thumb_func_start sub_80BACDC
+sub_80BACDC: @ 80BACDC
+ push {r4-r6,lr}
+ sub sp, 0x40
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BAD50 @ =gUnknown_083D039C
+ mov r0, sp
+ movs r2, 0x40
+ bl memcpy
+ ldr r6, _080BAD54 @ =gUnknown_020387B4
+ ldr r5, _080BAD58 @ =gUnknown_020387B3
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 2
+ adds r1, r6
+ lsls r4, 24
+ asrs r4, 24
+ ldr r0, [r1]
+ adds r0, r4
+ str r0, [r1]
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080BAD26
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD26:
+ movs r2, 0
+ ldrsb r2, [r5, r2]
+ lsls r0, r2, 2
+ adds r3, r0, r6
+ lsls r0, r2, 3
+ add r0, sp
+ ldr r1, [r3]
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080BAD46
+ lsls r0, r2, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ str r0, [r3]
+_080BAD46:
+ add sp, 0x40
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAD50: .4byte gUnknown_083D039C
+_080BAD54: .4byte gUnknown_020387B4
+_080BAD58: .4byte gUnknown_020387B3
+ thumb_func_end sub_80BACDC
+
+ thumb_func_start sub_80BAD5C
+sub_80BAD5C: @ 80BAD5C
+ push {r4,lr}
+ ldr r4, _080BAE00 @ =gUnknown_020387B4
+ ldr r0, [r4]
+ adds r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x1
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x4]
+ movs r1, 0xB
+ movs r2, 0x3
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x8]
+ movs r1, 0xB
+ movs r2, 0x5
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0xC]
+ movs r1, 0xB
+ movs r2, 0x7
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x10]
+ movs r1, 0xB
+ movs r2, 0x9
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x14]
+ movs r1, 0xB
+ movs r2, 0xB
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x18]
+ movs r1, 0xB
+ movs r2, 0xD
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x1C]
+ movs r1, 0xB
+ movs r2, 0xF
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, [r4, 0x20]
+ movs r1, 0xB
+ movs r2, 0x11
+ movs r3, 0x5
+ bl sub_80BAE78
+ ldr r0, _080BAE04 @ =gUnknown_020387B1
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE08 @ =gUnknown_020387D8
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80BAE78
+ ldr r0, _080BAE0C @ =gUnknown_020387D9
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ movs r2, 0xC
+ movs r3, 0x1
+ bl sub_80BAE78
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE00: .4byte gUnknown_020387B4
+_080BAE04: .4byte gUnknown_020387B1
+_080BAE08: .4byte gUnknown_020387D8
+_080BAE0C: .4byte gUnknown_020387D9
+ thumb_func_end sub_80BAD5C
+
+ thumb_func_start sub_80BAE10
+sub_80BAE10: @ 80BAE10
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080BAE6C @ =gUnknown_083D03DC
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r1, _080BAE70 @ =gUnknown_083D03DE
+ movs r2, 0x2
+ bl memcpy
+ ldr r6, _080BAE74 @ =gUnknown_083D0300
+ lsls r4, 1
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ adds r4, 0x1
+ adds r4, r6
+ ldrb r2, [r4]
+ mov r0, r8
+ bl MenuPrint
+ lsls r5, 1
+ adds r0, r5, r6
+ ldrb r1, [r0]
+ adds r5, 0x1
+ adds r5, r6
+ ldrb r2, [r5]
+ mov r0, sp
+ bl MenuPrint
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAE6C: .4byte gUnknown_083D03DC
+_080BAE70: .4byte gUnknown_083D03DE
+_080BAE74: .4byte gUnknown_083D0300
+ thumb_func_end sub_80BAE10
+
+ thumb_func_start sub_80BAE78
+sub_80BAE78: @ 80BAE78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r1, sp
+ ldr r0, _080BAF80 @ =gUnknown_083D03E0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ movs r5, 0
+ add r0, sp, 0x18
+ mov r9, r0
+ cmp r5, r7
+ bgt _080BAEC0
+ mov r4, r9
+ movs r3, 0
+_080BAEAC:
+ lsls r0, r5, 24
+ asrs r0, 24
+ adds r1, r4, r0
+ strb r3, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ asrs r0, 24
+ cmp r0, r7
+ ble _080BAEAC
+_080BAEC0:
+ adds r0, r7, 0x1
+ add r0, r9
+ movs r1, 0xFF
+ strb r1, [r0]
+ movs r1, 0
+ mov r3, r8
+ cmp r3, 0
+ bge _080BAED6
+ negs r3, r3
+ mov r8, r3
+ movs r1, 0x1
+_080BAED6:
+ movs r4, 0
+ mov r10, r4
+ cmp r7, 0x1
+ bne _080BAEE2
+ movs r5, 0x1
+ mov r10, r5
+_080BAEE2:
+ subs r0, r7, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 24
+ lsls r6, 24
+ str r6, [sp, 0x24]
+ lsls r2, 24
+ str r2, [sp, 0x28]
+ cmp r0, 0
+ blt _080BAF62
+ str r1, [sp, 0x20]
+_080BAEF8:
+ asrs r6, r0, 24
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __divsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r0, 0
+ bne _080BAF1A
+ mov r0, r10
+ cmp r0, 0
+ bne _080BAF1A
+ lsls r4, r5, 24
+ cmp r6, 0
+ bne _080BAF46
+_080BAF1A:
+ lsls r4, r5, 24
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _080BAF34
+ mov r5, r10
+ cmp r5, 0
+ bne _080BAF34
+ asrs r0, r4, 24
+ subs r0, r7, r0
+ subs r0, 0x1
+ add r0, r9
+ movs r1, 0xAE
+ strb r1, [r0]
+_080BAF34:
+ asrs r1, r4, 24
+ subs r1, r7, r1
+ add r1, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ subs r0, 0x5F
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r10, r0
+_080BAF46:
+ asrs r4, 24
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ bl __modsi3
+ mov r8, r0
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r5, r4, 24
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _080BAEF8
+_080BAF62:
+ ldr r3, [sp, 0x24]
+ lsrs r1, r3, 24
+ ldr r4, [sp, 0x28]
+ lsrs r2, r4, 24
+ mov r0, r9
+ bl MenuPrint
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BAF80: .4byte gUnknown_083D03E0
+ thumb_func_end sub_80BAE78
+
+ thumb_func_start sub_80BAF84
+sub_80BAF84: @ 80BAF84
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080BB01C @ =gOtherText_SE
+ mov r0, sp
+ movs r2, 0x3
+ bl memcpy
+ add r6, sp, 0x4
+ ldr r1, _080BB020 @ =gOtherText_Pan
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB024 @ =gUnknown_083D0381
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ mov r0, sp
+ movs r1, 0x3
+ movs r2, 0x2
+ bl MenuPrint
+ adds r0, r6, 0
+ movs r1, 0x3
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x8
+ bl MenuPrint
+ ldr r1, _080BB028 @ =REG_WIN0H
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _080BB02C @ =gUnknown_020387B4
+ movs r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ str r0, [r1, 0x1C]
+ str r0, [r1, 0x18]
+ str r0, [r1, 0x14]
+ bl sub_80BB1D4
+ ldr r1, _080BB030 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB034 @ =sub_80BB038
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB01C: .4byte gOtherText_SE
+_080BB020: .4byte gOtherText_Pan
+_080BB024: .4byte gUnknown_083D0381
+_080BB028: .4byte REG_WIN0H
+_080BB02C: .4byte gUnknown_020387B4
+_080BB030: .4byte gTasks
+_080BB034: .4byte sub_80BB038
+ thumb_func_end sub_80BAF84
+
+ thumb_func_start sub_80BB038
+sub_80BB038: @ 80BB038
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_80BB1D4
+ ldr r2, _080BB058 @ =gUnknown_020387B4
+ ldr r0, [r2, 0x18]
+ cmp r0, 0
+ beq _080BB0A2
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ beq _080BB05C
+ subs r0, 0x1
+ str r0, [r2, 0x14]
+ b _080BB0A2
+ .align 2, 0
+_080BB058: .4byte gUnknown_020387B4
+_080BB05C:
+ ldr r0, _080BB088 @ =gUnknown_083D03F8
+ ldr r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB08C
+ cmp r1, 0x7F
+ bne _080BB0A2
+ ldr r0, [r2, 0x1C]
+ adds r0, 0x2
+ str r0, [r2, 0x1C]
+ cmp r0, 0x3E
+ bgt _080BB0A2
+ lsls r0, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+ b _080BB0A2
+ .align 2, 0
+_080BB088: .4byte gUnknown_083D03F8
+_080BB08C:
+ ldr r0, [r2, 0x1C]
+ subs r1, r0, 0x2
+ str r1, [r2, 0x1C]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ ble _080BB0A2
+ lsls r0, r1, 24
+ asrs r0, 24
+ bl SE12PanpotControl
+_080BB0A2:
+ ldr r1, _080BB0EC @ =gMain
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r1, 0
+ cmp r4, 0
+ beq _080BB104
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB0F0 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB0F4 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB0F8 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB0FC @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB100 @ =sub_80BA258
+ str r1, [r0]
+ b _080BB1C8
+ .align 2, 0
+_080BB0EC: .4byte gMain
+_080BB0F0: .4byte 0x00007140
+_080BB0F4: .4byte 0x000011df
+_080BB0F8: .4byte 0x0000011f
+_080BB0FC: .4byte gTasks
+_080BB100: .4byte sub_80BA258
+_080BB104:
+ movs r6, 0x1
+ adds r2, r6, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _080BB15E
+ ldr r0, _080BB138 @ =gUnknown_083D03F8
+ ldr r5, _080BB13C @ =gUnknown_020387B4
+ ldr r1, [r5, 0x8]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB140
+ cmp r1, 0x7F
+ bne _080BB154
+ ldrh r0, [r5]
+ movs r4, 0x40
+ negs r4, r4
+ adds r1, r4, 0
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x1C]
+ b _080BB14C
+ .align 2, 0
+_080BB138: .4byte gUnknown_083D03F8
+_080BB13C: .4byte gUnknown_020387B4
+_080BB140:
+ ldrh r0, [r5]
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ movs r0, 0x3F
+ str r0, [r5, 0x1C]
+_080BB14C:
+ str r6, [r5, 0x18]
+ movs r0, 0x1E
+ str r0, [r5, 0x14]
+ b _080BB1C8
+_080BB154:
+ ldrh r0, [r5]
+ bl PlaySE12WithPanning
+ str r4, [r5, 0x18]
+ b _080BB1C8
+_080BB15E:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r3
+ cmp r0, 0
+ beq _080BB176
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0x4
+ ble _080BB176
+ str r2, [r1, 0x8]
+_080BB176:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB192
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1, 0x8]
+ subs r0, 0x1
+ str r0, [r1, 0x8]
+ cmp r0, 0
+ bge _080BB192
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+_080BB192:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1B0
+ ldr r1, _080BB1AC @ =gUnknown_020387B4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xF7
+ ble _080BB1C8
+ movs r0, 0
+ b _080BB1C6
+ .align 2, 0
+_080BB1AC: .4byte gUnknown_020387B4
+_080BB1B0:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB1C8
+ ldr r1, _080BB1D0 @ =gUnknown_020387B4
+ ldr r0, [r1]
+ subs r0, 0x1
+ str r0, [r1]
+ cmp r0, 0
+ bge _080BB1C8
+ movs r0, 0xF7
+_080BB1C6:
+ str r0, [r1]
+_080BB1C8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB1D0: .4byte gUnknown_020387B4
+ thumb_func_end sub_80BB038
+
+ thumb_func_start sub_80BB1D4
+sub_80BB1D4: @ 80BB1D4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r1, _080BB218 @ =gOtherText_LR
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ add r5, sp, 0x8
+ ldr r1, _080BB21C @ =gOtherText_RL
+ adds r0, r5, 0
+ movs r2, 0x5
+ bl memcpy
+ ldr r4, _080BB220 @ =gUnknown_020387B4
+ ldr r0, [r4]
+ movs r1, 0x7
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80BAE78
+ ldr r1, _080BB224 @ =gUnknown_083D03F8
+ ldr r0, [r4, 0x8]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x80
+ negs r0, r0
+ cmp r1, r0
+ beq _080BB228
+ cmp r1, 0x7F
+ bne _080BB234
+ mov r0, sp
+ b _080BB22A
+ .align 2, 0
+_080BB218: .4byte gOtherText_LR
+_080BB21C: .4byte gOtherText_RL
+_080BB220: .4byte gUnknown_020387B4
+_080BB224: .4byte gUnknown_083D03F8
+_080BB228:
+ adds r0, r5, 0
+_080BB22A:
+ movs r1, 0x7
+ movs r2, 0x4
+ bl MenuPrint
+ b _080BB240
+_080BB234:
+ adds r0, r1, 0
+ movs r1, 0x7
+ movs r2, 0x4
+ movs r3, 0x3
+ bl sub_80BAE78
+_080BB240:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xC
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_80BAE78
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BB1D4
+
+ thumb_func_start sub_80BB25C
+sub_80BB25C: @ 80BB25C
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
+ bl SetUpWindowConfig
+ ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
+ bl InitMenuWindow
+ ldr r1, _080BB37C @ =gUnknown_03005D34
+ movs r0, 0x1
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _080BB380 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ ldr r1, _080BB384 @ =0xff00ffff
+ ands r0, r1
+ movs r1, 0xE8
+ lsls r1, 13
+ orrs r0, r1
+ ldr r1, _080BB388 @ =0x00ffffff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r1, _080BB38C @ =0xffff00ff
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 5
+ orrs r0, r1
+ ldr r1, _080BB390 @ =0xffffff00
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldr r0, _080BB394 @ =gUnknown_03005E98
+ strb r1, [r0]
+ add r4, sp, 0xC
+_080BB2BE:
+ add r0, sp, 0x4
+ movs r1, 0x3
+ bl sub_8119E3C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB2BE
+ ldr r1, _080BB380 @ =0xffff0000
+ ldr r0, [sp, 0xC]
+ ands r0, r1
+ ldr r1, _080BB384 @ =0xff00ffff
+ ands r0, r1
+ movs r1, 0xF0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _080BB388 @ =0x00ffffff
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 20
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r1, _080BB390 @ =0xffffff00
+ ldr r0, [r4, 0x4]
+ ands r0, r1
+ movs r1, 0xC
+ orrs r0, r1
+ ldr r1, _080BB38C @ =0xffff00ff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldr r0, _080BB394 @ =gUnknown_03005E98
+ strb r1, [r0]
+ lsls r5, r6, 2
+_080BB306:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_811A3CC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BB306
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x5
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_80BB494
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _080BB398 @ =REG_BG2HOFS
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _080BB39C @ =REG_BG2CNT
+ ldr r2, _080BB3A0 @ =0x00000f01
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080BB3A4 @ =0x00001d03
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ adds r2, 0x3D
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080BB3A8 @ =gMPlay_BGM
+ movs r1, 0x2
+ bl m4aMPlayFadeOutTemporarily
+ ldr r1, _080BB3AC @ =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB3B0 @ =sub_80BB3B4
+ str r1, [r0]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB374: .4byte gWindowConfig_81E6C3C
+_080BB378: .4byte gWindowConfig_81E6CE4
+_080BB37C: .4byte gUnknown_03005D34
+_080BB380: .4byte 0xffff0000
+_080BB384: .4byte 0xff00ffff
+_080BB388: .4byte 0x00ffffff
+_080BB38C: .4byte 0xffff00ff
+_080BB390: .4byte 0xffffff00
+_080BB394: .4byte gUnknown_03005E98
+_080BB398: .4byte REG_BG2HOFS
+_080BB39C: .4byte REG_BG2CNT
+_080BB3A0: .4byte 0x00000f01
+_080BB3A4: .4byte 0x00001d03
+_080BB3A8: .4byte gMPlay_BGM
+_080BB3AC: .4byte gTasks
+_080BB3B0: .4byte sub_80BB3B4
+ thumb_func_end sub_80BB25C
+
+ thumb_func_start sub_80BB3B4
+sub_80BB3B4: @ 80BB3B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8119F88
+ ldr r4, _080BB478 @ =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3D4
+ ldr r0, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r0]
+ bl sub_811A050
+_080BB3D4:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB3E4
+ bl StopCryAndClearCrySongs
+_080BB3E4:
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB408
+ ldr r1, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080BB404
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+_080BB404:
+ bl sub_80BB494
+_080BB408:
+ ldr r0, _080BB478 @ =gMain
+ ldrh r1, [r0, 0x30]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB42E
+ ldr r2, _080BB47C @ =gUnknown_03005D34
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 17
+ cmp r0, r1
+ bls _080BB42A
+ movs r0, 0x1
+ strh r0, [r2]
+_080BB42A:
+ bl sub_80BB494
+_080BB42E:
+ ldr r0, _080BB478 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BB472
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _080BB480 @ =0x00007140
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x40
+ ldr r2, _080BB484 @ =0x000011df
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r2, _080BB488 @ =0x0000011f
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _080BB48C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080BB490 @ =sub_80BA258
+ str r1, [r0]
+ bl sub_811A4F8
+_080BB472:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB478: .4byte gMain
+_080BB47C: .4byte gUnknown_03005D34
+_080BB480: .4byte 0x00007140
+_080BB484: .4byte 0x000011df
+_080BB488: .4byte 0x0000011f
+_080BB48C: .4byte gTasks
+_080BB490: .4byte sub_80BA258
+ thumb_func_end sub_80BB3B4
+
+ thumb_func_start sub_80BB494
+sub_80BB494: @ 80BB494
+ push {lr}
+ ldr r0, _080BB4A8 @ =gUnknown_03005D34
+ ldrh r0, [r0]
+ movs r1, 0x1
+ movs r2, 0x11
+ movs r3, 0x3
+ bl sub_80BAE78
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BB4A8: .4byte gUnknown_03005D34
+ thumb_func_end sub_80BB494
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/truck_scene.s b/asm/truck_scene.s
new file mode 100644
index 000000000..399c3010b
--- /dev/null
+++ b/asm/truck_scene.s
@@ -0,0 +1,604 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C727C
+sub_80C727C: @ 80C727C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x78
+ bl __modsi3
+ cmp r0, 0
+ bne _080C7290
+ movs r0, 0x1
+ negs r0, r0
+ b _080C72A2
+_080C7290:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C72A0
+ movs r0, 0
+ b _080C72A2
+_080C72A0:
+ movs r0, 0x1
+_080C72A2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C727C
+
+ thumb_func_start sub_80C72A8
+sub_80C72A8: @ 80C72A8
+ push {lr}
+ adds r0, 0x78
+ movs r1, 0xB4
+ bl __modsi3
+ cmp r0, 0
+ beq _080C72BA
+ movs r0, 0
+ b _080C72BE
+_080C72BA:
+ movs r0, 0x1
+ negs r0, r0
+_080C72BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C72A8
+
+ thumb_func_start sub_80C72C4
+sub_80C72C4: @ 80C72C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080C7364 @ =gTasks + 0x8
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r4, _080C7368 @ =gSaveBlock1
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 18
+ movs r3, 0xC0
+ lsls r3, 10
+ orrs r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ lsls r0, 17
+ ldr r3, _080C736C @ =0xfffd0000
+ adds r0, r3
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_80C72A8
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r4, 0
+ movs r3, 0x3
+ negs r3, r3
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ ldr r1, _080C7370 @ =0x75300000
+ cmp r0, r1
+ bne _080C7346
+ strh r4, [r5]
+_080C7346:
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0
+ bl SetCameraPanning
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7364: .4byte gTasks + 0x8
+_080C7368: .4byte gSaveBlock1
+_080C736C: .4byte 0xfffd0000
+_080C7370: .4byte 0x75300000
+ thumb_func_end sub_80C72C4
+
+ thumb_func_start sub_80C7374
+sub_80C7374: @ 80C7374
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r3, r0, 3
+ ldr r4, _080C73B4 @ =gTasks + 0x8
+ adds r7, r3, r4
+ ldrh r1, [r7]
+ adds r1, 0x1
+ strh r1, [r7]
+ ldrh r0, [r7, 0x4]
+ adds r0, 0x1
+ strh r0, [r7, 0x4]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ ble _080C73A4
+ movs r0, 0
+ strh r0, [r7]
+ ldrh r0, [r7, 0x2]
+ adds r0, 0x1
+ strh r0, [r7, 0x2]
+_080C73A4:
+ ldrh r0, [r7, 0x2]
+ cmp r0, 0x13
+ bne _080C73B8
+ adds r0, r2, 0
+ bl DestroyTask
+ b _080C746A
+ .align 2, 0
+_080C73B4: .4byte gTasks + 0x8
+_080C73B8:
+ ldr r2, _080C7474 @ =gUnknown_083D294C
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ bne _080C73D4
+ adds r0, r4, 0
+ subs r0, 0x8
+ adds r0, r3, r0
+ ldr r1, _080C7478 @ =sub_80C7484
+ str r1, [r0]
+_080C73D4:
+ movs r4, 0x2
+ ldrsh r0, [r7, r4]
+ adds r0, r2
+ movs r5, 0
+ ldrsb r5, [r0, r5]
+ lsls r5, 16
+ lsrs r5, 16
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C727C
+ adds r1, r0, 0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ bl SetCameraPanning
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ adds r0, 0x1E
+ bl sub_80C72A8
+ ldr r6, _080C747C @ =gSaveBlock1
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r3, 0x3
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ movs r4, 0xC0
+ lsls r4, 10
+ orrs r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ negs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 17
+ ldr r4, _080C7480 @ =0xfffd0000
+ adds r0, r4
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ bl sub_80C72A8
+ ldrb r1, [r6, 0x5]
+ ldrb r2, [r6, 0x4]
+ movs r4, 0x3
+ negs r4, r4
+ adds r3, r4, 0
+ subs r3, r5
+ lsls r3, 16
+ asrs r3, 16
+ lsls r0, 18
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_805BD90
+_080C746A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7474: .4byte gUnknown_083D294C
+_080C7478: .4byte sub_80C7484
+_080C747C: .4byte gSaveBlock1
+_080C7480: .4byte 0xfffd0000
+ thumb_func_end sub_80C7374
+
+ thumb_func_start sub_80C7484
+sub_80C7484: @ 80C7484
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r1, _080C74C4 @ =gTasks + 0x8
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080C74B4
+ movs r0, 0
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+_080C74B4:
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bne _080C74C8
+ adds r0, r3, 0
+ bl DestroyTask
+ b _080C7516
+ .align 2, 0
+_080C74C4: .4byte gTasks + 0x8
+_080C74C8:
+ ldr r1, _080C7524 @ =gUnknown_083D294C
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ adds r0, r1
+ movs r1, 0
+ mov r8, r1
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ adds r0, r6, 0
+ bl SetCameraPanning
+ ldr r5, _080C7528 @ =gSaveBlock1
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ movs r3, 0x3
+ subs r3, r6
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ negs r3, r6
+ mov r4, r8
+ subs r4, 0x3
+ str r4, [sp]
+ movs r0, 0x2
+ bl sub_805BD90
+ ldrb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x4]
+ subs r4, r6
+ mov r3, r8
+ str r3, [sp]
+ movs r0, 0x3
+ adds r3, r4, 0
+ bl sub_805BD90
+_080C7516:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C7524: .4byte gUnknown_083D294C
+_080C7528: .4byte gSaveBlock1
+ thumb_func_end sub_80C7484
+
+ thumb_func_start sub_80C752C
+sub_80C752C: @ 80C752C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080C7550 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bls _080C7546
+ b _080C7698
+_080C7546:
+ lsls r0, 2
+ ldr r1, _080C7554 @ =_080C7558
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C7550: .4byte gTasks + 0x8
+_080C7554: .4byte _080C7558
+ .align 2, 0
+_080C7558:
+ .4byte _080C7570
+ .4byte _080C75A8
+ .4byte _080C75C4
+ .4byte _080C7610
+ .4byte _080C7634
+ .4byte _080C7652
+_080C7570:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ beq _080C7580
+ b _080C7698
+_080C7580:
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ ldr r0, _080C75A4 @ =sub_80C72C4
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ movs r0, 0x1
+ strh r0, [r4]
+ movs r0, 0x31
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C75A4: .4byte sub_80C72C4
+_080C75A8:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x96
+ bne _080C7698
+ bl pal_fill_black
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ strh r0, [r4]
+ b _080C7698
+_080C75C4:
+ ldrh r0, [r4, 0x2]
+ adds r3, r0, 0x1
+ strh r3, [r4, 0x2]
+ ldr r0, _080C7608 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080C7698
+ lsls r1, r3, 16
+ movs r0, 0x96
+ lsls r0, 17
+ cmp r1, r0
+ ble _080C7698
+ strh r2, [r4, 0x2]
+ ldrb r0, [r4, 0x4]
+ bl DestroyTask
+ ldr r0, _080C760C @ =sub_80C7374
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x6]
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x32
+ bl PlaySE
+ b _080C7698
+ .align 2, 0
+_080C7608: .4byte gPaletteFade
+_080C760C: .4byte sub_80C7374
+_080C7610:
+ ldr r2, _080C7630 @ =gTasks
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r5, [r0, 0x4]
+ cmp r5, 0
+ bne _080C7698
+ bl InstallCameraPanAheadCallback
+ strh r5, [r4, 0x2]
+ movs r0, 0x4
+ strh r0, [r4]
+ b _080C7698
+ .align 2, 0
+_080C7630: .4byte gTasks
+_080C7634:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5A
+ bne _080C7698
+ movs r0, 0x33
+ bl PlaySE
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ strh r0, [r4]
+ b _080C7698
+_080C7652:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ bne _080C7698
+ movs r2, 0x82
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x84
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x86
+ lsls r2, 2
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x34
+ bl PlaySE
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+_080C7698:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C752C
+
+ thumb_func_start sub_80C76A0
+sub_80C76A0: @ 80C76A0
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _080C76E8 @ =0x0000020d
+ movs r0, 0xB
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76EC @ =0x00000215
+ movs r0, 0xB
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _080C76F0 @ =0x0000021d
+ movs r0, 0xB
+ movs r1, 0xA
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ bl ScriptContext2_Enable
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _080C76F4 @ =gPlttBufferFaded
+ ldr r2, _080C76F8 @ =0x01000100
+ mov r0, sp
+ bl CpuFastSet
+ ldr r0, _080C76FC @ =sub_80C752C
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C76E8: .4byte 0x0000020d
+_080C76EC: .4byte 0x00000215
+_080C76F0: .4byte 0x0000021d
+_080C76F4: .4byte gPlttBufferFaded
+_080C76F8: .4byte 0x01000100
+_080C76FC: .4byte sub_80C752C
+ thumb_func_end sub_80C76A0
+
+ thumb_func_start sub_80C7700
+sub_80C7700: @ 80C7700
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _080C774C @ =sub_80C752C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080C7744
+ ldr r4, _080C7750 @ =gSaveBlock1
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0x1
+ movs r3, 0x3
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ movs r5, 0x3
+ negs r5, r5
+ str r5, [sp]
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_805BD90
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ str r6, [sp]
+ movs r0, 0x3
+ adds r3, r5, 0
+ bl sub_805BD90
+_080C7744:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C774C: .4byte sub_80C752C
+_080C7750: .4byte gSaveBlock1
+ thumb_func_end sub_80C7700
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/tv.s b/asm/tv.s
new file mode 100644
index 000000000..d38d990c4
--- /dev/null
+++ b/asm/tv.s
@@ -0,0 +1,8977 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80BD7A8
+sub_80BD7A8: @ 80BD7A8
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r6, _080BD7F0 @ =gSaveBlock1
+ movs r4, 0
+ ldr r0, _080BD7F4 @ =0x0000273a
+ adds r5, r6, r0
+_080BD7B4:
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 2
+ adds r1, r2, r6
+ ldr r7, _080BD7F8 @ =0x00002738
+ adds r0, r1, r7
+ strb r4, [r0]
+ ldr r0, _080BD7FC @ =0x00002739
+ adds r1, r0
+ strb r4, [r1]
+ movs r1, 0
+ adds r3, 0x1
+_080BD7CC:
+ adds r0, r1, r2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BD7CC
+ lsls r0, r3, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x18
+ bls _080BD7B4
+ bl sub_80BEBF4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD7F0: .4byte gSaveBlock1
+_080BD7F4: .4byte 0x0000273a
+_080BD7F8: .4byte 0x00002738
+_080BD7FC: .4byte 0x00002739
+ thumb_func_end sub_80BD7A8
+
+ thumb_func_start special_0x44
+special_0x44: @ 80BD800
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0x5
+ ldr r1, _080BD874 @ =gSaveBlock1
+ ldr r2, _080BD878 @ =0x000027ec
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BD834
+ adds r2, r1, 0
+ ldr r1, _080BD87C @ =0x00002738
+_080BD81A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bhi _080BD834
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BD81A
+_080BD834:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ ldr r7, _080BD874 @ =gSaveBlock1
+ ldr r0, _080BD87C @ =0x00002738
+ adds r0, r7
+ mov r9, r0
+_080BD850:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r6, r0, 2
+ adds r5, r6, r7
+ ldr r1, _080BD87C @ =0x00002738
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _080BD884
+ ldr r2, _080BD880 @ =0x00002739
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ b _080BD890
+ .align 2, 0
+_080BD874: .4byte gSaveBlock1
+_080BD878: .4byte 0x000027ec
+_080BD87C: .4byte 0x00002738
+_080BD880: .4byte 0x00002739
+_080BD884:
+ mov r0, r9
+ adds r1, r6, r0
+ ldrh r0, [r1, 0x16]
+ cmp r0, 0
+ bne _080BD898
+ ldrb r0, [r1, 0x1]
+_080BD890:
+ cmp r0, 0x1
+ bne _080BD898
+ adds r0, r4, 0
+ b _080BD8AC
+_080BD898:
+ cmp r4, 0
+ bne _080BD8A0
+ movs r4, 0x17
+ b _080BD8A6
+_080BD8A0:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080BD8A6:
+ cmp r4, r8
+ bne _080BD850
+ movs r0, 0xFF
+_080BD8AC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x44
+
+ thumb_func_start sub_80BD8B8
+sub_80BD8B8: @ 80BD8B8
+ push {lr}
+ bl special_0x44
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BD8CA
+ movs r0, 0xFF
+ b _080BD902
+_080BD8CA:
+ ldr r2, _080BD8F4 @ =gSaveBlock1
+ ldr r3, _080BD8F8 @ =0x00002afc
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BD900
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, _080BD8FC @ =0x00002738
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BD900
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BD902
+ .align 2, 0
+_080BD8F4: .4byte gSaveBlock1
+_080BD8F8: .4byte 0x00002afc
+_080BD8FC: .4byte 0x00002738
+_080BD900:
+ adds r0, r1, 0
+_080BD902:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BD8B8
+
+ thumb_func_start UpdateTVScreensOnMap
+UpdateTVScreensOnMap: @ 80BD908
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, _080BD938 @ =0x00000831
+ bl FlagSet
+ bl CheckForBigMovieOrEmergencyNewsOnTV
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BD92C
+ cmp r0, 0x2
+ beq _080BD97E
+ ldr r0, _080BD93C @ =gSaveBlock1
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0xD
+ bne _080BD940
+_080BD92C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+ b _080BD97E
+ .align 2, 0
+_080BD938: .4byte 0x00000831
+_080BD93C: .4byte gSaveBlock1
+_080BD940:
+ ldr r0, _080BD984 @ =0x00000832
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+ bl sub_80BD8B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080BD96E
+ bl IsTVShowInSearchOfTrainersAiring
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BD97E
+_080BD96E:
+ ldr r0, _080BD988 @ =0x00000831
+ bl FlagReset
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl SetTVMetatilesOnMap
+_080BD97E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BD984: .4byte 0x00000832
+_080BD988: .4byte 0x00000831
+ thumb_func_end UpdateTVScreensOnMap
+
+ thumb_func_start SetTVMetatilesOnMap
+SetTVMetatilesOnMap: @ 80BD98C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r5, 0
+ cmp r5, r10
+ bge _080BD9E0
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ mov r8, r2
+ mov r1, r8
+ orrs r1, r0
+ mov r8, r1
+_080BD9B2:
+ movs r4, 0
+ adds r7, r5, 0x1
+ cmp r4, r9
+ bge _080BD9DA
+ mov r0, r8
+ lsls r6, r0, 16
+_080BD9BE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ cmp r0, 0x86
+ bne _080BD9D4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ lsrs r2, r6, 16
+ bl MapGridSetMetatileIdAt
+_080BD9D4:
+ adds r4, 0x1
+ cmp r4, r9
+ blt _080BD9BE
+_080BD9DA:
+ adds r5, r7, 0
+ cmp r5, r10
+ blt _080BD9B2
+_080BD9E0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end SetTVMetatilesOnMap
+
+ thumb_func_start TurnOffTVScreen
+TurnOffTVScreen: @ 80BD9F0
+ push {lr}
+ ldr r1, _080BDA08 @ =gUnknown_03004870
+ ldr r0, [r1]
+ ldr r1, [r1, 0x4]
+ movs r2, 0x2
+ bl SetTVMetatilesOnMap
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDA08: .4byte gUnknown_03004870
+ thumb_func_end TurnOffTVScreen
+
+ thumb_func_start sub_80BDA0C
+sub_80BDA0C: @ 80BDA0C
+ ldr r2, _080BDA24 @ =gSaveBlock1
+ ldr r0, _080BDA28 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BDA2C @ =0x00002738
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080BDA24: .4byte gSaveBlock1
+_080BDA28: .4byte gUnknown_0202E8CC
+_080BDA2C: .4byte 0x00002738
+ thumb_func_end sub_80BDA0C
+
+ thumb_func_start sub_80BDA30
+sub_80BDA30: @ 80BDA30
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BDA5C @ =gSaveBlock1
+_080BDA36:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldr r4, _080BDA60 @ =0x00002738
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDA64
+ cmp r0, 0x29
+ beq _080BDA64
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BDA64
+ adds r0, r2, 0
+ b _080BDA70
+ .align 2, 0
+_080BDA5C: .4byte gSaveBlock1
+_080BDA60: .4byte 0x00002738
+_080BDA64:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BDA36
+ movs r0, 0xFF
+_080BDA70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDA30
+
+ thumb_func_start special_0x4a
+special_0x4a: @ 80BDA78
+ push {lr}
+ ldr r2, _080BDAA4 @ =gUnknown_0202E8CC
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDAA8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BDAAC
+ movs r3, 0xF1
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080BDAAC
+ bl sub_80BDA30
+ lsls r0, 24
+ lsrs r0, 24
+ b _080BDAAE
+ .align 2, 0
+_080BDAA4: .4byte gUnknown_0202E8CC
+_080BDAA8: .4byte gSaveBlock1 + 0x2738
+_080BDAAC:
+ ldrb r0, [r2]
+_080BDAAE:
+ pop {r1}
+ bx r1
+ thumb_func_end special_0x4a
+
+ thumb_func_start sub_80BDAB4
+sub_80BDAB4: @ 80BDAB4
+ push {r4,lr}
+ ldr r2, _080BDAF8 @ =gSaveBlock1
+ ldr r1, _080BDAFC @ =0x00002b10
+ adds r0, r2, r1
+ movs r3, 0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r4, _080BDB00 @ =0x00002b12
+ adds r0, r2, r4
+ strh r1, [r0]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB04 @ =0x00002b16
+ adds r1, r2, r0
+ ldr r0, _080BDB08 @ =0x0000ffff
+ strh r0, [r1]
+ adds r4, 0x6
+ adds r1, r2, r4
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080BDB0C @ =0x00002b1b
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BDB10 @ =0x00002b18
+ adds r0, r2, r1
+ strb r3, [r0]
+ subs r4, 0x1
+ adds r2, r4
+ strb r3, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDAF8: .4byte gSaveBlock1
+_080BDAFC: .4byte 0x00002b10
+_080BDB00: .4byte 0x00002b12
+_080BDB04: .4byte 0x00002b16
+_080BDB08: .4byte 0x0000ffff
+_080BDB0C: .4byte 0x00002b1b
+_080BDB10: .4byte 0x00002b18
+ thumb_func_end sub_80BDAB4
+
+ thumb_func_start GabbyAndTyBeforeInterview
+GabbyAndTyBeforeInterview: @ 80BDB14
+ push {r4,r5,lr}
+ ldr r2, _080BDB68 @ =gSaveBlock1
+ ldr r3, _080BDB6C @ =gUnknown_030042E0
+ ldrh r1, [r3, 0x6]
+ ldr r4, _080BDB70 @ =0x00002b10
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x26]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r1, [r3, 0x22]
+ adds r4, 0x2
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldr r0, _080BDB74 @ =0x00002b19
+ adds r4, r2, r0
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _080BDB44
+ adds r0, r1, 0x1
+ strb r0, [r4]
+_080BDB44:
+ ldrb r0, [r3, 0x5]
+ lsls r0, 31
+ ldr r1, _080BDB78 @ =0x00002b1a
+ adds r4, r5, r1
+ lsrs r0, 31
+ ldrb r1, [r4]
+ movs r2, 0x2
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BDB7C
+ movs r0, 0x2
+ orrs r2, r0
+ b _080BDB82
+ .align 2, 0
+_080BDB68: .4byte gSaveBlock1
+_080BDB6C: .4byte gUnknown_030042E0
+_080BDB70: .4byte 0x00002b10
+_080BDB74: .4byte 0x00002b19
+_080BDB78: .4byte 0x00002b1a
+_080BDB7C:
+ movs r0, 0x3
+ negs r0, r0
+ ands r2, r0
+_080BDB82:
+ strb r2, [r4]
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0
+ beq _080BDB9C
+ ldr r4, _080BDB98 @ =0x00002b1a
+ adds r0, r5, r4
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _080BDBAA
+ .align 2, 0
+_080BDB98: .4byte 0x00002b1a
+_080BDB9C:
+ ldr r0, _080BDBDC @ =0x00002b1a
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080BDBAA:
+ ldrb r1, [r3, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDBE0
+ movs r1, 0
+ adds r0, r3, 0
+ adds r0, 0x36
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BDBE0
+_080BDBC0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BDBEC
+ adds r0, r3, 0
+ adds r0, 0x36
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BDBC0
+ ldr r4, _080BDBDC @ =0x00002b1a
+ adds r0, r5, r4
+ b _080BDBE4
+ .align 2, 0
+_080BDBDC: .4byte 0x00002b1a
+_080BDBE0:
+ ldr r1, _080BDC08 @ =0x00002b1a
+ adds r0, r5, r1
+_080BDBE4:
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_080BDBEC:
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+ ldr r0, _080BDC0C @ =gSaveBlock1
+ ldr r4, _080BDC10 @ =0x00002b14
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BDC02
+ movs r0, 0x1
+ bl FlagSet
+_080BDC02:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC08: .4byte 0x00002b1a
+_080BDC0C: .4byte gSaveBlock1
+_080BDC10: .4byte 0x00002b14
+ thumb_func_end GabbyAndTyBeforeInterview
+
+ thumb_func_start sub_80BDC14
+sub_80BDC14: @ 80BDC14
+ push {r4-r6,lr}
+ ldr r4, _080BDC70 @ =gSaveBlock1
+ ldr r0, _080BDC74 @ =0x00002b1a
+ adds r6, r4, r0
+ ldrb r3, [r6]
+ lsls r1, r3, 31
+ adds r0, 0x1
+ adds r5, r4, r0
+ lsrs r1, 31
+ ldrb r2, [r5]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x2
+ ands r1, r3
+ movs r2, 0x3
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x4
+ ands r1, r3
+ subs r2, 0x2
+ ands r0, r2
+ orrs r0, r1
+ movs r1, 0x8
+ ands r1, r3
+ subs r2, 0x4
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ movs r0, 0x10
+ orrs r3, r0
+ strb r3, [r6]
+ ldr r0, _080BDC78 @ =gMapHeader
+ ldrb r0, [r0, 0x14]
+ ldr r1, _080BDC7C @ =0x00002b18
+ adds r4, r1
+ strb r0, [r4]
+ movs r0, 0x6
+ bl sav12_xor_increment
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDC70: .4byte gSaveBlock1
+_080BDC74: .4byte 0x00002b1a
+_080BDC78: .4byte gMapHeader
+_080BDC7C: .4byte 0x00002b18
+ thumb_func_end sub_80BDC14
+
+ thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir
+TakeTVShowInSearchOfTrainersOffTheAir: @ 80BDC80
+ ldr r0, _080BDC94 @ =gSaveBlock1
+ ldr r1, _080BDC98 @ =0x00002b1a
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x11
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080BDC94: .4byte gSaveBlock1
+_080BDC98: .4byte 0x00002b1a
+ thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir
+
+ thumb_func_start GabbyAndTyGetBattleNum
+GabbyAndTyGetBattleNum: @ 80BDC9C
+ push {lr}
+ ldr r0, _080BDCBC @ =gSaveBlock1
+ ldr r2, _080BDCC0 @ =0x00002b19
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bls _080BDCB8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+_080BDCB8:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BDCBC: .4byte gSaveBlock1
+_080BDCC0: .4byte 0x00002b19
+ thumb_func_end GabbyAndTyGetBattleNum
+
+ thumb_func_start IsTVShowInSearchOfTrainersAiring
+IsTVShowInSearchOfTrainersAiring: @ 80BDCC4
+ ldr r0, _080BDCD4 @ =gSaveBlock1
+ ldr r1, _080BDCD8 @ =0x00002b1a
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080BDCD4: .4byte gSaveBlock1
+_080BDCD8: .4byte 0x00002b1a
+ thumb_func_end IsTVShowInSearchOfTrainersAiring
+
+ thumb_func_start GabbyAndTyGetLastQuote
+GabbyAndTyGetLastQuote: @ 80BDCDC
+ push {r4,r5,lr}
+ ldr r0, _080BDD00 @ =gSaveBlock1
+ ldr r1, _080BDD04 @ =0x00002b16
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ ldr r5, _080BDD08 @ =0x0000ffff
+ cmp r0, r5
+ beq _080BDD10
+ ldr r0, _080BDD0C @ =gStringVar1
+ ldrh r1, [r4]
+ bl sub_80EB3FC
+ ldrh r1, [r4]
+ adds r0, r5, 0
+ orrs r0, r1
+ strh r0, [r4]
+ movs r0, 0x1
+ b _080BDD12
+ .align 2, 0
+_080BDD00: .4byte gSaveBlock1
+_080BDD04: .4byte 0x00002b16
+_080BDD08: .4byte 0x0000ffff
+_080BDD0C: .4byte gStringVar1
+_080BDD10:
+ movs r0, 0
+_080BDD12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GabbyAndTyGetLastQuote
+
+ thumb_func_start sub_80BDD18
+sub_80BDD18: @ 80BDD18
+ push {lr}
+ ldr r0, _080BDD30 @ =gSaveBlock1
+ ldr r1, _080BDD34 @ =0x00002b1b
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD38
+ movs r0, 0x1
+ b _080BDD5E
+ .align 2, 0
+_080BDD30: .4byte gSaveBlock1
+_080BDD34: .4byte 0x00002b1b
+_080BDD38:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD44
+ movs r0, 0x2
+ b _080BDD5E
+_080BDD44:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDD50
+ movs r0, 0x3
+ b _080BDD5E
+_080BDD50:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080BDD5C
+ movs r0, 0
+ b _080BDD5E
+_080BDD5C:
+ movs r0, 0x4
+_080BDD5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDD18
+
+ thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds
+GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80BDD64
+ push {lr}
+ bl GabbyAndTyGetBattleNum
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _080BDE3C
+ lsls r0, 2
+ ldr r1, _080BDD80 @ =_080BDD84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDD80: .4byte _080BDD84
+ .align 2, 0
+_080BDD84:
+ .4byte _080BDDA4
+ .4byte _080BDDB8
+ .4byte _080BDDCC
+ .4byte _080BDDE0
+ .4byte _080BDDF4
+ .4byte _080BDE08
+ .4byte _080BDE1C
+ .4byte _080BDE30
+_080BDDA4:
+ ldr r1, _080BDDB0 @ =gUnknown_0202E8CC
+ movs r0, 0xE
+ strh r0, [r1]
+ ldr r1, _080BDDB4 @ =gUnknown_0202E8CE
+ movs r0, 0xD
+ b _080BDE3A
+ .align 2, 0
+_080BDDB0: .4byte gUnknown_0202E8CC
+_080BDDB4: .4byte gUnknown_0202E8CE
+_080BDDB8:
+ ldr r1, _080BDDC4 @ =gUnknown_0202E8CC
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _080BDDC8 @ =gUnknown_0202E8CE
+ movs r0, 0x6
+ b _080BDE3A
+ .align 2, 0
+_080BDDC4: .4byte gUnknown_0202E8CC
+_080BDDC8: .4byte gUnknown_0202E8CE
+_080BDDCC:
+ ldr r1, _080BDDD8 @ =gUnknown_0202E8CC
+ movs r0, 0x12
+ strh r0, [r1]
+ ldr r1, _080BDDDC @ =gUnknown_0202E8CE
+ movs r0, 0x11
+ b _080BDE3A
+ .align 2, 0
+_080BDDD8: .4byte gUnknown_0202E8CC
+_080BDDDC: .4byte gUnknown_0202E8CE
+_080BDDE0:
+ ldr r1, _080BDDEC @ =gUnknown_0202E8CC
+ movs r0, 0x15
+ strh r0, [r1]
+ ldr r1, _080BDDF0 @ =gUnknown_0202E8CE
+ movs r0, 0x16
+ b _080BDE3A
+ .align 2, 0
+_080BDDEC: .4byte gUnknown_0202E8CC
+_080BDDF0: .4byte gUnknown_0202E8CE
+_080BDDF4:
+ ldr r1, _080BDE00 @ =gUnknown_0202E8CC
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080BDE04 @ =gUnknown_0202E8CE
+ movs r0, 0x9
+ b _080BDE3A
+ .align 2, 0
+_080BDE00: .4byte gUnknown_0202E8CC
+_080BDE04: .4byte gUnknown_0202E8CE
+_080BDE08:
+ ldr r1, _080BDE14 @ =gUnknown_0202E8CC
+ movs r0, 0x13
+ strh r0, [r1]
+ ldr r1, _080BDE18 @ =gUnknown_0202E8CE
+ movs r0, 0x14
+ b _080BDE3A
+ .align 2, 0
+_080BDE14: .4byte gUnknown_0202E8CC
+_080BDE18: .4byte gUnknown_0202E8CE
+_080BDE1C:
+ ldr r1, _080BDE28 @ =gUnknown_0202E8CC
+ movs r0, 0x17
+ strh r0, [r1]
+ ldr r1, _080BDE2C @ =gUnknown_0202E8CE
+ movs r0, 0x18
+ b _080BDE3A
+ .align 2, 0
+_080BDE28: .4byte gUnknown_0202E8CC
+_080BDE2C: .4byte gUnknown_0202E8CE
+_080BDE30:
+ ldr r1, _080BDE40 @ =gUnknown_0202E8CC
+ movs r0, 0xA
+ strh r0, [r1]
+ ldr r1, _080BDE44 @ =gUnknown_0202E8CE
+ movs r0, 0xB
+_080BDE3A:
+ strh r0, [r1]
+_080BDE3C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BDE40: .4byte gUnknown_0202E8CC
+_080BDE44: .4byte gUnknown_0202E8CE
+ thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
+
+ thumb_func_start sub_80BDE48
+sub_80BDE48: @ 80BDE48
+ push {lr}
+ ldr r0, _080BDE60 @ =gUnknown_0202E8CE
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BDEA6
+ lsls r0, 2
+ ldr r1, _080BDE64 @ =_080BDE68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BDE60: .4byte gUnknown_0202E8CE
+_080BDE64: .4byte _080BDE68
+ .align 2, 0
+_080BDE68:
+ .4byte _080BDE84
+ .4byte _080BDE8A
+ .4byte _080BDE90
+ .4byte _080BDE96
+ .4byte _080BDEA6
+ .4byte _080BDE9C
+ .4byte _080BDEA2
+_080BDE84:
+ bl sub_80BE5FC
+ b _080BDEA6
+_080BDE8A:
+ bl sub_80BE65C
+ b _080BDEA6
+_080BDE90:
+ bl sub_80BE6A0
+ b _080BDEA6
+_080BDE96:
+ bl nullsub_21
+ b _080BDEA6
+_080BDE9C:
+ bl sub_80BE188
+ b _080BDEA6
+_080BDEA2:
+ bl sub_80BE320
+_080BDEA6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BDE48
+
+ thumb_func_start sub_80BDEAC
+sub_80BDEAC: @ 80BDEAC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2
+ ldrb r0, [r1]
+ cmp r0, 0xFC
+ bne _080BDEC0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x15
+ bne _080BDEC0
+ movs r2, 0x1
+_080BDEC0:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BDEAC
+
+ thumb_func_start sub_80BDEC8
+sub_80BDEC8: @ 80BDEC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ bl sub_80BEB20
+ bl sub_80BE778
+ ldr r5, _080BDEE8 @ =gUnknown_030042E0
+ ldrh r0, [r5, 0x28]
+ cmp r0, 0
+ bne _080BDEEC
+ bl sub_80BE074
+ b _080BE012
+ .align 2, 0
+_080BDEE8: .4byte gUnknown_030042E0
+_080BDEEC:
+ bl sub_80BE028
+ ldr r0, _080BDF98 @ =0x0000ffff
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BDEFE
+ b _080BE012
+_080BDEFE:
+ ldrh r1, [r5, 0x28]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080BDF9C @ =gSpeciesNames
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0x2A
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080BDF16
+ b _080BE012
+_080BDF16:
+ ldr r0, _080BDFA0 @ =gSaveBlock1 + 0x2738
+ bl sub_80BF74C
+ ldr r1, _080BDFA4 @ =gUnknown_03005D38
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE012
+ movs r0, 0x15
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE012
+ movs r2, 0
+ adds r7, r5, 0
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDF42:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDF42
+ cmp r4, 0
+ bne _080BDF64
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BE012
+_080BDF64:
+ movs r4, 0
+ ldr r0, _080BDFA4 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BDFA0 @ =gSaveBlock1 + 0x2738
+ adds r5, r0, r1
+ movs r0, 0x15
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080BDFAC
+ movs r4, 0x1
+ movs r0, 0x1
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BDFA8 @ =gSaveBlock2
+ mov r8, r1
+ adds r6, r5, 0x4
+ b _080BDFDE
+ .align 2, 0
+_080BDF98: .4byte 0x0000ffff
+_080BDF9C: .4byte gSpeciesNames
+_080BDFA0: .4byte gSaveBlock1 + 0x2738
+_080BDFA4: .4byte gUnknown_03005D38
+_080BDFA8: .4byte gSaveBlock2
+_080BDFAC:
+ movs r2, 0
+ ldr r0, _080BE01C @ =gUnknown_02024C04
+ mov r12, r0
+ adds r3, r5, 0
+ adds r3, 0x13
+ ldr r1, _080BE020 @ =gSaveBlock2
+ mov r8, r1
+ adds r6, r5, 0x4
+ adds r1, r7, 0
+ adds r1, 0x36
+_080BDFC0:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bls _080BDFC0
+ cmp r4, 0xFF
+ bls _080BDFDA
+ movs r4, 0xFF
+_080BDFDA:
+ mov r1, r12
+ ldrh r0, [r1]
+_080BDFDE:
+ strb r4, [r5, 0x12]
+ strb r0, [r5, 0xF]
+ adds r0, r3, 0
+ mov r1, r8
+ bl StringCopy
+ ldr r4, _080BE024 @ =gUnknown_0300430A
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCopy
+ subs r4, 0x2A
+ ldrh r0, [r4, 0x28]
+ strh r0, [r5, 0x10]
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+ adds r0, r6, 0
+ bl sub_80BDEAC
+ strb r0, [r5, 0x3]
+ adds r0, r6, 0
+ bl StripExtCtrlCodes
+_080BE012:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE01C: .4byte gUnknown_02024C04
+_080BE020: .4byte gSaveBlock2
+_080BE024: .4byte gUnknown_0300430A
+ thumb_func_end sub_80BDEC8
+
+ thumb_func_start sub_80BE028
+sub_80BE028: @ 80BE028
+ push {r4,lr}
+ ldr r4, _080BE064 @ =gSaveBlock1 + 0x2A98
+ ldrb r0, [r4]
+ cmp r0, 0x19
+ beq _080BE048
+ ldr r1, _080BE068 @ =0xfffffca0
+ adds r0, r4, r1
+ movs r1, 0x18
+ bl sub_80BF55C
+ movs r0, 0x5
+ bl sub_8053108
+ strh r0, [r4, 0x6]
+ movs r0, 0x19
+ strb r0, [r4]
+_080BE048:
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ ldr r1, _080BE06C @ =gUnknown_030042E0
+ ldrh r0, [r1, 0x28]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldr r0, _080BE070 @ =gMapHeader
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE064: .4byte gSaveBlock1 + 0x2A98
+_080BE068: .4byte 0xfffffca0
+_080BE06C: .4byte gUnknown_030042E0
+_080BE070: .4byte gMapHeader
+ thumb_func_end sub_80BE028
+
+ thumb_func_start sub_80BE074
+sub_80BE074: @ 80BE074
+ push {r4-r7,lr}
+ ldr r0, _080BE118 @ =0x0000ffff
+ bl sub_80BF77C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BE112
+ movs r1, 0
+ movs r5, 0
+ ldr r2, _080BE11C @ =gUnknown_03004316
+_080BE088:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bls _080BE088
+ cmp r5, 0xFF
+ bls _080BE0A2
+ movs r5, 0xFF
+_080BE0A2:
+ cmp r5, 0x2
+ bls _080BE112
+ ldr r7, _080BE120 @ =gUnknown_02024D26
+ ldrb r0, [r7]
+ cmp r0, 0x1
+ bne _080BE112
+ ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r4, _080BE128 @ =gUnknown_03005D38
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE112
+ movs r0, 0x17
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE112
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0
+ movs r0, 0x17
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BE12C @ =gUnknown_030042E0
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r4, 0xE]
+ strb r5, [r4, 0x10]
+ ldrb r0, [r7]
+ strb r0, [r4, 0x11]
+ ldr r0, _080BE130 @ =gMapHeader
+ ldrb r0, [r0, 0x14]
+ strb r0, [r4, 0x12]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BE134 @ =gSaveBlock2
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x2]
+_080BE112:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE118: .4byte 0x0000ffff
+_080BE11C: .4byte gUnknown_03004316
+_080BE120: .4byte gUnknown_02024D26
+_080BE124: .4byte gSaveBlock1 + 0x2738
+_080BE128: .4byte gUnknown_03005D38
+_080BE12C: .4byte gUnknown_030042E0
+_080BE130: .4byte gMapHeader
+_080BE134: .4byte gSaveBlock2
+ thumb_func_end sub_80BE074
+
+ thumb_func_start sub_80BE138
+sub_80BE138: @ 80BE138
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ strb r0, [r4, 0x1E]
+ lsrs r2, r0, 8
+ strb r2, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ adds r1, 0x1
+ strb r2, [r1]
+ adds r1, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE138
+
+ thumb_func_start sub_80BE160
+sub_80BE160: @ 80BE160
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BFB94
+ adds r1, r4, 0
+ adds r1, 0x20
+ strb r0, [r1]
+ lsrs r1, r0, 8
+ adds r2, r4, 0
+ adds r2, 0x21
+ strb r1, [r2]
+ adds r2, 0x1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x23
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE160
+
+ thumb_func_start sub_80BE188
+sub_80BE188: @ 80BE188
+ push {r4-r6,lr}
+ ldr r6, _080BE22C @ =gSaveBlock1 + 0x2A98
+ ldrb r1, [r6]
+ cmp r1, 0x6
+ bne _080BE224
+ ldr r0, _080BE230 @ =gUnknown_03005D38
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r2, _080BE234 @ =0xfffffca0
+ adds r0, r6, r2
+ adds r4, r0
+ strb r1, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ adds r0, 0x16
+ ldr r1, _080BE238 @ =gSaveBlock2
+ bl StringCopy
+ adds r5, r4, 0
+ adds r5, 0x8
+ adds r1, r6, 0
+ adds r1, 0x8
+ adds r0, r5, 0
+ bl StringCopy
+ ldrb r0, [r6, 0x13]
+ lsls r0, 29
+ lsrs r0, 29
+ ldrb r2, [r4, 0x13]
+ movs r3, 0x8
+ negs r3, r3
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x13]
+ ldrb r2, [r6, 0x13]
+ movs r0, 0x18
+ ands r0, r2
+ movs r2, 0x19
+ negs r2, r2
+ ands r2, r1
+ orrs r2, r0
+ strb r2, [r4, 0x13]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r4, 0x14]
+ ldrb r0, [r6, 0x13]
+ movs r1, 0x60
+ ands r1, r0
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ ldrb r1, [r6, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0x13]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl StripExtCtrlCodes
+_080BE224:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE22C: .4byte gSaveBlock1 + 0x2A98
+_080BE230: .4byte gUnknown_03005D38
+_080BE234: .4byte 0xfffffca0
+_080BE238: .4byte gSaveBlock2
+ thumb_func_end sub_80BE188
+
+ thumb_func_start sub_80BE23C
+sub_80BE23C: @ 80BE23C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _080BE278 @ =gSaveBlock1 + 0x2A98
+ bl sub_80BF484
+ ldr r0, _080BE27C @ =0xfffffca0
+ adds r5, r4, r0
+ adds r0, r5, 0
+ bl sub_80BF720
+ ldr r1, _080BE280 @ =gUnknown_03005D38
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE270
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl sub_80BF55C
+ strh r6, [r4, 0x14]
+ movs r0, 0x6
+ strb r0, [r4]
+_080BE270:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE278: .4byte gSaveBlock1 + 0x2A98
+_080BE27C: .4byte 0xfffffca0
+_080BE280: .4byte gUnknown_03005D38
+ thumb_func_end sub_80BE23C
+
+ thumb_func_start sub_80BE284
+sub_80BE284: @ 80BE284
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r7, _080BE304 @ =gSaveBlock1 + 0x2A98
+ ldr r1, _080BE308 @ =0xfffffca0
+ adds r0, r7, r1
+ bl sub_80BF720
+ ldr r1, _080BE30C @ =gUnknown_03005D38
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE2FE
+ movs r3, 0x3
+ adds r1, r4, 0
+ ands r1, r3
+ lsls r1, 5
+ ldrb r2, [r7, 0x13]
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE310 @ =gUnknown_0203869C
+ ldrb r2, [r1]
+ movs r1, 0x7
+ ands r1, r2
+ movs r2, 0x8
+ negs r2, r2
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _080BE314 @ =gUnknown_0203869E
+ ldrb r1, [r1]
+ ands r3, r1
+ lsls r3, 3
+ movs r1, 0x19
+ negs r1, r1
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r7, 0x13]
+ ldr r6, _080BE318 @ =gUnknown_02038694
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BE31C @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r7, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ adds r2, r7, 0
+ adds r2, 0x8
+ movs r1, 0x2
+ bl GetMonData
+_080BE2FE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE304: .4byte gSaveBlock1 + 0x2A98
+_080BE308: .4byte 0xfffffca0
+_080BE30C: .4byte gUnknown_03005D38
+_080BE310: .4byte gUnknown_0203869C
+_080BE314: .4byte gUnknown_0203869E
+_080BE318: .4byte gUnknown_02038694
+_080BE31C: .4byte gPlayerParty
+ thumb_func_end sub_80BE284
+
+ thumb_func_start sub_80BE320
+sub_80BE320: @ 80BE320
+ push {r4-r6,lr}
+ ldr r0, _080BE384 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BE388 @ =gSaveBlock1 + 0x2738
+ adds r6, r0, r1
+ movs r0, 0x7
+ strb r0, [r6]
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ adds r0, r6, 0x2
+ ldr r4, _080BE38C @ =gSaveBlock2
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r6, 0
+ adds r0, 0xC
+ ldr r2, _080BE390 @ =0x00000484
+ adds r1, r4, r2
+ bl StringCopy
+ movs r1, 0x90
+ lsls r1, 3
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ strh r0, [r6, 0xA]
+ ldr r2, _080BE394 @ =0x00000482
+ adds r0, r4, r2
+ ldrh r0, [r0]
+ strh r0, [r6, 0x14]
+ movs r0, 0xAF
+ lsls r0, 3
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_8135D3C
+ strh r0, [r6, 0x16]
+ ldr r1, _080BE398 @ =0x00000555
+ adds r4, r1
+ ldrb r0, [r4]
+ strb r0, [r6, 0x1C]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080BE39C
+ movs r0, 0x32
+ b _080BE39E
+ .align 2, 0
+_080BE384: .4byte gUnknown_03005D38
+_080BE388: .4byte gSaveBlock1 + 0x2738
+_080BE38C: .4byte gSaveBlock2
+_080BE390: .4byte 0x00000484
+_080BE394: .4byte 0x00000482
+_080BE398: .4byte 0x00000555
+_080BE39C:
+ movs r0, 0x64
+_080BE39E:
+ strb r0, [r6, 0x1A]
+ ldr r0, _080BE3B8 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ strb r0, [r6, 0x1B]
+ adds r0, r6, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r6, 0x1D]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE3B8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_80BE320
+
+ thumb_func_start sub_80BE3BC
+sub_80BE3BC: @ 80BE3BC
+ push {r4-r7,lr}
+ ldr r0, _080BE460 @ =0x00005555
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080BE458
+ ldr r6, _080BE464 @ =gSaveBlock1 + 0x2738
+ adds r0, r6, 0
+ bl sub_80BF74C
+ ldr r5, _080BE468 @ =gUnknown_03005D38
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE458
+ movs r0, 0x16
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BE458
+ bl sub_80BF20C
+ ldr r2, _080BE46C @ =gUnknown_02038724
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0x13
+ bls _080BE458
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r6
+ movs r0, 0x16
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ ldr r0, _080BE470 @ =gMapHeader
+ ldrb r0, [r0, 0x14]
+ strb r0, [r5, 0x12]
+ movs r4, 0
+ adds r7, r5, 0x6
+ mov r12, r2
+ adds r6, r5, 0
+ adds r6, 0xC
+_080BE420:
+ lsls r2, r4, 1
+ adds r3, r7, r2
+ lsls r1, r4, 2
+ add r1, r12
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r2, r6, r2
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080BE420
+ movs r0, 0x1
+ bl GetPriceReduction
+ strb r0, [r5, 0x2]
+ adds r0, r5, 0
+ adds r0, 0x13
+ ldr r1, _080BE474 @ =gSaveBlock2
+ bl StringCopy
+ adds r0, r5, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r5, 0x3]
+_080BE458:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE460: .4byte 0x00005555
+_080BE464: .4byte gSaveBlock1 + 0x2738
+_080BE468: .4byte gUnknown_03005D38
+_080BE46C: .4byte gUnknown_02038724
+_080BE470: .4byte gMapHeader
+_080BE474: .4byte gSaveBlock2
+ thumb_func_end sub_80BE3BC
+
+ thumb_func_start sub_80BE478
+sub_80BE478: @ 80BE478
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl sub_80BF478
+ ldr r0, _080BE554 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _080BE548
+ ldr r0, _080BE558 @ =gUnknown_0202E8CC
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r6, _080BE55C @ =gPlayerParty
+ adds r0, r6
+ ldr r4, _080BE560 @ =gStringVar1
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r1, _080BE564 @ =gSaveBlock2
+ mov r9, r1
+ mov r0, r9
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _080BE548
+ ldr r0, _080BE568 @ =gUnknown_03005D38
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE56C @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ movs r0, 0x5
+ strb r0, [r4]
+ movs r5, 0x1
+ strb r5, [r4, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ strb r0, [r4, 0x1A]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r5
+ strb r0, [r4, 0x1B]
+ ldrh r0, [r4, 0x2]
+ bl sub_80BF674
+ strh r0, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r0, 0xF
+ mov r1, r9
+ bl StringCopy
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r7
+ adds r0, r6
+ adds r5, r4, 0x4
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x1E]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0x1F]
+ adds r0, r5, 0
+ bl StripExtCtrlCodes
+_080BE548:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE554: .4byte gScriptResult
+_080BE558: .4byte gUnknown_0202E8CC
+_080BE55C: .4byte gPlayerParty
+_080BE560: .4byte gStringVar1
+_080BE564: .4byte gSaveBlock2
+_080BE568: .4byte gUnknown_03005D38
+_080BE56C: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BE478
+
+ thumb_func_start StartMassOutbreak
+StartMassOutbreak: @ 80BE570
+ push {r4,lr}
+ ldr r0, _080BE5F0 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, _080BE5F4 @ =gSaveBlock1 + 0x2738
+ adds r0, r2
+ ldrh r3, [r0, 0xC]
+ movs r4, 0xF1
+ lsls r4, 2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x10]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x11]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x14]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r3, [r0, 0x2]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrh r3, [r0, 0xE]
+ adds r4, 0x1
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x4]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x6]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0x8]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrh r3, [r0, 0xA]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldrb r3, [r0, 0x3]
+ adds r4, 0x2
+ adds r1, r2, r4
+ strb r3, [r1]
+ ldrb r1, [r0, 0x13]
+ ldr r3, _080BE5F8 @ =0x000003d5
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r4, 0x2
+ adds r2, r4
+ movs r0, 0x2
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE5F0: .4byte gUnknown_0202E8CC
+_080BE5F4: .4byte gSaveBlock1 + 0x2738
+_080BE5F8: .4byte 0x000003d5
+ thumb_func_end StartMassOutbreak
+
+ thumb_func_start sub_80BE5FC
+sub_80BE5FC: @ 80BE5FC
+ push {r4,lr}
+ ldr r0, _080BE64C @ =gUnknown_03005D38
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE650 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE654 @ =gSaveBlock2
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BE658 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE64C: .4byte gUnknown_03005D38
+_080BE650: .4byte gSaveBlock1 + 0x2738
+_080BE654: .4byte gSaveBlock2
+_080BE658: .4byte gPlayerParty
+ thumb_func_end sub_80BE5FC
+
+ thumb_func_start sub_80BE65C
+sub_80BE65C: @ 80BE65C
+ push {r4-r6,lr}
+ ldr r0, _080BE694 @ =gUnknown_03005D38
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE698 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ movs r6, 0
+ movs r5, 0x2
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldr r1, _080BE69C @ =gSaveBlock2
+ bl StringCopy
+ strh r6, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ strb r5, [r4, 0x18]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE694: .4byte gUnknown_03005D38
+_080BE698: .4byte gSaveBlock1 + 0x2738
+_080BE69C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE65C
+
+ thumb_func_start sub_80BE6A0
+sub_80BE6A0: @ 80BE6A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _080BE760 @ =gUnknown_03005D38
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080BE764 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BE768 @ =gPlayerParty
+ adds r0, r6
+ movs r1, 0x20
+ movs r2, 0
+ bl GetMonData
+ lsrs r0, 4
+ movs r1, 0xF
+ ands r0, r1
+ ldrb r2, [r4, 0x4]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ ldr r0, _080BE76C @ =gUnknown_0202E8D2
+ ldrb r0, [r0]
+ lsls r0, 4
+ movs r2, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x4]
+ adds r0, r4, 0x5
+ ldr r1, _080BE770 @ =gSaveBlock2
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r5, r4, 0
+ adds r5, 0x10
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0xD]
+ adds r0, r5, 0
+ bl sub_80BDEAC
+ strb r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl StripExtCtrlCodes
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE760: .4byte gUnknown_03005D38
+_080BE764: .4byte gSaveBlock1 + 0x2738
+_080BE768: .4byte gPlayerParty
+_080BE76C: .4byte gUnknown_0202E8D2
+_080BE770: .4byte gSaveBlock2
+ thumb_func_end sub_80BE6A0
+
+ thumb_func_start nullsub_21
+nullsub_21: @ 80BE774
+ bx lr
+ thumb_func_end nullsub_21
+
+ thumb_func_start sub_80BE778
+sub_80BE778: @ 80BE778
+ push {r4-r6,lr}
+ ldr r0, _080BE83C @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE836
+ movs r1, 0
+ ldr r3, _080BE840 @ =gSaveBlock1
+ ldr r2, _080BE844 @ =0x00002738
+_080BE78C:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ beq _080BE836
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x17
+ bls _080BE78C
+ ldr r0, _080BE848 @ =0x00000147
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080BE836
+ ldr r6, _080BE84C @ =gSaveBlock1 + 0x2738
+ adds r0, r6, 0
+ bl sub_80BF720
+ ldr r4, _080BE850 @ =gUnknown_03005D38
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BE836
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r4, r1, 3
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r6
+ movs r1, 0x29
+ strb r1, [r4]
+ movs r3, 0x1
+ strb r3, [r4, 0x1]
+ ldr r2, _080BE854 @ =gUnknown_083D13F8
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0xA]
+ strb r0, [r4, 0x14]
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x3]
+ ldrh r0, [r1]
+ movs r2, 0
+ strh r0, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x6]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1, 0xB]
+ strb r0, [r4, 0x10]
+ strb r2, [r4, 0x11]
+ strb r2, [r4, 0x12]
+ movs r0, 0x32
+ strb r0, [r4, 0x13]
+ strb r2, [r4, 0x15]
+ strh r3, [r4, 0x16]
+ adds r0, r4, 0
+ bl sub_80BE160
+ movs r0, 0x2
+ strb r0, [r4, 0x18]
+_080BE836:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE83C: .4byte 0x00000804
+_080BE840: .4byte gSaveBlock1
+_080BE844: .4byte 0x00002738
+_080BE848: .4byte 0x00000147
+_080BE84C: .4byte gSaveBlock1 + 0x2738
+_080BE850: .4byte gUnknown_03005D38
+_080BE854: .4byte gUnknown_083D13F8
+ thumb_func_end sub_80BE778
+
+ thumb_func_start EndMassOutbreak
+EndMassOutbreak: @ 80BE858
+ push {r4,lr}
+ ldr r0, _080BE8B4 @ =gSaveBlock1
+ ldr r2, _080BE8B8 @ =0x00002afc
+ adds r1, r0, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r1]
+ ldr r4, _080BE8BC @ =0x00002afe
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strh r2, [r1]
+ adds r4, 0x2
+ adds r1, r0, r4
+ strb r3, [r1]
+ adds r4, 0x1
+ adds r1, r0, r4
+ strb r3, [r1]
+ ldr r1, _080BE8C0 @ =0x00002b0e
+ adds r0, r1
+ strh r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE8B4: .4byte gSaveBlock1
+_080BE8B8: .4byte 0x00002afc
+_080BE8BC: .4byte 0x00002afe
+_080BE8C0: .4byte 0x00002b0e
+ thumb_func_end EndMassOutbreak
+
+ thumb_func_start sub_80BE8C4
+sub_80BE8C4: @ 80BE8C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_80BE8EC
+ adds r0, r4, 0
+ bl UpdateMassOutbreakTimeLeft
+ adds r0, r4, 0
+ bl sub_80BEE84
+ adds r0, r4, 0
+ bl sub_80BEA5C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8C4
+
+ thumb_func_start sub_80BE8EC
+sub_80BE8EC: @ 80BE8EC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080BE930 @ =gSaveBlock1
+ ldr r2, _080BE934 @ =0x00002afc
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BE94C
+ movs r3, 0
+ adds r5, r1, 0
+ ldr r7, _080BE938 @ =0x00002738
+ adds r6, r5, r7
+_080BE906:
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r2, r0, 2
+ adds r1, r2, r5
+ ldr r7, _080BE938 @ =0x00002738
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _080BE942
+ adds r7, 0x1
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BE942
+ adds r1, r2, r6
+ ldrh r0, [r1, 0x16]
+ cmp r0, r4
+ bcs _080BE93C
+ movs r0, 0
+ strh r0, [r1, 0x16]
+ b _080BE94C
+ .align 2, 0
+_080BE930: .4byte gSaveBlock1
+_080BE934: .4byte 0x00002afc
+_080BE938: .4byte 0x00002738
+_080BE93C:
+ subs r0, r4
+ strh r0, [r1, 0x16]
+ b _080BE94C
+_080BE942:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x17
+ bls _080BE906
+_080BE94C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BE8EC
+
+ thumb_func_start UpdateMassOutbreakTimeLeft
+UpdateMassOutbreakTimeLeft: @ 80BE954
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _080BE96C @ =gSaveBlock1
+ ldr r3, _080BE970 @ =0x00002b0e
+ adds r2, r0, r3
+ ldrh r0, [r2]
+ cmp r0, r1
+ bhi _080BE974
+ bl EndMassOutbreak
+ b _080BE978
+ .align 2, 0
+_080BE96C: .4byte gSaveBlock1
+_080BE970: .4byte 0x00002b0e
+_080BE974:
+ subs r0, r1
+ strh r0, [r2]
+_080BE978:
+ pop {r0}
+ bx r0
+ thumb_func_end UpdateMassOutbreakTimeLeft
+
+ thumb_func_start sub_80BE97C
+sub_80BE97C: @ 80BE97C
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BE9A4
+ ldr r4, _080BE9A0 @ =gUnknown_020387E2
+ ldrh r0, [r4]
+ lsrs r0, 8
+ cmp r0, 0x4
+ bls _080BE992
+ bl sub_80BE9D4
+_080BE992:
+ ldrb r0, [r4]
+ strh r0, [r4]
+ cmp r0, 0xFF
+ beq _080BE9C8
+ adds r0, 0x1
+ b _080BE9C6
+ .align 2, 0
+_080BE9A0: .4byte gUnknown_020387E2
+_080BE9A4:
+ ldr r4, _080BE9D0 @ =gUnknown_020387E2
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ bls _080BE9B0
+ bl sub_80BE9D4
+_080BE9B0:
+ ldrh r0, [r4]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r1, r0
+ strh r1, [r4]
+ lsrs r0, r1, 8
+ cmp r0, 0xFF
+ beq _080BE9C8
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+_080BE9C6:
+ strh r0, [r4]
+_080BE9C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BE9D0: .4byte gUnknown_020387E2
+ thumb_func_end sub_80BE97C
+
+ thumb_func_start sub_80BE9D4
+sub_80BE9D4: @ 80BE9D4
+ push {r4,r5,lr}
+ ldr r5, _080BEA3C @ =gSaveBlock1 + 0x2738
+ adds r0, r5, 0
+ bl sub_80BF74C
+ ldr r4, _080BEA40 @ =gUnknown_03005D38
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEA36
+ movs r0, 0x18
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEA36
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r5
+ movs r1, 0
+ movs r0, 0x18
+ strb r0, [r4]
+ strb r1, [r4, 0x1]
+ ldr r1, _080BEA44 @ =gUnknown_020387E2
+ ldrh r0, [r1]
+ strb r0, [r4, 0x2]
+ ldrh r0, [r1]
+ lsrs r0, 8
+ strb r0, [r4, 0x3]
+ ldr r0, _080BEA48 @ =gUnknown_020387E0
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEA4C @ =gSaveBlock2
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0x6]
+_080BEA36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEA3C: .4byte gSaveBlock1 + 0x2738
+_080BEA40: .4byte gUnknown_03005D38
+_080BEA44: .4byte gUnknown_020387E2
+_080BEA48: .4byte gUnknown_020387E0
+_080BEA4C: .4byte gSaveBlock2
+ thumb_func_end sub_80BE9D4
+
+ thumb_func_start sub_80BEA50
+sub_80BEA50: @ 80BEA50
+ ldr r1, _080BEA58 @ =gUnknown_020387E0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BEA58: .4byte gUnknown_020387E0
+ thumb_func_end sub_80BEA50
+
+ thumb_func_start sub_80BEA5C
+sub_80BEA5C: @ 80BEA5C
+ push {lr}
+ ldr r1, _080BEA78 @ =gSaveBlock1 + 0x2A98
+ ldrb r0, [r1]
+ cmp r0, 0x19
+ bne _080BEA84
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0x13
+ bhi _080BEA80
+ ldr r2, _080BEA7C @ =0xfffffca0
+ adds r0, r1, r2
+ movs r1, 0x18
+ bl sub_80BF55C
+ b _080BEA84
+ .align 2, 0
+_080BEA78: .4byte gSaveBlock1 + 0x2A98
+_080BEA7C: .4byte 0xfffffca0
+_080BEA80:
+ bl sub_80BEA88
+_080BEA84:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEA5C
+
+ thumb_func_start sub_80BEA88
+sub_80BEA88: @ 80BEA88
+ push {r4-r7,lr}
+ ldr r5, _080BEB0C @ =gSaveBlock1 + 0x2A98
+ ldr r0, _080BEB10 @ =0x0000ffff
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _080BEB04
+ ldr r0, _080BEB14 @ =0xfffffca0
+ adds r7, r5, r0
+ adds r0, r7, 0
+ bl sub_80BF74C
+ ldr r4, _080BEB18 @ =gUnknown_03005D38
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEB04
+ movs r0, 0x19
+ bl sub_80BF1B4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEB04
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r7
+ movs r0, 0x19
+ strb r0, [r4]
+ strb r6, [r4, 0x1]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0x2]
+ movs r0, 0x5
+ bl sub_8053108
+ ldrh r1, [r5, 0x6]
+ subs r0, r1
+ strh r0, [r4, 0x6]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r5, 0xA]
+ strb r0, [r4, 0xA]
+ adds r0, r4, 0
+ adds r0, 0x13
+ ldr r1, _080BEB1C @ =gSaveBlock2
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_80BE138
+ movs r0, 0x2
+ strb r0, [r4, 0xB]
+_080BEB04:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEB0C: .4byte gSaveBlock1 + 0x2A98
+_080BEB10: .4byte 0x0000ffff
+_080BEB14: .4byte 0xfffffca0
+_080BEB18: .4byte gUnknown_03005D38
+_080BEB1C: .4byte gSaveBlock2
+ thumb_func_end sub_80BEA88
+
+ thumb_func_start sub_80BEB20
+sub_80BEB20: @ 80BEB20
+ push {r4-r6,lr}
+ ldr r0, _080BEBAC @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080BEBA6
+ ldr r6, _080BEBB0 @ =gSaveBlock1 + 0x2ABC
+ adds r0, r6, 0
+ bl sub_80BEBC8
+ ldr r5, _080BEBB4 @ =gUnknown_03005D38
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BEBA6
+ ldr r0, _080BEBB8 @ =0x0000028f
+ bl sub_80BF77C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80BEE48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEBA6
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ ldr r1, _080BEBBC @ =0xffffd544
+ adds r2, r6, r1
+ adds r0, r6, r0
+ strb r4, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC0 @ =0x00002abe
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080BEBC4 @ =0x00002abd
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080BEBA6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEBAC: .4byte 0x00000804
+_080BEBB0: .4byte gSaveBlock1 + 0x2ABC
+_080BEBB4: .4byte gUnknown_03005D38
+_080BEBB8: .4byte 0x0000028f
+_080BEBBC: .4byte 0xffffd544
+_080BEBC0: .4byte 0x00002abe
+_080BEBC4: .4byte 0x00002abd
+ thumb_func_end sub_80BEB20
+
+ thumb_func_start sub_80BEBC8
+sub_80BEBC8: @ 80BEBC8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BEBCE:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BEBE0
+ adds r0, r1, 0
+ b _080BEBF0
+_080BEBE0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0xF
+ ble _080BEBCE
+ movs r0, 0x1
+ negs r0, r0
+_080BEBF0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BEBC8
+
+ thumb_func_start sub_80BEBF4
+sub_80BEBF4: @ 80BEBF4
+ push {r4,lr}
+ movs r4, 0
+_080BEBF8:
+ adds r0, r4, 0
+ bl sub_80BEC10
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080BEBF8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEBF4
+
+ thumb_func_start sub_80BEC10
+sub_80BEC10: @ 80BEC10
+ lsls r0, 24
+ ldr r1, _080BEC30 @ =gSaveBlock1
+ lsrs r0, 22
+ adds r0, r1
+ ldr r2, _080BEC34 @ =0x00002abc
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _080BEC38 @ =0x00002abd
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _080BEC3C @ =0x00002abe
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_080BEC30: .4byte gSaveBlock1
+_080BEC34: .4byte 0x00002abc
+_080BEC38: .4byte 0x00002abd
+_080BEC3C: .4byte 0x00002abe
+ thumb_func_end sub_80BEC10
+
+ thumb_func_start sub_80BEC40
+sub_80BEC40: @ 80BEC40
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r6, _080BEC80 @ =gSaveBlock1
+_080BEC46:
+ ldr r3, _080BEC80 @ =gSaveBlock1
+ lsls r2, r1, 2
+ adds r0, r2, r3
+ ldr r4, _080BEC84 @ =0x00002abc
+ adds r0, r4
+ ldrb r0, [r0]
+ adds r5, r1, 0x1
+ cmp r0, 0
+ bne _080BEC92
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bhi _080BEC92
+ adds r4, r3, r4
+ adds r3, r2, r4
+_080BEC64:
+ lsls r2, r1, 2
+ adds r0, r2, r6
+ ldr r7, _080BEC84 @ =0x00002abc
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BEC88
+ adds r0, r2, r4
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r0, r1, 0
+ bl sub_80BEC10
+ b _080BEC92
+ .align 2, 0
+_080BEC80: .4byte gSaveBlock1
+_080BEC84: .4byte 0x00002abc
+_080BEC88:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEC64
+_080BEC92:
+ lsls r0, r5, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xE
+ bls _080BEC46
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BEC40
+
+ thumb_func_start sub_80BECA0
+sub_80BECA0: @ 80BECA0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080BECCC @ =gSaveBlock1
+_080BECA6:
+ lsls r0, r2, 2
+ adds r1, r0, r3
+ ldr r4, _080BECD0 @ =0x00002abc
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080BECD4
+ adds r4, 0x1
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bhi _080BECD4
+ adds r0, r2, 0
+ b _080BECE0
+ .align 2, 0
+_080BECCC: .4byte gSaveBlock1
+_080BECD0: .4byte 0x00002abc
+_080BECD4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BECA6
+ movs r0, 0xFF
+_080BECE0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BECA0
+
+ thumb_func_start sub_80BECE8
+sub_80BECE8: @ 80BECE8
+ push {r4,lr}
+ bl sub_80BECA0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ bne _080BED00
+ ldr r1, _080BECFC @ =gScriptResult
+ movs r0, 0
+ b _080BED86
+ .align 2, 0
+_080BECFC: .4byte gScriptResult
+_080BED00:
+ ldr r0, _080BED2C @ =gSaveBlock1
+ lsls r1, 2
+ adds r4, r1, r0
+ ldr r0, _080BED30 @ =0x00002abe
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080BED5C
+ ldr r2, _080BED34 @ =0x00002abd
+ adds r1, r4, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _080BED38 @ =gLocalTime
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x13
+ bgt _080BED40
+ ldr r1, _080BED3C @ =gUnknown_083D1444
+ subs r2, 0x1
+ b _080BED44
+ .align 2, 0
+_080BED2C: .4byte gSaveBlock1
+_080BED30: .4byte 0x00002abe
+_080BED34: .4byte 0x00002abd
+_080BED38: .4byte gLocalTime
+_080BED3C: .4byte gUnknown_083D1444
+_080BED40:
+ ldr r1, _080BED54 @ =gUnknown_083D1454
+ ldr r2, _080BED58 @ =0x00002abc
+_080BED44:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ b _080BED82
+ .align 2, 0
+_080BED54: .4byte gUnknown_083D1454
+_080BED58: .4byte 0x00002abc
+_080BED5C:
+ ldrh r1, [r1]
+ ldr r0, _080BED90 @ =gStringVar1
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r0, _080BED94 @ =0x00002abd
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080BED98 @ =gUnknown_083D1434
+ ldr r2, _080BED9C @ =0x00002abc
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+_080BED82:
+ ldr r1, _080BEDA0 @ =gScriptResult
+ movs r0, 0x1
+_080BED86:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BED90: .4byte gStringVar1
+_080BED94: .4byte 0x00002abd
+_080BED98: .4byte gUnknown_083D1434
+_080BED9C: .4byte 0x00002abc
+_080BEDA0: .4byte gScriptResult
+ thumb_func_end sub_80BECE8
+
+ thumb_func_start GetPriceReduction
+GetPriceReduction: @ 80BEDA4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080BEDB4
+ b _080BEDF6
+_080BEDB0:
+ movs r0, 0x1
+ b _080BEDF8
+_080BEDB4:
+ movs r2, 0
+ ldr r4, _080BEDE0 @ =gSaveBlock1
+_080BEDB8:
+ lsls r0, r2, 2
+ adds r1, r0, r4
+ ldr r5, _080BEDE4 @ =0x00002abc
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _080BEDEC
+ ldr r2, _080BEDE8 @ =0x00002abd
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080BEDF6
+ adds r0, r3, 0
+ bl IsPriceDiscounted
+ lsls r0, 24
+ cmp r0, 0
+ bne _080BEDB0
+ b _080BEDF6
+ .align 2, 0
+_080BEDE0: .4byte gSaveBlock1
+_080BEDE4: .4byte 0x00002abc
+_080BEDE8: .4byte 0x00002abd
+_080BEDEC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _080BEDB8
+_080BEDF6:
+ movs r0, 0
+_080BEDF8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetPriceReduction
+
+ thumb_func_start IsPriceDiscounted
+IsPriceDiscounted: @ 80BEE00
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BEE12
+ cmp r0, 0x3
+ beq _080BEE30
+_080BEE0E:
+ movs r0, 0x1
+ b _080BEE3C
+_080BEE12:
+ ldr r0, _080BEE28 @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _080BEE3A
+ ldr r0, _080BEE2C @ =gUnknown_0202E8DE
+ ldrh r0, [r0]
+ cmp r0, 0x1A
+ beq _080BEE0E
+ b _080BEE3A
+ .align 2, 0
+_080BEE28: .4byte gSaveBlock1
+_080BEE2C: .4byte gUnknown_0202E8DE
+_080BEE30:
+ ldr r0, _080BEE40 @ =gSaveBlock1
+ ldrh r1, [r0, 0x4]
+ ldr r0, _080BEE44 @ =0x0000160d
+ cmp r1, r0
+ beq _080BEE0E
+_080BEE3A:
+ movs r0, 0
+_080BEE3C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE40: .4byte gSaveBlock1
+_080BEE44: .4byte 0x0000160d
+ thumb_func_end IsPriceDiscounted
+
+ thumb_func_start sub_80BEE48
+sub_80BEE48: @ 80BEE48
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _080BEE56
+_080BEE52:
+ movs r0, 0x1
+ b _080BEE74
+_080BEE56:
+ movs r1, 0
+ ldr r4, _080BEE7C @ =gSaveBlock1
+ ldr r3, _080BEE80 @ =0x00002abc
+_080BEE5C:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _080BEE52
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080BEE5C
+ movs r0, 0
+_080BEE74:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BEE7C: .4byte gSaveBlock1
+_080BEE80: .4byte 0x00002abc
+ thumb_func_end sub_80BEE48
+
+ thumb_func_start sub_80BEE84
+sub_80BEE84: @ 80BEE84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+ ldr r0, _080BEEB8 @ =gSaveBlock1
+ mov r8, r0
+_080BEE94:
+ lsls r0, r5, 2
+ mov r1, r8
+ adds r2, r0, r1
+ ldr r3, _080BEEBC @ =0x00002abc
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080BEEEC
+ ldr r1, _080BEEC0 @ =0x00002abe
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ bcs _080BEEC4
+ adds r0, r5, 0
+ bl sub_80BEC10
+ b _080BEEEC
+ .align 2, 0
+_080BEEB8: .4byte gSaveBlock1
+_080BEEBC: .4byte 0x00002abc
+_080BEEC0: .4byte 0x00002abe
+_080BEEC4:
+ ldr r3, _080BEF04 @ =0x00002abd
+ adds r4, r2, r3
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080BEEDE
+ ldr r0, _080BEF08 @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080BEEDE
+ strb r0, [r4]
+_080BEEDE:
+ mov r0, r8
+ adds r1, r6, r0
+ ldr r3, _080BEF0C @ =0x00002abe
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, r7
+ strh r0, [r1]
+_080BEEEC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _080BEE94
+ bl sub_80BEC40
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF04: .4byte 0x00002abd
+_080BEF08: .4byte 0x00000804
+_080BEF0C: .4byte 0x00002abe
+ thumb_func_end sub_80BEE84
+
+ thumb_func_start sub_80BEF10
+sub_80BEF10: @ 80BEF10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x1
+ beq _080BEF50
+ cmp r1, 0x1
+ bgt _080BEF2A
+ cmp r1, 0
+ beq _080BEF34
+ b _080BEF98
+_080BEF2A:
+ cmp r2, 0x2
+ beq _080BEF6C
+ cmp r2, 0x3
+ beq _080BEF88
+ b _080BEF98
+_080BEF34:
+ ldr r1, _080BEF48 @ =gUnknown_083D1464
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF4C @ =gUnknown_083CE048
+ ldr r1, [r1, 0x14]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF48: .4byte gUnknown_083D1464
+_080BEF4C: .4byte gUnknown_083CE048
+_080BEF50:
+ ldr r1, _080BEF64 @ =gUnknown_083D1464
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF68 @ =gUnknown_083CE048
+ ldr r1, [r1, 0x18]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF64: .4byte gUnknown_083D1464
+_080BEF68: .4byte gUnknown_083CE048
+_080BEF6C:
+ ldr r1, _080BEF80 @ =gUnknown_083D1464
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEF84 @ =gUnknown_083CE048
+ ldr r1, [r1, 0x1C]
+ bl StringCopy
+ b _080BEF98
+ .align 2, 0
+_080BEF80: .4byte gUnknown_083D1464
+_080BEF84: .4byte gUnknown_083CE048
+_080BEF88:
+ ldr r1, _080BEF9C @ =gUnknown_083D1464
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFA0 @ =gUnknown_083CE048
+ ldr r1, [r1, 0x20]
+ bl StringCopy
+_080BEF98:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BEF9C: .4byte gUnknown_083D1464
+_080BEFA0: .4byte gUnknown_083CE048
+ thumb_func_end sub_80BEF10
+
+ thumb_func_start CopyContestCategoryToStringVar
+CopyContestCategoryToStringVar: @ 80BEFA4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x4
+ bhi _080BF054
+ lsls r0, 2
+ ldr r1, _080BEFBC @ =_080BEFC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BEFBC: .4byte _080BEFC0
+ .align 2, 0
+_080BEFC0:
+ .4byte _080BEFD4
+ .4byte _080BEFF0
+ .4byte _080BF00C
+ .4byte _080BF028
+ .4byte _080BF044
+_080BEFD4:
+ ldr r1, _080BEFE8 @ =gUnknown_083D1464
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BEFEC @ =gUnknown_083CE048
+ ldr r1, [r1]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BEFE8: .4byte gUnknown_083D1464
+_080BEFEC: .4byte gUnknown_083CE048
+_080BEFF0:
+ ldr r1, _080BF004 @ =gUnknown_083D1464
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF008 @ =gUnknown_083CE048
+ ldr r1, [r1, 0x4]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF004: .4byte gUnknown_083D1464
+_080BF008: .4byte gUnknown_083CE048
+_080BF00C:
+ ldr r1, _080BF020 @ =gUnknown_083D1464
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF024 @ =gUnknown_083CE048
+ ldr r1, [r1, 0x8]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF020: .4byte gUnknown_083D1464
+_080BF024: .4byte gUnknown_083CE048
+_080BF028:
+ ldr r1, _080BF03C @ =gUnknown_083D1464
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF040 @ =gUnknown_083CE048
+ ldr r1, [r1, 0xC]
+ bl StringCopy
+ b _080BF054
+ .align 2, 0
+_080BF03C: .4byte gUnknown_083D1464
+_080BF040: .4byte gUnknown_083CE048
+_080BF044:
+ ldr r1, _080BF058 @ =gUnknown_083D1464
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080BF05C @ =gUnknown_083CE048
+ ldr r1, [r1, 0x10]
+ bl StringCopy
+_080BF054:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF058: .4byte gUnknown_083D1464
+_080BF05C: .4byte gUnknown_083CE048
+ thumb_func_end CopyContestCategoryToStringVar
+
+ thumb_func_start SetContestCategoryStringVarForInterview
+SetContestCategoryStringVarForInterview: @ 80BF060
+ push {lr}
+ ldr r0, _080BF080 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF084 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF080: .4byte gUnknown_0202E8CC
+_080BF084: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end SetContestCategoryStringVarForInterview
+
+ thumb_func_start sub_80BF088
+sub_80BF088: @ 80BF088
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ ldr r0, _080BF0B4 @ =gUnknown_083D1464
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF0B4: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF088
+
+ thumb_func_start sub_80BF0B8
+sub_80BF0B8: @ 80BF0B8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF144
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0D6
+ movs r0, 0x2
+ b _080BF14E
+_080BF0D6:
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0E8
+ movs r0, 0x3
+ b _080BF14E
+_080BF0E8:
+ ldr r1, _080BF0F8 @ =0x00002710
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF0FC
+ movs r0, 0x4
+ b _080BF14E
+ .align 2, 0
+_080BF0F8: .4byte 0x00002710
+_080BF0FC:
+ ldr r1, _080BF10C @ =0x000186a0
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF110
+ movs r0, 0x5
+ b _080BF14E
+ .align 2, 0
+_080BF10C: .4byte 0x000186a0
+_080BF110:
+ ldr r1, _080BF120 @ =0x000f4240
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF124
+ movs r0, 0x6
+ b _080BF14E
+ .align 2, 0
+_080BF120: .4byte 0x000f4240
+_080BF124:
+ ldr r1, _080BF134 @ =0x00989680
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ bne _080BF138
+ movs r0, 0x7
+ b _080BF14E
+ .align 2, 0
+_080BF134: .4byte 0x00989680
+_080BF138:
+ ldr r1, _080BF148 @ =0x05f5e100
+ adds r0, r4, 0
+ bl __divsi3
+ cmp r0, 0
+ beq _080BF14C
+_080BF144:
+ movs r0, 0x1
+ b _080BF14E
+ .align 2, 0
+_080BF148: .4byte 0x05f5e100
+_080BF14C:
+ movs r0, 0x8
+_080BF14E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF0B8
+
+ thumb_func_start sub_80BF154
+sub_80BF154: @ 80BF154
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ movs r5, 0
+_080BF166:
+ lsls r4, r5, 1
+ adds r0, r6, 0x6
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080BF186
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r1, 0xC
+ adds r1, r4
+ ldrh r1, [r1]
+ muls r0, r1
+ adds r7, r0
+_080BF186:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF166
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x1
+ bne _080BF1A0
+ asrs r1, r7, 1
+ mov r0, r8
+ bl sub_80BF088
+ b _080BF1A8
+_080BF1A0:
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_80BF088
+_080BF1A8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF154
+
+ thumb_func_start sub_80BF1B4
+sub_80BF1B4: @ 80BF1B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _080BF1F4 @ =gSaveBlock1 + 0x2738
+ bl sub_80BFB94
+ adds r5, r0, 0
+ movs r4, 0x5
+_080BF1C4:
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _080BF1F8
+ movs r3, 0xFF
+ adds r0, r5, 0
+ ands r0, r3
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _080BF1F8
+ lsrs r0, r5, 8
+ ands r0, r3
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080BF1F8
+ movs r0, 0x1
+ b _080BF204
+ .align 2, 0
+_080BF1F4: .4byte gSaveBlock1 + 0x2738
+_080BF1F8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x17
+ bls _080BF1C4
+ movs r0, 0
+_080BF204:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF1B4
+
+ thumb_func_start sub_80BF20C
+sub_80BF20C: @ 80BF20C
+ push {r4-r7,lr}
+ movs r2, 0
+_080BF210:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ adds r7, r1, 0
+ cmp r5, 0x2
+ bhi _080BF248
+ ldr r6, _080BF258 @ =gUnknown_02038724
+ lsls r0, r2, 2
+ adds r4, r0, r6
+_080BF222:
+ lsls r0, r5, 2
+ adds r3, r0, r6
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r3, 0x2]
+ cmp r0, r1
+ bcs _080BF23E
+ ldrh r1, [r4]
+ adds r2, r0, 0
+ ldrh r0, [r3]
+ strh r0, [r4]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r4, 0x2]
+ strh r1, [r3]
+ strh r2, [r3, 0x2]
+_080BF23E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _080BF222
+_080BF248:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bls _080BF210
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF258: .4byte gUnknown_02038724
+ thumb_func_end sub_80BF20C
+
+ thumb_func_start sub_80BF25C
+sub_80BF25C: @ 80BF25C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0
+ ldr r3, _080BF28C @ =gSaveBlock1
+ ldr r0, _080BF290 @ =0x00002738
+ adds r4, r3, r0
+_080BF26A:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldr r6, _080BF290 @ =0x00002738
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _080BF2AE
+ ldr r3, _080BF294 @ =0x00002739
+ adds r0, r2, r3
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ bne _080BF29C
+ ldr r0, _080BF298 @ =gScriptResult
+ strh r2, [r0]
+ b _080BF2BC
+ .align 2, 0
+_080BF28C: .4byte gSaveBlock1
+_080BF290: .4byte 0x00002738
+_080BF294: .4byte 0x00002739
+_080BF298: .4byte gScriptResult
+_080BF29C:
+ adds r0, r4, 0
+ bl sub_80BF55C
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80BF6D8
+ b _080BF2BC
+_080BF2AE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF26A
+ bl sub_80BF6D8
+_080BF2BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF25C
+
+ thumb_func_start sub_80BF2C4
+sub_80BF2C4: @ 80BF2C4
+ push {lr}
+ ldr r1, _080BF2E0 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080BF2E4 @ =gUnknown_0202E8CE
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bhi _080BF330
+ lsls r0, 2
+ ldr r1, _080BF2E8 @ =_080BF2EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080BF2E0: .4byte gScriptResult
+_080BF2E4: .4byte gUnknown_0202E8CE
+_080BF2E8: .4byte _080BF2EC
+ .align 2, 0
+_080BF2EC:
+ .4byte _080BF308
+ .4byte _080BF30E
+ .4byte _080BF314
+ .4byte _080BF31A
+ .4byte _080BF320
+ .4byte _080BF326
+ .4byte _080BF32C
+_080BF308:
+ bl sub_80BF334
+ b _080BF330
+_080BF30E:
+ bl sub_80BF3A4
+ b _080BF330
+_080BF314:
+ bl sub_80BF3DC
+ b _080BF330
+_080BF31A:
+ bl sub_80BF46C
+ b _080BF330
+_080BF320:
+ bl sub_80BF478
+ b _080BF330
+_080BF326:
+ bl sub_80BF484
+ b _080BF330
+_080BF32C:
+ bl sub_80BF4BC
+_080BF330:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF2C4
+
+ thumb_func_start sub_80BF334
+sub_80BF334: @ 80BF334
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_80BF25C
+ ldr r0, _080BF38C @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF384
+ ldr r4, _080BF390 @ =gStringVar1
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _080BF394 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF398 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, _080BF39C @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3A0 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF384:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF38C: .4byte gScriptResult
+_080BF390: .4byte gStringVar1
+_080BF394: .4byte gPlayerParty
+_080BF398: .4byte gSpeciesNames
+_080BF39C: .4byte gUnknown_03005D38
+_080BF3A0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF334
+
+ thumb_func_start sub_80BF3A4
+sub_80BF3A4: @ 80BF3A4
+ push {lr}
+ movs r0, 0x2
+ bl sub_80BF25C
+ ldr r0, _080BF3D0 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF3CC
+ ldr r0, _080BF3D4 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF3D8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x6
+ bl sub_80EB6FC
+_080BF3CC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF3D0: .4byte gScriptResult
+_080BF3D4: .4byte gUnknown_03005D38
+_080BF3D8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3A4
+
+ thumb_func_start sub_80BF3DC
+sub_80BF3DC: @ 80BF3DC
+ push {r4-r6,lr}
+ movs r0, 0x3
+ bl sub_80BF25C
+ ldr r0, _080BF450 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF448
+ ldr r6, _080BF454 @ =gStringVar1
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080BF458 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080BF45C @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r5
+ adds r0, r4
+ ldr r4, _080BF460 @ =gStringVar2
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ ldr r0, _080BF464 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF468 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ adds r0, 0x1C
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF448:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF450: .4byte gScriptResult
+_080BF454: .4byte gStringVar1
+_080BF458: .4byte gPlayerParty
+_080BF45C: .4byte gSpeciesNames
+_080BF460: .4byte gStringVar2
+_080BF464: .4byte gUnknown_03005D38
+_080BF468: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF3DC
+
+ thumb_func_start sub_80BF46C
+sub_80BF46C: @ 80BF46C
+ ldr r1, _080BF474 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080BF474: .4byte gScriptResult
+ thumb_func_end sub_80BF46C
+
+ thumb_func_start sub_80BF478
+sub_80BF478: @ 80BF478
+ push {lr}
+ movs r0, 0x5
+ bl sub_80BF25C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF478
+
+ thumb_func_start sub_80BF484
+sub_80BF484: @ 80BF484
+ push {lr}
+ movs r0, 0x6
+ bl sub_80BF25C
+ ldr r0, _080BF4B0 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4AC
+ ldr r0, _080BF4B4 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4B8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ adds r0, 0x4
+ movs r1, 0x2
+ bl sub_80EB6FC
+_080BF4AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4B0: .4byte gScriptResult
+_080BF4B4: .4byte gUnknown_03005D38
+_080BF4B8: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF484
+
+ thumb_func_start sub_80BF4BC
+sub_80BF4BC: @ 80BF4BC
+ push {lr}
+ movs r0, 0x7
+ bl sub_80BF25C
+ ldr r0, _080BF4E8 @ =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080BF4E4
+ ldr r0, _080BF4EC @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080BF4F0 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ adds r0, 0x18
+ movs r1, 0x1
+ bl sub_80EB6FC
+_080BF4E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF4E8: .4byte gScriptResult
+_080BF4EC: .4byte gUnknown_03005D38
+_080BF4F0: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BF4BC
+
+ thumb_func_start sub_80BF4F4
+sub_80BF4F4: @ 80BF4F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, _080BF530 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _080BF534 @ =gStringVar1
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xB
+ muls r0, r1
+ ldr r1, _080BF538 @ =gSpeciesNames
+ adds r0, r1
+ adds r1, r5, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF53C
+ movs r0, 0x1
+ b _080BF53E
+ .align 2, 0
+_080BF530: .4byte gPlayerParty
+_080BF534: .4byte gStringVar1
+_080BF538: .4byte gSpeciesNames
+_080BF53C:
+ movs r0, 0
+_080BF53E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF4F4
+
+ thumb_func_start sub_80BF544
+sub_80BF544: @ 80BF544
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BF4F4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF544
+
+ thumb_func_start sub_80BF55C
+sub_80BF55C: @ 80BF55C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ movs r0, 0
+ strb r0, [r2]
+ strb r0, [r2, 0x1]
+ movs r1, 0
+ adds r2, 0x2
+ movs r3, 0
+_080BF576:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x21
+ bls _080BF576
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF55C
+
+ thumb_func_start sub_80BF588
+sub_80BF588: @ 80BF588
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ movs r5, 0
+_080BF58E:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF5D2
+ adds r0, r5, 0x1
+ b _080BF5CA
+_080BF5A0:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF5C8
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF5D2
+_080BF5C8:
+ adds r0, r2, 0x1
+_080BF5CA:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _080BF5A0
+_080BF5D2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _080BF58E
+ movs r5, 0x5
+_080BF5DE:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r1, r0, 2
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ adds r5, 0x1
+ cmp r0, 0
+ bne _080BF62A
+ lsls r0, r5, 24
+ b _080BF624
+_080BF5F2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080BF620
+ adds r1, r4
+ adds r0, r3, 0
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldr r0, _080BF61C @ =gSaveBlock1 + 0x2738
+ adds r1, r2, 0
+ bl sub_80BF55C
+ b _080BF62A
+ .align 2, 0
+_080BF61C: .4byte gSaveBlock1 + 0x2738
+_080BF620:
+ adds r0, r2, 0x1
+ lsls r0, 24
+_080BF624:
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080BF5F2
+_080BF62A:
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x17
+ bls _080BF5DE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BF588
+
+ thumb_func_start sub_80BF638
+sub_80BF638: @ 80BF638
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80BF674
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080BF66C @ =gUnknown_083D1464
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0xB
+ muls r1, r5
+ ldr r2, _080BF670 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080BF66C: .4byte gUnknown_083D1464
+_080BF670: .4byte gSpeciesNames
+ thumb_func_end sub_80BF638
+
+ thumb_func_start sub_80BF674
+sub_80BF674: @ 80BF674
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080BF694 @ =0x0000019b
+ bl __umodsi3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ b _080BF6B2
+ .align 2, 0
+_080BF694: .4byte 0x0000019b
+_080BF698:
+ cmp r4, 0x1
+ bne _080BF6A4
+ ldr r4, _080BF6A0 @ =0x0000019b
+ b _080BF6AA
+ .align 2, 0
+_080BF6A0: .4byte 0x0000019b
+_080BF6A4:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080BF6AA:
+ cmp r4, r6
+ bne _080BF6B2
+ adds r4, r5, 0
+ b _080BF6CE
+_080BF6B2:
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _080BF698
+ cmp r4, r5
+ beq _080BF698
+_080BF6CE:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF674
+
+ thumb_func_start sub_80BF6D8
+sub_80BF6D8: @ 80BF6D8
+ push {lr}
+ ldr r0, _080BF700 @ =gSaveBlock1 + 0x2738
+ bl sub_80BF720
+ ldr r1, _080BF704 @ =gUnknown_03005D38
+ strb r0, [r1]
+ ldr r2, _080BF708 @ =gUnknown_0202E8D0
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ strh r1, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080BF710
+ ldr r1, _080BF70C @ =gScriptResult
+ movs r0, 0x1
+ b _080BF714
+ .align 2, 0
+_080BF700: .4byte gSaveBlock1 + 0x2738
+_080BF704: .4byte gUnknown_03005D38
+_080BF708: .4byte gUnknown_0202E8D0
+_080BF70C: .4byte gScriptResult
+_080BF710:
+ ldr r1, _080BF71C @ =gScriptResult
+ movs r0, 0
+_080BF714:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF71C: .4byte gScriptResult
+ thumb_func_end sub_80BF6D8
+
+ thumb_func_start sub_80BF720
+sub_80BF720: @ 80BF720
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0
+_080BF726:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF73A
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _080BF748
+_080BF73A:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF726
+ movs r0, 0x1
+ negs r0, r0
+_080BF748:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF720
+
+ thumb_func_start sub_80BF74C
+sub_80BF74C: @ 80BF74C
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x5
+_080BF752:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080BF768
+ adds r0, r1, 0
+ b _080BF778
+_080BF768:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080BF752
+ movs r0, 0x1
+ negs r0, r0
+_080BF778:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF74C
+
+ thumb_func_start sub_80BF77C
+sub_80BF77C: @ 80BF77C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bls _080BF794
+ movs r0, 0x1
+ b _080BF796
+_080BF794:
+ movs r0, 0
+_080BF796:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF77C
+
+ thumb_func_start sub_80BF79C
+sub_80BF79C: @ 80BF79C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r4, 0x4
+ ldr r6, _080BF7B8 @ =0x0000ffff
+ b _080BF7C2
+ .align 2, 0
+_080BF7B8: .4byte 0x0000ffff
+_080BF7BC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080BF7C2:
+ cmp r2, 0x6
+ bne _080BF7C8
+ movs r2, 0
+_080BF7C8:
+ lsls r1, r2, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ adds r3, r4, 0x4
+ cmp r0, r6
+ beq _080BF7BC
+ ldr r0, _080BF7E4 @ =gStringVar3
+ adds r1, r3, r1
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF7E4: .4byte gStringVar3
+ thumb_func_end sub_80BF79C
+
+ thumb_func_start sub_80BF7E8
+sub_80BF7E8: @ 80BF7E8
+ push {lr}
+ adds r2, r0, 0
+ movs r3, 0
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0xFF
+ beq _080BF814
+ adds r2, 0x4
+_080BF7F8:
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xA
+ bhi _080BF814
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080BF7F8
+_080BF814:
+ movs r0, 0x7
+ ands r3, r0
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF7E8
+
+ thumb_func_start sub_80BF820
+sub_80BF820: @ 80BF820
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0
+ movs r7, 0xFF
+_080BF844:
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _080BF844
+ cmp r3, 0
+ bne _080BF8A6
+ ldr r4, [sp, 0x20]
+ adds r4, 0xF
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF874
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF874:
+ cmp r6, 0x1
+ bne _080BF880
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF880:
+ cmp r6, 0x2
+ bne _080BF892
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF892:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8A6:
+ cmp r3, 0x1
+ bne _080BF8F4
+ ldr r4, [sp, 0x20]
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF8C2
+ mov r0, sp
+ adds r1, r4, r5
+ b _080BF920
+_080BF8C2:
+ cmp r6, 0x1
+ bne _080BF8CE
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4, r1
+ b _080BF920
+_080BF8CE:
+ cmp r6, 0x2
+ bne _080BF8E0
+ mov r1, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ adds r0, r4, r0
+ b _080BF950
+_080BF8E0:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4, r0
+ b _080BF950
+_080BF8F4:
+ movs r0, 0xB
+ muls r4, r0
+ ldr r7, _080BF910 @ =gSpeciesNames
+ adds r0, r4, r7
+ bl StringLength
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r6, 0
+ bne _080BF914
+ mov r0, sp
+ adds r1, r5, r4
+ b _080BF91E
+ .align 2, 0
+_080BF910: .4byte gSpeciesNames
+_080BF914:
+ cmp r6, 0x1
+ bne _080BF926
+ mov r0, sp
+ subs r1, r2, r5
+ adds r1, r4
+_080BF91E:
+ adds r1, r7
+_080BF920:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _080BF954
+_080BF926:
+ cmp r6, 0x2
+ bne _080BF93A
+ mov r1, sp
+ adds r0, r5, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ b _080BF94E
+_080BF93A:
+ mov r1, sp
+ subs r0, r2, 0x2
+ subs r0, r5
+ adds r0, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ subs r0, r2, 0x1
+ subs r0, r5
+ adds r0, r4
+_080BF94E:
+ adds r0, r7
+_080BF950:
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+_080BF954:
+ ldr r0, _080BF970 @ =gUnknown_083D1464
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r1, sp
+ bl StringCopy
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BF970: .4byte gUnknown_083D1464
+ thumb_func_end sub_80BF820
+
+ thumb_func_start sub_80BF974
+sub_80BF974: @ 80BF974
+ push {r4,lr}
+ movs r1, 0
+ ldr r4, _080BF994 @ =gSaveBlock1
+ ldr r0, _080BF998 @ =gUnknown_0202E8CC
+ ldrh r2, [r0]
+ ldr r3, _080BF99C @ =0x00002738
+_080BF980:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _080BF9A0
+ movs r0, 0x1
+ b _080BF9AC
+ .align 2, 0
+_080BF994: .4byte gSaveBlock1
+_080BF998: .4byte gUnknown_0202E8CC
+_080BF99C: .4byte 0x00002738
+_080BF9A0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x4
+ bls _080BF980
+ movs r0, 0
+_080BF9AC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF974
+
+ thumb_func_start sub_80BF9B4
+sub_80BF9B4: @ 80BF9B4
+ push {r4,lr}
+ ldr r0, _080BF9E0 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BF9E4 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _080BF9E8 @ =gStringVar1
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _080BF9EC @ =gStringVar3
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _080BF9F0
+ bl sub_80BE478
+ movs r0, 0x1
+ b _080BF9F2
+ .align 2, 0
+_080BF9E0: .4byte gUnknown_0202E8CC
+_080BF9E4: .4byte gPlayerParty
+_080BF9E8: .4byte gStringVar1
+_080BF9EC: .4byte gStringVar3
+_080BF9F0:
+ movs r0, 0
+_080BF9F2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BF9B4
+
+ thumb_func_start sub_80BF9F8
+sub_80BF9F8: @ 80BF9F8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ ldr r0, _080BFAA0 @ =gUnknown_0202E8CC
+ mov r9, r0
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _080BFAA4 @ =gPlayerParty
+ adds r0, r6
+ ldr r2, _080BFAA8 @ =gStringVar3
+ movs r1, 0x2
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ ldr r1, _080BFAAC @ =gStringVar2
+ mov r10, r1
+ movs r1, 0x2
+ mov r2, r10
+ bl GetMonData
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl GetMonGender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ ldrh r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _080BFAB0 @ =c2_080CC144
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl DoNamingScreen
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFAA0: .4byte gUnknown_0202E8CC
+_080BFAA4: .4byte gPlayerParty
+_080BFAA8: .4byte gStringVar3
+_080BFAAC: .4byte gStringVar2
+_080BFAB0: .4byte c2_080CC144
+ thumb_func_end sub_80BF9F8
+
+ thumb_func_start c2_080CC144
+c2_080CC144: @ 80BFAB4
+ push {lr}
+ ldr r0, _080BFAD4 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFAD8 @ =gPlayerParty
+ adds r0, r1
+ ldr r2, _080BFADC @ =gStringVar2
+ movs r1, 0x2
+ bl SetMonData
+ bl c2_exit_to_overworld_1_continue_scripts_restart_music
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFAD4: .4byte gUnknown_0202E8CC
+_080BFAD8: .4byte gPlayerParty
+_080BFADC: .4byte gStringVar2
+ thumb_func_end c2_080CC144
+
+ thumb_func_start sub_80BFAE0
+sub_80BFAE0: @ 80BFAE0
+ push {r4,lr}
+ ldr r0, _080BFB04 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB08 @ =gPlayerParty
+ adds r0, r1
+ ldr r4, _080BFB0C @ =gStringVar1
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB04: .4byte gUnknown_0202E8CC
+_080BFB08: .4byte gPlayerParty
+_080BFB0C: .4byte gStringVar1
+ thumb_func_end sub_80BFAE0
+
+ thumb_func_start sub_80BFB10
+sub_80BFB10: @ 80BFB10
+ push {r4,lr}
+ bl sub_80BFB94
+ adds r4, r0, 0
+ ldr r0, _080BFB38 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080BFB3C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ bne _080BFB44
+ ldr r1, _080BFB40 @ =gScriptResult
+ movs r0, 0
+ b _080BFB48
+ .align 2, 0
+_080BFB38: .4byte gUnknown_0202E8CC
+_080BFB3C: .4byte gPlayerParty
+_080BFB40: .4byte gScriptResult
+_080BFB44:
+ ldr r1, _080BFB50 @ =gScriptResult
+ movs r0, 0x1
+_080BFB48:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFB50: .4byte gScriptResult
+ thumb_func_end sub_80BFB10
+
+ thumb_func_start sub_80BFB54
+sub_80BFB54: @ 80BFB54
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ beq _080BFB8A
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB6E
+ movs r0, 0x2
+ b _080BFB90
+_080BFB6E:
+ adds r0, r1, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _080BFB7E
+ movs r0, 0x3
+ b _080BFB90
+_080BFB7E:
+ adds r0, r2, 0
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bls _080BFB8E
+_080BFB8A:
+ movs r0, 0
+ b _080BFB90
+_080BFB8E:
+ movs r0, 0x4
+_080BFB90:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80BFB54
+
+ thumb_func_start sub_80BFB94
+sub_80BFB94: @ 80BFB94
+ ldr r2, _080BFBAC @ =gSaveBlock2
+ ldrb r0, [r2, 0xD]
+ lsls r0, 24
+ ldrb r1, [r2, 0xC]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0xB]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0xA]
+ orrs r0, r1
+ bx lr
+ .align 2, 0
+_080BFBAC: .4byte gSaveBlock2
+ thumb_func_end sub_80BFB94
+
+ thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV
+CheckForBigMovieOrEmergencyNewsOnTV: @ 80BFBB0
+ push {lr}
+ ldr r1, _080BFBD0 @ =gSaveBlock1
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFBCC
+ ldr r0, _080BFBD4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFBD8
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080BFBE0
+_080BFBCC:
+ movs r0, 0
+ b _080BFC0A
+ .align 2, 0
+_080BFBD0: .4byte gSaveBlock1
+_080BFBD4: .4byte gSaveBlock2
+_080BFBD8:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFBCC
+_080BFBE0:
+ ldr r0, _080BFC04 @ =0x0000085d
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFBFE
+ movs r0, 0x83
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFC08
+_080BFBFE:
+ movs r0, 0x1
+ b _080BFC0A
+ .align 2, 0
+_080BFC04: .4byte 0x0000085d
+_080BFC08:
+ movs r0, 0x2
+_080BFC0A:
+ pop {r1}
+ bx r1
+ thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV
+
+ thumb_func_start GetMomOrDadStringForTVMessage
+GetMomOrDadStringForTVMessage: @ 80BFC10
+ push {r4,lr}
+ ldr r1, _080BFC40 @ =gSaveBlock1
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bne _080BFC6C
+ ldr r0, _080BFC44 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _080BFC54
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080BFC6C
+ ldr r0, _080BFC48 @ =gStringVar1
+ ldr r1, _080BFC4C @ =gOtherText_Mom
+ bl StringCopy
+ ldr r0, _080BFC50 @ =0x00004003
+ movs r1, 0x1
+ bl VarSet
+ b _080BFC6C
+ .align 2, 0
+_080BFC40: .4byte gSaveBlock1
+_080BFC44: .4byte gSaveBlock2
+_080BFC48: .4byte gStringVar1
+_080BFC4C: .4byte gOtherText_Mom
+_080BFC50: .4byte 0x00004003
+_080BFC54:
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bne _080BFC6C
+ ldr r0, _080BFCB4 @ =gStringVar1
+ ldr r1, _080BFCB8 @ =gOtherText_Mom
+ bl StringCopy
+ ldr r0, _080BFCBC @ =0x00004003
+ movs r1, 0x1
+ bl VarSet
+_080BFC6C:
+ ldr r4, _080BFCBC @ =0x00004003
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _080BFCAA
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _080BFCC0
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _080BFCD4
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080BFCC0
+_080BFCAA:
+ ldr r0, _080BFCB4 @ =gStringVar1
+ ldr r1, _080BFCB8 @ =gOtherText_Mom
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCB4: .4byte gStringVar1
+_080BFCB8: .4byte gOtherText_Mom
+_080BFCBC: .4byte 0x00004003
+_080BFCC0:
+ ldr r0, _080BFCCC @ =gStringVar1
+ ldr r1, _080BFCD0 @ =gOtherText_Dad
+ bl StringCopy
+ b _080BFD10
+ .align 2, 0
+_080BFCCC: .4byte gStringVar1
+_080BFCD0: .4byte gOtherText_Dad
+_080BFCD4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080BFD00
+ ldr r0, _080BFCF8 @ =gStringVar1
+ ldr r1, _080BFCFC @ =gOtherText_Mom
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl VarSet
+ b _080BFD10
+ .align 2, 0
+_080BFCF8: .4byte gStringVar1
+_080BFCFC: .4byte gOtherText_Mom
+_080BFD00:
+ ldr r0, _080BFD18 @ =gStringVar1
+ ldr r1, _080BFD1C @ =gOtherText_Dad
+ bl StringCopy
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl VarSet
+_080BFD10:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD18: .4byte gStringVar1
+_080BFD1C: .4byte gOtherText_Dad
+ thumb_func_end GetMomOrDadStringForTVMessage
+
+ thumb_func_start sub_80BFD20
+sub_80BFD20: @ 80BFD20
+ push {lr}
+ ldr r0, _080BFD3C @ =0x000040bc
+ movs r1, 0
+ bl VarSet
+ ldr r0, _080BFD40 @ =gSaveBlock1
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x5
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFD3C: .4byte 0x000040bc
+_080BFD40: .4byte gSaveBlock1
+ thumb_func_end sub_80BFD20
+
+ thumb_func_start sub_80BFD44
+sub_80BFD44: @ 80BFD44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r4, 0
+_080BFD54:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 5
+ adds r0, r4
+ lsls r0, 2
+ ldr r5, _080BFD8C @ =0x02007000
+ adds r0, r5
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080BFD54
+ adds r4, r5, 0
+ cmp r6, 0x1
+ beq _080BFDBC
+ cmp r6, 0x1
+ bgt _080BFD90
+ cmp r6, 0
+ beq _080BFD9A
+ b _080BFDFC
+ .align 2, 0
+_080BFD8C: .4byte 0x02007000
+_080BFD90:
+ cmp r6, 0x2
+ beq _080BFDCC
+ cmp r6, 0x3
+ beq _080BFDE8
+ b _080BFDFC
+_080BFD9A:
+ ldr r0, _080BFDB4 @ =gSaveBlock1 + 0x2738
+ movs r2, 0xE1
+ lsls r2, 2
+ adds r1, r4, r2
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r4, r3
+ ldr r5, _080BFDB8 @ =0x00000a8c
+ adds r3, r4, r5
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDB4: .4byte gSaveBlock1 + 0x2738
+_080BFDB8: .4byte 0x00000a8c
+_080BFDBC:
+ ldr r1, _080BFDC8 @ =gSaveBlock1 + 0x2738
+ movs r0, 0xE1
+ lsls r0, 3
+ adds r2, r4, r0
+ b _080BFDD4
+ .align 2, 0
+_080BFDC8: .4byte gSaveBlock1 + 0x2738
+_080BFDCC:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r4, r0
+ ldr r2, _080BFDE0 @ =gSaveBlock1 + 0x2738
+_080BFDD4:
+ ldr r5, _080BFDE4 @ =0x00000a8c
+ adds r3, r4, r5
+ adds r0, r4, 0
+ bl sub_80BFE24
+ b _080BFDFC
+ .align 2, 0
+_080BFDE0: .4byte gSaveBlock1 + 0x2738
+_080BFDE4: .4byte 0x00000a8c
+_080BFDE8:
+ movs r0, 0xE1
+ lsls r0, 2
+ adds r1, r5, r0
+ movs r3, 0xE1
+ lsls r3, 3
+ adds r2, r5, r3
+ ldr r3, _080BFE20 @ =gSaveBlock1 + 0x2738
+ adds r0, r5, 0
+ bl sub_80BFE24
+_080BFDFC:
+ ldr r4, _080BFE20 @ =gSaveBlock1 + 0x2738
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C04A0
+ adds r0, r4, 0
+ bl sub_80BF588
+ bl sub_80C01D4
+ bl sub_80C0408
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080BFE20: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80BFD44
+
+ thumb_func_start sub_80BFE24
+sub_80BFE24: @ 80BFE24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080BFEA0 @ =gUnknown_03000720
+ strb r0, [r1]
+_080BFE50:
+ movs r6, 0
+ ldr r0, _080BFEA0 @ =gUnknown_03000720
+ ldrb r1, [r0]
+ cmp r6, r1
+ bcs _080BFE50
+ mov r10, r0
+_080BFE5C:
+ cmp r6, 0
+ bne _080BFE64
+ ldr r2, _080BFEA4 @ =gUnknown_020387E4
+ strb r6, [r2]
+_080BFE64:
+ lsls r4, r6, 2
+ mov r3, sp
+ adds r0, r3, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80C019C
+ ldr r1, _080BFEA8 @ =gUnknown_03000722
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ adds r7, r4, 0
+ cmp r0, r1
+ bne _080BFEAC
+ ldr r1, _080BFEA4 @ =gUnknown_020387E4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080BFF58
+ adds r6, 0x1
+ mov r9, r6
+ b _080BFF3C
+ .align 2, 0
+_080BFEA0: .4byte gUnknown_03000720
+_080BFEA4: .4byte gUnknown_020387E4
+_080BFEA8: .4byte gUnknown_03000722
+_080BFEAC:
+ movs r5, 0
+ mov r3, r10
+ ldrb r0, [r3]
+ subs r0, 0x1
+ adds r2, r6, 0x1
+ mov r9, r2
+ cmp r5, r0
+ bge _080BFF22
+ ldr r3, _080BFF4C @ =gUnknown_03000720
+ mov r8, r3
+_080BFEC0:
+ adds r0, r6, r5
+ adds r4, r0, 0x1
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BF74C
+ ldr r1, _080BFF50 @ =gUnknown_03005D38
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080BFF12
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl __modsi3
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r3, sp
+ adds r1, r3, r7
+ ldr r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ bl sub_80BFF68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080BFF22
+_080BFF12:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080BFEC0
+_080BFF22:
+ mov r2, r10
+ ldrb r0, [r2]
+ subs r0, 0x1
+ cmp r5, r0
+ bne _080BFF3C
+ mov r3, sp
+ adds r0, r3, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldr r1, _080BFF54 @ =gUnknown_03000722
+ ldrb r1, [r1]
+ bl sub_80BF55C
+_080BFF3C:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ mov r2, r10
+ ldrb r2, [r2]
+ cmp r6, r2
+ bcc _080BFE5C
+ b _080BFE50
+ .align 2, 0
+_080BFF4C: .4byte gUnknown_03000720
+_080BFF50: .4byte gUnknown_03005D38
+_080BFF54: .4byte gUnknown_03000722
+_080BFF58:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80BFE24
+
+ thumb_func_start sub_80BFF68
+sub_80BFF68: @ 80BFF68
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r4, [r0]
+ ldr r6, [r1]
+ movs r5, 0
+ ldr r2, _080BFFA4 @ =gUnknown_03000722
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0]
+ str r2, [sp]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ ldr r2, [sp]
+ cmp r0, 0x3
+ beq _080BFFD8
+ cmp r0, 0x3
+ bgt _080BFFA8
+ cmp r0, 0x2
+ beq _080BFFAE
+ b _080C0026
+ .align 2, 0
+_080BFFA4: .4byte gUnknown_03000722
+_080BFFA8:
+ cmp r1, 0x4
+ beq _080C0000
+ b _080C0026
+_080BFFAE:
+ ldr r0, _080BFFD4 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C004C
+ b _080C0022
+ .align 2, 0
+_080BFFD4: .4byte gUnknown_03005D38
+_080BFFD8:
+ ldr r0, _080BFFFC @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C00B4
+ b _080C0022
+ .align 2, 0
+_080BFFFC: .4byte gUnknown_03005D38
+_080C0000:
+ ldr r0, _080C0030 @ =gUnknown_03005D38
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6, r1
+ adds r2, r7, 0
+ bl sub_80C0134
+_080C0022:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_080C0026:
+ cmp r5, 0x1
+ beq _080C0034
+ movs r0, 0
+ b _080C0040
+ .align 2, 0
+_080C0030: .4byte gUnknown_03005D38
+_080C0034:
+ ldr r0, _080C0048 @ =gUnknown_03000722
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ bl sub_80BF55C
+ movs r0, 0x1
+_080C0040:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C0048: .4byte gUnknown_03000722
+ thumb_func_end sub_80BFF68
+
+ thumb_func_start sub_80C004C
+sub_80C004C: @ 80C004C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C007C
+ movs r0, 0
+ b _080C00AC
+_080C007C:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C00AC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C004C
+
+ thumb_func_start sub_80C00B4
+sub_80C00B4: @ 80C00B4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r2, r0, 0
+ movs r3, 0xFF
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C00E0
+ lsrs r0, r2, 8
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C0100
+_080C00E0:
+ movs r3, 0xFF
+ adds r0, r2, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x22
+ lsrs r5, r2, 8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+ adds r0, r5, 0
+ ands r0, r3
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0104
+_080C0100:
+ movs r0, 0
+ b _080C012C
+_080C0104:
+ ldrb r1, [r4, 0x1E]
+ adds r0, r4, 0
+ adds r0, 0x20
+ strb r1, [r0]
+ ldrb r0, [r4, 0x1F]
+ adds r1, r4, 0
+ adds r1, 0x21
+ strb r0, [r1]
+ strb r2, [r4, 0x1E]
+ strb r5, [r4, 0x1F]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+_080C012C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C00B4
+
+ thumb_func_start sub_80C0134
+sub_80C0134: @ 80C0134
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl GetLinkPlayerTrainerId
+ adds r5, r0, 0
+ movs r2, 0xFF
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ lsrs r0, r5, 8
+ ands r0, r2
+ adds r1, r4, 0
+ adds r1, 0x23
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080C0164
+ movs r0, 0
+ b _080C0196
+_080C0164:
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ adds r2, r4, 0
+ adds r2, 0x22
+ strb r0, [r2]
+ adds r3, r4, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ adds r2, 0x1
+ strb r0, [r2]
+ strb r5, [r1]
+ lsrs r0, r5, 8
+ strb r0, [r3]
+ adds r1, r6, 0
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r0, 0x1
+ strb r0, [r6, 0x1]
+ strh r0, [r6, 0x16]
+_080C0196:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0134
+
+ thumb_func_start sub_80C019C
+sub_80C019C: @ 80C019C
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+_080C01A2:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r3
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _080C01C2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _080C01C2
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C01D0
+_080C01C2:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x17
+ bls _080C01A2
+ movs r0, 0x1
+ negs r0, r0
+_080C01D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C019C
+
+ thumb_func_start sub_80C01D4
+sub_80C01D4: @ 80C01D4
+ push {r4-r6,lr}
+ movs r6, 0
+_080C01D8:
+ ldr r0, _080C01F8 @ =gSaveBlock1
+ lsls r2, r6, 3
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080C01FC @ =0x00002738
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x29
+ bls _080C01EE
+ b _080C038C
+_080C01EE:
+ lsls r0, 2
+ ldr r1, _080C0200 @ =_080C0204
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C01F8: .4byte gSaveBlock1
+_080C01FC: .4byte 0x00002738
+_080C0200: .4byte _080C0204
+ .align 2, 0
+_080C0204:
+ .4byte _080C0394
+ .4byte _080C02AC
+ .4byte _080C0394
+ .4byte _080C02BC
+ .4byte _080C02CC
+ .4byte _080C02DC
+ .4byte _080C02F8
+ .4byte _080C0308
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0324
+ .4byte _080C0394
+ .4byte _080C0334
+ .4byte _080C0350
+ .4byte _080C0368
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C038C
+ .4byte _080C0394
+_080C02AC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02B8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02B8: .4byte gSaveBlock1 + 0x2738
+_080C02BC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02C8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C02C8: .4byte gSaveBlock1 + 0x2738
+_080C02CC:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C02D8 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x6]
+ b _080C035A
+ .align 2, 0
+_080C02D8: .4byte gSaveBlock1 + 0x2738
+_080C02DC:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C02F4 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ ldrh r0, [r4, 0x2]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x1C]
+ b _080C037E
+ .align 2, 0
+_080C02F4: .4byte gSaveBlock1 + 0x2738
+_080C02F8:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0304 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ b _080C035A
+ .align 2, 0
+_080C0304: .4byte gSaveBlock1 + 0x2738
+_080C0308:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0320 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ ldrh r0, [r4, 0xA]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x14]
+ b _080C037E
+ .align 2, 0
+_080C0320: .4byte gSaveBlock1 + 0x2738
+_080C0324:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0330 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x10]
+ b _080C035A
+ .align 2, 0
+_080C0330: .4byte gSaveBlock1 + 0x2738
+_080C0334:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C034C @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0xE]
+ b _080C037E
+ .align 2, 0
+_080C034C: .4byte gSaveBlock1 + 0x2738
+_080C0350:
+ adds r0, r2, r6
+ lsls r0, 2
+ ldr r1, _080C0364 @ =gSaveBlock1 + 0x2738
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+_080C035A:
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0364: .4byte gSaveBlock1 + 0x2738
+_080C0368:
+ adds r4, r2, r6
+ lsls r4, 2
+ ldr r0, _080C0388 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ ldrh r0, [r4, 0x8]
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r1, r5, 0
+ bl sub_80C03C8
+ ldrh r0, [r4, 0x4]
+_080C037E:
+ adds r1, r5, 0
+ bl sub_80C03C8
+ b _080C0394
+ .align 2, 0
+_080C0388: .4byte gSaveBlock1 + 0x2738
+_080C038C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_80C03A8
+_080C0394:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x17
+ bhi _080C03A0
+ b _080C01D8
+_080C03A0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C01D4
+
+ thumb_func_start sub_80C03A8
+sub_80C03A8: @ 80C03A8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C03C0 @ =gSaveBlock1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080C03C4 @ =0x00002739
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C03C0: .4byte gSaveBlock1
+_080C03C4: .4byte 0x00002739
+ thumb_func_end sub_80C03A8
+
+ thumb_func_start sub_80C03C8
+sub_80C03C8: @ 80C03C8
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8090D90
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r2, 0
+ bne _080C03F8
+ ldr r1, _080C0400 @ =gSaveBlock1
+ lsls r0, r4, 3
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080C0404 @ =0x00002739
+ adds r0, r1
+ strb r2, [r0]
+_080C03F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0400: .4byte gSaveBlock1
+_080C0404: .4byte 0x00002739
+ thumb_func_end sub_80C03C8
+
+ thumb_func_start sub_80C0408
+sub_80C0408: @ 80C0408
+ push {r4-r6,lr}
+ ldr r0, _080C044C @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C0444
+ movs r2, 0
+ ldr r6, _080C0450 @ =gSaveBlock1
+ ldr r4, _080C0454 @ =0x00002739
+ movs r3, 0
+ ldr r5, _080C0458 @ =0x00002738
+_080C0422:
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r6
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080C0436
+ cmp r0, 0x29
+ bne _080C043A
+_080C0436:
+ adds r0, r1, r4
+ strb r3, [r0]
+_080C043A:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x17
+ bls _080C0422
+_080C0444:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C044C: .4byte 0x00000804
+_080C0450: .4byte gSaveBlock1
+_080C0454: .4byte 0x00002739
+_080C0458: .4byte 0x00002738
+ thumb_func_end sub_80C0408
+
+ thumb_func_start sub_80C045C
+sub_80C045C: @ 80C045C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _080C0494 @ =gSaveBlock1
+_080C0462:
+ lsls r0, r5, 3
+ adds r0, r5
+ lsls r0, 2
+ adds r4, r0, r6
+ ldr r1, _080C0498 @ =0x00002738
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_80BFB54
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080C0484
+ ldr r0, _080C049C @ =0x00002739
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+_080C0484:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _080C0462
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0494: .4byte gSaveBlock1
+_080C0498: .4byte 0x00002738
+_080C049C: .4byte 0x00002739
+ thumb_func_end sub_80C045C
+
+ thumb_func_start sub_80C04A0
+sub_80C04A0: @ 80C04A0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0x5
+ ldr r5, _080C0508 @ =gSaveBlock1
+ ldr r4, _080C050C @ =0x00002738
+_080C04AA:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C04C8
+ lsls r0, r3, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r3, r0, 24
+_080C04C8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x17
+ ble _080C04AA
+ movs r2, 0
+ lsls r0, r3, 24
+ asrs r0, 24
+ movs r1, 0x5
+ subs r0, r1, r0
+ cmp r2, r0
+ bge _080C0502
+ adds r5, r0, 0
+_080C04E4:
+ lsls r1, r2, 24
+ asrs r4, r1, 24
+ movs r0, 0xA0
+ lsls r0, 19
+ adds r1, r0
+ lsrs r1, 24
+ ldr r0, _080C0510 @ =gSaveBlock1 + 0x2738
+ bl sub_80BF55C
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r2, r4, 24
+ asrs r4, 24
+ cmp r4, r5
+ blt _080C04E4
+_080C0502:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0508: .4byte gSaveBlock1
+_080C050C: .4byte 0x00002738
+_080C0510: .4byte gSaveBlock1 + 0x2738
+ thumb_func_end sub_80C04A0
+
+ thumb_func_start sub_80C0514
+sub_80C0514: @ 80C0514
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r4, 0
+_080C0524:
+ lsls r0, r4, 6
+ ldr r6, _080C0550 @ =0x02007000
+ adds r0, r6
+ adds r1, r4, 0
+ muls r1, r7
+ add r1, r8
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080C0524
+ adds r4, r6, 0
+ cmp r5, 0x1
+ beq _080C0578
+ cmp r5, 0x1
+ bgt _080C0554
+ cmp r5, 0
+ beq _080C055E
+ b _080C05AC
+ .align 2, 0
+_080C0550: .4byte 0x02007000
+_080C0554:
+ cmp r5, 0x2
+ beq _080C0584
+ cmp r5, 0x3
+ beq _080C059C
+ b _080C05AC
+_080C055E:
+ ldr r0, _080C0574 @ =gSaveBlock1 + 0x2ABC
+ adds r1, r4, 0
+ adds r1, 0x40
+ adds r2, r4, 0
+ adds r2, 0x80
+ adds r3, r4, 0
+ adds r3, 0xC0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0574: .4byte gSaveBlock1 + 0x2ABC
+_080C0578:
+ ldr r1, _080C0580 @ =gSaveBlock1 + 0x2ABC
+ adds r2, r4, 0
+ adds r2, 0x80
+ b _080C058A
+ .align 2, 0
+_080C0580: .4byte gSaveBlock1 + 0x2ABC
+_080C0584:
+ adds r1, r4, 0
+ adds r1, 0x40
+ ldr r2, _080C0598 @ =gSaveBlock1 + 0x2ABC
+_080C058A:
+ adds r3, r4, 0
+ adds r3, 0xC0
+ adds r0, r4, 0
+ bl sub_80C05C4
+ b _080C05AC
+ .align 2, 0
+_080C0598: .4byte gSaveBlock1 + 0x2ABC
+_080C059C:
+ adds r1, r6, 0
+ adds r1, 0x40
+ adds r2, r6, 0
+ adds r2, 0x80
+ ldr r3, _080C05C0 @ =gSaveBlock1 + 0x2ABC
+ adds r0, r6, 0
+ bl sub_80C05C4
+_080C05AC:
+ bl sub_80C0750
+ bl sub_80C0788
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C05C0: .4byte gSaveBlock1 + 0x2ABC
+ thumb_func_end sub_80C0514
+
+ thumb_func_start sub_80C05C4
+sub_80C05C4: @ 80C05C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ add r0, sp, 0x10
+ str r0, [sp]
+ add r0, sp, 0x14
+ str r0, [sp, 0x4]
+ add r0, sp, 0x18
+ str r0, [sp, 0x8]
+ add r0, sp, 0x1C
+ str r0, [sp, 0xC]
+ bl GetLinkPlayerCount
+ ldr r1, _080C0600 @ =gUnknown_03000721
+ strb r0, [r1]
+ movs r0, 0
+ mov r10, r0
+_080C05F4:
+ movs r7, 0
+ mov r1, r10
+ adds r1, 0x1
+ str r1, [sp, 0x20]
+ b _080C068C
+ .align 2, 0
+_080C0600: .4byte gUnknown_03000721
+_080C0604:
+ lsls r4, r7, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_80C0730
+ ldr r1, _080C06B0 @ =gUnknown_03000722
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ mov r8, r4
+ adds r1, r7, 0x1
+ mov r9, r1
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0686
+ movs r5, 0
+ ldr r1, _080C06B4 @ =gUnknown_03000721
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ bge _080C0686
+ adds r6, r1, 0
+_080C0638:
+ adds r0, r7, r5
+ adds r4, r0, 0x1
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl sub_80BEBC8
+ ldr r1, _080C06B8 @ =gUnknown_03005D38
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080C0678
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ mov r1, sp
+ add r1, r8
+ ldr r1, [r1]
+ bl sub_80C06BC
+_080C0678:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080C0638
+_080C0686:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+_080C068C:
+ ldr r0, _080C06B4 @ =gUnknown_03000721
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080C0604
+ ldr r1, [sp, 0x20]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0xF
+ bls _080C05F4
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06B0: .4byte gUnknown_03000722
+_080C06B4: .4byte gUnknown_03000721
+_080C06B8: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C05C4
+
+ thumb_func_start sub_80C06BC
+sub_80C06BC: @ 80C06BC
+ push {lr}
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _080C06E0 @ =gUnknown_03000722
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r2, 2
+ adds r1, r2
+ ldr r2, _080C06E4 @ =gUnknown_03005D38
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ bl sub_80C06E8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C06E0: .4byte gUnknown_03000722
+_080C06E4: .4byte gUnknown_03005D38
+ thumb_func_end sub_80C06BC
+
+ thumb_func_start sub_80C06E8
+sub_80C06E8: @ 80C06E8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ cmp r0, 0
+ bne _080C06FE
+_080C06FA:
+ movs r0, 0
+ b _080C072A
+_080C06FE:
+ movs r1, 0
+ adds r2, r3, 0
+ adds r3, r0, 0
+_080C0704:
+ lsls r0, r1, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _080C06FA
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C0704
+ lsls r0, r6, 24
+ asrs r0, 22
+ adds r0, r4
+ strb r2, [r0]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ ldrh r1, [r5, 0x2]
+ strh r1, [r0, 0x2]
+ movs r0, 0x1
+_080C072A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C06E8
+
+ thumb_func_start sub_80C0730
+sub_80C0730: @ 80C0730
+ push {lr}
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r1, r2, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C0746
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _080C074A
+_080C0746:
+ movs r0, 0x1
+ negs r0, r0
+_080C074A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C0730
+
+ thumb_func_start sub_80C0750
+sub_80C0750: @ 80C0750
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080C0780 @ =gSaveBlock1
+_080C0756:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r1, _080C0784 @ =0x00002abc
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _080C076A
+ adds r0, r4, 0
+ bl sub_80BEC10
+_080C076A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _080C0756
+ bl sub_80BEC40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0780: .4byte gSaveBlock1
+_080C0784: .4byte 0x00002abc
+ thumb_func_end sub_80C0750
+
+ thumb_func_start sub_80C0788
+sub_80C0788: @ 80C0788
+ push {r4,lr}
+ ldr r0, _080C07B8 @ =0x00000804
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080C07B2
+ movs r1, 0
+ ldr r4, _080C07BC @ =gSaveBlock1
+ ldr r3, _080C07C0 @ =0x00002abd
+ movs r2, 0
+_080C07A0:
+ lsls r0, r1, 2
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _080C07A0
+_080C07B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C07B8: .4byte 0x00000804
+_080C07BC: .4byte gSaveBlock1
+_080C07C0: .4byte 0x00002abd
+ thumb_func_end sub_80C0788
+
+ thumb_func_start sub_80C07C4
+sub_80C07C4: @ 80C07C4
+ push {lr}
+ ldr r2, _080C07F8 @ =gSaveBlock1
+ ldr r0, _080C07FC @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldr r2, _080C0800 @ =0x00002739
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C07E0
+ b _080C08F8
+_080C07E0:
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x28
+ bls _080C07EE
+ b _080C08F8
+_080C07EE:
+ lsls r0, 2
+ ldr r1, _080C0804 @ =_080C0808
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C07F8: .4byte gSaveBlock1
+_080C07FC: .4byte gUnknown_0202E8CC
+_080C0800: .4byte 0x00002739
+_080C0804: .4byte _080C0808
+ .align 2, 0
+_080C0808:
+ .4byte _080C08AC
+ .4byte _080C08B2
+ .4byte _080C08B8
+ .4byte _080C08BE
+ .4byte _080C08E2
+ .4byte _080C08CA
+ .4byte _080C08D0
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08D6
+ .4byte _080C08DC
+ .4byte _080C08E8
+ .4byte _080C08EE
+ .4byte _080C08F4
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08F8
+ .4byte _080C08C4
+_080C08AC:
+ bl DoTVShowPokemonFanClubLetter
+ b _080C08F8
+_080C08B2:
+ bl DoTVShowRecentHappenings
+ b _080C08F8
+_080C08B8:
+ bl DoTVShowPokemonFanClubOpinions
+ b _080C08F8
+_080C08BE:
+ bl nullsub_22
+ b _080C08F8
+_080C08C4:
+ bl DoTVShowPokemonNewsMassOutbreak
+ b _080C08F8
+_080C08CA:
+ bl DoTVShowBravoTrainerPokemonProfile
+ b _080C08F8
+_080C08D0:
+ bl sub_80C0B9C
+ b _080C08F8
+_080C08D6:
+ bl DoTVShowPokemonTodaySuccessfulCapture
+ b _080C08F8
+_080C08DC:
+ bl DoTVShowTodaysSmartShopper
+ b _080C08F8
+_080C08E2:
+ bl DoTVShowTheNameRaterShow
+ b _080C08F8
+_080C08E8:
+ bl DoTVShowPokemonTodayFailedCapture
+ b _080C08F8
+_080C08EE:
+ bl DoTVShowPokemonAngler
+ b _080C08F8
+_080C08F4:
+ bl DoTVShowTheWorldOfMasters
+_080C08F8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C07C4
+
+ thumb_func_start sub_80C08FC
+sub_80C08FC: @ 80C08FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r2, 24
+ lsrs r4, 24
+ bl StringCopy
+ cmp r4, 0x1
+ bhi _080C0914
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C0914:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C08FC
+
+ thumb_func_start DoTVShowBravoTrainerPokemonProfile
+DoTVShowBravoTrainerPokemonProfile: @ 80C091C
+ push {r4,r5,lr}
+ ldr r0, _080C0948 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C094C @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r1, _080C0950 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0954 @ =gUnknown_020387E8
+ ldrb r5, [r0]
+ cmp r5, 0x8
+ bls _080C093C
+ b _080C0B7A
+_080C093C:
+ lsls r0, r5, 2
+ ldr r1, _080C0958 @ =_080C095C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0948: .4byte gUnknown_0202E8CC
+_080C094C: .4byte gSaveBlock1 + 0x2738
+_080C0950: .4byte gScriptResult
+_080C0954: .4byte gUnknown_020387E8
+_080C0958: .4byte _080C095C
+ .align 2, 0
+_080C095C:
+ .4byte _080C0980
+ .4byte _080C09D8
+ .4byte _080C0A10
+ .4byte _080C0A40
+ .4byte _080C0A74
+ .4byte _080C0AA8
+ .4byte _080C0AEC
+ .4byte _080C0B34
+ .4byte _080C0B64
+_080C0980:
+ ldr r0, _080C09C0 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldrb r1, [r4, 0x13]
+ lsls r1, 27
+ lsrs r1, 30
+ movs r0, 0x2
+ bl sub_80BEF10
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _080C09C4 @ =gSpeciesNames
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _080C09CC
+ ldr r1, _080C09C8 @ =gUnknown_020387E8
+ movs r0, 0x8
+ b _080C0B78
+ .align 2, 0
+_080C09C0: .4byte gStringVar1
+_080C09C4: .4byte gSpeciesNames
+_080C09C8: .4byte gUnknown_020387E8
+_080C09CC:
+ ldr r1, _080C09D4 @ =gUnknown_020387E8
+ movs r0, 0x1
+ b _080C0B78
+ .align 2, 0
+_080C09D4: .4byte gUnknown_020387E8
+_080C09D8:
+ ldr r0, _080C0A04 @ =gStringVar1
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0A08 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0A0C @ =gStringVar2
+ adds r1, r4, 0
+ adds r1, 0x8
+ ldrb r2, [r4, 0x1F]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x2
+ bl CopyContestCategoryToStringVar
+ b _080C0B74
+ .align 2, 0
+_080C0A04: .4byte gStringVar1
+_080C0A08: .4byte gSpeciesNames
+_080C0A0C: .4byte gStringVar2
+_080C0A10:
+ ldr r0, _080C0A2C @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _080C0A34
+ ldr r1, _080C0A30 @ =gUnknown_020387E8
+ movs r0, 0x3
+ b _080C0B78
+ .align 2, 0
+_080C0A2C: .4byte gStringVar1
+_080C0A30: .4byte gUnknown_020387E8
+_080C0A34:
+ ldr r1, _080C0A3C @ =gUnknown_020387E8
+ movs r0, 0x4
+ b _080C0B78
+ .align 2, 0
+_080C0A3C: .4byte gUnknown_020387E8
+_080C0A40:
+ ldr r0, _080C0A68 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0A6C @ =gStringVar2
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0A70 @ =gUnknown_020387E8
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A68: .4byte gStringVar1
+_080C0A6C: .4byte gStringVar2
+_080C0A70: .4byte gUnknown_020387E8
+_080C0A74:
+ ldr r0, _080C0A9C @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0AA0 @ =gStringVar2
+ ldrh r1, [r4, 0x4]
+ bl sub_80EB3FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 25
+ lsrs r1, 30
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r1, _080C0AA4 @ =gUnknown_020387E8
+ movs r0, 0x5
+ b _080C0B78
+ .align 2, 0
+_080C0A9C: .4byte gStringVar1
+_080C0AA0: .4byte gStringVar2
+_080C0AA4: .4byte gUnknown_020387E8
+_080C0AA8:
+ ldr r0, _080C0AD4 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x13]
+ lsls r1, 29
+ lsrs r1, 29
+ movs r0, 0x1
+ bl CopyContestCategoryToStringVar
+ ldr r0, _080C0AD8 @ =gStringVar3
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldrh r0, [r4, 0x14]
+ cmp r0, 0
+ beq _080C0AE0
+ ldr r1, _080C0ADC @ =gUnknown_020387E8
+ movs r0, 0x6
+ b _080C0B78
+ .align 2, 0
+_080C0AD4: .4byte gStringVar1
+_080C0AD8: .4byte gStringVar3
+_080C0ADC: .4byte gUnknown_020387E8
+_080C0AE0:
+ ldr r1, _080C0AE8 @ =gUnknown_020387E8
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0AE8: .4byte gUnknown_020387E8
+_080C0AEC:
+ ldr r0, _080C0B1C @ =gStringVar1
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B20 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B24 @ =gStringVar2
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C0B28 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C0B2C @ =gStringVar3
+ ldrh r1, [r4, 0x6]
+ bl sub_80EB3FC
+ ldr r1, _080C0B30 @ =gUnknown_020387E8
+ movs r0, 0x7
+ b _080C0B78
+ .align 2, 0
+_080C0B1C: .4byte gStringVar1
+_080C0B20: .4byte gSpeciesNames
+_080C0B24: .4byte gStringVar2
+_080C0B28: .4byte gMoveNames
+_080C0B2C: .4byte gStringVar3
+_080C0B30: .4byte gUnknown_020387E8
+_080C0B34:
+ ldr r0, _080C0B58 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x16
+ ldrb r2, [r4, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C0B5C @ =gStringVar2
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B60 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ b _080C0B7A
+ .align 2, 0
+_080C0B58: .4byte gStringVar1
+_080C0B5C: .4byte gStringVar2
+_080C0B60: .4byte gSpeciesNames
+_080C0B64:
+ ldr r0, _080C0B8C @ =gStringVar1
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0B90 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+_080C0B74:
+ ldr r1, _080C0B94 @ =gUnknown_020387E8
+ movs r0, 0x2
+_080C0B78:
+ strb r0, [r1]
+_080C0B7A:
+ ldr r0, _080C0B98 @ =gUnknown_083D1524
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0B8C: .4byte gStringVar1
+_080C0B90: .4byte gSpeciesNames
+_080C0B94: .4byte gUnknown_020387E8
+_080C0B98: .4byte gUnknown_083D1524
+ thumb_func_end DoTVShowBravoTrainerPokemonProfile
+
+ thumb_func_start sub_80C0B9C
+sub_80C0B9C: @ 80C0B9C
+ push {r4,r5,lr}
+ ldr r0, _080C0BC8 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0BCC @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r1, _080C0BD0 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0BD4 @ =gUnknown_020387E8
+ ldrb r5, [r0]
+ adds r2, r0, 0
+ cmp r5, 0xE
+ bls _080C0BBE
+ b _080C0DDE
+_080C0BBE:
+ lsls r0, r5, 2
+ ldr r1, _080C0BD8 @ =_080C0BDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0BC8: .4byte gUnknown_0202E8CC
+_080C0BCC: .4byte gSaveBlock1 + 0x2738
+_080C0BD0: .4byte gScriptResult
+_080C0BD4: .4byte gUnknown_020387E8
+_080C0BD8: .4byte _080C0BDC
+ .align 2, 0
+_080C0BDC:
+ .4byte _080C0C18
+ .4byte _080C0C5C
+ .4byte _080C0C8C
+ .4byte _080C0CB0
+ .4byte _080C0CDC
+ .4byte _080C0D24
+ .4byte _080C0D30
+ .4byte _080C0D3C
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D42
+ .4byte _080C0D5C
+ .4byte _080C0D88
+ .4byte _080C0D88
+ .4byte _080C0DC0
+_080C0C18:
+ ldr r0, _080C0C40 @ =gStringVar1
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0C44 @ =gStringVar2
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0C48 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0x6
+ bls _080C0C50
+ ldr r1, _080C0C4C @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C40: .4byte gStringVar1
+_080C0C44: .4byte gStringVar2
+_080C0C48: .4byte gSpeciesNames
+_080C0C4C: .4byte gUnknown_020387E8
+_080C0C50:
+ ldr r1, _080C0C58 @ =gUnknown_020387E8
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C58: .4byte gUnknown_020387E8
+_080C0C5C:
+ ldrb r1, [r4, 0x1A]
+ movs r0, 0
+ bl sub_80BF088
+ ldrh r1, [r4, 0x16]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0x1
+ bne _080C0C80
+ ldr r1, _080C0C7C @ =gUnknown_020387E8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C7C: .4byte gUnknown_020387E8
+_080C0C80:
+ ldr r1, _080C0C88 @ =gUnknown_020387E8
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0C88: .4byte gUnknown_020387E8
+_080C0C8C:
+ ldr r0, _080C0CAC @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x16]
+ adds r1, 0x1
+ movs r0, 0x1
+ bl sub_80BF088
+_080C0CA2:
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ beq _080C0CFE
+ b _080C0D18
+ .align 2, 0
+_080C0CAC: .4byte gStringVar1
+_080C0CB0:
+ ldr r0, _080C0CD0 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0CD4 @ =gStringVar2
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0CD8 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ b _080C0CA2
+ .align 2, 0
+_080C0CD0: .4byte gStringVar1
+_080C0CD4: .4byte gStringVar2
+_080C0CD8: .4byte gSpeciesNames
+_080C0CDC:
+ ldr r0, _080C0D08 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0D0C @ =gStringVar2
+ ldrh r2, [r4, 0x14]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0D10 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D18
+_080C0CFE:
+ ldr r1, _080C0D14 @ =gUnknown_020387E8
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D08: .4byte gStringVar1
+_080C0D0C: .4byte gStringVar2
+_080C0D10: .4byte gSpeciesNames
+_080C0D14: .4byte gUnknown_020387E8
+_080C0D18:
+ ldr r1, _080C0D20 @ =gUnknown_020387E8
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D20: .4byte gUnknown_020387E8
+_080C0D24:
+ ldr r0, _080C0D2C @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D2C: .4byte gStringVar1
+_080C0D30:
+ ldr r0, _080C0D38 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0xC
+ b _080C0D46
+ .align 2, 0
+_080C0D38: .4byte gStringVar1
+_080C0D3C:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C0DDE
+_080C0D42:
+ ldr r0, _080C0D54 @ =gStringVar1
+ adds r1, r4, 0x2
+_080C0D46:
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0D58 @ =gUnknown_020387E8
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D54: .4byte gStringVar1
+_080C0D58: .4byte gUnknown_020387E8
+_080C0D5C:
+ ldr r0, _080C0D74 @ =gStringVar1
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _080C0D7C
+ ldr r1, _080C0D78 @ =gUnknown_020387E8
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D74: .4byte gStringVar1
+_080C0D78: .4byte gUnknown_020387E8
+_080C0D7C:
+ ldr r1, _080C0D84 @ =gUnknown_020387E8
+ movs r0, 0xD
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0D84: .4byte gUnknown_020387E8
+_080C0D88:
+ ldr r0, _080C0DB0 @ =gStringVar1
+ ldrh r1, [r4, 0x18]
+ bl sub_80EB3FC
+ ldr r0, _080C0DB4 @ =gStringVar2
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DB8 @ =gStringVar3
+ adds r1, r4, 0
+ adds r1, 0xC
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r1, _080C0DBC @ =gUnknown_020387E8
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C0DDE
+ .align 2, 0
+_080C0DB0: .4byte gStringVar1
+_080C0DB4: .4byte gStringVar2
+_080C0DB8: .4byte gStringVar3
+_080C0DBC: .4byte gUnknown_020387E8
+_080C0DC0:
+ ldr r0, _080C0DF0 @ =gStringVar1
+ adds r1, r4, 0x2
+ ldrb r2, [r4, 0x1D]
+ bl sub_80C08FC
+ ldr r0, _080C0DF4 @ =gStringVar2
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C0DF8 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C0DDE:
+ ldr r0, _080C0DFC @ =gUnknown_083D1548
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C0DF0: .4byte gStringVar1
+_080C0DF4: .4byte gStringVar2
+_080C0DF8: .4byte gSpeciesNames
+_080C0DFC: .4byte gUnknown_083D1548
+ thumb_func_end sub_80C0B9C
+
+ thumb_func_start DoTVShowTodaysSmartShopper
+DoTVShowTodaysSmartShopper: @ 80C0E00
+ push {r4-r6,lr}
+ ldr r0, _080C0E2C @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C0E30 @ =gSaveBlock1 + 0x2738
+ adds r5, r0, r1
+ ldr r1, _080C0E34 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C0E38 @ =gUnknown_020387E8
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xC
+ bls _080C0E22
+ b _080C1014
+_080C0E22:
+ lsls r0, r6, 2
+ ldr r1, _080C0E3C @ =_080C0E40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C0E2C: .4byte gUnknown_0202E8CC
+_080C0E30: .4byte gSaveBlock1 + 0x2738
+_080C0E34: .4byte gScriptResult
+_080C0E38: .4byte gUnknown_020387E8
+_080C0E3C: .4byte _080C0E40
+ .align 2, 0
+_080C0E40:
+ .4byte _080C0E74
+ .4byte _080C0EB0
+ .4byte _080C0EF8
+ .4byte _080C0F0A
+ .4byte _080C0EF8
+ .4byte _080C0EF8
+ .4byte _080C0F34
+ .4byte _080C0F64
+ .4byte _080C0F94
+ .4byte _080C0FA0
+ .4byte _080C0FAE
+ .4byte _080C0FC0
+ .4byte _080C1004
+_080C0E74:
+ ldr r0, _080C0E98 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r0, _080C0E9C @ =gStringVar2
+ ldrb r1, [r5, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0EA4
+ ldr r1, _080C0EA0 @ =gUnknown_020387E8
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0E98: .4byte gStringVar1
+_080C0E9C: .4byte gStringVar2
+_080C0EA0: .4byte gUnknown_020387E8
+_080C0EA4:
+ ldr r1, _080C0EAC @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0EAC: .4byte gUnknown_020387E8
+_080C0EB0:
+ ldr r0, _080C0EEC @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0EF0 @ =gStringVar2
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xC]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldr r4, _080C0EF4 @ =gUnknown_020387E8
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C1014
+ .align 2, 0
+_080C0EEC: .4byte gStringVar1
+_080C0EF0: .4byte gStringVar2
+_080C0EF4: .4byte gUnknown_020387E8
+_080C0EF8:
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F04
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1014
+_080C0F04:
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C1014
+_080C0F0A:
+ ldrh r1, [r5, 0xC]
+ adds r1, 0x1
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _080C0F28
+ ldr r1, _080C0F24 @ =gUnknown_020387E8
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F24: .4byte gUnknown_020387E8
+_080C0F28:
+ ldr r1, _080C0F30 @ =gUnknown_020387E8
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F30: .4byte gUnknown_020387E8
+_080C0F34:
+ ldr r4, _080C0F5C @ =gStringVar2
+ ldrh r0, [r5, 0x8]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0xE]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrh r0, [r5, 0xA]
+ cmp r0, 0
+ beq _080C0F7C
+ ldr r1, _080C0F60 @ =gUnknown_020387E8
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F5C: .4byte gStringVar2
+_080C0F60: .4byte gUnknown_020387E8
+_080C0F64:
+ ldr r4, _080C0F8C @ =gStringVar2
+ ldrh r0, [r5, 0xA]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF088
+_080C0F7C:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ beq _080C0FE2
+ ldr r1, _080C0F90 @ =gUnknown_020387E8
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0F8C: .4byte gStringVar2
+_080C0F90: .4byte gUnknown_020387E8
+_080C0F94:
+ ldrh r0, [r5, 0xC]
+ cmp r0, 0xFE
+ bls _080C0FBA
+ movs r0, 0xC
+ strb r0, [r2]
+ b _080C1014
+_080C0FA0:
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl sub_80BF154
+ bl TVShowDone
+ b _080C1014
+_080C0FAE:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FBA
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1014
+_080C0FBA:
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C1014
+_080C0FC0:
+ ldr r0, _080C0FEC @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C0FF0 @ =gStringVar2
+ ldrh r0, [r5, 0x6]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080C0FF8
+_080C0FE2:
+ ldr r1, _080C0FF4 @ =gUnknown_020387E8
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C0FEC: .4byte gStringVar1
+_080C0FF0: .4byte gStringVar2
+_080C0FF4: .4byte gUnknown_020387E8
+_080C0FF8:
+ ldr r1, _080C1000 @ =gUnknown_020387E8
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C1014
+ .align 2, 0
+_080C1000: .4byte gUnknown_020387E8
+_080C1004:
+ ldr r0, _080C1028 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C1014:
+ ldr r0, _080C102C @ =gUnknown_083D14F0
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1028: .4byte gStringVar1
+_080C102C: .4byte gUnknown_083D14F0
+ thumb_func_end DoTVShowTodaysSmartShopper
+
+ thumb_func_start DoTVShowTheNameRaterShow
+DoTVShowTheNameRaterShow: @ 80C1030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r0, _080C1060 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1064 @ =gSaveBlock1 + 0x2738
+ adds r6, r0, r1
+ ldr r1, _080C1068 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C106C @ =gUnknown_020387E8
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x12
+ bls _080C1054
+ b _080C138A
+_080C1054:
+ lsls r0, r7, 2
+ ldr r1, _080C1070 @ =_080C1074
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1060: .4byte gUnknown_0202E8CC
+_080C1064: .4byte gSaveBlock1 + 0x2738
+_080C1068: .4byte gScriptResult
+_080C106C: .4byte gUnknown_020387E8
+_080C1070: .4byte _080C1074
+ .align 2, 0
+_080C1074:
+ .4byte _080C10C0
+ .4byte _080C1108
+ .4byte _080C112A
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1108
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C1170
+ .4byte _080C136C
+ .4byte _080C11CC
+ .4byte _080C1228
+ .4byte _080C127C
+ .4byte _080C12D4
+ .4byte _080C1314
+ .4byte _080C1370
+_080C10C0:
+ ldr r0, _080C10F4 @ =gStringVar1
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldr r0, _080C10F8 @ =gStringVar2
+ ldrh r2, [r6, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C10FC @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1100 @ =gStringVar3
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r4, _080C1104 @ =gUnknown_020387E8
+ adds r0, r6, 0
+ bl sub_80BF7E8
+ adds r0, 0x1
+ strb r0, [r4]
+ b _080C138A
+ .align 2, 0
+_080C10F4: .4byte gStringVar1
+_080C10F8: .4byte gStringVar2
+_080C10FC: .4byte gSpeciesNames
+_080C1100: .4byte gStringVar3
+_080C1104: .4byte gUnknown_020387E8
+_080C1108:
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C1114
+ movs r0, 0x9
+ strb r0, [r2]
+ b _080C138A
+_080C1114:
+ cmp r0, 0x1
+ bne _080C111E
+ movs r0, 0xA
+ strb r0, [r2]
+ b _080C138A
+_080C111E:
+ cmp r0, 0x2
+ beq _080C1124
+ b _080C138A
+_080C1124:
+ movs r0, 0xB
+ strb r0, [r2]
+ b _080C138A
+_080C112A:
+ ldr r0, _080C1144 @ =gStringVar1
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0
+ bne _080C114C
+ ldr r1, _080C1148 @ =gUnknown_020387E8
+ movs r0, 0x9
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1144: .4byte gStringVar1
+_080C1148: .4byte gUnknown_020387E8
+_080C114C:
+ cmp r0, 0x1
+ bne _080C115C
+ ldr r1, _080C1158 @ =gUnknown_020387E8
+ movs r0, 0xA
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1158: .4byte gUnknown_020387E8
+_080C115C:
+ cmp r0, 0x2
+ beq _080C1162
+ b _080C138A
+_080C1162:
+ ldr r1, _080C116C @ =gUnknown_020387E8
+ movs r0, 0xB
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C116C: .4byte gUnknown_020387E8
+_080C1170:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11BC @ =gStringVar3
+ ldr r4, _080C11C0 @ =gStringVar1
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C11C4 @ =gStringVar2
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C11C8 @ =gUnknown_020387E8
+ movs r0, 0xC
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C11BC: .4byte gStringVar3
+_080C11C0: .4byte gStringVar1
+_080C11C4: .4byte gStringVar2
+_080C11C8: .4byte gUnknown_020387E8
+_080C11CC:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1218 @ =gStringVar3
+ ldr r4, _080C121C @ =gStringVar1
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1220 @ =gStringVar2
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ ldr r1, _080C1224 @ =gUnknown_020387E8
+ movs r0, 0xE
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1218: .4byte gStringVar3
+_080C121C: .4byte gStringVar1
+_080C1220: .4byte gStringVar2
+_080C1224: .4byte gUnknown_020387E8
+_080C1228:
+ movs r5, 0
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_80BF820
+ ldr r0, _080C1270 @ =gStringVar3
+ ldr r4, _080C1274 @ =gStringVar1
+ ldrb r2, [r6, 0x1E]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1278 @ =gStringVar2
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ adds r0, r4, 0
+ bl sub_80C08FC
+ b _080C1354
+ .align 2, 0
+_080C1270: .4byte gStringVar3
+_080C1274: .4byte gStringVar1
+_080C1278: .4byte gStringVar2
+_080C127C:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C12C4 @ =gStringVar1
+ ldr r4, _080C12C8 @ =gStringVar2
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r1, [r6, 0x2]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C12CC @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C12D0 @ =gUnknown_020387E8
+ movs r0, 0x10
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C12C4: .4byte gStringVar1
+_080C12C8: .4byte gStringVar2
+_080C12CC: .4byte gSpeciesNames
+_080C12D0: .4byte gUnknown_020387E8
+_080C12D4:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C1308 @ =gStringVar3
+ ldr r1, _080C130C @ =gStringVar1
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x2]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl sub_80BF820
+ ldr r1, _080C1310 @ =gUnknown_020387E8
+ movs r0, 0x11
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C1308: .4byte gStringVar3
+_080C130C: .4byte gStringVar1
+_080C1310: .4byte gUnknown_020387E8
+_080C1314:
+ movs r0, 0
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl sub_80BF820
+ ldr r0, _080C135C @ =gStringVar1
+ ldr r4, _080C1360 @ =gStringVar2
+ ldrb r2, [r6, 0x1F]
+ adds r1, r4, 0
+ bl sub_80C08FC
+ ldrh r0, [r6, 0x1C]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_80BF820
+ ldrh r1, [r6, 0x1C]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080C1364 @ =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+_080C1354:
+ ldr r1, _080C1368 @ =gUnknown_020387E8
+ movs r0, 0x12
+ strb r0, [r1]
+ b _080C138A
+ .align 2, 0
+_080C135C: .4byte gStringVar1
+_080C1360: .4byte gStringVar2
+_080C1364: .4byte gSpeciesNames
+_080C1368: .4byte gUnknown_020387E8
+_080C136C:
+ movs r7, 0x12
+ strb r7, [r2]
+_080C1370:
+ ldr r0, _080C13A0 @ =gStringVar1
+ adds r1, r6, 0x4
+ ldrb r2, [r6, 0x1F]
+ bl sub_80C08FC
+ ldr r0, _080C13A4 @ =gStringVar2
+ adds r1, r6, 0
+ adds r1, 0xF
+ ldrb r2, [r6, 0x1E]
+ bl sub_80C08FC
+ bl TVShowDone
+_080C138A:
+ ldr r0, _080C13A8 @ =gUnknown_083D1584
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C13A0: .4byte gStringVar1
+_080C13A4: .4byte gStringVar2
+_080C13A8: .4byte gUnknown_083D1584
+ thumb_func_end DoTVShowTheNameRaterShow
+
+ thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
+DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
+ push {r4-r6,lr}
+ ldr r0, _080C13D8 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C13DC @ =gSaveBlock1 + 0x2738
+ adds r5, r0, r1
+ ldr r1, _080C13E0 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C13E4 @ =gUnknown_020387E8
+ ldrb r6, [r0]
+ adds r2, r0, 0
+ cmp r6, 0xB
+ bls _080C13CE
+ b _080C15DC
+_080C13CE:
+ lsls r0, r6, 2
+ ldr r1, _080C13E8 @ =_080C13EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C13D8: .4byte gUnknown_0202E8CC
+_080C13DC: .4byte gSaveBlock1 + 0x2738
+_080C13E0: .4byte gScriptResult
+_080C13E4: .4byte gUnknown_020387E8
+_080C13E8: .4byte _080C13EC
+ .align 2, 0
+_080C13EC:
+ .4byte _080C141C
+ .4byte _080C1470
+ .4byte _080C1476
+ .4byte _080C14B0
+ .4byte _080C14E8
+ .4byte _080C14EE
+ .4byte _080C1524
+ .4byte _080C1578
+ .4byte _080C1578
+ .4byte _080C15A8
+ .4byte _080C15A8
+ .4byte _080C15D8
+_080C141C:
+ ldr r0, _080C1450 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1454 @ =gStringVar2
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1458 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C145C @ =gStringVar3
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrb r0, [r5, 0xF]
+ cmp r0, 0x1
+ bne _080C1464
+ ldr r1, _080C1460 @ =gUnknown_020387E8
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1450: .4byte gStringVar1
+_080C1454: .4byte gStringVar2
+_080C1458: .4byte gSpeciesNames
+_080C145C: .4byte gStringVar3
+_080C1460: .4byte gUnknown_020387E8
+_080C1464:
+ ldr r1, _080C146C @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C146C: .4byte gUnknown_020387E8
+_080C1470:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C15DC
+_080C1476:
+ ldr r4, _080C149C @ =gStringVar2
+ ldrb r0, [r5, 0xF]
+ bl itemid_get_item
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldrb r1, [r5, 0x12]
+ movs r0, 0x2
+ bl sub_80BF088
+ ldrb r0, [r5, 0x12]
+ cmp r0, 0x3
+ bhi _080C14A4
+ ldr r1, _080C14A0 @ =gUnknown_020387E8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C149C: .4byte gStringVar2
+_080C14A0: .4byte gUnknown_020387E8
+_080C14A4:
+ ldr r1, _080C14AC @ =gUnknown_020387E8
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C14AC: .4byte gUnknown_020387E8
+_080C14B0:
+ ldr r0, _080C14D8 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C14DC @ =gStringVar2
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C14E0 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C14E4 @ =gStringVar3
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ b _080C150A
+ .align 2, 0
+_080C14D8: .4byte gStringVar1
+_080C14DC: .4byte gStringVar2
+_080C14E0: .4byte gSpeciesNames
+_080C14E4: .4byte gStringVar3
+_080C14E8:
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C15DC
+_080C14EE:
+ ldr r0, _080C1514 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1518 @ =gStringVar2
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C151C @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+_080C150A:
+ ldr r1, _080C1520 @ =gUnknown_020387E8
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C15DC
+ .align 2, 0
+_080C1514: .4byte gStringVar1
+_080C1518: .4byte gStringVar2
+_080C151C: .4byte gSpeciesNames
+_080C1520: .4byte gUnknown_020387E8
+_080C1524:
+ ldr r0, _080C1564 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x13
+ ldrb r2, [r5, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1568 @ =gStringVar2
+ ldrh r2, [r5, 0x10]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C156C @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1570 @ =gStringVar3
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldr r4, _080C1574 @ =gUnknown_020387E8
+ bl Random
+ ldrb r2, [r4]
+ adds r2, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, r2
+ strb r0, [r4]
+ b _080C15DC
+ .align 2, 0
+_080C1564: .4byte gStringVar1
+_080C1568: .4byte gStringVar2
+_080C156C: .4byte gSpeciesNames
+_080C1570: .4byte gStringVar3
+_080C1574: .4byte gUnknown_020387E8
+_080C1578:
+ ldr r0, _080C159C @ =gStringVar1
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15A0 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15A4 @ =gStringVar2
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+ ldrh r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80BF638
+ b _080C15C2
+ .align 2, 0
+_080C159C: .4byte gStringVar1
+_080C15A0: .4byte gSpeciesNames
+_080C15A4: .4byte gStringVar2
+_080C15A8:
+ ldr r0, _080C15C8 @ =gStringVar1
+ ldrh r1, [r5, 0x10]
+ movs r4, 0xB
+ muls r1, r4
+ ldr r2, _080C15CC @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C15D0 @ =gStringVar2
+ adds r1, r5, 0x4
+ ldrb r2, [r5, 0x3]
+ bl sub_80C08FC
+_080C15C2:
+ ldr r0, _080C15D4 @ =gUnknown_020387E8
+ strb r4, [r0]
+ b _080C15DC
+ .align 2, 0
+_080C15C8: .4byte gStringVar1
+_080C15CC: .4byte gSpeciesNames
+_080C15D0: .4byte gStringVar2
+_080C15D4: .4byte gUnknown_020387E8
+_080C15D8:
+ bl TVShowDone
+_080C15DC:
+ ldr r0, _080C15F0 @ =gUnknown_083D14C0
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C15F0: .4byte gUnknown_083D14C0
+ thumb_func_end DoTVShowPokemonTodaySuccessfulCapture
+
+ thumb_func_start DoTVShowPokemonTodayFailedCapture
+DoTVShowPokemonTodayFailedCapture: @ 80C15F4
+ push {r4,r5,lr}
+ ldr r0, _080C1620 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1624 @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r1, _080C1628 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C162C @ =gUnknown_020387E8
+ ldrb r5, [r0]
+ cmp r5, 0x6
+ bls _080C1614
+ b _080C173C
+_080C1614:
+ lsls r0, r5, 2
+ ldr r1, _080C1630 @ =_080C1634
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1620: .4byte gUnknown_0202E8CC
+_080C1624: .4byte gSaveBlock1 + 0x2738
+_080C1628: .4byte gScriptResult
+_080C162C: .4byte gUnknown_020387E8
+_080C1630: .4byte _080C1634
+ .align 2, 0
+_080C1634:
+ .4byte _080C1650
+ .4byte _080C1684
+ .4byte _080C16D8
+ .4byte _080C16D8
+ .4byte _080C171C
+ .4byte _080C171C
+ .4byte _080C1738
+_080C1650:
+ ldr r0, _080C1674 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C1678 @ =gStringVar2
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C167C @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1680 @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1674: .4byte gStringVar1
+_080C1678: .4byte gStringVar2
+_080C167C: .4byte gSpeciesNames
+_080C1680: .4byte gUnknown_020387E8
+_080C1684:
+ ldr r0, _080C16B8 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r0, _080C16BC @ =gStringVar2
+ ldrb r1, [r4, 0x12]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C16C0 @ =gStringVar3
+ ldrh r2, [r4, 0xE]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C16C4 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0x1
+ bne _080C16CC
+ ldr r1, _080C16C8 @ =gUnknown_020387E8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16B8: .4byte gStringVar1
+_080C16BC: .4byte gStringVar2
+_080C16C0: .4byte gStringVar3
+_080C16C4: .4byte gSpeciesNames
+_080C16C8: .4byte gUnknown_020387E8
+_080C16CC:
+ ldr r1, _080C16D4 @ =gUnknown_020387E8
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C16D4: .4byte gUnknown_020387E8
+_080C16D8:
+ ldr r0, _080C1708 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ bl sub_80BF088
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080C1710
+ ldr r1, _080C170C @ =gUnknown_020387E8
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1708: .4byte gStringVar1
+_080C170C: .4byte gUnknown_020387E8
+_080C1710:
+ ldr r1, _080C1718 @ =gUnknown_020387E8
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1718: .4byte gUnknown_020387E8
+_080C171C:
+ ldr r0, _080C1730 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x2]
+ bl sub_80C08FC
+ ldr r1, _080C1734 @ =gUnknown_020387E8
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080C173C
+ .align 2, 0
+_080C1730: .4byte gStringVar1
+_080C1734: .4byte gUnknown_020387E8
+_080C1738:
+ bl TVShowDone
+_080C173C:
+ ldr r0, _080C1750 @ =gUnknown_083D15D0
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1750: .4byte gUnknown_083D15D0
+ thumb_func_end DoTVShowPokemonTodayFailedCapture
+
+ thumb_func_start DoTVShowPokemonFanClubLetter
+DoTVShowPokemonFanClubLetter: @ 80C1754
+ push {r4-r7,lr}
+ ldr r0, _080C1780 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1784 @ =gSaveBlock1 + 0x2738
+ adds r5, r0, r1
+ ldr r1, _080C1788 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C178C @ =gUnknown_020387E8
+ ldrb r7, [r0]
+ adds r6, r0, 0
+ cmp r7, 0x33
+ bls _080C1776
+ b _080C1960
+_080C1776:
+ lsls r0, r7, 2
+ ldr r1, _080C1790 @ =_080C1794
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1780: .4byte gUnknown_0202E8CC
+_080C1784: .4byte gSaveBlock1 + 0x2738
+_080C1788: .4byte gScriptResult
+_080C178C: .4byte gUnknown_020387E8
+_080C1790: .4byte _080C1794
+ .align 2, 0
+_080C1794:
+ .4byte _080C1864
+ .4byte _080C1898
+ .4byte _080C18C4
+ .4byte _080C18CA
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18E2
+ .4byte _080C18F4
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1960
+ .4byte _080C1916
+ .4byte _080C193C
+_080C1864:
+ ldr r0, _080C1888 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ ldr r0, _080C188C @ =gStringVar2
+ ldrh r2, [r5, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1890 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _080C1894 @ =gUnknown_020387E8
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C1888: .4byte gStringVar1
+_080C188C: .4byte gStringVar2
+_080C1890: .4byte gSpeciesNames
+_080C1894: .4byte gUnknown_020387E8
+_080C1898:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r2, r0, 0x1
+ cmp r2, 0x1
+ bne _080C18B8
+ ldr r1, _080C18B4 @ =gUnknown_020387E8
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18B4: .4byte gUnknown_020387E8
+_080C18B8:
+ ldr r1, _080C18C0 @ =gUnknown_020387E8
+ adds r0, r2, 0x2
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18C0: .4byte gUnknown_020387E8
+_080C18C4:
+ movs r0, 0x33
+ strb r0, [r6]
+ b _080C1960
+_080C18CA:
+ bl Random
+ ldrb r4, [r6]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r6]
+ b _080C1960
+_080C18E2:
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C18F0 @ =gUnknown_020387E8
+ movs r0, 0x7
+ strb r0, [r1]
+ b _080C1960
+ .align 2, 0
+_080C18F0: .4byte gUnknown_020387E8
+_080C18F4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1F
+ bl __umodsi3
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0x2
+ adds r1, r2, 0
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1960
+_080C1916:
+ ldr r4, _080C1934 @ =gStringVar4
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1938 @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1934: .4byte gStringVar4
+_080C1938: .4byte gUnknown_020387E8
+_080C193C:
+ ldr r4, _080C1958 @ =gStringVar4
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C195C @ =gUnknown_020387E8
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080C196C
+ .align 2, 0
+_080C1958: .4byte gStringVar4
+_080C195C: .4byte gUnknown_020387E8
+_080C1960:
+ ldr r0, _080C1974 @ =gUnknown_083D1470
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C196C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1974: .4byte gUnknown_083D1470
+ thumb_func_end DoTVShowPokemonFanClubLetter
+
+ thumb_func_start DoTVShowRecentHappenings
+DoTVShowRecentHappenings: @ 80C1978
+ push {r4-r7,lr}
+ ldr r0, _080C19A4 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C19A8 @ =gSaveBlock1 + 0x2738
+ adds r5, r0, r1
+ ldr r1, _080C19AC @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080C19B0 @ =gUnknown_020387E8
+ ldrb r6, [r0]
+ adds r7, r0, 0
+ cmp r6, 0x32
+ bls _080C199A
+ b _080C1AF0
+_080C199A:
+ lsls r0, r6, 2
+ ldr r1, _080C19B4 @ =_080C19B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C19A4: .4byte gUnknown_0202E8CC
+_080C19A8: .4byte gSaveBlock1 + 0x2738
+_080C19AC: .4byte gScriptResult
+_080C19B0: .4byte gUnknown_020387E8
+_080C19B4: .4byte _080C19B8
+ .align 2, 0
+_080C19B8:
+ .4byte _080C1A84
+ .4byte _080C1AA8
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC0
+ .4byte _080C1AC6
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1AF0
+ .4byte _080C1ACC
+_080C1A84:
+ ldr r0, _080C1AA0 @ =gStringVar1
+ adds r1, r5, 0
+ adds r1, 0x10
+ ldrb r2, [r5, 0x18]
+ bl sub_80C08FC
+ adds r0, r5, 0
+ bl sub_80BF79C
+ ldr r1, _080C1AA4 @ =gUnknown_020387E8
+ movs r0, 0x32
+ strb r0, [r1]
+ b _080C1AF0
+ .align 2, 0
+_080C1AA0: .4byte gStringVar1
+_080C1AA4: .4byte gUnknown_020387E8
+_080C1AA8:
+ bl Random
+ ldrb r4, [r7]
+ adds r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, r4
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC0:
+ movs r0, 0x5
+ strb r0, [r7]
+ b _080C1AF0
+_080C1AC6:
+ bl TVShowDone
+ b _080C1AF0
+_080C1ACC:
+ ldr r4, _080C1AE8 @ =gStringVar4
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl ShowFieldMessage
+ ldr r1, _080C1AEC @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1AFC
+ .align 2, 0
+_080C1AE8: .4byte gStringVar4
+_080C1AEC: .4byte gUnknown_020387E8
+_080C1AF0:
+ ldr r0, _080C1B04 @ =gUnknown_083D1490
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+_080C1AFC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1B04: .4byte gUnknown_083D1490
+ thumb_func_end DoTVShowRecentHappenings
+
+ thumb_func_start DoTVShowPokemonFanClubOpinions
+DoTVShowPokemonFanClubOpinions: @ 80C1B08
+ push {r4-r6,lr}
+ ldr r0, _080C1B30 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1B34 @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r1, _080C1B38 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1B3C @ =gUnknown_020387E8
+ ldrb r5, [r6]
+ cmp r5, 0x3
+ bgt _080C1B40
+ cmp r5, 0x1
+ bge _080C1B88
+ cmp r5, 0
+ beq _080C1B46
+ b _080C1BD6
+ .align 2, 0
+_080C1B30: .4byte gUnknown_0202E8CC
+_080C1B34: .4byte gSaveBlock1 + 0x2738
+_080C1B38: .4byte gScriptResult
+_080C1B3C: .4byte gUnknown_020387E8
+_080C1B40:
+ cmp r5, 0x4
+ beq _080C1BC0
+ b _080C1BD6
+_080C1B46:
+ ldr r0, _080C1B78 @ =gStringVar1
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1B7C @ =gStringVar2
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1B80 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1B84 @ =gStringVar3
+ adds r1, r4, 0
+ adds r1, 0x10
+ ldrb r2, [r4, 0xE]
+ bl sub_80C08FC
+ ldrb r0, [r4, 0x4]
+ lsrs r0, 4
+ adds r0, 0x1
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1B78: .4byte gStringVar1
+_080C1B7C: .4byte gStringVar2
+_080C1B80: .4byte gSpeciesNames
+_080C1B84: .4byte gStringVar3
+_080C1B88:
+ ldr r0, _080C1BB0 @ =gStringVar1
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BB4 @ =gStringVar2
+ ldrh r2, [r4, 0x2]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1BB8 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1BBC @ =gStringVar3
+ ldrh r1, [r4, 0x1C]
+ bl sub_80EB3FC
+ movs r0, 0x4
+ strb r0, [r6]
+ b _080C1BD6
+ .align 2, 0
+_080C1BB0: .4byte gStringVar1
+_080C1BB4: .4byte gStringVar2
+_080C1BB8: .4byte gSpeciesNames
+_080C1BBC: .4byte gStringVar3
+_080C1BC0:
+ ldr r0, _080C1BE8 @ =gStringVar1
+ adds r1, r4, 0x5
+ ldrb r2, [r4, 0xD]
+ bl sub_80C08FC
+ ldr r0, _080C1BEC @ =gStringVar3
+ ldrh r1, [r4, 0x1E]
+ bl sub_80EB3FC
+ bl TVShowDone
+_080C1BD6:
+ ldr r0, _080C1BF0 @ =gUnknown_083D14A8
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1BE8: .4byte gStringVar1
+_080C1BEC: .4byte gStringVar3
+_080C1BF0: .4byte gUnknown_083D14A8
+ thumb_func_end DoTVShowPokemonFanClubOpinions
+
+ thumb_func_start nullsub_22
+nullsub_22: @ 80C1BF4
+ bx lr
+ thumb_func_end nullsub_22
+
+ thumb_func_start DoTVShowPokemonNewsMassOutbreak
+DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
+ push {r4,lr}
+ ldr r0, _080C1C40 @ =gUnknown_0202E8CC
+ ldrh r0, [r0]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _080C1C44 @ =gSaveBlock1 + 0x2738
+ adds r4, r0
+ ldr r0, _080C1C48 @ =gStringVar1
+ ldrb r1, [r4, 0x10]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1C4C @ =gStringVar2
+ ldrh r2, [r4, 0xC]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1C50 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+ bl StartMassOutbreak
+ ldr r1, _080C1C54 @ =gUnknown_083D14BC
+ ldr r0, _080C1C58 @ =gUnknown_020387E8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1C40: .4byte gUnknown_0202E8CC
+_080C1C44: .4byte gSaveBlock1 + 0x2738
+_080C1C48: .4byte gStringVar1
+_080C1C4C: .4byte gStringVar2
+_080C1C50: .4byte gSpeciesNames
+_080C1C54: .4byte gUnknown_083D14BC
+_080C1C58: .4byte gUnknown_020387E8
+ thumb_func_end DoTVShowPokemonNewsMassOutbreak
+
+ thumb_func_start DoTVShowInSearchOfTrainers
+DoTVShowInSearchOfTrainers: @ 80C1C5C
+ push {r4-r7,lr}
+ ldr r0, _080C1C7C @ =gScriptResult
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080C1C80 @ =gUnknown_020387E8
+ ldrb r7, [r0]
+ adds r2, r0, 0
+ cmp r7, 0x8
+ bls _080C1C70
+ b _080C1DF8
+_080C1C70:
+ lsls r0, r7, 2
+ ldr r1, _080C1C84 @ =_080C1C88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C1C7C: .4byte gScriptResult
+_080C1C80: .4byte gUnknown_020387E8
+_080C1C84: .4byte _080C1C88
+ .align 2, 0
+_080C1C88:
+ .4byte _080C1CAC
+ .4byte _080C1CF0
+ .4byte _080C1CF6
+ .4byte _080C1D44
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB0
+ .4byte _080C1DB6
+_080C1CAC:
+ ldr r0, _080C1CD0 @ =gStringVar1
+ ldr r4, _080C1CD4 @ =gSaveBlock1
+ ldr r2, _080C1CD8 @ =0x00002b18
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1CDC @ =0x00002b19
+ adds r4, r0
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bls _080C1CE4
+ ldr r1, _080C1CE0 @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CD0: .4byte gStringVar1
+_080C1CD4: .4byte gSaveBlock1
+_080C1CD8: .4byte 0x00002b18
+_080C1CDC: .4byte 0x00002b19
+_080C1CE0: .4byte gUnknown_020387E8
+_080C1CE4:
+ ldr r1, _080C1CEC @ =gUnknown_020387E8
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1CEC: .4byte gUnknown_020387E8
+_080C1CF0:
+ movs r0, 0x2
+ strb r0, [r2]
+ b _080C1DF8
+_080C1CF6:
+ ldr r0, _080C1D0C @ =gSaveBlock1
+ ldr r1, _080C1D10 @ =0x00002b1a
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C1D14
+ movs r0, 0x4
+ strb r0, [r2]
+ b _080C1DF8
+ .align 2, 0
+_080C1D0C: .4byte gSaveBlock1
+_080C1D10: .4byte 0x00002b1a
+_080C1D14:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D22
+ movs r0, 0x5
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D22:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D30
+ movs r0, 0x6
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D30:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080C1D3E
+ movs r0, 0x7
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D3E:
+ movs r0, 0x3
+ strb r0, [r2]
+ b _080C1DF8
+_080C1D44:
+ ldr r0, _080C1D88 @ =gStringVar1
+ ldr r4, _080C1D8C @ =gSaveBlock1
+ ldr r2, _080C1D90 @ =0x00002b10
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1D94 @ =gSpeciesNames
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1D98 @ =gStringVar2
+ ldr r2, _080C1D9C @ =0x00002b14
+ adds r1, r4, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _080C1DA0 @ =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, _080C1DA4 @ =gStringVar3
+ ldr r1, _080C1DA8 @ =0x00002b12
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1DAC @ =gUnknown_020387E8
+ movs r0, 0x8
+ strb r0, [r1]
+ b _080C1DF8
+ .align 2, 0
+_080C1D88: .4byte gStringVar1
+_080C1D8C: .4byte gSaveBlock1
+_080C1D90: .4byte 0x00002b10
+_080C1D94: .4byte gSpeciesNames
+_080C1D98: .4byte gStringVar2
+_080C1D9C: .4byte 0x00002b14
+_080C1DA0: .4byte gMoveNames
+_080C1DA4: .4byte gStringVar3
+_080C1DA8: .4byte 0x00002b12
+_080C1DAC: .4byte gUnknown_020387E8
+_080C1DB0:
+ movs r0, 0x8
+ strb r0, [r2]
+ b _080C1DF8
+_080C1DB6:
+ ldr r0, _080C1E0C @ =gStringVar1
+ ldr r4, _080C1E10 @ =gSaveBlock1
+ ldr r2, _080C1E14 @ =0x00002b16
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ bl sub_80EB3FC
+ ldr r0, _080C1E18 @ =gStringVar2
+ ldr r2, _080C1E1C @ =0x00002b10
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r6, 0xB
+ muls r1, r6
+ ldr r5, _080C1E20 @ =gSpeciesNames
+ adds r1, r5
+ bl StringCopy
+ ldr r0, _080C1E24 @ =gStringVar3
+ ldr r1, _080C1E28 @ =0x00002b12
+ adds r4, r1
+ ldrh r1, [r4]
+ muls r1, r6
+ adds r1, r5
+ bl StringCopy
+ ldr r1, _080C1E2C @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C1E30 @ =gUnknown_020387E8
+ movs r0, 0
+ strb r0, [r1]
+ bl TakeTVShowInSearchOfTrainersOffTheAir
+_080C1DF8:
+ ldr r0, _080C1E34 @ =gUnknown_083D1600
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1E0C: .4byte gStringVar1
+_080C1E10: .4byte gSaveBlock1
+_080C1E14: .4byte 0x00002b16
+_080C1E18: .4byte gStringVar2
+_080C1E1C: .4byte 0x00002b10
+_080C1E20: .4byte gSpeciesNames
+_080C1E24: .4byte gStringVar3
+_080C1E28: .4byte 0x00002b12
+_080C1E2C: .4byte gScriptResult
+_080C1E30: .4byte gUnknown_020387E8
+_080C1E34: .4byte gUnknown_083D1600
+ thumb_func_end DoTVShowInSearchOfTrainers
+
+ thumb_func_start DoTVShowPokemonAngler
+DoTVShowPokemonAngler: @ 80C1E38
+ push {r4,r5,lr}
+ ldr r0, _080C1E5C @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1E60 @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r0, _080C1E64 @ =gScriptResult
+ movs r1, 0
+ strh r1, [r0]
+ ldrb r0, [r4, 0x2]
+ ldrb r2, [r4, 0x3]
+ cmp r0, r2
+ bcs _080C1E6C
+ ldr r0, _080C1E68 @ =gUnknown_020387E8
+ strb r1, [r0]
+ b _080C1E74
+ .align 2, 0
+_080C1E5C: .4byte gUnknown_0202E8CC
+_080C1E60: .4byte gSaveBlock1 + 0x2738
+_080C1E64: .4byte gScriptResult
+_080C1E68: .4byte gUnknown_020387E8
+_080C1E6C:
+ ldr r1, _080C1E80 @ =gUnknown_020387E8
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_080C1E74:
+ ldrb r5, [r0]
+ cmp r5, 0
+ beq _080C1E84
+ cmp r5, 0x1
+ beq _080C1EBC
+ b _080C1EE4
+ .align 2, 0
+_080C1E80: .4byte gUnknown_020387E8
+_080C1E84:
+ ldr r0, _080C1EB0 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EB4 @ =gStringVar2
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1EB8 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+ b _080C1EE4
+ .align 2, 0
+_080C1EB0: .4byte gStringVar1
+_080C1EB4: .4byte gStringVar2
+_080C1EB8: .4byte gSpeciesNames
+_080C1EBC:
+ ldr r0, _080C1EF8 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0x6]
+ bl sub_80C08FC
+ ldr r0, _080C1EFC @ =gStringVar2
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F00 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ bl TVShowDone
+_080C1EE4:
+ ldr r0, _080C1F04 @ =gUnknown_083D15EC
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1EF8: .4byte gStringVar1
+_080C1EFC: .4byte gStringVar2
+_080C1F00: .4byte gSpeciesNames
+_080C1F04: .4byte gUnknown_083D15EC
+ thumb_func_end DoTVShowPokemonAngler
+
+ thumb_func_start DoTVShowTheWorldOfMasters
+DoTVShowTheWorldOfMasters: @ 80C1F08
+ push {r4-r6,lr}
+ ldr r0, _080C1F30 @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080C1F34 @ =gSaveBlock1 + 0x2738
+ adds r4, r0, r1
+ ldr r1, _080C1F38 @ =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r6, _080C1F3C @ =gUnknown_020387E8
+ ldrb r5, [r6]
+ cmp r5, 0x1
+ beq _080C1F6C
+ cmp r5, 0x1
+ bgt _080C1F40
+ cmp r5, 0
+ beq _080C1F46
+ b _080C1FB6
+ .align 2, 0
+_080C1F30: .4byte gUnknown_0202E8CC
+_080C1F34: .4byte gSaveBlock1 + 0x2738
+_080C1F38: .4byte gScriptResult
+_080C1F3C: .4byte gUnknown_020387E8
+_080C1F40:
+ cmp r5, 0x2
+ beq _080C1F8C
+ b _080C1FB6
+_080C1F46:
+ ldr r0, _080C1F68 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldrh r1, [r4, 0x6]
+ movs r0, 0x1
+ bl sub_80BF088
+ ldrh r1, [r4, 0x2]
+ movs r0, 0x2
+ bl sub_80BF088
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F68: .4byte gStringVar1
+_080C1F6C:
+ ldr r0, _080C1F84 @ =gStringVar1
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1F88 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0x2
+ strb r0, [r6]
+ b _080C1FB6
+ .align 2, 0
+_080C1F84: .4byte gStringVar1
+_080C1F88: .4byte gSpeciesNames
+_080C1F8C:
+ ldr r0, _080C1FC8 @ =gStringVar1
+ adds r1, r4, 0
+ adds r1, 0x13
+ ldrb r2, [r4, 0xB]
+ bl sub_80C08FC
+ ldr r0, _080C1FCC @ =gStringVar2
+ ldrb r1, [r4, 0xA]
+ movs r2, 0
+ bl sub_80FBFB4
+ ldr r0, _080C1FD0 @ =gStringVar3
+ ldrh r2, [r4, 0x4]
+ movs r1, 0xB
+ muls r1, r2
+ ldr r2, _080C1FD4 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ bl TVShowDone
+_080C1FB6:
+ ldr r0, _080C1FD8 @ =gUnknown_083D15F4
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl ShowFieldMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C1FC8: .4byte gStringVar1
+_080C1FCC: .4byte gStringVar2
+_080C1FD0: .4byte gStringVar3
+_080C1FD4: .4byte gSpeciesNames
+_080C1FD8: .4byte gUnknown_083D15F4
+ thumb_func_end DoTVShowTheWorldOfMasters
+
+ thumb_func_start TVShowDone
+TVShowDone: @ 80C1FDC
+ ldr r1, _080C2000 @ =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080C2004 @ =gUnknown_020387E8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, _080C2008 @ =gSaveBlock1
+ ldr r0, _080C200C @ =gUnknown_0202E8CC
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _080C2010 @ =0x00002739
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080C2000: .4byte gScriptResult
+_080C2004: .4byte gUnknown_020387E8
+_080C2008: .4byte gSaveBlock1
+_080C200C: .4byte gUnknown_0202E8CC
+_080C2010: .4byte 0x00002739
+ thumb_func_end TVShowDone
+
+ thumb_func_start sub_80C2014
+sub_80C2014: @ 80C2014
+ ldr r1, _080C201C @ =gUnknown_020387E8
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080C201C: .4byte gUnknown_020387E8
+ thumb_func_end sub_80C2014
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 525366150..8849b79db 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -106,6 +106,38 @@ SECTIONS {
asm/rom_80B5054.o(.text);
asm/naming_screen.o(.text);
asm/rom_80B79A8.o(.text);
+ asm/contest_effect.o(.text);
+ asm/record_mixing.o(.text);
+ asm/sound_check_menu.o(.text);
+ asm/secret_base.o(.text);
+ asm/tv.o(.text);
+ asm/contest_link_80C2020.o(.text);
+ asm/scipt_pokemon_util_80C4BF0.o(.text);
+ asm/field_poison.o(.text);
+ asm/big_shroomish_barboach.o(.text);
+ asm/fldeff_80C5CD4.o(.text);
+ asm/truck_scene.o(.text);
+ asm/porthole.o(.text);
+ asm/rotating_gate.o(.text);
+ asm/safari_zone.o(.text);
+ asm/contest_link_80C857C.o(.text);
+ asm/item_use.o(.text);
+ asm/battle_anim_80CA710.o(.text);
+ asm/bike.o(.text);
+ asm/easy_chat.o(.text);
+ asm/pokenav.o(.text);
+ asm/mon_markings.o(.text);
+ asm/mauville_old_man.o(.text);
+ asm/mail.o(.text);
+ asm/menu_helpers.o(.text);
+ asm/script_pokemon_util_80F99CC.o(.text);
+ asm/dewford_trend.o(.text);
+ asm/heal_location.o(.text);
+ asm/region_map.o(.text);
+ asm/cute_sketch.o(.text);
+ asm/decoration.o(.text);
+ asm/slot_machine.o(.text);
+ asm/contest_painting.o(.text);
asm/battle_ai.o(.text);
asm/trader.o(.text);
src/starter_choose.o(.text);